Sueta
SK

Skript-Nexo

2.2.4

A compatibility Layer for Nexo Custom Items and Skrip

·Plugin
  1. 2.2.4latestFix reallocation issueMay 15, 2026
    Fix reallocation issue
    4 downloads
  2. 2.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.
    23 downloads
  3. 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.
    234 downloads
  4. 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 The config.yml file includes a section for mechanic events:
     events:
    
     mechanic:
    
     interact:
    
     enabled: true
    
     cooldown: 1
    
     
    You can enable/disable mechanic events and set cooldowns for them. ## Creating Custom Mechanics To create a custom mechanic, use the following Skript syntax:
    
     create nexo mechanic with id "mechanic_id"
    
     
    For example:
    
     create nexo mechanic with id "toasty"
    
     
    ## Setting Mechanic Properties You can set properties on mechanics using:
    
     set property "property_name" of mechanic "mechanic_id" to value
    
     
    or
    
     set mechanic "mechanic_id"'s property "property_name" to value
    
     
    For example:
    
     set property "damage" of mechanic "toasty" to 5
    
     set mechanic "toasty"'s property "enabled" to true
    
     
    ## Getting Mechanic Properties You can get properties from mechanics using:
    
     property "property_name" of mechanic "mechanic_id"
    
     
    or
    
     mechanic "mechanic_id"'s property "property_name"
    
     
    For example:
    
     set {_damage} to property "damage" of mechanic "toasty"
    
     set {_enabled} to mechanic "toasty"'s property "enabled"
    
     
    ## Checking for Mechanics You can check if an item has a specific mechanic using:
    
     item has mechanic "mechanic_id"
    
     
    or
    
     item doesn't have mechanic "mechanic_id"
    
     
    For example:
    
     if player's tool has mechanic "toasty":
    
     send "That item is toasty!" to player
    
     
    ## Responding to Mechanic Interactions You can respond to interactions with mechanics using:
    
     on interact with mechanic "mechanic_id":
    
     # Event code here
    
     
    For example:
    
     on interact with mechanic "toasty":
    
     if player's tool is a water bucket:
    
     send "The water cooled down the toasty mechanic!" to player
    
     cancel event
    
     
    ## Example Script See the example-mechanic.sk file for a complete example of how to use the custom mechanics system. ## Programmatic Usage You can also create and use custom mechanics programmatically. See the ToastyItem.java class in the me.asleepp.skriptnexo.examples package 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:
     # 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
    
     
    To apply a custom mechanic to an item or block programmatically, you need to use Nexo's API:
     // Example of applying a custom mechanic to an item programmatically
    
     ItemStack item = new ItemStack(Material.DIAMOND_SWORD);
    
     MechanicsManager.INSTANCE.applyMechanic(item, "toasty");
    
     
    ## Implementation Details The custom mechanics system is implemented using the following classes: - 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 event
    101 downloads
  5. 2.1.3Remove Bstats OfficiallyJul 3, 2025
    Removed Bstats
    22 downloads
  6. 2.1.2Update 2.1.2Jul 2, 2025
    · Updated dependencies for nexo 1.9.0 and modern skript version · Updated build files
    20 downloads
  7. 2.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.
    121 downloads
  8. 1.0.7Added Get custom Item ID expressionDec 16, 2024
    Added Get Custom Item ID format: "custom item ID of %itemstack%"
    80 downloads
  9. 1.0.6Added blockface and hand to Interact Furniture eventDec 14, 2024
    I added some more context to the furniture interact event
    47 downloads
  10. 1.0.3Added Location to Interact Furniture eventDec 9, 2024
    Just added Location to the Furniture interact event
    70 downloads
  11. 1.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 Place
    48 downloads
  12. 1.0.1Dec 8, 2024
    45 downloads

Similar projects

Plugin →