Skill Tree XP
Grants an amount of Skill Tree experience to the player when the reward is claimed. XP moves the player towards their next skill point. If you want to hand over the points themselves, use a Skill Tree Points reward.
{ "type": "SkillTreeXp", "title": "", "description": "", "eligiblePermissions": [], "amount": 500, "applyBonuses": false}Fields
Section titled “Fields”| Field | Type | Description |
|---|---|---|
type | string | Exactly 'SkillTreeXp' |
amount | number | Amount of Skill Tree experience granted. May be a decimal. Greater than 0. |
applyBonuses | boolean | When true, Skill Tree scales the amount by the player's rested XP, prestige, permission and night-time modifiers, and other plugins can add to it. When false, Contracts hands over the amount as written. Either way Skill Tree's daily cap, XP debt and any server-wide XP modifier still apply, so what the player keeps can differ from what the menu shows. |
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 ⭐ Premium | 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. |
- The
amountyou set here is the base. The server’s reward multiplier tiers can pay some players more than that. - A player without the
skilltree.xppermission can never gain XP, so the reward shows as ineligible for them and is never granted. Grant it the way Skill Tree’s own docs say, usuallyo.grant group default skilltree.xp.
What the player gets can differ from the number shown
Section titled “What the player gets can differ from the number shown”The amount on the card is what Contracts tells Skill Tree to give. Skill Tree decides what the player actually keeps and Contracts has no way of knowing the final amount.
applyBonuses can change that final number. The four below apply either way, applyBonuses off included:
- The daily XP cap. Skill Tree cuts the XP down to what is left of the player’s day. A player who has already hit the cap gets less, or nothing at all.
- XP debt. A player who owes XP pays the whole amount into the debt instead and gains nothing.
- Server-wide XP modifiers. Another plugin can set a global XP multiplier inside Skill Tree, and a running Skill Tree XP Event replaces the amount entirely.
- Team XP sharing. A player carrying Skill Tree’s XP share buff spreads part of the contract XP to nearby teammates.
Reversal
Section titled “Reversal”When a claim fails halfway through, Contracts takes the XP back, but Skill Tree never drops a player below the start of their current level. If 500 XP pushed a level 2 player to level 3, the reversal will only take them back to the start of level 3, not all the way to level 2.
That being said, Contracts processes rewards in an order that favors reversible rewards first. Because of that described limitation, Contracts processes Skill Tree XP rewards as one of the last rewards in the distribution order. So this use-case should rarely happen in practice.
