References a custom reward definition by key and pays it when the
reward is claimed. A Command definition runs its console commands, an Item definition
gives its item. A definition names a command or an item once, and every contract that
uses it stays in sync: edit the definition and every reward that references it is edited
too, including contracts you wrote months ago.
Key of the custom reward definition to pay, from the CustomRewards file.
amount
number | null
Amount substituted into the definition's {amount} placeholder, or the number of items for an Item definition. Required and greater than 0 for an Item definition (a whole number) or when the command contains {amount}. May be a decimal for a command.
icon
string | null
Direct image URL for this reward's icon in the menu. Null (or omitted) falls back to the definition's icon. With no icon on either, an Item definition shows its item, and a Command definition shows 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 (6)
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.
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.
hidden
boolean
If true, players don't see this reward in the menu. It still pays out on claim and still makes the contract, objective or prestige tier claimable.
reward is the definition’s key from the custom rewards data file,
matched without caring about upper or lower case.
As of 1.14.0, Skill Tree XP has its own reward type and no longer needs a custom reward definition.
Whether amount is required comes from the definition. An Item definition always needs
a whole number of 1 or more, the number of items to give. A Command definition with
{amount} in any of its commands needs an amount greater than 0 (decimals allowed). When it
does not, set amount to null.
The amount you set here is the base. The server’s reward multiplier tiers can pay some players more than that. For an Item definition the result is rounded to a whole number and never drops below 1.
A decimal amount on a reward using an Item definition is rounded at load, with a
warning. The editor flags it before you export.
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. With no icon on either, an Item definition shows
its item with its skin, and a Command definition shows the per-type Custom entry from
the plugin config’s UI icons, then the built-in icon.