Skip to content
Contractsv1.11.0

Custom

⭐ Premium

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.

{
"type": "Custom",
"title": "",
"description": "",
"eligiblePermissions": [],
"reward": "SkillTreeXp",
"amount": 500,
"icon": null,
"iconColor": null,
"iconRaw": false
}
FieldTypeDescription
typestringExactly 'Custom'
rewardstringKey of the custom reward definition to run, from the CustomRewards file.
amountnumber | nullAmount substituted into the definition's {amount} placeholder. Required and greater than 0 when the definition's command contains {amount}. May be a decimal.
iconstring | nullDirect 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.
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 (5)
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.
eligiblePermissionsstring[]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.