Skip to content

Rust Plugin

esmith443 edited this page Jun 18, 2026 · 5 revisions

Rust Plugin

Install JSExtendedStats Oxide plugin on your Rust server.

Installation

Upload Plugin

  1. Locate JSExtendedStats.cs in project rust folder
  2. Upload to Rust server: oxide/plugins/JSExtendedStats.cs
    • Use SFTP or Pterodactyl File Manager
  3. Plugin auto-loads (check console)

Verify Load

Console shows:

Loaded plugin JSExtendedStats v3.2.0 by emma_smith
JSExtendedStats initialized and active

If you see "loaded but inactive", continue to configuration.

Configuration

Plugin creates oxide/config/JSExtendedStats.json:

{
  "ApiURL": "http://your-ip:3000/api/update",
  "SecretKey": "get_from_database",
  "ServerID": "1",
  "Count suicide kills": false,
  "Count environment kills": false,
  "UntrackedPlayerIds": [],
  "Advanced Logging": false,
  "Wipe Stats Table On New Save": false
}

Required Settings

ApiURL: Your web app address + /api/update

  • Example: http://123.45.67.89:3000/api/update
  • Must include /api/update at the end

SecretKey: From database ruststats_config table

  • Run SQL: SELECT secretkey FROM ruststats_config;
  • Or check admin panel

ServerID: Unique number for this Rust server

  • Server 1 = "1"
  • Server 2 = "2"
  • Etc.

Reload Plugin

After editing config:

o.reload JSExtendedStats

Should show:

JSExtendedStats initialized and active

Console Commands

Requires jsextendedstats.admin permission.

Check Status

jsstatstatus

Shows:

  • Queued events count
  • Tracked entities
  • Plugin active/inactive

Force Send Data

jsstatsave

Immediately sends queued stats to API.

Clear Queue

jsstatclear

WARNING: Deletes unsent stats.

Permissions

Grant admin permission:

o.grant user YourUsername jsextendedstats.admin
o.grant group admin jsextendedstats.admin

Ignore Players

Exclude admins/moderators from stats:

  1. Get Steam64 ID
  2. Add to config:
"UntrackedPlayerIds": [
  76561198012345678,
  76561198087654321
]
  1. Reload plugin

Testing

  1. Join Rust server
  2. Kill something, gather resources, loot a barrel
  3. Run jsstatstatus - see queued events
  4. Check web leaderboard for updates
  5. Run jsstatsave to force send

Troubleshooting

Plugin inactive after reload?

  • Check ApiURL is correct (include /api/update)
  • Verify SecretKey matches database
  • Enable "Advanced Logging": true for debug info

Stats not sending?

  • Run jsstatstatus - check queue count
  • Verify web app is running
  • Test URL: curl http://your-ip:3000
  • Check firewall allows connection

Heartbeat failed?

  • Web app must be accessible from Rust server
  • Check PORT matches
  • Verify no firewall blocking

See Troubleshooting for more help.

JSExtendedStats Wiki

Getting Started

Components

Support

Clone this wiki locally