TopStats for Rust
Rust server analytics in one plugin file.
Rust servers live and die by retention across wipe cycles, and a population graph alone cannot tell you why players stop coming back. TopStats captures every connect and disconnect with session duration, plus a periodic server-stats feed, and lets every other plugin on the server post its own events - raids, purchases, kits, events - through one call.
The plugin is a single .cs file that compiles inside the Oxide sandbox - no DLLs to install, works under Oxide and Carbon alike. Players are identified by SteamID64, so name changes never split a history.
Tracked automatically
player_connectedevery join, bots excluded
player_droppedwith the disconnect reason and session seconds
server_statsplayers online and capacity on a heartbeat
One file, one config
- Drop TopStats.cs into oxide/plugins/.
- Set your API key in oxide/config/TopStats.json.
- oxide.reload TopStats - events start flowing.
{
"ApiKey": "ts_live_...",
"Source": "rust",
"HeartbeatSeconds": 60
}Common questions
Oxide or Carbon?
Both. The plugin is a standard single-file covalence plugin with no external dependencies, which is exactly the shape both frameworks load.
Can other plugins send events?
Yes: TopStats?.Call("Track", name, properties, steamId, playerName) from any plugin posts through the same buffered client - raid tracking, shop purchases, kit claims.
What happens on wipe day?
Nothing special is needed - events are stateless. Tag your wipe with an annotation in the dashboard and retention curves across wipes line up on the chart.