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. Get the settings

    Click Import, then From my server. Select the files and confirm loading them. Selecting a server does not replace the open document. You can also import files from this device or a configuration from My projects.

  3. Edit and send

    Adjust settings, fix errors, then use Send to transfer files to the selected server. A conflict blocks sending until you choose how to resolve it. You can still export only the files you need.

Server transfers have private backups. Save keeps your work in My projects; it does not send anything to the server. A download also lets you resume without a server connection.

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

Reward milestones 2
Enable
On / off · required

When the matching catalogue opens, top up its CustomRewards points from stored vote points. Requires CustomRewards; disabling this does not delete stored votes.

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

Exact CustomRewards catalogue name receiving the points, without .json. Use the same name in VoteReward if installed; other catalogues do not receive this update.

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

Deposit Economics currency when a new vote is accepted for a connected player. Requires Economics. This deposit uses the number of new votes, not Points by vote.

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

Economics amount per newly accepted vote: deposit = new votes × this value, for a connected player. Points by vote is not part of this formula; 100 grants 100 units per vote.

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

Server token supplied by RustServers, substituted for %token% in vote-check requests. Without a valid token this site's votes cannot be checked. Keep the exported JSON private.

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

Multiplier applied to stored votes when calculating queryable points and CustomRewards points. It does not multiply Economics deposits, which have their own setting.

JSON pathVote Servers Settings → RustServers → Points by vote

Minimum : 1 · Maximum : 1000000

Nickname to Steam ID bindings
JSON value · required
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

Server token supplied by TopGames, substituted for %token% in vote-check requests. Without a valid token this site's votes cannot be checked. Keep the exported JSON private.

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

Multiplier applied to stored votes when calculating queryable points and CustomRewards points. It does not multiply Economics deposits, which have their own setting.

JSON pathVote Servers Settings → TopGames → Points by vote

Minimum : 1 · Maximum : 1000000

Nickname to Steam ID bindings
JSON value · required
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

Server token supplied by TopServer, substituted for %token% in vote-check requests. Without a valid token this site's votes cannot be checked. Keep the exported JSON private.

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

Multiplier applied to stored votes when calculating queryable points and CustomRewards points. It does not multiply Economics deposits, which have their own setting.

JSON pathVote Servers Settings → TopServer → Points by vote

Minimum : 1 · Maximum : 1000000

Nickname to Steam ID bindings
JSON value · required
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. A deposit is the number of newly accepted votes multiplied by Plugin Extensions → Economics → Multiplicator, not the points earned from those votes. Points by vote controls VoteSystem points separately. For example, three new votes and an Economics multiplier of 100 produce a deposit of 300, regardless of the provider's points setting. 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 files

With a connected server, click Send in the configurator. The result shows whether the files were sent and the plugin reloaded. Without RCON, reload the plugin from your server panel after sending.

Without a connected server: Keep a copy of the current files. Place each export in the folder shown before export, or follow the paths in the ZIP. Do not put data or translation files in the config folder.

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

Configuration and transfer guide →