Rust client → custom server list
Documentation for each RustClient build in this Testing Area: embedded URLs, which files hold them, and what to implement or change for your own server list backend.
Client documentation
| Folder | Client(s) |
|---|---|
| alkad-rust/ | Alkad Rust |
| arab-rust/ | Arab Rust |
| real-rust-skylight/ | Real Rust and SKYLIGHT RUST (same global-metadata.dat) |
Files that matter (all clients)
RustClient_Data\il2cpp_data\Metadata\global-metadata.dat
IL2CPP string literal pool. Fullhttps://…API base URLs for nexus, player auth, public server list, banned list, Discord, companion, etc. (not plain text inGameAssembly.dllfor the main endpoints).GameAssembly.dll(next toRustClient.exe)
Native IL2CPP code; references metadata strings by index. Editing URLs is usually done in metadata or via advanced binary patches.
What to change to point at your host
- Patch
global-metadata.dat
Replace embedded URL strings with your base (e.g.https://yourdomain.com/api/), keeping path segments compatible (public/serverlist,nexus/,playerAuth/steam, etc.) unless you change server code or use a reverse proxy that rewrites paths. - Implement HTTPS endpoints that match what the client calls. The client expects JSON and fields such as
is_officialfor list rows; manifest-related paths may be required for “official servers” UI flows. - Legal / ToS
Repointing the retail client or impersonating Facepunch infrastructure may violate Facepunch and Steam terms. Use only for private, authorized, or research contexts.
Quick reference — core routes (typical Facepunch-style)
Path suffixes in metadata (full host differs per build):
…/nexus/…/playerAuth/steam…/public/serverlist…/public/serverlist/banned- Fragments:
public/manifest/?public_key=,public/steamServers/playerCounts/rust
Discord and companion URLs are separate; see each client page.
Start with the page that matches your client copy. See also Implementing your own server list, Official servers & your API (is_official, tags, server.official), and Backend route checklist.