creating attributes - magemonkeystudio/fabled GitHub Wiki
Attributes define player stats like Strength, Dexterity, Vitality, etc. These values can influence player health, mana, regeneration, skill effects, movement speed, damage, and more.
Attributes are created and managed using the Fabled Web Editor, which allows you to visually configure scaling, stat modifiers, and skill integration β no YAML editing required.
- Click the Attributes tab at the top of the web editor.
- Click β Add Attribute in the sidebar.
- Enter a name (internal key) and a display name.
- Choose an icon material and optionally set model data and lore.
Field | Description |
---|---|
Name | Internal key used in logic and placeholders |
Display Name | What players see in menus |
Max | Maximum number of points the player can invest |
Base Cost | Skill point cost for level 1 |
Cost Modifier | How much the cost increases per level |
Icon | Material and optional lore/model used for display |
You must select one or more Stat Modifiers in the editor to apply attribute effects globally or passively.
-
health
,mana
,mana-regen
,cooldown
,exp
-
move-speed
,attack-speed
-
armor
,armor-toughness
-
melee-damage
,melee-defense
-
physical-damage
,physical-defense
-
projectile-damage
,projectile-defense
-
skill-damage
,skill-defense
-
skill-damage-<type>
,skill-defense-<type>
-
defense-<damagecause>
(e.g.,defense-block_explosion
) -
rpgdamage-<type>
andrpgdefense-<type>
(Divinity integration) -
hunger
,hunger-heal
,knockback-resist
,luck
-
attack-damage
,attack-knockback
absorption
scale
step-height
jump-strength
gravity
-
safe-fall-distance
,fall-damage-multiplier
burning-time
-
explosion-knockback-resistance
,water-movement-efficiency
movement-efficiency
oxygen-bonus
-
block-interaction-range
,entity-interaction-range
-
block-break-speed
,mining-efficiency
,submerged-mining-speed
sneaking-speed
sweeping-damage-ratio
Each stat is scaled using a formula you define per attribute.
Attributes can scale parts of a skill by modifying specific Mechanic, Target, or Condition components.
<Component>-<Key>: 'formula'
-
Damage-value: 'a * 0.02 + 1 * v'
β Damage increases 2% per attribute point. -
Particle Projectile-amount: 'a * 0.5 + v'
β Fires more particles based on attribute.
Apply formulas only when certain metadata is present:
Damage-value: 'a*0.05+1*v:icon-key=fireball|a*0.02+1*v'
- 5% increase for
icon-key=fireball
- 2% increase for all other cases
These variables can be used in any scaling formula:
-
a
β Attribute value -
v
β Skill level -
c
β Player class level -
t
β Targetβs class level
Use the following placeholders in the attributeβs icon lore to show dynamic info:
Placeholder | Description |
---|---|
{amount} |
Stage value for invested points only |
{total} |
Stage value for invested + class bonuses |
{max} |
Max value that can be invested |
{cost} |
Cost to upgrade to next level |
{invested} |
Total attribute points spent |
{ap} |
Current unspent attribute points |
When youβre finished configuring the attribute:
- Click πΎ Save to export the current attribute.
- Or use the Backup All button to download all attributes, classes, and skills to your device.
- Place the
attributes.yml
file in:/plugins/Fabled/
- Reload with:
/fabled reload