World of Warcraft single-player
To run the Blizzard World of Warcraft - WoTLK (Wrath of the Lich King) 3.3.5 client on your macOS computer and play “single-player”, you will need a running WoW server, the WoW client and a database server (MySQL). Everything else will be downloaded and installed from the Internet. To download the WoW WoTLK client for macOS, start by searching your neighbourhood’s torrent website (hint, thepiratebay.se).
Playing “single-player” can be lots of fun, basically you can explore the world at your pace, do quests, gather achievements, etc, the only part you will be missing is the other players in game. Dungeons and raids (level appropriate) might be hard if not impossible either.
Compile and install the server
Firstly, you will need the server component, in this case, provided by TrinityCore.
Make sure you have Homebrew installed, if not, follow the documentation.
$ brew update $ brew install mysql openssl readline cmake boost zlib $ brew link zlib --force
Install Apple Xcode using the Apple App Store, after that install all required components:
$ xcodeselect --install
Clone the TrinityCore repository somewhere, checkout the
3.3.5 branch (Wrath of the Lich King expansion, final patch
$ git clone https://github.com/TrinityCore/TrinityCore.git $ cd TrinityCore $ git checkout 3.3.5 $ mkdir build && cd build
Generate the Xcode project files:
$ cmake ../ \ -GXcode \ -DMYSQL_ADD_INCLUDE_PATH=/usr/local/include \ -DMYSQL_LIBRARY=/usr/local/opt/mysql/lib/libmysqlclient.dylib \ -DREADLINE_INCLUDE_DIR=/usr/local/opt/readline/include \ -DREADLINE_LIBRARY=/usr/local/opt/readline/lib/libreadline.dylib \ -DBOOST_INCLUDEDIR=/usr/local/include \ -DBOOST_LIBRARYDIR=/usr/local/lib \ -DOPENSSL_INCLUDE_DIR=/usr/local/opt/openssl/include \ -DOPENSSL_SSL_LIBRARIES=/usr/local/opt/openssl/lib/libssl.dylib \ -DOPENSSL_CRYPTO_LIBRARIES=/usr/local/opt/openssl/lib/libcrypto.dylib \ -DZLIB_ROOT=/usr/local/opt/zlib \ -DTOOLS=1 \ -DCMAKE_INSTALL_PREFIX=/usr/local/TrinityCore \ -DWITH_WARNINGS=1
You can alter the
/usr/local/TrinityCore path if you want the server installed in a different directory. The paths are hardcoded due to Homebrew, if you’re self-compiling the prerequisites, adjust the paths accordingly.
After that, build the
Release binaries using Xcode:
$ xcodebuild -target install -config Release
There should be several executables in the
/usr/local/TrinityCore directory, most important are
worldserver. The Authentication Server is the component responsable with the account login and the World Server is … creating the World of Warcraft … world.
Extracting maps, mmaps and vmaps
Note the path where your World of Warcraft client is, in my case it’s
/Volumes/External/Applications/WoW (yes, it’s an external drive). Change it to the path to your WoW client in the first line below:
$ cd /Volumes/External/Applications/WoW $ /usr/local/TrinityCore/bin/mapextractor $ cp -R dbc maps /usr/local/TrinityCore/data/ $ /usr/local/TrinityCore/bin/vmap4extractor $ /usr/local/TrinityCore/bin/vmap4assembler Buildings vmaps $ cp -R vmaps /usr/local/TrinityCore/data/ $ /usr/local/TrinityCore/bin/mmaps_generator $ cp -R mmaps /usr/local/TrinityCore/data/
Start the MySQL server you installed earlier:
$ mysql.server start
Rename the two files inside the
/usr/local/TrinityCore/etc/ directory, removing the
dist part. For example,
authserver.conf.dist should become
authserver.conf; same thing for
Open both .conf files and change the MySQL login data for the TrinityCore servers to your existing setup. The important lines are:
LoginDatabaseInfo = "127.0.0.1;3306;trinity;trinity;auth"
authserver.conf file and:
LoginDatabaseInfo = "127.0.0.1;3306;trinity;trinity;auth" WorldDatabaseInfo = "127.0.0.1;3306;trinity;trinity;world" CharacterDatabaseInfo = "127.0.0.1;3306;trinity;trinity;characters"
worldserver.conf file. First
trinity is the MySQL username, second on is the password. Change them.
Also, inside the
worldserver.conf file, search for the
DataDir = "." line and replace it with
DataDir = "../data".
Download the TDB_full archive from the TrinityCore repository (make sure you download the
3.3.5 one), currently the latest is 63_2017_04_18. Uncompress the .7z archive and copy the .sql file to the
bin directory, where
worldserver are. On the first startup of the worldserver, it will pick up the SQL file and import it; you can delete it afterwards.
Start the authserver and worldserver:
$ ./authserver & $ ./worldserver
Notice the & at the end of the authserver line, it specifies that the server should be launched in the background. We’re doing that because we don’t need to interact with the authserver; the worldserver is not launched into the background (for now) because we need to create the first account, and that is done by typing some commands into the worldserver console. You can launch the worldserver in the background after you created the first account by appending the & at the end of the line:
$ ./worldserver &
Create your first account
Type inside the
account create <USERNAME> <PASS>
account create sizeofcat _boom_
The username and password are the bits you need to connect using your WoW client. There is one more step before, though, open the
realmlist.wtf file that should be inside the
Data\enUS directory of your WoW client and replace its contents with the line below, instructing the client to connect to the local (127.0.0.1) servers.
set realmlist 127.0.0.1
Now you can open your
World of Warcraft.app and authenticate with the newly-created username and password.
Basically, every time you want to play you will need to make sure the MySQL, auth and world servers are up and running.