Skip to content
← All documentation

/// PIMPMYRUST PLUGIN

Vote System

Settings guide for this version of Vote System. Check the plugin page before using it on your server.

Prepare your file

  1. Check the installed version

    This guide describes Vote System 2.1.3. Use the same version in the configurator.

  2. Import your configuration

    Open the configurator and import your current JSON. For a new installation, you can start from the provided example.

  3. Edit and download

    Adjust the settings, fix reported errors, and download the JSON. Keep a copy of your old file before replacing it.

Your configuration is not saved on the site. Keep the exported file; you can import it again later.

Settings for this version

General 1
Configuration format version
Choice · required

Internal configuration format marker. Keep the value supplied for this plugin version.

JSON pathData Version

Allowed values: 2

CustomRewards 2
Enable
On / off · required

Forward vote points to the configured CustomRewards reward type. CustomRewards must be installed; this integration is optional.

JSON pathPlugin Extensions → CustomRewards → Enabled
CustomRewards reward type
Text · required

Exact reward type name used by the integration, without .json.

JSON pathPlugin Extensions → CustomRewards → Custom Rewards Template Name
Economics 2
Enable
On / off · required

Deposit an Economics amount based on vote points and the multiplier. Economics must be installed; disable if you do not use this currency.

JSON pathPlugin Extensions → Economics → Enabled
Economics deposit multiplier
Whole number · required

Converts accepted voting points into the amount to deposit.

JSON pathPlugin Extensions → Economics → Multiplicator

Minimum : 1 · Maximum : 1000000

RustServers 5
Enable
On / off · required

Query RustServers for new votes. Enable only after entering your server’s credentials for that site.

JSON pathVote Servers Settings → RustServers → Enabled
Voting site API URL
Text · required

RustServers API address used to check votes. Keep the address intended for this provider, not your public server-listing URL.

JSON pathVote Servers Settings → RustServers → API Url
API token
Text · required

Secret supplied by the voting service. It is masked in the form.

JSON pathVote Servers Settings → RustServers → API Token
Points granted per vote
Whole number · required

Internal points granted for each new vote accepted from this site. Integrations consume these points; this is not directly an item quantity.

JSON pathVote Servers Settings → RustServers → Points by vote

Minimum : 1 · Maximum : 1000000

Nickname → Steam ID links
JSON value · required

Link each nickname to the corresponding player's Steam ID. Do not change a link to move a balance.

JSON pathVote Servers Settings → RustServers → Nickname to Steam ID bindings
TopGames 5
Enable
On / off · required

Query TopGames for new votes. Enable only after entering your server’s credentials for that site.

JSON pathVote Servers Settings → TopGames → Enabled
Voting site API URL
Text · required

TopGames API address used to check votes. Keep the address intended for this provider, not your public server-listing URL.

JSON pathVote Servers Settings → TopGames → API Url
API token
Text · required

Secret supplied by the voting service. It is masked in the form.

JSON pathVote Servers Settings → TopGames → API Token
Points granted per vote
Whole number · required

Internal points granted for each new vote accepted from this site. Integrations consume these points; this is not directly an item quantity.

JSON pathVote Servers Settings → TopGames → Points by vote

Minimum : 1 · Maximum : 1000000

Nickname → Steam ID links
JSON value · required

Link each nickname to the corresponding player's Steam ID. Do not change a link to move a balance.

JSON pathVote Servers Settings → TopGames → Nickname to Steam ID bindings
TopServer 5
Enable
On / off · required

Query TopServer for new votes. Enable only after entering your server’s credentials for that site.

JSON pathVote Servers Settings → TopServer → Enabled
Voting site API URL
Text · required

TopServer API address used to check votes. Keep the address intended for this provider, not your public server-listing URL.

JSON pathVote Servers Settings → TopServer → API Url
API token
Text · required

Secret supplied by the voting service. It is masked in the form.

JSON pathVote Servers Settings → TopServer → API Token
Points granted per vote
Whole number · required

Internal points granted for each new vote accepted from this site. Integrations consume these points; this is not directly an item quantity.

JSON pathVote Servers Settings → TopServer → Points by vote

Minimum : 1 · Maximum : 1000000

Nickname → Steam ID links
JSON value · required

Link each nickname to the corresponding player's Steam ID. Do not change a link to move a balance.

JSON pathVote Servers Settings → TopServer → Nickname to Steam ID bindings
RustServers · Vote checks 1
Check interval (seconds)
Whole number · required

Seconds between new-vote checks on this site. Shorter intervals increase API requests and may exceed its limits.

JSON pathVote Servers Settings → RustServers → Routine Settings → Check Interval (seconds)

