/// PIMPMYRUST PLUGIN
VoteCommands
Settings guide for this version of VoteCommands. Check the plugin page before using it on your server.
Prepare your file
- Check the installed version
This guide describes VoteCommands 1.0.0. Use the same version in the configurator.
- Import your configuration
Open the configurator and import your current JSON. For a new installation, you can start from the provided example.
- 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 11
- Configuration format version
- Choice · required
Internal configuration format marker. Keep the value supplied for this plugin version.
JSON path
SchemaVersionAllowed values: 3
- Minimum vote count
- Whole number · required
Minimum ballots needed to execute winner actions. Even when set to 0, a session with no votes executes nothing.
JSON path
MinimumParticipationMinimum : 0 · Maximum : 10000
- Result when votes are tied
- Choice · required
cancel cancels a tied result; first picks the first tied choice in list order. No actions execute when nobody votes.
JSON path
TieRuleAllowed values: cancel, first
- Show results while voting
- On / off · required
Show vote counts during the session. Disable to hide current scores from players.
JSON path
ShowLiveResults - Enable
- On / off · required
Enable this voting controller. Each configuration file is an independent controller with its own choices and commands.
JSON path
Enabled - Start automatically
- On / off · required
Start voting when the plugin loads or reloads.
JSON path
AutomaticStart - Repeat voting sessions
- On / off · required
Repeat sessions after the first vote is started, manually or automatically.
JSON path
AutomaticSessions - Automatic start delay (seconds)
- Whole number · required
Seconds to wait after the controller loads before the first automatic vote. Used only when automatic start is enabled.
JSON path
DelayBeforeAutomaticStart - Command to start voting
- Text · required
Chat command without the leading / character.
JSON path
CommandForStartSessions - Command to open the ballot
- Text · required
Chat command without the leading / character.
JSON path
CommandForUi - Interval between session starts (seconds)
- Number · required
Time between session starts, not after the result. To repeat votes, it must exceed the voting duration.
JSON path
TimeBetweenSessionsMinimum : 0
Voting duration and choices 2
- Voting duration (seconds)
- Whole number · required
Time players have to vote, in seconds. At the end the controller resolves the winner; the repeat interval must exceed this duration.
JSON path
CommandsConfiguration → VoteDurationSecondsMinimum : 10 · Maximum : 3600
- Ballot choices
- Object list · required
Each choice can have actions that run if it wins. Entered names and commands stay unchanged.
JSON path
CommandsConfiguration → VoteCommands
Close button 2
- Size
- Whole number · required
Width and height of the legacy interface’s square close button, in CUI reference pixels.
JSON path
UIConfiguration → CloseButtonConfiguration → Size - Image URL
- Text · required
Direct address of the image to display, not its web page. Use an image players can access; prefer HTTPS.
JSON path
UIConfiguration → CloseButtonConfiguration → ImageUrl
Countdown 4
- Minimum anchor
- Text · required
Bottom-left corner within the parent container, written as x y from 0 to 1. 0 0 means bottom-left. It must not exceed the maximum anchor; equal anchors may use pixel offsets.
JSON path
UIConfiguration → CountDownConfiguration → AnchorMin - Maximum anchor
- Text · required
Top-right corner within the parent container, written as x y from 0 to 1. 1 1 means top-right. It must not precede the minimum anchor; equal anchors may use pixel offsets.
JSON path
UIConfiguration → CountDownConfiguration → AnchorMax - Minimum offset
- Text · required
Bottom-left offset, written as x y in pixels, added to the anchor. Negative values move this corner left or down.
JSON path
UIConfiguration → CountDownConfiguration → OffsetMin - Maximum offset
- Text · required
Top-right offset, written as x y in pixels, added to the anchor. Positive values move this corner right or up.
JSON path
UIConfiguration → CountDownConfiguration → OffsetMax
Ballot title 1
- Height
- Number · required
Fraction of window height reserved for the legacy header. Example: 0.1 = 10%. It reduces the remaining room for choices.
JSON path
UIConfiguration → TitleConfiguration → Height
Choice layout 4
- Vertical margin
- Number · required
Vertical margin around choices as a fraction of window height. Example: 0.01 = 1% on each side.
JSON path
UIConfiguration → VoteCommandsConfiguration → MarginHeight - Horizontal margin
- Number · required
Horizontal margin around choices as a fraction of window width. Example: 0.01 = 1% on each side.
JSON path
UIConfiguration → VoteCommandsConfiguration → MarginWidth - Background color
- Text · required
Rust color: red, green, blue and opacity from 0 to 1, separated by spaces. Example: 1 0.5 0 1 is opaque orange; opacity 0 makes the element invisible.
JSON path
UIConfiguration → VoteCommandsConfiguration → BackgroundColor - Spacing between choices
- Number · required
Space between choices as a fraction of their container. Example: 0.01 = 1%. More spacing leaves less width for cards.
JSON path
UIConfiguration → VoteCommandsConfiguration → MarginBetweenCommands
Voting window 4
- Width
- Whole number · required
Legacy window width in CUI reference pixels. Excessive width may exceed smaller screens.
JSON path
UIConfiguration → WindowConfiguration → Width - Height
- Whole number · required
Legacy window height in CUI reference pixels. Allow enough room for every ballot choice.
JSON path
UIConfiguration → WindowConfiguration → Height - Background image URL
- JSON value · required
Direct address of the image to display, not its web page. Use an image players can access; prefer HTTPS.
JSON path
UIConfiguration → WindowConfiguration → BackgroundImageUrl - Background color
- Text · required
Rust color: red, green, blue and opacity from 0 to 1, separated by spaces. Example: 1 0.5 0 1 is opaque orange; opacity 0 makes the element invisible.
JSON path
UIConfiguration → WindowConfiguration → BackgroundColor
Countdown · Text style 4
- Text size
- Whole number · required
Text size for this area in the legacy interface. Check readability and overflow using the longest text.
JSON path
UIConfiguration → CountDownConfiguration → LabelConfiguration → FontSize - Text color
- Text · required
Rust color: red, green, blue and opacity from 0 to 1, separated by spaces. Example: 1 0.5 0 1 is opaque orange; opacity 0 makes the element invisible.
JSON path
UIConfiguration → CountDownConfiguration → LabelConfiguration → Color - Font
- Text · required
Name of a font available in the Rust client. A font installed only on your PC is not available to players.
JSON path
UIConfiguration → CountDownConfiguration → LabelConfiguration → Font - Text alignment
- Whole number · required
Unity alignment: 0–2 = top (left, center, right), 3–5 = middle, 6–8 = bottom. Example: 4 centers the text without moving its panel.
JSON path
UIConfiguration → CountDownConfiguration → LabelConfiguration → TextAnchor
Ballot title · Text style 4
- Text size
- Whole number · required
Text size for this area in the legacy interface. Check readability and overflow using the longest text.
JSON path
UIConfiguration → TitleConfiguration → LabelConfiguration → FontSize - Text color
- Text · required
Rust color: red, green, blue and opacity from 0 to 1, separated by spaces. Example: 1 0.5 0 1 is opaque orange; opacity 0 makes the element invisible.
JSON path
UIConfiguration → TitleConfiguration → LabelConfiguration → Color - Font
- Text · required
Name of a font available in the Rust client. A font installed only on your PC is not available to players.
JSON path
UIConfiguration → TitleConfiguration → LabelConfiguration → Font - Text alignment
- Whole number · required
Unity alignment: 0–2 = top (left, center, right), 3–5 = middle, 6–8 = bottom. Example: 4 centers the text without moving its panel.
JSON path
UIConfiguration → TitleConfiguration → LabelConfiguration → TextAnchor
Choice appearance 4
- Inner padding
- Number · required
Legacy field retained in configuration but unused by the VoteCommands 0.1.3 renderer. Do not rely on it to change spacing.
JSON path
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → Padding - Background color
- Text · required
Rust color: red, green, blue and opacity from 0 to 1, separated by spaces. Example: 1 0.5 0 1 is opaque orange; opacity 0 makes the element invisible.
JSON path
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → BackgroundColor - Vote count area size
- Whole number · required
Space reserved for a card’s vote count, in CUI reference pixels.
JSON path
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → VotesCountSize - Image height
- Number · required
Fraction of card height reserved for its image. Example: 0.85 = 85%; the remainder is used for the choice name.
JSON path
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → ImageHeight
Choice name style 4
- Text size
- Whole number · required
Text size for this area in the legacy interface. Check readability and overflow using the longest text.
JSON path
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → NameLabelConfiguration → FontSize - Text color
- Text · required
Rust color: red, green, blue and opacity from 0 to 1, separated by spaces. Example: 1 0.5 0 1 is opaque orange; opacity 0 makes the element invisible.
JSON path
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → NameLabelConfiguration → Color - Font
- Text · required
Name of a font available in the Rust client. A font installed only on your PC is not available to players.
JSON path
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → NameLabelConfiguration → Font - Text alignment
- Whole number · required
Unity alignment: 0–2 = top (left, center, right), 3–5 = middle, 6–8 = bottom. Example: 4 centers the text without moving its panel.
JSON path
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → NameLabelConfiguration → TextAnchor
Vote count style 4
- Text size
- Whole number · required
Text size for this area in the legacy interface. Check readability and overflow using the longest text.
JSON path
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → VotesCountLabelConfiguration → FontSize - Text color
- Text · required
Rust color: red, green, blue and opacity from 0 to 1, separated by spaces. Example: 1 0.5 0 1 is opaque orange; opacity 0 makes the element invisible.
JSON path
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → VotesCountLabelConfiguration → Color - Font
- Text · required
Name of a font available in the Rust client. A font installed only on your PC is not available to players.
JSON path
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → VotesCountLabelConfiguration → Font - Text alignment
- Whole number · required
Unity alignment: 0–2 = top (left, center, right), 3–5 = middle, 6–8 = bottom. Example: 4 centers the text without moving its panel.
JSON path
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → VotesCountLabelConfiguration → TextAnchor
Plugin instructions
VoteCommands controller contract 3.0.0
One JSON file under oxide/config/VoteCommands/ defines one vote controller. Its filename becomes part of the permission name; keep filenames and chat commands unique. On a fresh installation, the plugin creates Example.json with manual start and every winner command disabled. Edit and reload it before running a real vote.
SchemaVersion must be 3. Select CuiTemplate from operations-console, civic-ballot, relay-grid, arctic-council, field-terminal or broadcast-panel; choose CuiPresentation (windowed/fullscreen) and CuiDecoration (rich/light). CuiDocument is an optional edited PimpMyCUI runtime document for that exact built-in profile. Omit it or set null to use the built-in. A non-null incompatible document blocks opening; it does not fall back. The other controller settings and winner actions remain in this file.
The editor may change visuals, add decorative elements or close-only buttons, and remove elements. Existing action elements must retain their IDs, kind and bindings; model paths must come from the built-in document. Export the complete controller JSON to the configured filename. Installing only a PimpMyCUI project/package does not change VoteCommands.
Upgrade from the published 0.1.x plugin or an older controller contract: keep a backup, start from a current schema-3 example and manually transfer timing, choices and winner actions. Older JSON files are rejected, not automatically migrated. If an intermediate schema-2 file has CuiTheme and CuiLayoutTemplate, replace them with a reviewed CuiTemplate choice. With no votes, no winner action runs even when TieRule is first and MinimumParticipation is zero. CuiDocument is optional and requires matching support in VoteCommands and PimpMyCUI.
Install the file
After keeping a copy of the previous file, place the exported JSON at this location on your server:
oxide/config/VoteCommands/Example_SkipNight.jsonFollow the plugin instructions above for dependencies and reloading. Exporting does not connect the site to your server.