Skill Slots (Forge)
Modby Snownee
Adds player skill slots for item-based skills for mods and modpacks
Type
Mod
CurseForge Downloads
255,716
CurseForge ID
889020
Last Updated
Jul 26, 2026
Description
Skill Slots is a library mod that adds player skill slots for item-based skills, as a complementary to the hotbar. You can use KubeJS or Java code to create your own skills, or simply put an existing item in the slots and use a keybind to perform the right-clicking behavior.
Example for adding a new skill using KubeJS:
// priority: 0
// Server script
// Make your item can be put in skill slots
// If the item already has a right-click function, the skill already works now
ServerEvents.tags('item', event => {
event.add('skillslots:skill', 'minecraft:diamond')
})
// Of course, you can use KubeJS to create an item, and add some fancy right-click function to it
ItemEvents.rightClicked('minecraft:diamond', event => {
event.player.tell('You right clicked a diamond!')
// Cooldown, works
event.player.addItemCooldown(event.item, 60)
})
// This event will also be called when using the skill
BlockEvents.rightClicked(event => {
// Check the item cooldown by yourself
event.player.tell('You right clicked a block!')
})
// Here you will know how to get access to the skill slots from a player
ItemEvents.rightClicked('minecraft:emerald', event => {
let handler = Java.loadClass('snownee.skillslots.SkillSlotsHandler').of(event.player)
let diamond = Item.of('minecraft:diamond')
// Here are some NBT options to customize the skill
diamond.nbt =
diamond.nbt.SkillSlots = {
UseDuration: 20,
IconScale: 1.5,
// CanBeToggled: true, // make your skill work as a passive skill. the player can toggle it on/off
ChargeCompleteSound: 'minecraft:entity.player.levelup', // leave it empty to mute
}
// In config, you can disable the player ability to change skills
// Here is an example to change the skill through KubeJS
handler.setItem(0, diamond)
// Example of checking if the player has a skill that can be toggled and currently activated
let index = handler.findActivatedPassiveSkill(skill => skill.item.id === 'minecraft:diamond')
if (index !== -1) {
let skill = handler.skills.get(index)
event.player.tell(skill.item.id)
}
})
You can use handler.setSlots(int) to set the amount of the unlocked slots, or use the Slot Unlock item provided by this mod.
The colored button border is provided only when JEI is installed.
Example for adding a new skill using KubeJS:
// priority: 0
// Server script
// Make your item can be put in skill slots
// If the item already has a right-click function, the skill already works now
ServerEvents.tags('item', event => {
event.add('skillslots:skill', 'minecraft:diamond')
})
// Of course, you can use KubeJS to create an item, and add some fancy right-click function to it
ItemEvents.rightClicked('minecraft:diamond', event => {
event.player.tell('You right clicked a diamond!')
// Cooldown, works
event.player.addItemCooldown(event.item, 60)
})
// This event will also be called when using the skill
BlockEvents.rightClicked(event => {
// Check the item cooldown by yourself
event.player.tell('You right clicked a block!')
})
// Here you will know how to get access to the skill slots from a player
ItemEvents.rightClicked('minecraft:emerald', event => {
let handler = Java.loadClass('snownee.skillslots.SkillSlotsHandler').of(event.player)
let diamond = Item.of('minecraft:diamond')
// Here are some NBT options to customize the skill
diamond.nbt =
diamond.nbt.SkillSlots = {
UseDuration: 20,
IconScale: 1.5,
// CanBeToggled: true, // make your skill work as a passive skill. the player can toggle it on/off
ChargeCompleteSound: 'minecraft:entity.player.levelup', // leave it empty to mute
}
// In config, you can disable the player ability to change skills
// Here is an example to change the skill through KubeJS
handler.setItem(0, diamond)
// Example of checking if the player has a skill that can be toggled and currently activated
let index = handler.findActivatedPassiveSkill(skill => skill.item.id === 'minecraft:diamond')
if (index !== -1) {
let skill = handler.skills.get(index)
event.player.tell(skill.item.id)
}
})
You can use handler.setSlots(int) to set the amount of the unlocked slots, or use the Slot Unlock item provided by this mod.
The colored button border is provided only when JEI is installed.
Screenshots
Similar Mods
Tesslocator
Adds a Translocator and Tessarract hybrid
Mod
2,556,620
Nodal Mechanics
Create Thaumcraft Nodes
Mod
2,556,586
Cobblemon Pokédex (Cobbledex)
A Pokédex with useful information about each Pokémon for Cobblemon
Mod
2,555,390
Refined Relocation
Sorting Chest Networks, Modular Item Transport and more
Mod
2,554,414
Effect Tooltips
Adds tooltips to the potion effect section of the inventory.
Mod
2,552,647
Ex Machinis
Automation addon for Ex Nihilo Sequentia
Mod
2,552,585