Basic Setup

From WCell Wiki
Jump to: navigation, search

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:


  1. Open the WCell solution file WCell.sln (which will open Visual Studio with the WCell solution loaded)
  2. (Make sure you compile in the right BuildMode, preferably Debug.)
  3. 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.
  4. 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:
  5. Picture Needed
  6. 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

  1. Important
    • After compilation, run both applications (the AuthServer and RealmServer) once
    • Close them
    • You will now find the configuration files next to the applications
  2. Configure WCell
  3. 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
  4. 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:
    • Make sure that the Database names match your DBConnectionString

Import content from a Content-provider

  • (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 file in your WoW folder
  • The default listening address is (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

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.

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?