Minimum : 15 · Maximum : 86400

TopGames · Vote checks 1
Check interval (seconds)
Whole number · required

Seconds between new-vote checks on this site. Shorter intervals increase API requests and may exceed its limits.

JSON pathVote Servers Settings → TopGames → Routine Settings → Check Interval (seconds)

Minimum : 15 · Maximum : 86400

TopServer · Vote checks 1
Check interval (seconds)
Whole number · required

Seconds between new-vote checks on this site. Shorter intervals increase API requests and may exceed its limits.

JSON pathVote Servers Settings → TopServer → Routine Settings → Check Interval (seconds)

Minimum : 15 · Maximum : 86400

Plugin instructions

Vote System 2.1.3 — user guide

This guide covers the Codefling version 2.1.3. The separate 2.1.4 beta changes provider-response handling; select the configuration version installed on your server.

Installation order

  1. Back up oxide/data/VoteSystem and the existing configuration.
  2. Install VoteSystem.cs.
  3. Install Custom Rewards only if you want owner-point mirroring or a reward UI.
  4. Install Economics only if you want deposits.
  5. Install Vote Reward last if players need the historical /vote-style chat commands.

All providers ship disabled. Obtain tokens directly from each provider and never publish them in configuration examples or support messages.

The configurator exports VoteSystem.json. Install it as oxide/config/VoteSystem.json (the corresponding config directory on Carbon), then reload VoteSystem. Keep exported files private: they contain any tokens you entered. The site does not save configurations on its server.

Provider identity model

Top-Serveurs and Top-Games return historical nickname vote feeds. Those nicknames do not authenticate a Steam owner. Add a separate Nickname to Steam ID bindings entry under each provider before expecting owner-scoped points or rewards.

Rust-Servers.net uses the valid authenticated Steam ID returned by its Steam-ranking response. Nickname-only rows are rejected and are not matched to a connected player's display name.

First provider example

{
  "TopServer": {
    "Enabled": false,
    "API Url": "https://api.top-serveurs.net/v1/votes/last?server_token=%token%",
    "API Token": "",
    "Points by vote": 1,
    "Nickname to Steam ID bindings": {
      "provider nickname": "76561198000000000"
    },
    "Routine Settings": {
      "Check Interval (seconds)": 30
    }
  }
}

Insert this structure in Vote Servers Settings, add the real token locally, verify the binding, and enable the provider only after review.

Optional integrations

  • Custom Rewards: optional. The configured reward type defaults to VoteSystem. Custom Rewards contract V2 and its owner-points capability are checked before points are granted.
  • Economics: optional. The multiplier converts accepted points into a deposit amount. Accepted vote state is saved before the deposit.
  • Vote Reward: optional player command and UI bridge. It requires both Vote System and Custom Rewards.

Disable unused integrations explicitly. If an optional effect fails after the vote is saved, review the reconciliation warning before making a manual adjustment.

Commands and permission

  • votesystem.wipe starts a durable wipe generation.
  • votesystem_wipe is the historical alias.
  • Both require a Rust administrator or votesystem.admin.

During the operation, polling pauses, prior-generation callbacks are ignored, and a fresh Rust-Servers.net baseline is stored when that provider is enabled.

Backups and recovery

Back up the complete oxide/data/VoteSystem directory before changing bindings, upgrading, or starting a baseline reset. Keep nickname, Steam, player, and wipe files together.

If state is unreadable or unsupported, the affected path fails closed and a quarantine copy is attempted. Restore a complete known-good backup. Do not import a nickname file into the Steam namespace or change a binding to make an existing balance belong to another account.

Provider data and cost

The operator owns each provider account and reviews its current pricing, limits, and privacy policy. Vote System sends the configured server token and request parameters to the provider and receives the provider's vote response. It does not send Custom Rewards catalogues, Economics balances, or server chat.

Troubleshooting

  • Provider disabled: review URL, token, interval, and points value.
  • Top vote has no player effect: add the nickname binding under the correct provider.
  • Rust-Servers.net row rejected: ensure Steam OpenID voting and Steam ranking are enabled.
  • Economics effect failed: use the reconciliation key and avoid blind retries.
  • Polling blocked after wipe: repair or restore the wipe state and obtain a valid baseline.

Validation limits

The historical release passed a bounded load/runtime smoke. Real provider ingress was not exercised, the complete player UI/claim flow was not repeated for the exact final lot, and Carbon runtime parity was not exercised.

Install the file

After keeping a copy of the previous file, place the exported JSON at this location on your server:

oxide/config/VoteSystem.json

Follow the plugin instructions above for dependencies and reloading. Exporting does not connect the site to your server.