[TUT] Making a World of Warcraft server on Windows

Discussion in 'Archives' started by Blupig, May 23, 2010.

Thread Status:
Not open for further replies.
[TUT] Making a World of Warcraft server on Windows
  1. Unread #1 - May 23, 2010 at 12:39 AM
  2. Blupig
    Joined:
    Nov 23, 2006
    Posts:
    7,145
    Referrals:
    16
    Sythe Gold:
    1,609
    Discord Unique ID:
    178533992981594112
    Valentine's Singing Competition Winner Member of the Month Winner MushyMuncher Gohan has AIDS Extreme Homosex World War 3 I'm LAAAAAAAME
    Off Topic Participant

    Blupig BEEF TOILET
    $5 USD Donor

    [TUT] Making a World of Warcraft server on Windows

    Official guide for MaNGOS setup on Window can be found in the sticky on the MaNGOS forums here.
    I take 100% credit for this guide, so if you see it anywhere posted by someone other than me (Phenomenon or Blupig) please let me know.

    If you need help, please post in the installation forums, the general help forums, or here in this thread. I don't visit these forums very often, so please do not PM me for I will not answer. However, other members of these forums will be more than happy to help you out.

    Guide last updated: May 14th 2010
    • The guide has been rewritten to include pictures and better descriptions
    • Mangos now supports client version 3.3.3a, more information is available here



    1. Software downloads

    Please download all of the following software before we begin. Everything is free, so don't worry about costs :)

    • World of Warcraft client (with Wrath of the Lich King) updated to version 3.3.3a (trial clients ARE NOT supported; for a full download please login to worldofwarcraft.com or buy the disks)
    • MySQL server (community edition available for download here)
    • SQL client (you can use whichever one you're comfortable with, but I'll be using SQLyog throughout the guide which is available here, the

      download you want is most likely the very first one in the list)
    • GIT client (msysgit available here, first one on the list as well)
    • Microsoft Visual C++.net Express 2010(available here)
    • SVN client (Tortoise SVN will be used in this guide and is available here)



    2. Installing software


    • Run the installation for your GIT client (msysgit)
    • When prompted, click the option that says "Use Git Bash only" (click here for an image)
    • When prompted, click the option that says "Checkout Windows-style, commit Unix-style line endings" (click here for an image)
    • Click next and wait for the install to finish
    • Install MySQL (choose "Typical" installation when prompted)
    • Install SQLyog, Tortoise SVN, and Visual C++.net, all three installations are very straight-forward



    3. Getting the MaNGOS source files


    • Create a folder anywhere you like and name it whatever you like (this will be where you store all your MaNGOS stuff, for example C:\MaNGOS\)
    • Right-click your folder and select "Git Gui" (click here for an image)
    • When the Git window comes up, click the "Clone Existing Repository" link (click here for an image)
    • In the "Source Location" box, put in
      Code:
      git://github.com/mangos/mangos.git
    • In the "Target Directory" box, put in where you want the source code to be stored; please note that the folder cannot already exist (example would be C:\MaNGOS\source\) (click here for an image)
    • Click the "Clone" button and wait for the program to finish; it will take a while, but just wait
    • Once finished, close git



    4. Getting the ScriptDev2 files


    • In your MaNGOS folder (not your source folder, rather the folder that contains the source folder, so for example C:\MaNGOS\) create a new folder (name it whatever you like, it will contain the ScriptDev2 source files, an example being C:\MaNGOS\ScriptDev2 source\)
    • Right-click your ScriptDev2 folder and select "SVN Checkout" (click here for an image)
    • In the "URL of repository" box, put in
      Code:
      https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2
      (click here for an image)
    • The "Checkout directory" box should have your ScriptDev2 source folder's path
    • Click OK and wait for the files to have finished downloading, then close Tortoise SVN



    5. Compiling MaNGOS


    • Open your MaNGOS source folder, then the "win" folder that is found inside it
    • Open the file "mangosd100" in Visual C++.net 2010
    • For older versions of Visual C++ (2005, 2008), you'll need to set directories; for assistance with this, you should consult the compilation guide found here
    • Click "Build" in the menu bar at the top of Visual C++ then select "Configuration Manager" (click here for an image)
    • Make sure that the dropdown box for "Active solution configuration" says "Release" and that the box for "Active solution platform" says "Win32", then close that window (click here for an image)
    • Click "Build" again in the menu bar at the top of Visual C++, then click "Build Solution", or press F7 (click here for an image)
    • While compiling, if you receive any errors then click "Build" again then "Clean Solution"; you can then restart the compilation process
    • Compiling will take a long time, if you get warning messages don't worry, that's normal (note that these are warning messages and not error messages, error messages are bad) (click here for an image)
    • On my computer compiling took about 20 minutes, which is around average (just to give you an idea, don't think it'll take any less time or as much time, could be longer)



    6. Installing MaNGOS


    • Go into your MaNGOS source folder, then into the "bin" folder, and then the "Win32_Release" folder (example C:\MaNGOS\source\bin\Win32_Release\)
    • Copy the following files to your MaNGOS folder (example C:\MaNGOS\):

    • Go into your MaNGOS source folder, then into the "src" folder, and then the "mangosd" folder
    • Copy the file "mangosd.conf.dist.in" into your MaNGOS source folder
    • Rename it to "mangosd.conf" (right-click the file and select rename)
    • Go into your MaNGOS source folder, then into the "srs" folder, and then the "realmd" folder
    • Copy the file "realmd.conf.dist.in" into your MaNGOS source folder
    • Rename it to "realmd.conf" (right-click the file and select rename)
    • Go into your ScriptDev2 source folder
    • Copy the fole "scriptdev2.conf.dist.in" into your MaNGOS source folder
    • Rename it to "scriptdev2.conf" (right-click the file and select rename)
    • Here are the files that should now be in your MaNGOS folder (click here for an image)



    7. Extracting maps, DBCs and VMaps


    • Go into your MaNGOS source folder, then into the "contrib" folder, and then the "extractor" folder
    • Copy the file "ad.exe" into your WoW client folder (example: C:\Program Files\World of Warcraft\)
    • This will take a long time, so please be patient
    • When the extractor has finished extracting, there will be 2 new folders in your WoW folder called "DBC" and "maps"
    • Copy both folders into your MaNGOS folder (example: C:\MaNGOS\)
    • Go into your MaNGOS source folder, then into the "contrib" folder, and then the "vmap_extract_assembler_bin" folder
    • Run the file "makev maps_Simple.bat"
    • This is also a long process, so please wait for it to be finished
    • When the vMap batch file has finished making vMaps, move the folder "vMaps" and the folder "buildings" into your MaNGOS folder
    • You should now have 4 new folders in your MaNGOS folder, DBC, maps, buildings, and vMaps



    8. Configuring MySQL


    • Click your Windows "start" button, then find MySQL and click on the "MySQL Server Instance Config Wizard" (click here for an image)
    • When prompted, select "Standard Configuration"
    • When prompted, check-off "Install as Windows Service", have the service name be "MySQL" and make sure that "Launch the MySQL server automatically" is checked-off as well
    • When prompted, make sure that "Modify security settings" is checked off
    • Put in a password that you'll remember, you'll need it later on (default password in configuration files and such is "mangos", use this if you're the only one using your WoW server)
    • Only check-off "Enable root access from remote machines" if you want to be able to work in your MySQL database from more machines than just your current computer, also check it off if you plan on having an online registration page
    • Click "Execute"
    • On Windows 7 and possibly Vista, the installation window might freeze for a second; just leave it be, it will come back
    • If you're having any extra issues configuring MySQL, try running the wizard as an administrator, allowing MySQL through your firewall, or running in compatibility mode for another operating system

      (Google these methods if you need to, I'm not including them in this guide since they are irrevelant)



    9. Database setup


    • Run SQLyog
    • Click the "New..." button at the top of the connection window and name the connection whatever you like (perhaps something like "WoW server"?) (click here for an image)
    • In the "MySQL Host Address" box, leave it as "localhost" or "127.0.0.1" if you're playing single player or on LAN, change it to your host's IP or DNS if it is an online server (click here for an image)
    • The "Username" box should say "root"
    • Put in the password that you set in the MySQL config wizard
    • The port number is by default 3306, only change this if you need to (most likely for online servers, don't change the port unless you know what you're doing)
    • Leave the "Database(s)" box blank for now, we'll come back to it later
    • Click connect and click yes if asked to save changes
    • Right-click "root@(IP here)" in the top left pane of SQLyog and click "Create database" (click here for an image)
    • For database name, put in "realmd", don't worry about the other two things (click here for an image)
    • Repeat the above step, but make three more databases named "mangos", "characters", and "scriptdev2"
    • In the menu-bar at the top of SQLyog, click "File" then "New Connection", but this time put the following in for "database(s)":
      Code:
      realmd;mangos;characters;scriptdev2
      (click here for an image)
    • Click connect and click yes to save changes
    • In the database list on the left side of SQLyog, right-click "realmd" and select "Import" then "Restore from SQL dump"
    • Click the "..." button and find your MaNGOS source folder, go into it, then go into the "sql" folder and select "realmd.sql", then click "Execute" and wait for it to finish (if you get a popup message just click yes), then click "Done" to close that window (click here for an image)
    • Repeat the above steps, except this time for the characters database (instead of selecting "realmd.sql" in the execute window, select "characters.sql" in the same folder

      NOTICE:
      At this point, you have two choices for the world database (mangos). You can either use a completely empty database with no items, NPCs, nothing (this is if you want to completely create your own world) or
      use a packed database such as UDB which includes everything from quests to items to instances to NPCs. There are a whole bunch of different packed databases, but UDB is the one that is best supported for
      MaNGOS. Other databases might include strange custom content or variations on NPC scripting, etc.

      If you want an empty database:
    • In the database list on the left side of SQLyog, right-click "mangos" and select "Import" then "Restore from SQL dump"
    • Click the "..." button and find your MaNGOS source folder, go into it, then go into the "sql" folder and select "mangos.sql", then click "Execute" and wait for it to finish (if you get a popup message
      just click yes), then click "Done" to close that window

      If you want a packed database (UDB):
    • Download the latest version of UDB, it can be found here (download the ZIP archive link, so for example at the time of
      making this guide the file I would have downloaded would be UDB_0.12.0_mangos_9582_SD2_1639.zip)
    • Extract the database file somewhere you will remember (keep it too in case of mistakes later on)
    • Add it to the "mangos" database the same way you did with "realmd" and "characters" (this database is considerably larger than the other ones you've added, so it could take a while to execute)

      ***Remember the following steps, you will be using the same method to update the databases (explained later)***
    • Go into your ScriptDev2 source folder, then into the "sql" folder, and open scriptdev2_create_structure_mysql.sql in Notepad, copy all the contents, then paste it into the SQL query box to the right of SQLyog then select the "scriptdev2" database in the database list on the left side of SQLyog (make sure all of the text in the query box is selected before moving on) (click here for an image)
    • Click the play button in the toolbar at the top of SQLyog
    • Repeat the above two steps, but this time for scriptdev2_script_full.sql in the same scriptdev2 sql folder and for mangos_scriptname_full.sql (for mangos_scriptname_full.sql, have the mangos database selected instead of the scriptdev2 database) (click here for an image)
      ***



    10. Updating databases


    • Make a folder within your MaNGOS folder, call it "updates" or "update packs" or something (example: C:\MaNGOS\updates)
    • Right-click that folder and select "SVN Checkout"
    • In the "URL of repository" box, put in:
      Code:
      http://unifieddb.svn.sourceforge.net/svnroot/unifieddb/trunk/Updates/
    • Click OK and wait for the download to finish

      NOTICE:
      This part is somewhat tricky and can be hard to explain, but I'll do my best. The updates must be done in proper order or else things can get messed up, so please follow the next steps carefully!
    • Go into your updates folder and open the first update pack, copy the contents, then paste them into the query box (similar to the ScriptDev2 query stuff we did earlier)
    • Take notice to which database needs to be selected; most update packs will be named in the following pattern: update#_patchtype_databasename_revision#_to_revision#, so for example 388_corepatch_characters_9311_to_9582.sql
    • Look at the database name part of the filename, this is the database that you need to select before pushing the play button (this is VERY important, in my example filename above I would have to select

      the "characters" database)
    • Push the play button
    • Repeat the update steps above for every update pack that was downloaded
    • You may need to add additional updates depending on the progress of database content
    • You can check your database revision number by clicking the "+" next to the database name in the database list, clicking the "+" next to "Tables" then finding the corresponding table for each database:
      Characters: Characters_DB_Version
      Mangos: db_version
      Realmd: Realmd_DB_Version
      (click here for an image)
    • You can then click the "Tables" tab on the right of SQLyog (shown) to see the table information
    • Somewhere in the table information (there isn't much within the db_version tables, so look for it), there will be something that says "required" in it, such as "required_9803_01_mangos_spell_bonus_data"
    • Go into your MaNGOS source folder then into the "sql" folder and find the required update (it will have the same name) and do all the updates after it (all the newest ones)
    • SQLyog will be disabled while running updates; when it is enabled again, you'll know that that's when the update has finished



    11. ACID


    • The ACID SVN can be found here
    • Click the link for your expansion (vanilla, BC or WotLK)
    • Click the newest version (the highest number)
    • Click the link for the sql file (it will have the .sql extension)
    • Copy all of the file and paste it in the query box, select all the text then press the play button (with the mangos database selected)
    • You can now close SQLyog :)



    12. Configuration


    • Go into your MaNGOS folder
    • Open "mangosd.conf" in Notepad
    • Search for the line that says "DataDir=" and make sure it is the following:
      Code:
      Datadir="."
    • Search for the following codes and change them as required:
      Code:
      WorldDatabaseInfo = "[Server IP];3306;root;[SQL password];mangos"
      LoginDatabaseInfo = "[Server IP];3306;root;[SQL password];realmd"
      CharacterDatabaseInfo = "[Server IP];3306;root;[SQL password];characters"
      (Server IP is the IP you log into SQLyog with, 3306 is the port number, root is the root username, SQL password is the password you log into SQLyog with, mangos is the name of your mangos database)
    • If you used vMaps, then change the following lines:
      Code:
      vmap.enableLOS = 0
      vmap.enableHeight = 0
      
      to
      Code:
      vmap.enableLOS = 1
      vmap.enableHeight = 1
      
    • Save, exit
    • Go back into your MaNGOS folder
    • Open "realmd.conf" in Notepad
    • Search for the following code and change it as required:
      Code:
      LoginDatabaseInfo = "[Server IP];3306;root;[SQL password];realmd"
    • Save, exit
    • Go back into your MaNGOS folder
    • Open "scriptdev2.conf" in Notepad
    • Search for the following code and change is as required:
      Code:
      ScriptDev2DatabaseInfo = “[Server IP];3306;root;[SQL password];scriptdev2”
    • Save, exit
    • Create backups of conf files if you don't trust yourself with keeping a single copy of each



    13. Client setup

    • Go into your WoW installation folder, then into the "Data" folder, then into your locale's folder (example: enUS)
    • Open realmlist.wtf in Notepad
    • Change the contents to:
      Code:
      set realmlist [Server IP]
      set patchlist [Server IP]
      
    • If you play retail WoW on the same client on which you play your server, you might want to make a backup of your realmlist file

    Congratulations, your World of Warcraft MaNGOS private server is now ready. To put the server up, simply run mangosd.exe and realmd.exe (keep them up for the server to stay online).

    A. Errors

    • If you get an error that says something like "sql was probably updated" or "# fields, # missing", then you need to update your database and possibly your entire core
    • If you get any map or dbc errors, make sure that the "datadir" field is set to "." (in mangosd.conf) and that your dbc and map files are up-to-date with your client in your MaNGOS core folder


    B. Manual creation of accounts and modification of accounts


    • I will not show you how to use a registration page as they're all very different, but here's how to create accounts manually.

      Creating the account:
    • Run mangosd.exe and realmd.exe (once mangosd.exe is fully loaded, you can type "help" for all the commands)
    • Once they're both nice and loaded, type in the following (change it as required):
      Code:
      account create [username] [password]
      Example: account create Phenomenon 123
      Setting expansions:
      Code:
      account set addon [username] [number 0-2, 0 being vanilla, 2 being WotLK]
      Example: account set addon phenomenon 2
      Changing GM levels:
      Code:
      account set gmlevel [username] [number 0-3, 0 being player and 3 being administrator]
      


    C. Editing mangosd.conf

    In this step I won't show you how to change your conf file so that you have a funserver or what-not, but rather tell you how to understand the conf file.

    You'll notice large areas of text in the conf file that are surrounded with number signs (#). This is the documentation area. You can read up on what a function does, what it's for and how/what you should change it to (example: # RealmID # RealmID must match the realmlist inside the realmd database -> this tells you that the RealmID function needs to be set to the same one that's found in the realmlist table in your database).

    Below the text area sounded by #s, you'll find the actual functions. This is where you change the values to what you want. Be careful of spacing and typos, they will throw errors when running the server

    (example: the RealmID function should look like this RealmID = 1 and not like this RealmID=1 or RealmID =1 or RealmID = 1u).


    D. Editing the database

    Creating custom content for your server (such as items, NPCs, quests, etc.) is really very easy. You can either do it manually directly in SQLyog or you can use a far more efficient tool (there are tons of fun database tools out there, a few are listed in the resources area of this post). However, more technical things such as spell editing (etc.) will require core mods which require extensive knowledge of C++ to create.


    E. Useful tools and resources

    ***The MaNGOS forums are not to provide you support for the following tools. If you are having trouble using them, please visit their respective websites instead.***

    • Quice database editor: easy to use editor to modify database entries for anything from quests to NPCs to items and more
    • WoW-V SQL generator: extremely easy to use, very straight-forward multifunctional online code generator to create SQL queries for all your custom content needs (good for people who are beginners at database editing)
    • MaNGOLin: an administrative application that has commands built-in so you don't always have to type them out (click the link to view the thread on UDB)
     
  3. Unread #2 - Jul 24, 2010 at 8:29 PM
  4. vegeta 5001
    Joined:
    Nov 20, 2007
    Posts:
    11
    Referrals:
    0
    Sythe Gold:
    0

    vegeta 5001 Newcomer

    [TUT] Making a World of Warcraft server on Windows

    is this one public i mean can my friends join it? becouse i tried to setup like 3 servers now and none where public.. :(
     
  5. Unread #3 - Jul 25, 2010 at 2:31 PM
  6. Deacon Frost
    Joined:
    Jan 30, 2007
    Posts:
    2,905
    Referrals:
    3
    Sythe Gold:
    57

    Deacon Frost Grand Master
    Banned

    [TUT] Making a World of Warcraft server on Windows

    What's the size of this full thing? Any tips on networking it with other computers?

    Otherwise, I'm definitely going to try this out.

    When new patches come out, what do we do then?
     
  7. Unread #4 - Feb 14, 2011 at 1:22 PM
  8. iJizzed
    Joined:
    Feb 4, 2011
    Posts:
    369
    Referrals:
    1
    Sythe Gold:
    0

    iJizzed Forum Addict
    Banned

    [TUT] Making a World of Warcraft server on Windows

    Lol i always wondered how to amke his it seems much harder then rsps lol
     
  9. Unread #5 - Jul 13, 2011 at 5:44 AM
  10. imtoomuch4u
    Joined:
    Jun 19, 2011
    Posts:
    203
    Referrals:
    0
    Sythe Gold:
    0

    imtoomuch4u Active Member
    Banned

    [TUT] Making a World of Warcraft server on Windows

    How long would it take to make one?
     
  11. Unread #6 - Jul 13, 2011 at 5:45 AM
  12. imtoomuch4u
    Joined:
    Jun 19, 2011
    Posts:
    203
    Referrals:
    0
    Sythe Gold:
    0

    imtoomuch4u Active Member
    Banned

    [TUT] Making a World of Warcraft server on Windows

    I can't even creat an RSPS :(
     
< FREE Lending! | Did you guys notice? >

Users viewing this thread
1 guest
Thread Status:
Not open for further replies.


 
 
Adblock breaks this site