Mineuniverse
Log in Register
Mods

Skill Slots (Forge)

Adds player skill slots for item-based skills for mods and modpacks
by Snownee
Download Claim this project
221,988 downloads
0 likes
Updated Jun 30, 2026
0 hypes
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. Interested in supporting me and the development of mods? BisectHosting is the perfect solution. New customers can use the promotion code "snownee" to get a 25% discount on their first month of a gaming server. With 24/7 support and fast response times, you can expect top-notch service for all your gaming needs.
[Forge 1.20.1] 2.1.1
MC NeoForge, 1.20.1, Forge, 1.20
Release 2025-03-08 Get

More from Snownee

Lychee (Neo/Forge)
9,073,532
Persistent Creative Inventory
90,096
Kiwi 🥝 (Neo/Forge)
87,958,376
Loquat 🧩 (Neo/Forge)
86,693
Cuisine 🍳
852,940
Snow! Real Magic! ⛄ (Fabric)
8,169,722

You Might Also Like

LoadingTips
A mod that adds custom tips to the loading screen
999,218
Sampler
Performance oriented debugging/administration tools
998,926
VulkanMod
Vulkan renderer mod for Minecraft.
997,115
Charm Fixer
Disables some modules on charm to fix incompatbility issues with owo
996,251
Trading station
Basic items to item trading machines
99,755
NarrateBookForMe [FABRIC]
Adds a narration keybind, and two GUI buttons to the book screen. Text-to-speech (tts) / narration on the go! Client sided.
99,734