Logs you in while OctoWoW moves its servers around, and sends you to the world server with the least packet loss and the lowest ping. No extra program, and your realmlist.wtf stays as it is.
Why?
Getting stuck on Connecting, Authenticating or Handshaking, or landing on a world server with 2000+ ping, usually means the address you are using is down or overloaded at the moment, not that the server is down. OctoLogin is a small DLL mod that picks a working address for you every time you log in. It is octoproxy built into the game: nothing else to run.
What it does
Login. When the game connects to the login server, OctoLogin tries every known OctoWoW login address at the same time and gives the game the first one whose login service actually answers. The known addresses are:
- the address in your realmlist.wtf
- every IP that play.octowow.st and normal.octowow.st resolve to, looked up on each login
- fallback addresses that are not in DNS (you can add your own)
- the address that worked last time
World server. While you log in, OctoLogin tests the known world servers in the background. A test only counts when the world server really greets the client, not just when a connection opens. When the realm list arrives, each realm gets the best server: fewest failed tests first, then the lowest ping. OctoWoW's own pick is kept if it lost nothing and is at most 20 ms slower.
You will see "Retrieving realm list" for a few seconds longer (8 by default) while the test runs. The game does not freeze meanwhile.
Gentle with the DDoS protection
OctoWoW's DDoS filter punishes bursts of new connections, so OctoLogin only connects while you log in, never during play:
- login: one attempt per address, at most 8 addresses
- world: at most 3 new connections per second for all servers together
- logging in again within 3 minutes reuses the results instead of testing again
- It only acts on OctoWoW login addresses on port 3724. Other servers, other ports and local addresses (a proxy such as octoproxy on 127.0.0.1) are left alone.
- A realm list it cannot read exactly is passed through unchanged. The worst case is a normal login.
- If another mod already hooked the game's network functions, OctoLogin does nothing.
- Download OctoLogin.dll from the releases page (link below).
- Copy it into your game's mods folder.
- Add this line to the end of dlls.txt in your game folder:
Code: Select all
mods/OctoLogin.dll - Start the game.
Settings and log
OctoLogin works without settings. To change something, copy OctoLogin.ini.example to mods/OctoLogin.ini and edit it. enabled=0 turns it off.
Everything it does is written to mods/OctoLogin.log:
Code: Select all
login: 92.114.107.48:3724 answered first in 112 ms (dns, 4 tried)
world: testing 5 known world servers for 8000 ms
world N'Zoth: using 92.114.107.53:8091 (113 ms, 5/5 answered)
world C'Thun: using 92.114.107.47:8090 (118 ms, 5/5 answered)octoproxy is the standalone version of the same idea: a local login proxy outside the game. OctoLogin replaces it. If you still run octoproxy (realmlist 127.0.0.1), OctoLogin stays out of its way.
Download and source
github.com/fmustafayaman/OctoLogin/releases
Open source (MIT): github.com/fmustafayaman/OctoLogin. The README explains exactly which game functions it hooks and how it is tested.
Problems?
Post here or open an issue on GitHub and attach mods/OctoLogin.log. It shows which addresses were tried and which server each realm got.
Ps. This post written by Ai. My English is not that good to write that lol.
(Waiting for gitea account at octo. I will remove github repo afterwards.)