Skip to content
Contractsv1.16.1

Custom

⭐ Premium

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.

{
"type": "Custom",
"title": "",
"description": "",
"eligiblePermissions": [],
"hidden": false,
"reward": "HeliSignal",
"amount": 1,
"icon": null,
"iconColor": null,
"iconRaw": false
}
FieldTypeDescription
typestringExactly 'Custom'
rewardstringKey of the custom reward definition to pay, from the CustomRewards file.
amountnumber | nullAmount 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.
iconstring | nullDirect 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.
iconColorstring | nullColor 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.
iconRawbooleanSet 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)
FieldTypeDescription
titlestringDisplay name. May be empty to use the reward type's default name (recommended for most rewards).
titleTranslationsmap | nullPer-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.
descriptionstringA short blurb of 1 to 3 sentences. May be empty.
descriptionTranslationsmap | nullPer-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 ⭐ Premiumstring[]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.
hiddenbooleanIf 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.
  • An Item definition pays like an Item reward, full inventory and rollback included. See Item definitions.