Skip to content
← All documentation

/// 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

  1. Check the installed version

    This guide describes Custom Rewards 2.2.0. 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 6
Configuration format version
Choice · required

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

JSON pathData Version

Allowed values: 4

Enable
On / off · required

Allows this catalogue to open and deliver rewards. The player must also hold its access permission.

JSON pathEnabled
Opening commands
List · required

Chat aliases opening this catalogue, without a leading slash. The file name remains the identity used by other plugins.

JSON pathCommands 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 pathInteractive experiences
Next reward ID (managed by plugin)
Whole number
JSON pathNext reward ID (managed by plugin)

Minimum : 0 · Maximum : 2147483647

Legacy reward ID map (managed by plugin)
JSON value
JSON pathLegacy 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 pathBuilt-in progression → Mode

Allowed 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 pathBuilt-in progression → SecondsPerPoint

Minimum : 1 · Maximum : 2147483647

Points per grant
Whole number

Base points per playtime interval, daily bonus or welcome grant. Permission multipliers apply afterward.

JSON pathBuilt-in progression → PointsPerInterval

Minimum : 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 pathBuilt-in progression → AfkAfterSeconds

Minimum : 5 · Maximum : 86400

Daily bonus active time (s)
Whole number

Active time required during the day to receive the Daily bonus.

JSON pathBuilt-in progression → MinimumActiveSeconds

Minimum : 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 pathBuilt-in progression → TimeZoneId
Daily reset hour
Whole number

Hour starting a new bonus day, from 0 to 23 in the selected time zone.

JSON pathBuilt-in progression → DailyResetHour

Minimum : 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 pathBuilt-in progression → CycleSeconds

Minimum : 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 pathBuilt-in progression → PendingOnReset

Allowed values: wait, expire

Adopt legacy playtime
On / off

Allows adopting the legacy playtime counter when migrating to built-in progression.

JSON pathBuilt-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 pathBuilt-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 pathRewards 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 pathUI Settings → Max Reward By Page

Allowed 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 pathUI Settings → CUI Theme Id

Allowed 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI Settings → Native panel opacity

Minimum : 0.65 · Maximum : 1

Native title
Text

Overrides the localized native interface title. Empty uses the player's language.

JSON pathUI Settings → Native title (empty uses localization)
Native subtitle
Text

Overrides the localized native interface subtitle. Empty uses the player's language.

JSON pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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 pathUI 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

  1. Choose its file name and opening chat commands.
  2. Add rewards: Rust items, bundles, payouts, kits or commands.
  3. 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.
  4. 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.

Configuration and transfer guide →