Home - rebaserHEAD/NexusForever GitHub Wiki
This is a fork of NexusForever, the WildStar server emulator written in C#. Like upstream, it supports client build 16042, the game's final patch. We track upstream's game_rework, build features on top of it, and offer the ones that fit back to upstream. Everything checked in game also lands on one branch, stable, so you can play on all of it while the pull requests wait.
[!NOTE] This wiki covers what the fork adds and how we work on it. For the project itself, upstream's server setup guide and Discord are the places to go.
Start here
| If you want to | Read |
|---|---|
| Run a server on your own machine | Running it locally |
| Drive a server without a client in the loop | Using the web console |
| Write a change upstream will take | Contributing |
| See what's next, and what we leave to upstream | Roadmap |
What the fork adds
Everything here is on stable. The badges show each pull request's state upstream as it stands now.
| Change | Upstream |
|---|---|
| Galactic Archive: articles unlock from achievements and quests, saved per character | |
| Web console commands can run as an online character | |
| Account entitlements: every character gets the base set of a full account, so trading and the marketplace open | |
| The game listeners bind to loopback in the Aspire host | Kept local |
Every page
Guides
Steps to a goal.
- Running it locally - from a fresh clone to a character in the world, on one Windows machine.
- Using the web console - run GM commands without a client in the loop, by hand or from a script.
- Adding a player feature - packets, tables, saved state, the player's manager and handlers, with the silent steps marked.
- Verifying a feature - predict from the game tables, drive from the server, compare row by row, then look in game.
- Taking a change upstream - from a fresh branch to an open pull request, by way of
stable. - Syncing with upstream - bring upstream's latest into
game_reworkandstable.
Explanation
Why things are the way they are.
- Server architecture - nine processes, three client connections, the broker, and the one thread that runs the game.
- Login handshake - from a password to a character in the world: three servers and two tokens.
- Game tables - how the server loads the client's tables, and the one switch that decides which.
- Branches and workflow - why the fork runs a clean line for upstream beside a line to play on.
- Upstream branches - which upstream branch holds which work, and where a change should go.
- Contributing - how upstream takes changes, where its rules come from, which wins when they disagree, and what we add on top.
- Galactic Archive - how articles unlock, save and come back after a world change.
- Account entitlements - why every account looked like a trial, and the base set that fixes it.
Reference
Facts to look up.
- Server architecture processes and projects - every process's ports, databases and queue, start order, config keys, project layers.
- Game tables file formats - byte layouts of
.tbl,.binand.nfmap. - Databases - the seven databases, who owns each, the naming rules, and every table.
- Web console - endpoints, message format, which commands need a character, replies.
- Galactic Archive messages and storage - rule types, opcodes, the two flag words, the saved table.
- Contributing code style - upstream's C# from the file down to the line, written rules and unwritten habits.
- Contributing code patterns - layers, registration, message models, handlers, the world thread, saves, commands and scripts, old pattern and new.
- Contributing pull requests - targets, scope, titles, what reviewers ask for, how pull requests land, what's refused, bug reports.
Design
What we intend to build.
- Roadmap - what we build next on open ground, and what we leave to upstream.
- Trading design - player-to-player trading: built, not yet run. Echoed offers, re-checked items, one transaction for both characters.
About
This wiki
- Documentation standards - page kinds, the status ladder and the header badges. Read it before you write a page.
- Documentation standards house style - chapters, callouts, tables, diagrams, spelling and voice.
What you bring
A WildStar 16042 client. The repository holds server code only: no client, no client files and no game data. You extract the game tables and maps from your own copy (Running it locally).
Licence
NexusForever is licensed under the AGPL-3.0, and so is this fork. If you run a modified server that other people connect to, you owe them its source.
WildStar and everything in its client belong to NCSOFT. This project isn't affiliated with or endorsed by NCSOFT or Carbine Studios.