wip vanilla private server written in elixir
i've had a lot of fun hacking on this and it would be neat if you did too
hop in the discord if you're interested in helping out
# need elixir + cargo
git clone https://github.com/pikdum/thistle_tea.git
cd thistle_tea
mix deps.get
mix deps.compile
# need npm or bun or similar
cd assets && npm install && cd ../
# need docker + no mariadb port 3306 conflict
./scripts/generate-mangos0-db.sh
# or, just download it
# wget https://pomf2.lain.la/f/jxcam7ob.sqlite -O ./db/mangos0.sqlite
# path to vanilla client, the directory with WoW.exe
# you'll want version 1.12.1 build 5875
# this is only for generating dbc.sqlite + maps
export WOW_DIR="/path/to/vanilla/client"
# need docker
./scripts/generate-dbc-db.sh
# this takes a very long time
# probably 30+ minutes
mix build_maps
# if not localhost, set GAME_SERVER:
# GAME_SERVER=192.168.1.110 iex -S mix
iex -S mix
# change server to localhost in realmlist.wtf
# default logins are in application.ex (test:test)
# also, there's a test server at 150.230.28.221
- mangos0.sqlite
./scripts/generate-mangos0-db.sh
- can generate or download
- this has mobs, items, etc.
- dbc.sqlite
./scripts/generate-dbc-db.sh
- need to generate from wow client, since this can't be distributed
- this has spell info and similar
- logging in
- creating characters
- entering world
- seeing other players
- chatting
- mob spawns/respawns
- casting spells
- auto-attacks
- mob navigation
- idewave - reference implementation
- mangos - reference implementation
- mangos database - world database
- mysql2sqlite - convert world database to sqlite
- shadowburn - auth crypto + reference implementation
- wow_dbc_converter - convert dbc to sqlite
- wow_messages - packet structure
- wowdev - documentation