Polestar
Polestar is a free, open-source leveling guide addon for WoW: Forever: an in-game arrow and leveling routes that make sense for every race 1 to 60, plus class quests.
Void is an open-source emulation server for the 2011 RuneScape era.
GamesKotlin · JavaScriptGitHub @GregHibOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Lightweight 2011 RuneScape multiplayer server
Translation pending
Loading the full README.
Read the full README ↗Features • Quick setup • Development • Blog • Documentation • Bugs • World Map
game.properties file or modifying the code to suit your preferences.Make sure you have java 21 or above installed. (java --version on command line)
Extract the latest void.zip released bundle into a directory.
Run either the run-server.bat on Windows, or run-server.sh on Linux.
On first start the server will offer to download the game cache files into /data/cache/ (configured by storage.cache.download.url in game.properties). Alternatively extract the latest pre-modified game files cache.zip into /data/cache/ yourself.
You should see [Main] - Void loaded in ...ms to show the server is up and running correctly.
Ctrl + C to exit and shutdown the server when running from a command line terminal.
Run the latest client.jar and login with any username and password to create a new account.
web.server.enabled to true in game.properties.http://localhost:8080/play in the browser and login with any username or password to create a new account.The webserver can also expose account routes so a website's backend can create and manage accounts on the running server, without a restart or account reload. They're protected by a single shared key, so they're for trusted server-side callers only, never a static site or browser.
web.server.enabled=true and web.api.enabled=true in game.properties.web.api.token to a random secret of at least 32 characters (e.g. openssl rand -hex 32). Every request must send it as Authorization: Bearer <token>./api/v1/accounts on any public reverse proxy so only your backend can reach it.| Method | Path | Body | Success |
|---|---|---|---|
GET | /api/v1/names/{name} | {"name","available"} | |
GET | /api/v1/accounts/{name} | {"accountName","displayName","previousName","online"} | |
POST | /api/v1/accounts | {"name","password","displayName"?} | 201 + account |
PUT | /api/v1/accounts/{name}/password | {"password"} | 204 |
PUT | /api/v1/accounts/{name}/name | {"displayName"} | account |
When creating, name is either a 1-12 character username (which is also the display name) or an email address, in which case displayName is required.
{name} in an /accounts path is always the account name, never a display name. Display names can't match another account's name, and /names/{name} checks whether a name is free as either. Changing a password logs the player out if they're online, and staff accounts (any rights) can only be changed in-game.
Errors use the api's {"error": {"code", "message", "details"?}} envelope: 400 bad_request, 401 unauthorized (missing or wrong key), 403 forbidden (creation disabled or a staff account), 404 account_not_found, 409 name_taken, 422 validation_failed (details names the name, displayName or password field), 429 rate_limited (with Retry-After), 503 unavailable.
Send the end user's address as X-Forwarded-For when creating accounts so web.api.registration.maxPerIP limits players rather than the caller:
curl -H 'Authorization: Bearer <token>' -H 'Content-Type: application/json' -H 'X-Forwarded-For: 203.0.113.9' \
-d '{"name":"[email protected]","password":"hunter22","displayName":"Bob"}' http://localhost:8080/api/v1/accounts
For more details see the full Installation Guide.
[!NOTE] For common problems see the Troubleshooting Guide.
Use IntelliJ (which is free to use) to develop with Void. See the installation guide for more instructions.
This is the beginning of the README. Read the rest at the original. Read the full README ↗