Reskillable Reimagined
The complete skill-locking and leveling system — skills, perks, configs, commands, and cross-loader support.
Reskillable Reimagined is an RPG-style progression mod that adds a skill-based locking and leveling system to Minecraft.
Players spend experience to level skills, unlock equipment, meet progression requirements, gain configurable perks, and access stronger content.
The current system is designed with modpacks in mind and supports both built-in and custom progression paths.
1.21.1 Loader Support
Reskillable Reimagined is available for NeoForge and Fabric.
The Fabric version requires Fabric Loader, Fabric API, and Java 21. Core skills, configs, locks, gates, commands, custom skills, and built-in skill customization are kept aligned with the 1.21.1 NeoForge version.
On Fabric, EMI is the supported recipe-viewer integration. Jade is optional. Loader-specific integrations for NeoForge-only APIs are not automatically available on Fabric.
Core Features
Reskillable includes:
- A full XP-based skill leveling system
- Item and block requirements
- Entity attack requirements
- Crafting requirements
- Configurable skill progression gates
- Up to 8 custom skills
- Fully editable built-in skills
- Configurable skill IDs, names, icons, perks, and attributes
- Multiple configurable perk attributes per skill
- A configurable global skill-level cap
- Bonus health based on total progression
- Requirement tooltips with pass/fail coloring
- Optional Jade integration
- EMI screen compatibility on Fabric
- Automatic mod item scanning
- JSON-based modpack configuration
Skill System
Each player has skills that can be leveled by spending experience.
Default Built-In Skills
| Skill | Purpose |
|---|---|
| Attack | Weapon usage, combat progression, and offensive perks |
| Defense | Armor usage and defensive progression |
| Mining | Mining-tool progression and mining bonuses |
| Gathering | Gathering tools such as axes and shovels |
| Farming | Farming tools and crop-related progression |
| Building | Building-related progression and interaction reach |
| Agility | Movement and mobility progression |
| Magic | Magical 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.jsonThis 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
| Field | Description |
|---|---|
skill | Fixed internal behavior/save-data hook. Keep this tied to the original skill. |
id | Public ID used by locks, gates, commands, and the UI. This can be renamed. |
displayName | Custom literal name shown to the player. Blank keeps the normal translated name. |
enabled | Set to false to disable the skill. |
icon | Optional replacement icon texture. Blank keeps the default icon. |
perkAttributes | Preferred multi-attribute perk format. null keeps the original built-in perk, [] removes the perk, and one or more entries replace the original perk. |
perkAttribute | Legacy single-attribute override. Still supported for existing configs. |
perkOperation | Legacy operation used with perkAttribute. |
perkAmountPerStep | Legacy amount used with perkAttribute. |
perkStep | Legacy/default milestone step. Multi-attribute entries can each define their own perkStep. |
Each object inside perkAttributes supports:
| Field | Description |
|---|---|
attribute | Registry ID of the attribute to modify. |
operation | Modifier operation such as ADDITION, MULTIPLY_BASE, or MULTIPLY_TOTAL. |
amountPerStep | Amount granted at each milestone. |
perkStep | Number of skill levels between milestones for this specific attribute. |
Built-In Perk Override Rules
For built-in skills, perkAttributes has three distinct states:
"perkAttributes": nullKeeps 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
skillfield is the permanent internal mapping. - The
idfield is the public-facing config ID. - The original skill IDs remain accepted as compatibility aliases.
- Renaming
attacktocombat, for example, does not invalidate older lock configs that still useattack. - 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 reloadreloads 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.jsonExample 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
| Field | Description |
|---|---|
id | Internal/public skill ID used by commands, locks, and gates |
displayName | Name shown in the skill screen and requirement tooltips |
enabled | Enables or temporarily disables the custom skill |
icon | Texture path used for the skill icon |
perkAttributes | Preferred array of attribute perks. Use multiple entries to grant multiple attributes. An empty array gives the custom skill no perk. |
perkAttribute | Legacy single-attribute format. Still supported for existing configs. |
perkOperation | Legacy operation used with perkAttribute. |
perkAmountPerStep | Legacy amount used with perkAttribute. |
perkStep | Legacy/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, andperkStepfields inside eachperkAttributesentry. - 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 Pages & GUI Customization
The main skill screen supports separate pages for built-in and custom skills.
Useful options include:
enableSecondSkillPage = true
subpageNavPosition = "BOTTOM"
showSubpageTitles = trueenableSecondSkillPage
Controls whether the custom-skill page is available.
subpageNavPosition
Controls where the built-in/custom page navigation arrows are placed.
Supported values:
TOPBOTTOMLEFTRIGHT
showSubpageTitles
Controls whether the Built-In / Custom page title is shown.
Inventory / Skills Tab Position
The inventory-side Skills tab position is stored in:
config/reskillable/reskillable_tabs.jsonExample:
{
"x": -28,
"y": 7
}This allows the tab position to remain configurable rather than being permanently fixed to one inventory layout.
Leveling & XP
Players spend Minecraft XP to increase skill levels.
XP cost is calculated using Reskillable's progression curve and can be globally scaled.
Important options include:
xpScalingMultiplier
maximumLevel
maxTotalSpentLevelsmaximumLevel
Controls the maximum level an individual skill can reach.
xpScalingMultiplier
Changes the XP cost of skill progression.
maxTotalSpentLevels
Limits how many total skill levels a player may invest across all enabled skills.
maxTotalSpentLevels = -1-1 means unlimited.
This can be used to create character-build systems where players must specialize instead of eventually maxing every skill.
Skill Progression Gates
Skill gates can stop a player from leveling a skill past a configured point until other progression requirements are met.
Gates do not stop the player from earning XP. They prevent the skill upgrade itself until the requirements are satisfied.
Configured with:
skill_level_gates = []Gate Format
SKILL:MIN_CURRENT_LEVEL:REQUIREMENTSSupported requirement tokens include:
TOTAL=<level>
OTHER_SKILL=<level>
ADV=<namespace:path>All requirements on the same rule must be satisfied.
Require an Advancement
skill_level_gates = [
"ATTACK:15:ADV=minecraft:story/mine_diamond"
]Attack can be leveled normally until level 15.
After that, the player must complete the configured advancement.
Custom advancements can also be used, making this useful for quest systems and modpack progression.
Require Total Skill Levels
skill_level_gates = [
"ATTACK:10:TOTAL=30"
]Attack can be leveled normally through level 10.
Further progression requires at least 30 total skill levels.
Require Multiple Conditions
skill_level_gates = [
"ATTACK:15:TOTAL=40,MINING=10,DEFENSE=10"
]Attack progression beyond the gate requires:
- 40 total skill levels
- Mining 10
- Defense 10
Multiple Gates
skill_level_gates = [
"ATTACK:10:TOTAL=25",
"ATTACK:20:TOTAL=50",
"MAGIC:15:ATTACK=10"
]This allows one skill to have multiple progression checkpoints.
Perks & Attribute Bonuses
Skills can use their original Reskillable perk or one or more configurable attribute perks.
The preferred format is:
"perkAttributes": [
{
"attribute": "modid:attribute",
"operation": "ADDITION",
"amountPerStep": 1.0,
"perkStep": 5
}
]A skill may contain multiple entries, and every entry can use a different operation, amountPerStep, and perkStep.
For example, one attribute can trigger every 5 levels while another triggers every 10 levels.
Built-In vs. Custom Perk Behavior
For built-in skills:
perkAttributes: nullkeeps the original Reskillable perk.perkAttributes: []disables the perk.perkAttributes: [ ... ]replaces the original perk with the configured attribute list.- The legacy singular
perkAttributeformat is still supported and also acts as a replacement when configured.
For custom skills:
perkAttributes: []means the skill has no attribute perk.perkAttributes: [ ... ]grants every configured attribute perk.- The legacy singular format remains supported for backward compatibility.
A custom attribute override does not stack with special built-in behavior such as Mining speed, Gathering bonus XP orbs, or Farming crop-growth chance. Supplying an override replaces that original perk.
Modifier Operations
Common operation names include:
ADDITION
MULTIPLY_BASE
MULTIPLY_TOTALADDITION adds the configured amount directly at each milestone.
MULTIPLY_BASE uses the amount as a fraction of the attribute's base value. For example, 0.05 represents +5% of the base value per milestone.
Perk Page Names
When a built-in skill is using its original perk, Reskillable uses its normal legacy perk description.
When a skill is using a configured attribute override, the perk page displays the configured attribute's translated name. For third-party attributes, that translated name is normally supplied by the mod that owns the attribute.
For example, changing Reskillable's legacy:
tooltip.rereskillable.bonus_xp_orbschanges the name used by the original Gathering perk. It does not rename a third-party attribute such as attributeslib:experience_gained.
Default Skill Bonus Types
| Skill | Typical Original Bonus |
|---|---|
| Attack | Attack damage |
| Defense | Armor / defensive attribute |
| Agility | Movement speed |
| Magic | Configurable magic attribute |
| Building | Block interaction reach |
| Gathering | Bonus XP gain |
| Mining | Mining speed |
| Farming | Crop growth chance |
These defaults remain active when perkAttributes is null. Supplying a configured attribute override replaces the corresponding original perk.
Health Scaling
Reskillable can grant bonus health based on total skill progression.
Controlled by:
HealthBonus
levelsPerHeart
healthPerHeartFor example, a pack can grant additional health every 10 combined skill levels.
Disabled skills are not intended to contribute to normal progression totals.
Skill Locking
Reskillable can restrict:
- Item usage
- Block interaction
- Block breaking
- Entity attacks
- Crafting
Requirements may use built-in or custom skill IDs.
Item & Block Requirements
Configured through:
config/reskillable/skill_locks.jsonExample:
{
"skillLocks": {
"minecraft:diamond_sword": ["attack:15"],
"minecraft:netherite_chestplate": ["defense:30"]
}
}Multiple requirements may be added to the same entry:
{
"skillLocks": {
"examplemod:ancient_blade": [
"attack:20",
"agility:10"
]
}
}The player must satisfy all configured requirements.
Built-in skill IDs can use either the configured public ID or the original compatibility alias.
Wildcard Item Locks
Item requirement configs support prefix wildcards.
The wildcard must appear at the end of the item path.
Example:
{
"skillLocks": {
"examplemod:steel_*": [
"attack:10"
]
}
}This expands against registered items whose paths begin with steel_.
Wildcards are useful for large content mods where many items share a naming prefix.
Entity Attack Requirements
Entity attack requirements are configured in:
config/reskillable/attack_skill_locks.jsonExample:
{
"attackSkillLocks": {
"minecraft:warden": ["attack:25"]
}
}This lets modpacks gate stronger enemies behind character progression.
Crafting Requirements
Crafting restrictions are configured in:
config/reskillable/craft_skill_locks.jsonExample:
{
"craftSkillLocks": {
"minecraft:diamond_sword": [
"attack:15",
"mining:10"
]
}
}This allows crafting progression to be stricter or different from normal item-use requirements.
Requirement Tooltips
Restricted items display their requirements directly in the item tooltip.
The tooltip includes:
- A Requirements: heading
- The configured skill name
- Required level
- Green text when the player meets the requirement
- Red text when the player does not meet the requirement
Configured built-in display names and custom skill display names are respected.
This means renaming attack to Combat in built_in_skills.json also updates the name shown to players in requirement tooltips.
Jade Integration
Jade is optional.
When Jade is installed, Reskillable can display matching requirements directly in Jade tooltips while looking at blocks and supported entities/item entities.
Requirement entries use the same pass/fail coloring as normal item tooltips.
This makes progression requirements visible without forcing the player to first pick up or open an item.
Fabric Integration
The Fabric 1.21.1 port keeps the core Reskillable systems aligned with NeoForge.
Requirements
Fabric builds require:
- Fabric Loader
- Fabric API
- Minecraft 1.21.1
- Java 21
EMI
EMI is the supported recipe-viewer integration on Fabric.
The integration registers Reskillable's Skills tab and Skill Screen as exclusion areas so EMI sidebars do not cover the custom GUI.
There is no JEI hook/dependency in the Fabric build.
Jade
Jade remains optional on Fabric.
Loader-Specific Mod Integrations
Some integrations rely on APIs that are specific to NeoForge builds.
The Fabric port does not hard-link NeoForge-only integrations such as:
- Curios APIs
- Iron's Spells event APIs
- TaCZ event APIs
Core Reskillable functionality does not depend on those integrations.
Where possible, generic registry/NBT-based behavior may still work without linking directly against another mod's API.
Main Config
The main config contains global Reskillable behavior.
On current Fabric 1.21.1 builds, it is stored at:
config/reskillable-common.tomlThe JSON progression files remain under:
config/reskillable/Important Main Config Options
| Config | Description |
|---|---|
disableWoolDrops | Controls Reskillable's wool-drop restriction |
deathSkillReset | Resets skills on player death |
HealthBonus | Enables total-level health scaling |
showTabButtons | Shows the Inventory / Skills tab buttons |
xpScalingMultiplier | Global XP cost multiplier |
maximumLevel | Maximum level per skill |
enableSkillLeveling | Enables or disables normal GUI leveling |
enableSkillUpMessage | Shows skill-up chat messages |
skillAliases | Additional accepted names for configured skills |
skill_level_gates | Skill progression gate rules |
enableSecondSkillPage | Enables the custom-skill page |
subpageNavPosition | Position of the built-in/custom page arrows |
showSubpageTitles | Shows or hides the skill subpage titles |
maxTotalSpentLevels | Maximum combined spendable levels; -1 is unlimited |
levelsPerHeart | Total skill levels required per health milestone |
healthPerHeart | Health granted per milestone |
attackAttribute | Attribute used by the default Attack perk |
attackOperation | Modifier operation for Attack |
attackDamageBonus | Attack perk amount |
defenseAttribute | Attribute used by Defense |
defenseOperation | Modifier operation for Defense |
agilityAttribute | Attribute used by Agility |
agilityOperation | Modifier operation for Agility |
magicAttribute | Attribute used by Magic |
magicOperation | Modifier operation for Magic |
buildingAttribute | Attribute used by Building |
buildingOperation | Modifier operation for Building |
miningSpeedMultiplier | Mining bonus scaling |
Some legacy bonus option names retain their original capitalization/spaces for compatibility. Per-skill values can also be overridden through built_in_skills.json.
Configuration Files
Reskillable automatically creates or uses the following files:
| File | Purpose |
|---|---|
config/reskillable-common.toml | Main/global configuration |
config/reskillable/skill_locks.json | Item and block requirements |
config/reskillable/attack_skill_locks.json | Entity attack requirements |
config/reskillable/craft_skill_locks.json | Crafting requirements |
config/reskillable/built_in_skills.json | Built-in skill definitions |
config/reskillable/custom_skills.json | Additional custom skills |
config/reskillable/reskillable_tabs.json | Inventory/Skills tab position |
Commands
Reskillable provides administration and modpack-development commands under:
/skillsMost administrative commands require operator/game-master permission.
Get Skill Levels
/skills getChecks player skill levels.
Set a Skill
/skills set <player> <skill> <level>Sets a built-in or enabled custom skill.
Set All Skills
/skills set <player> all <level>Sets all enabled built-in and custom skills.
Add Skill Levels
/skills add <player> <skill> <amount>Levels can also be added to all enabled skills.
Respec a Player
/skills respec <player>Resets progression and refunds stored/spent XP according to the command's respec behavior.
Reload Configs
/skills reloadReloads Reskillable's current configuration and JSON data without requiring a normal full game restart.
Scan a Mod
/skills scanmod <modid>Scans registered items belonging to a mod and adds generated entries to skill_locks.json.
Existing entries are preserved.
Generated requirement values should be treated as starting points and reviewed by the modpack author before release.
Mod Item Scanning
The scan command can save a large amount of manual configuration work.
/skills scanmod examplemodReskillable checks registered items in that namespace and generates suggested skill-lock entries.
The generated values can use item properties such as:
- Armor defense
- Armor toughness
- Tool type
- Weapon/tool progression
The scanner does not overwrite entries that already exist.
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
attackAdditional aliases may also be configured with skillAliases.
Modpack Design Examples
Rename Attack to Combat
built_in_skills.json:
{
"skill": "attack",
"id": "combat",
"displayName": "Combat",
"enabled": true,
"icon": "",
"perkAttributes": null,
"perkOperation": null,
"perkAmountPerStep": null,
"perkStep": 5
}New configs can then use:
"examplemod:greatsword": ["combat:20"]Older configs using:
"examplemod:greatsword": ["attack:20"]remain compatible.
Remove Magic From a Non-Magic Pack
{
"skill": "magic",
"id": "magic",
"displayName": "",
"enabled": false,
"icon": "",
"perkAttributes": null,
"perkOperation": null,
"perkAmountPerStep": null,
"perkStep": 5
}This removes Magic from normal progression without shifting another built-in skill into its internal data slot.
Replace Gathering With a Slayer Perk
{
"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
}
]
}Because perkAttributes contains an override, the original Gathering bonus-XP-orb perk is disabled for this skill. The configured AttributesLib perk is used instead.
Give One Skill Multiple Attribute Perks
{
"skill": "attack",
"id": "warrior",
"displayName": "Warrior",
"enabled": true,
"icon": "",
"perkAttributes": [
{
"attribute": "minecraft:generic.attack_damage",
"operation": "ADDITION",
"amountPerStep": 0.5,
"perkStep": 5
},
{
"attribute": "minecraft:generic.max_health",
"operation": "ADDITION",
"amountPerStep": 1.0,
"perkStep": 10
}
]
}This grants the attack-damage bonus every 5 levels and the max-health bonus every 10 levels.
Create a Specialization System
maxTotalSpentLevels = 80Then combine the cap with skill gates to force meaningful build choices instead of allowing every player to max every skill.
Loader-Specific Compatibility
The main skill system is intended to remain consistent across supported loaders, but integrations that depend on another mod's loader-specific API may differ.
NeoForge
NeoForge builds can contain integrations for APIs/mods such as Curios, Iron's Spells, TaCZ, or other NeoForge-side systems depending on the Minecraft version.
Fabric 1.21.1
Fabric focuses on the shared Reskillable systems and native Fabric integrations:
- Fabric API
- EMI
- Optional Jade
Do not assume a NeoForge-only compatibility hook exists on Fabric simply because the base mod is available on both loaders.
Who Should Use Reskillable?
Reskillable is designed for:
- RPG modpacks
- Progression-based survival packs
- Hardcore packs
- Adventure packs
- Class or specialization systems
- Magic or combat progression packs
- Servers with advancement-based progression
- Packs using quest systems to gate character growth
FAQ
Yes. Reskillable Reimagined has a Fabric 1.21.1 version.
The Fabric build requires Fabric Loader and Fabric API.
No. The Fabric 1.21.1 build uses EMI for recipe-viewer integration.
No. Jade support is optional.
When installed, Jade can display Reskillable requirement information directly in world tooltips.
Yes.
Change the public id and/or displayName in built_in_skills.json.
Keep the skill field tied to its original built-in behavior.
Yes.
Set:
"enabled": falseThe skill is removed from normal progression without changing another built-in skill's save-data slot.
Yes.
Custom skills also support:
"enabled": falseThis hides/disables the skill while preserving its configured definition and stored player level.
Yes.
Use the perkAttributes array:
"perkAttributes": [
{
"attribute": "minecraft:generic.attack_damage",
"operation": "ADDITION",
"amountPerStep": 0.5,
"perkStep": 5
},
{
"attribute": "minecraft:generic.max_health",
"operation": "ADDITION",
"amountPerStep": 1.0,
"perkStep": 10
}
]Built-in and custom skills both support multiple entries.
For a built-in skill:
perkAttributes: nullkeeps the original Reskillable perk.perkAttributes: []disables the perk.perkAttributes: [ ... ]replaces the original perk with the listed attributes.
For a custom skill, an empty array means the skill has no attribute perk.
No.
When a built-in skill has a configured attribute override, that override replaces its original perk. This includes special built-in effects such as Mining speed, Gathering bonus XP orbs, and Farming crop-growth chance.
The old singular perkAttribute format is still supported and is also treated as a replacement.
Configured attribute perks use the attribute's translated name on the perk page.
If the attribute belongs to another mod, its display name normally comes from that mod's language file. Reskillable's legacy perk keys, such as tooltip.rereskillable.bonus_xp_orbs, only rename the corresponding original Reskillable perk.
Yes.
enableSkillLeveling = falseSkill levels can then be managed through commands or other progression systems.
Yes.
Use the item's registry ID:
modid:itemidYou can also use supported prefix wildcards for groups of items.
Yes.
Custom skill IDs can be used alongside built-in skills in requirements and progression gates.
Yes.
Use:
maxTotalSpentLevels = 80Set it to -1 for unlimited progression.
The original built-in IDs remain recognized as compatibility aliases.
For example, if Attack is renamed to Combat, existing requirements using attack can still resolve to the original Attack skill.
Creative-mode players and administrative commands can bypass or directly modify normal progression restrictions.
Automation fake-player handling is also designed so machine interactions are not blocked like normal player progression.
