Pixel Dream StudiosWiki

Skills

The built-in skills, editing them, up to eight custom skills, and how configs name a skill.

Skill System

Each player has skills that can be leveled by spending experience.

Default Built-In Skills

SkillPurpose
AttackWeapon usage, combat progression, and offensive perks
DefenseArmor usage and defensive progression
MiningMining-tool progression and mining bonuses
GatheringGathering tools such as axes and shovels
FarmingFarming tools and crop-related progression
BuildingBuilding-related progression and interaction reach
AgilityMovement and mobility progression
MagicMagical equipment and configurable magic attributes

These eight skills are no longer permanently fixed in the GUI.

Editing Built-In Skills

Built-in skills are configured in:

config/reskillable/built_in_skills.json

This file allows a modpack to rename, reorder, customize, or disable the original skills without changing the internal save-data hooks used by Reskillable.

Example using the original built-in perk:

{
  "skill": "attack",
  "id": "combat",
  "displayName": "Combat",
  "enabled": true,
  "icon": "yourpack:textures/gui/skills/combat.png",
  "perkAttributes": null,
  "perkOperation": null,
  "perkAmountPerStep": null,
  "perkStep": 5
}

perkAttributes: null is intentional. For a built-in skill, it means keep the original Reskillable perk behavior.

Example replacing the original perk with multiple attributes:

{
  "skill": "gathering",
  "id": "slayer",
  "displayName": "Slayer",
  "enabled": true,
  "icon": "born_in_chaos_v1:textures/item/shattered_skull.png",
  "perkAttributes": [
    {
      "attribute": "attributeslib:experience_gained",
      "operation": "MULTIPLY_BASE",
      "amountPerStep": 0.05,
      "perkStep": 5
    },
    {
      "attribute": "minecraft:generic.movement_speed",
      "operation": "MULTIPLY_BASE",
      "amountPerStep": 0.02,
      "perkStep": 10
    }
  ]
}

In this example, the original Gathering bonus-XP-orb perk is replaced. The first configured attribute gains +5% of its base value every 5 skill levels, while the second gains +2% of its base value every 10 skill levels.

Built-In Skill Fields

FieldDescription
skillFixed internal behavior/save-data hook. Keep this tied to the original skill.
idPublic ID used by locks, gates, commands, and the UI. This can be renamed.
displayNameCustom literal name shown to the player. Blank keeps the normal translated name.
enabledSet to false to disable the skill.
iconOptional replacement icon texture. Blank keeps the default icon.
perkAttributesPreferred multi-attribute perk format. null keeps the original built-in perk, [] removes the perk, and one or more entries replace the original perk.
perkAttributeLegacy single-attribute override. Still supported for existing configs.
perkOperationLegacy operation used with perkAttribute.
perkAmountPerStepLegacy amount used with perkAttribute.
perkStepLegacy/default milestone step. Multi-attribute entries can each define their own perkStep.

Each object inside perkAttributes supports:

FieldDescription
attributeRegistry ID of the attribute to modify.
operationModifier operation such as ADDITION, MULTIPLY_BASE, or MULTIPLY_TOTAL.
amountPerStepAmount granted at each milestone.
perkStepNumber of skill levels between milestones for this specific attribute.

Built-In Perk Override Rules

For built-in skills, perkAttributes has three distinct states:

"perkAttributes": null

Keeps the original Reskillable perk.

"perkAttributes": []

Explicitly disables that skill's perk.

"perkAttributes": [
  {
    "attribute": "modid:attribute",
    "operation": "ADDITION",
    "amountPerStep": 1.0,
    "perkStep": 5
  }
]

Replaces the original built-in perk with the configured attribute perk or perks.

This replacement behavior also applies to built-ins with special non-attribute legacy effects. For example:

  • overriding Mining stops its original mining-speed perk
  • overriding Gathering stops its original bonus-XP-orb perk
  • overriding Farming stops its original crop-growth perk

The legacy singular perkAttribute, perkOperation, perkAmountPerStep, and perkStep format remains supported. A configured legacy perkAttribute is treated as a single replacement perk. If the newer perkAttributes array is present, use that format instead.

