Mods Resource Packs Data Packs Plugins Shaders Modpacks
Get Modrinth App
Upgrade to Modrinth+
Sign in
ModsPluginsData PacksShadersResource PacksModpacks
Sign in
Settings

Skill Slots

Adds player skill slots for item-based skills for mods and modpacks

2,135
16
Game Mechanics
Library
AboutGalleryChangelogVersions

Skill Slots is a mod that adds player skill slots for item-based skills. You can use KubeJS or Java code to create your own skills.

// 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.

90% of ad revenue goes to creators

Support creators and Modrinth ad-free with Modrinth+

Compatibility

Minecraft: Java Edition

1.20–1.20.1
1.19.2

Platforms

Fabric
Forge
NeoForge
Quilt

Supported environments

Server only
Singleplayer

Links

Report issues View source Join Discord server
Donate on PatreonDonate on Ko-fi

Creators

Snownee
Snownee Owner

Details

Licensed ARR
Published last year
Updated 2 months ago

Modrinth is open source.

new-project-page@ac78952

© Rinth, Inc.

Company

TermsPrivacyRulesCareers

Resources

SupportBlogDocsStatus

Interact

Discord X (Twitter) Mastodon Crowdin
Get Modrinth App Settings
NOT AN OFFICIAL MINECRAFT SERVICE. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.