SK
2.2.4latestFix reallocation issueMay 15, 2026 Fix reallocation issue2.2.32.2.3 skript 2.15.2 support and Nexo 1.23 supportMay 10, 2026 Refactor event and expression registrations to use new syntax registry system to skript 2.15 also nexo 1.23 · Updated EvtNoteBlockInteractEvent, EvtNoteBlockPlaceEvent, EvtPackUploadEvent, EvtPostPackGenerateEvent, EvtPrePackGenerateEvent, EvtStringBlockBreakEvent, EvtStringBlockDamageEvent, EvtStringBlockInteractEvent, EvtStringBlockPlaceEvent to register events using the new SyntaxRegistry and EventValueRegistry. · Refactored expressions ExprCreateMechanic, ExprGetCustomBlockID, ExprGetCustomItem, ExprGetCustomItemID, ExprGetCustomItemIDFromProjectile, and ExprMechanicProperty to utilize the new registration method. · Removed deprecated Skript.registerEvent and EventValues.registerEventValue calls in favor of the new syntax registration approach.2.2.2Skript Reflect Possible fixSep 9, 2025 Changed internal event naming(for On furniture damaged and on furniture interact) to be more unique so that Skript-Reflect plays Nicer, If this doesnt work for that then something in skript reflect is overriding my access to the events. In that case that will be listed as an incompatibility.2.2.1The Holy Grail Update. Mechanic builderJul 5, 2025 Overview
The custom mechanics system allows you to: 1. Create custom mechanics with unique IDs 2. Set properties on mechanics 3. Register handlers for mechanic events 4. Check if items have specific mechanics 5. Respond to interactions with mechanics ## Configuration Theconfig.ymlfile includes a section for mechanic events:
You can enable/disable mechanic events and set cooldowns for them. ## Creating Custom Mechanics To create a custom mechanic, use the following Skript syntax:events: mechanic: interact: enabled: true cooldown: 1
For example:create nexo mechanic with id "mechanic_id"
## Setting Mechanic Properties You can set properties on mechanics using:create nexo mechanic with id "toasty"
orset property "property_name" of mechanic "mechanic_id" to value
For example:set mechanic "mechanic_id"'s property "property_name" to value
## Getting Mechanic Properties You can get properties from mechanics using:set property "damage" of mechanic "toasty" to 5 set mechanic "toasty"'s property "enabled" to true
orproperty "property_name" of mechanic "mechanic_id"
For example:mechanic "mechanic_id"'s property "property_name"
## Checking for Mechanics You can check if an item has a specific mechanic using:set {_damage} to property "damage" of mechanic "toasty" set {_enabled} to mechanic "toasty"'s property "enabled"
oritem has mechanic "mechanic_id"
For example:item doesn't have mechanic "mechanic_id"
## Responding to Mechanic Interactions You can respond to interactions with mechanics using:if player's tool has mechanic "toasty": send "That item is toasty!" to player
For example:on interact with mechanic "mechanic_id": # Event code here
## Example Script See theon interact with mechanic "toasty": if player's tool is a water bucket: send "The water cooled down the toasty mechanic!" to player cancel eventexample-mechanic.skfile for a complete example of how to use the custom mechanics system. ## Programmatic Usage You can also create and use custom mechanics programmatically. See theToastyItem.javaclass in theme.asleepp.skriptnexo.examplespackage for an example. ## Using Custom Mechanics in Nexo Configs When you create a custom mechanic using Skript, it is registered with Nexo's MechanicsManager, which means: 1. Your custom mechanics are available to Nexo and can be referenced in Nexo configurations by their ID. 2. Properties set on custom mechanics are stored in memory and can be accessed through Skript or Java code. 3. You can use your custom mechanics in Nexo's configuration files by referencing their ID. For example, if you create a mechanic with ID "toasty", you can reference it in Nexo's configuration files like this:
To apply a custom mechanic to an item or block programmatically, you need to use Nexo's API:# Example of how to reference a custom mechanic in a Nexo config items: toasty_sword: material: DIAMOND_SWORD name: "&6Toasty Sword" lore: - "&eThis sword is extremely hot!" mechanics: - toasty # Reference to your custom mechanic
## Implementation Details The custom mechanics system is implemented using the following classes: -// Example of applying a custom mechanic to an item programmatically ItemStack item = new ItemStack(Material.DIAMOND_SWORD); MechanicsManager.INSTANCE.applyMechanic(item, "toasty");SkriptMechanicFactory: Creates custom mechanics -SkriptMechanic: Represents a custom mechanic -MechanicHandler: Handles mechanic events -SkriptMechanicInteractEvent: Event for mechanic interactions -EvtMechanicInteractEvent: Skript event for mechanic interactions -CondHasMechanic: Condition for checking if an item has a mechanic -EffCreateCustomMechanic: Effect for creating custom mechanics -EffSetMechanicProperty: Effect for setting mechanic properties -ExprMechanicProperty: Expression for getting mechanic properties -EffRegisterMechanicHandler: Effect for registering mechanic handlers # Example Skript script for creating and using custom mechanics in Skript-Nexo # This script demonstrates how to create a custom "toasty" mechanic that sets players on fire when they interact with it # # Note: Once created, this mechanic can be used in Nexo configs by referencing its ID: # # Example in items.yml: # items: # toasty_sword: # material: DIAMOND_SWORD # name: "&6Toasty Sword" # lore: # - "&eThis sword is extremely hot!" # mechanics: # - toasty # Create the custom mechanic when the server starts on load: # Create a new mechanic with the ID "toasty" create nexo mechanic with id "toasty" # Set properties for the mechanic set property "damage" of mechanic "toasty" to 5 set property "enabled" of mechanic "toasty" to true set property "duration" of mechanic "toasty" to 3 seconds # Event to handle when a player interacts with an object that has the toasty mechanic on interact with mechanic "toasty": # This code will run when a player interacts with an object that has the "toasty" mechanic send "§6You feel a warm sensation!" to player # Get the damage and duration properties set {_damage} to property "damage" of mechanic "toasty" set {_duration} to property "duration" of mechanic "toasty" # Apply effects based on the mechanic's properties if player is sneaking: # Reduced effect when sneaking set {_damage} to {_damage} / 2 set {_duration} to {_duration} / 2 send "§e(Sneaking reduced the effect)" to player # Apply heat effect (using potion effect instead of fire) ignite player for {_duration} # Apply damage damage player by {_damage} # You can add additional logic here if needed if player's tool is a water bucket: send "§bThe water cooled down the toasty mechanic!" to player cancel event2.1.3Remove Bstats OfficiallyJul 3, 2025 Removed Bstats2.1.2Update 2.1.2Jul 2, 2025 · Updated dependencies for nexo 1.9.0 and modern skript version · Updated build files2.1.0Big total update. Skript 2.10.0+ required and Nexo 1.1.0+ recommendedMar 8, 2025 Check Github for commits. Other than the Mechanic Builder commits everything is included.1.0.7Added Get custom Item ID expressionDec 16, 2024 Added Get Custom Item ID format: "custom item ID of %itemstack%"1.0.6Added blockface and hand to Interact Furniture eventDec 14, 2024 I added some more context to the furniture interact event1.0.3Added Location to Interact Furniture eventDec 9, 2024 Just added Location to the Furniture interact event1.0.2Furniture break and place Location added to eventDec 9, 2024 Just added Location to the Break and Place event. Now you should be able to grab the Location of furniture break and Place1.0.1Dec 8, 2024
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta