/// PIMPMYRUST PLUGIN
Custom Rewards
Settings guide for this version of Custom Rewards. Check the plugin page before using it on your server.
Prepare your file
- Check the installed version
This guide describes Custom Rewards 2.2.0. Use the same version in the configurator.
- 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.
- 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 6
- Configuration format version
- Choice · required
Internal configuration format marker. Keep the value supplied for this plugin version.
JSON path
Data VersionAllowed values: 4
- Enable
- On / off · required
Allows this catalogue to open and deliver rewards. The player must also hold its access permission.
JSON path
Enabled - Opening commands
- List · required
Chat aliases opening this catalogue, without a leading slash. The file name remains the identity used by other plugins.
JSON path
Commands for show UI - Reward animations
- Object list
Named interactive animations that rewards can reference by ID. They present the result, but do not choose or independently grant the reward.
JSON path
Interactive experiences - Next reward ID (managed by plugin)
- Whole number
JSON path
Next reward ID (managed by plugin)Minimum : 0 · Maximum : 2147483647
- Legacy reward ID map (managed by plugin)
- JSON value
JSON path
Legacy reward ID map (managed by plugin)
Progression 11
- Points source
- Choice
External lets another plugin grant points. Playtime rewards activity, Daily grants a bonus after the required active time, Welcome grants it on the first connection.
JSON path
Built-in progression → ModeAllowed values: external, playtime, daily, welcome
- Active playtime interval (s)
- Whole number
Active time required per grant in Playtime mode. Time considered AFK does not count.
JSON path
Built-in progression → SecondsPerPointMinimum : 1 · Maximum : 2147483647
- Points per grant
- Whole number
Base points per playtime interval, daily bonus or welcome grant. Permission multipliers apply afterward.
JSON path
Built-in progression → PointsPerIntervalMinimum : 1 · Maximum : 2147483647
- Inactivity before AFK (s)
- Whole number
After this duration without detected activity, the player's time stops counting toward this progression.
JSON path
Built-in progression → AfkAfterSecondsMinimum : 5 · Maximum : 86400
- Daily bonus active time (s)
- Whole number
Active time required during the day to receive the Daily bonus.
JSON path
Built-in progression → MinimumActiveSecondsMinimum : 0 · Maximum : 86400
- Time zone
- Text
Time zone used for daily bonuses. UTC works on Oxide and Carbon; another identifier must be supported by the server's operating system.
JSON path
Built-in progression → TimeZoneId - Daily reset hour
- Whole number
Hour starting a new bonus day, from 0 to 23 in the selected time zone.
JSON path
Built-in progression → DailyResetHourMinimum : 0 · Maximum : 23
- Cycle duration (s)
- Whole number
Zero keeps progress without periodic reset. Otherwise at least 60 seconds; only supported in Playtime and Daily modes.
JSON path
Built-in progression → CycleSecondsMinimum : 0 · Maximum : 2147483647
- Pending rewards at cycle end
- Choice
Wait delays the new cycle while rewards remain unclaimed. Expire discards them. An unresolved delivery journal always blocks the cycle change.
JSON path
Built-in progression → PendingOnResetAllowed values: wait, expire
- Adopt legacy playtime
- On / off
Allows adopting the legacy playtime counter when migrating to built-in progression.
JSON path
Built-in progression → AdoptLegacyPlaytime - Permission multipliers
- JSON value
Multiplies points for players holding these permissions. Values from 1 to 100; the highest multiplier applies without stacking.
JSON path
Built-in progression → PermissionMultipliers
Rewards and milestones 1
- Rewards
- Object list · required
Each reward can combine items, payouts, kits or commands. Its persistent identity preserves claim history when reordered; do not reuse it for a different reward.
JSON path
Rewards Settings → Rewards List
Interface 24
- Rewards per page
- Choice
Cards and milestones displayed per page in CustomRewards 2.0.4. Increasing this count narrows each card within the existing area; it does not change the points needed for each milestone.
JSON path
UI Settings → Max Reward By PageAllowed values: 3, 4, 5, 8
- Theme ID
- Choice · required
Catalogue colour palette for the selected PimpMyCUI profile. Review text, card and background contrast together.
JSON path
UI Settings → CUI Theme IdAllowed values: carbon-ledger, industrial-ember, arctic-signal, wasteland-broadcast, monument-dossier
- Window or fullscreen
- Choice · required
Show the catalogue in a window or fullscreen. Check title and card readability with the selected profile.
JSON path
UI Settings → CUI Presentation (windowed | fullscreen)Allowed values: windowed, fullscreen
- Rich or light decoration
- Choice · required
Choose PimpMyCUI catalogue decoration: rich keeps decorative details, while light uses a simpler presentation.
JSON path
UI Settings → CUI Decoration (rich | light)Allowed values: rich, light
- Layout template
- Choice
Catalogue layout: command-center fits up to 3 rewards per page, field-journal 5 and signal-deck 8. Also adjust Max Reward By Page.
JSON path
UI Settings → CUI Layout Template (command-center | field-journal | signal-deck)Allowed values: command-center, field-journal, signal-deck
- Show context image
- On / off · required
Display the context illustration provided by the PimpMyCUI profile. This does not replace individual reward images.
JSON path
UI Settings → Show Context Image - Reward descriptions
- On / off
Shows each reward's own description in the native renderer. Edit the text in the corresponding reward.
JSON path
UI Settings → Show Description - Description text size
- Whole number
Text size for both the catalogue description and its title in CustomRewards 2.0.4: this version uses this setting for both. Increasing it can overflow long text.
JSON path
UI Settings → Description Font Size - Title text size
- Whole number
Retained field, but the CustomRewards 2.0.4 renderer does not read it. Change Description Font Size to resize the catalogue title; it also resizes the description.
JSON path
UI Settings → Title Font Size - Background image URL
- Text
Frame image for each reward card in CustomRewards 2.0.4, tinted by rarity. Use a direct image with a transparent center so the reward illustration remains visible.
JSON path
UI Settings → Background Url - New icon URL
- Text
CustomRewards 2.0.4 icon marking an unlocked, unclaimed and eligible reward. It is tinted by rarity; changing the image does not unlock the reward.
JSON path
UI Settings → New Icon Url - Checked icon URL
- Text
Image overlaid on an already claimed card in CustomRewards 2.0.4. It shows the stored claim state and does not allow a second claim.
JSON path
UI Settings → Checked Icon Url - Lock icon URL
- Text
CustomRewards 2.0.4 icon shown when the milestone is locked or an access requirement is unmet. Changing the icon does not change those requirements.
JSON path
UI Settings → Lock Icon Url - Previous-page icon URL
- Text
CustomRewards 2.0.4 button image for the previous reward page. The plugin decides whether navigation is available; the image does not change the page count.
JSON path
UI Settings → Prev Icon Url - Next-page icon URL
- Text
CustomRewards 2.0.4 button image for the next reward page. The plugin decides whether navigation is available; the image does not change the page count.
JSON path
UI Settings → Next Icon Url - Interface renderer
- Choice
Native works without PimpMyCUI. PimpMyCUI uses its templates and supports interactive reveals; its runtime plugin must be installed.
JSON path
UI Settings → Renderer (native | pimpmycui)Allowed values: native, pimpmycui
- Native layout
- Choice
Chooses the presentation of four rewards per page. Pass, Showcase and Journey layouts highlight a featured reward.
JSON path
UI Settings → Native layout (glass | industrial)Allowed values: glass, industrial, season-pass, showcase, chapters
- Accent color
- Text
Color of markers, progress and available buttons in the native renderer. Rust RGBA values from 0 to 1.
JSON path
UI Settings → Native accent (RGBA) - Panel opacity
- Number
Native panel background opacity, from 0.65 to 1. Does not change the dimming behind the panel.
JSON path
UI Settings → Native panel opacityMinimum : 0.65 · Maximum : 1
- Native title
- Text
Overrides the localized native interface title. Empty uses the player's language.
JSON path
UI Settings → Native title (empty uses localization) - Native subtitle
- Text
Overrides the localized native interface subtitle. Empty uses the player's language.
JSON path
UI Settings → Native subtitle (empty uses localization) - Illustrations
- Choice
Automatic uses the reward's custom image when set, otherwise its first item's Rust icon. Custom requires an image for every reward.
JSON path
UI Settings → Reward Illustration (custom | vanilla-item | auto)Allowed values: custom, vanilla-item, auto
- Displayed unit
- Choice
Displays progress as points or votes without changing how it is granted. VoteReward selects the unit from its progression mode.
JSON path
UI Settings → Progress display units (points | votes)Allowed values: points, votes
- PimpMyCUI composition
- Choice
Page uses the common PimpMyCUI frame, or the window linked to this catalogue under In-game interfaces. Family and Native match retain their previous displays. Page mode requires compatible CustomRewards and PimpMyCUI candidates.
JSON path
UI Settings → PimpMyCUI composition (family | native-match)Allowed values: family, native-match, page
Rarity colors 4
- Common
- Text · required
Frame and new-icon tint for Common rewards in CustomRewards 2.0.4. It changes neither reward value nor a draw probability. Use Rust RGBA values from 0 to 1; the final value controls opacity.
JSON path
UI Settings → Rarity Colors → Common - Rare
- Text · required
Frame and new-icon tint for Rare rewards in CustomRewards 2.0.4. It changes neither reward value nor a draw probability. Use Rust RGBA values from 0 to 1; the final value controls opacity.
JSON path
UI Settings → Rarity Colors → Rare - Epic
- Text · required
Frame and new-icon tint for Epic rewards in CustomRewards 2.0.4. It changes neither reward value nor a draw probability. Use Rust RGBA values from 0 to 1; the final value controls opacity.
JSON path
UI Settings → Rarity Colors → Epic - Legendary
- Text · required
Frame and new-icon tint for Legendary rewards in CustomRewards 2.0.4. It changes neither reward value nor a draw probability. Use Rust RGBA values from 0 to 1; the final value controls opacity.
JSON path
UI Settings → Rarity Colors → Legendary
Theme colors 8
- Primary color
- Text · required
Theme color retained but unused by the CustomRewards 2.0.4 renderer. Changing it does not change this version's interface.
JSON path
UI Settings → Theme → Colors → Primary - Secondary color
- Text · required
CustomRewards 2.0.4 color for filled progress and reached milestone markers. It does not change player points. Rust RGBA; final value = opacity.
JSON path
UI Settings → Theme → Colors → Secondary - Interface background
- Text · required
CustomRewards 2.0.4 catalogue-window background color. Keep readable contrast with cards and text. Rust RGBA; final value = opacity.
JSON path
UI Settings → Theme → Colors → Background - Element background
- Text · required
CustomRewards 2.0.4 color for header and description panels, progress background and some icons. Rust RGBA; final value = opacity.
JSON path
UI Settings → Theme → Colors → Surface - Disabled element background
- Text · required
Tint used for arrows when a previous or next page exists in the CustomRewards 2.0.4 renderer. The legacy name does not decide whether the button works. Rust RGBA; final value = opacity.
JSON path
UI Settings → Theme → Colors → SurfaceDisabled - Primary text
- Text · required
CustomRewards 2.0.4 color for the catalogue title and description, close-button X and quantities. Check contrast against their panels. Rust RGBA; final value = opacity.
JSON path
UI Settings → Theme → Colors → TextPrimary - Text on secondary color
- Text · required
CustomRewards 2.0.4 color for numbers on milestone markers. It does not set reward amounts. Rust RGBA; final value = opacity.
JSON path
UI Settings → Theme → Colors → TextOnSecondary - Warning color
- Text · required
CustomRewards 2.0.4 close-button background color. This setting does not indicate a reward error. Rust RGBA; final value = opacity.
JSON path
UI Settings → Theme → Colors → Danger
Plugin instructions
Configure CustomRewards 2.2.0
Beta 2.2.0. The LTS version published on Codefling remains 2.0.4. Downloading the plugin requires sign-in and a verified entitlement for the requested version. Check its product page for available access. Configuration exports remain available without buying the plugin.
CustomRewards delivers rewards as players progress. It can grant its own points or receive them from another plugin, such as VoteSystem. Collecting a reward does not spend points.
Edit rewards in the configurator
The Rewards tab compares items, quantities, milestones, rarity, actions and conditions in a table. Search for a reward or click its name to edit it. Add reward opens the new reward’s settings directly.
In the reward window, Contents holds its rewards, Conditions its access rules and Visuals its presentation. Pick items from the Rust catalogue. Commands, permissions and groups have their own sections. Duplicate copies the reward’s contents; the trash button asks for confirmation. Sorting the table does not change reward order in the file.
Create a catalogue
- Choose its file name and opening chat commands.
- Add rewards: Rust items, bundles, payouts, kits or commands.
- Under Progression, select the points source. External leaves grants to another plugin; other modes use active playtime, a daily bonus or the player's first connection.
- Enable the catalogue once its rewards and requirements are ready.
Export to oxide/data/CustomRewards_rewards/<name>.json, or the equivalent Carbon path. With a connected server, send this same file from the configurator. Use the catalogue name in companion plugins and grant its customrewards.<lowercase-name>.use permission to the intended players.
Rewards and milestones
A reward can combine items, permissions, groups and actions. Economics or ServerRewards payouts and Kits rewards require their respective plugins. A missing provider blocks that delivery action; no substitute reward is granted.
The Milestone sets the progress needed to unlock a reward. Without an explicit value, milestones follow positions 1, 2, 3… A repeat interval unlocks the reward again at each new interval. Without one, the reward is available once per cycle. Review backfilling before enabling repeating rewards on an existing server.
Keep plugin-assigned persistent identities when importing or reordering rewards. Do not reuse an old reward's identity for a different reward. This editor does not change player progress files.
Appearance
The Native renderer works without PimpMyCUI. Its five layouts — Gallery, Industrial, Pass, Showcase and Journey — display four rewards per page. Pass, Showcase and Journey highlight a featured reward. Empty title/subtitle overrides use translated text; built-in progression can supply the subtitle.
The Page inside a window mode (page) uses the common menu-less PimpMyCUI frame when no destination is assigned. Under In-game interfaces, add a Rewards page and enter the exact catalogue name to open it inside your own window. Catalogue commands open that destination; CustomRewards still owns progression, conditions and claiming. This mode requires the compatible local CustomRewards and PimpMyCUI candidates; older published versions do not support it.
The previous PimpMyCUI compositions remain available. Family retains the templates and chest, wheel and scan reveals. Native match (native-match) uses the native layouts and uses the PimpMyCUI 1.4.0 runtime compatible with this pack. A custom Studio document applies to Family templates, not Native match server-generated documents. The Native renderer remains independent of PimpMyCUI.
The preview checks layout with your configured catalogue. Its player states are preview controls and never change rewards on the server. Languages contains plugin messages and catalogue text.
Page mode does not yet support rewards that trigger an InteractiveExperience animation. Claiming these rewards is disabled on this page, with an explanation to the player. Keep a previous display mode for those catalogues. AITranslation Pro 2.1.0 also supplies pages for this common frame; Dialogs and VoteCommands keep their separate templates.
Administration commands
/customrewards_give <catalogue> <player or ID> <points> grants player points. It requires customrewards.admin; the legacy CustomRewards.Admin permission also works.
In the console, customrewards_wipe_owner <catalogue> <owner> deletes that owner’s progress. customrewards_wipe_all <catalogue> deletes all owners’ progress for that catalogue. These commands require administrator access.
Previous versions
The 2.0.4 configurator remains available for that installation. The previous 2.2.0 beta is withdrawn; its drafts are not automatically applied to the new normal contract.
Install the 2.2.0 pack pages
Page mode uses PimpMyCUI 1.4.0. Install the ZIP files, including oxide/data/PimpMyCUI/plugin-pages/customrewards/manifest.json and its referenced packages, then reload the plugins. The catalogue name is the page’s exact context: keep it consistent in CustomRewards, VoteSystem and VoteReward. An unavailable linked destination must not silently open a different catalogue. Catalogue opening commands retain permission checks and server progression. Export selections must retain their required CUI publications.
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.