Basic Setup
From WCell Wiki
Contents |
Software requirements
- .NET Framework 4.0, which you can download here.
- C# compiler or an IDE
- Recommended: Any commercial version of Visual Studio 2010
- (Right now WCell does not offer binary (or installer) packages yet which is why you need to build WCell yourself)
- Database system (to store and access game data)
- MySQL 5.x: download link
- IMPORTANT: At this time MySQL 6.0 and later are NOT supported due to a bug in their distribution!
- Alternatively, you can directly install XAMPP which, ontop of MySQL, also offers a web-server, an ftp-server and other tools for web-development
- Setting up the database system is out of the scope of this document. Please refer to the vendor documentation for further information or ask us for help
- NOTE: These other database systems are theoretically also supported, but you cannot use them because our default Content Providers all only provide their content in MySQL tables:
- MS SQL Server 2005 Express: download link (ships with any commercial version of Visual Studio)
- PostgreSQL 8.2.6: download link
- MySQL 5.x: download link
Compilation
- Open the WCell solution file WCell.sln (which will open Visual Studio with the WCell solution loaded)
- (Make sure you compile in the right BuildMode, preferably Debug.)
- If a big window pops up asking if you want to load a project for reading only or normally, select open normally and uncheck the box where it asks if you want to do this for every project in the solution, and then click OK.
- If you have the Express version:
- It will complain about not supporting some things - ignore that, and just click OK.
- You may receive an error "Solution folders are not supported in this version of the application". This is not an issue and can be ignored:
- Picture Needed
- Right-click 'WCell' in the Solution Explorer and hit Build Solution
-- Build Release Screenshot
-- Build Debug Screenshot
-- Compile Success
Files and Folders
- After building succeeded, the built applications can be found in the Run/ folder:
- Auth Server: Run/{BuildMode}/WCell.AuthServerConsole.exe
- Realm Server: Run/{BuildMode}/WCell.RealmServerConsole.exe
- After the first run, you can find the Configuration files next to the *.exe files:
- Run/{BuildMode}/AuthServerConfig.xml
- Run/{BuildMode}/RealmServerConfig.xml
-- Release Folder
-- Debug Folder
Preparing WCell
- Important
- After compilation, run both applications (the AuthServer and RealmServer) once
- Close them
- You will now find the configuration files next to the applications
- Configure WCell
- Change the DBConnectionString
- Change anything else, as you like
- Extract the DBC files from the WoW client:
- Right-click on the WCell.MPQTool Project in the Solution Explorer and then select Debug -> Start new Instance
- Start Extracting DBC Screenshot
- If you simply run the tool from its directory, it will try to locate your WoW installation directory for you. If it fails, try moving the WCell.DBCDump files into your WoW installation directory, and run it from there. You can find the binaries required to run the program in the Run/{BuildMode}/ folder. It will extract the DBC files into a subfolder of the Content Folder.
- Question Screenshot
- Success Screenshot
- DBC Folder Screenshot
- Right-click on the WCell.MPQTool Project in the Solution Explorer and then select Debug -> Start new Instance
- Create the two databases:
- One for the AuthServer (default name is WCellAuthServer) - It contains:
- Account information (tables will be created automatically)
- One for the RealmServer (default name is WCellRealmServer) - It contains:
- Player data (tables will be created automatically)
- World data (must be imported from a Content Provider)
- Make sure that the Database names match your DBConnectionString
- One for the AuthServer (default name is WCellAuthServer) - It contains:
Import content from a Content-provider
- Select your favorite Content Provider from this list of supported Content Providers
- Follow the steps as explained in that article to import the content
- (Once the Databases are created, configured correctly, and all content has been imported, the server will automatically create the dynamic data tables during initialization)
Running WCell
- Start WCell by running the AuthServerConsole and the RealmServerConsole exe files
- When running in Debug mode:
- Execute load all in the console (or #load all in the ingame chat)
- Connect to WCell after changing the Realmlist.wtf file in your WoW folder
- The default listening address is 127.0.0.1 (or: localhost)
- You can activate Auto Account Creation through the Configuration (Default: On)
- When enabled, a new Account will be created when you try to login and:
- The provided Accountname does not exist
- Password is the same as Accountname
- If you login from the same machine as the server, automatically created accounts get the Highest Role
- Else they get the Default Role
- When enabled, a new Account will be created when you try to login and:
NOTE: If you notice weird behavior, look in the console or the Log Files for hints. Please report any errors that you don't seem to have caused yourself on our Tracker
Static (World) Content
If you run WCell in Debug mode (which is the default), you will face a naked and empty world because it speeds up the startup routine if you disable automatic loading and spawning of static data (NPCs, Items, GOs etc). This is very useful for developers who often need to restart WCell.
- To load Static Content (NPCs, Items, GOs etc):
- Use the Load Command (if not activated in your Configuration you also have to spawn the region)...
- Ingame
- Or through the RealmServer Console
- If you want it to be loaded on startup comment out the load all line from your Content/AutoExec/_Startup.txt file
- Use the Load Command (if not activated in your Configuration you also have to spawn the region)...
Going Public
If you want to allow non-local clients (from the local network or from the internet) to connect to your server, you need to change your Configuration:
- Set RegisterExternalAddress to True (or 1)
- Set ExternalAddress to the address that clients should connect to
- If the ExternalAddress is an address that is bound to one of the Server's NIC addresses you will also have to change the Host to the external address. The port will then be bound to the address.
You can either provide ip-addresses or hostnames.
What's next?
- Learn about Roles and Privileges
- Learn how to configure WCell
- Learn how to customize the ingame world, beyond basic configuration
- Learn how to control the game from within the game
- Learn about further Administration options
- Join the community
- Look for or write your own Addons
- Develop for WCell