References a custom reward definition by key and runs its console
command when the reward is claimed. A definition names a command once (Skill Tree XP,
Heli Signals, any plugin with a give command), and every contract that uses it stays in
sync: fix the command in the definition and every reward that references it is fixed
too, including contracts you wrote months ago.
Key of the custom reward definition to run, from the CustomRewards file.
amount
number | null
Amount substituted into the definition's {amount} placeholder. Required and greater than 0 when the definition's command contains {amount}. May be a decimal.
icon
string | null
Direct image URL for this reward's icon in the menu. Null (or omitted) falls back to the definition's icon, then the per-type Custom override from the plugin config, then the default lightning icon.
iconColor
string | null
Color for the icon, as hex (#rrggbb or #rrggbbaa), rgb() or rgba(). Null (or omitted) inherits the definition, per-type or default color. Invalid colors warn at plugin load and render white.
iconRaw
boolean
Set true when the icon is a full-color image (a logo, custom art) so it renders in its own colors. When false the image renders as a solid color, which is right for monochrome icons.
Shared fields (5)
Field
Type
Description
title
string
Display name. May be empty to use the reward type's default name (recommended for most rewards).
titleTranslations
map | null
Per-language overrides for title, mapping a language code (like "fr" or "zh-CN") to the translated text. Players whose language has no entry (matched case-insensitively, no region fallback) or a blank one see title instead. null when there are none.
description
string
A short blurb of 1 to 3 sentences. May be empty.
descriptionTranslations
map | null
Per-language overrides for description, mapping a language code (like "fr" or "zh-CN") to the translated text. Players whose language has no entry (matched case-insensitively, no region fallback) or a blank one see description instead. null when there are none.
eligiblePermissions
string[]
Permission strings that gate this reward, using any-of logic: a non-empty list grants the reward to any player holding at least one of the listed permissions. An empty array means everyone is eligible.
reward is the definition’s key from the custom rewards data file,
matched without caring about upper or lower case.
Whether amount is required comes from the definition: when its command contains
{amount}, every reward using it needs an amount greater than 0 (decimals allowed).
When it does not, set amount to null.
When the definition does not exist (deleted, or a typo), the editor shows a warning
but still lets you export. On the server, the plugin logs a warning at load and treats
the reward as ineligible for every player. The contract stays playable, only that
reward is never granted.
When no title is set, the reward shows the definition’s display name. A null icon
falls back to the definition’s icon, then the per-type Custom entry from the plugin
config’s UI icons, then the built-in icon.