Important Built-In Skill Notes

  • The skill field is the permanent internal mapping.
  • The id field is the public-facing config ID.
  • The original skill IDs remain accepted as compatibility aliases.
  • Renaming attack to combat, for example, does not invalidate older lock configs that still use attack.
  • Built-in levels remain stored under their original internal keys.
  • Reordering the JSON entries changes their order on the built-in skill page.
  • Disabling or reordering a built-in skill does not shift another skill into its save-data slot.
  • A disabled built-in skill is excluded from normal leveling, UI display, totals, gates, and perks.
  • Deleting a built-in entry also causes that built-in skill to be treated as disabled.
  • Each configured attribute can use a different operation, amount, and milestone step.
  • /skills reload reloads perk definitions and cleans up Reskillable modifiers that were removed or changed.
  • On multiplayer, current skill definitions are synchronized from the server to the client so the perk page reflects the server configuration.

This makes it possible to heavily theme the system for a modpack while keeping existing player progression safe.

Custom Skills

Reskillable supports up to 8 additional custom skills.

Custom skills are defined in:

config/reskillable/custom_skills.json

Example using the preferred multi-attribute format:

{
  "id": "swimming",
  "displayName": "Swimming",
  "enabled": true,
  "icon": "reskillable:textures/gui/custom_skills/swimming.png",
  "perkAttributes": [
    {
      "attribute": "minecraft:generic.water_movement_efficiency",
      "operation": "ADDITION",
      "amountPerStep": 0.1,
      "perkStep": 5
    }
  ]
}

Custom skills can also grant multiple attributes:

{
  "id": "adventuring",
  "displayName": "Adventuring",
  "enabled": true,
  "icon": "",
  "perkAttributes": [
    {
      "attribute": "minecraft:generic.movement_speed",
      "operation": "MULTIPLY_BASE",
      "amountPerStep": 0.02,
      "perkStep": 5
    },
    {
      "attribute": "minecraft:generic.max_health",
      "operation": "ADDITION",
      "amountPerStep": 1.0,
      "perkStep": 10
    }
  ]
}

Attribute registry IDs can change between Minecraft versions and loaders. Always use an attribute ID that exists in the exact version and loader used by your pack.

Custom Skill Fields

FieldDescription
idInternal/public skill ID used by commands, locks, and gates
displayNameName shown in the skill screen and requirement tooltips
enabledEnables or temporarily disables the custom skill
iconTexture path used for the skill icon
perkAttributesPreferred array of attribute perks. Use multiple entries to grant multiple attributes. An empty array gives the custom skill no perk.
perkAttributeLegacy single-attribute format. Still supported for existing configs.
perkOperationLegacy operation used with perkAttribute.
perkAmountPerStepLegacy amount used with perkAttribute.
perkStepLegacy/default milestone step. Multi-attribute entries can each define their own step.

Custom Skill Notes

  • IDs should use lowercase letters, numbers, and underscores.
  • IDs should be unique.
  • Custom skills start at level 1.
  • Disabled custom skills keep their stored player level.
  • A custom skill can be referenced by:
    • item and block locks
    • crafting locks
    • entity requirements
    • skill level gates
    • commands
  • A configured perk allows a custom skill to participate in the perk system.
  • Custom skills support the same attribute, operation, amountPerStep, and perkStep fields inside each perkAttributes entry.
  • The old singular perk fields remain supported so existing custom-skill configs do not need to be rewritten immediately.

Using Custom Skills in Locks

{
  "skillLocks": {
    "minecraft:trident": ["swimming:10"]
  }
}

Using Custom Skills in Gates

skill_level_gates = [
  "SWIMMING:10:TOTAL=25"
]

Skill IDs & Aliases

There are three useful concepts when identifying a skill:

Internal Built-In Mapping

The skill value in built_in_skills.json.

Example:

"skill": "attack"

This should not be repurposed because it identifies the original behavior/save-data slot.

Public Skill ID

The configurable id.

Example:

"id": "combat"

This can be used in new locks, gates, and commands.

Compatibility Alias

The original built-in ID remains recognized.

That means both of these can continue to resolve to the same built-in skill after renaming:

combat
attack

Additional aliases may also be configured with skillAliases.

On this page