### Nexo Migration Guides Source: https://github.com/nexo-mc/nexo-documentation/blob/master/SUMMARY.md Guides for migrating from other plugins to Nexo, specifically Oraxen and ItemsAdder. ```markdown * [โ˜„๏ธ Oraxen โ†’ Nexo](migrate/oraxen-nexo.md) * [๐Ÿ“ฆ ItemsAdder โ†’ Nexo](migrate/itemsadder-nexo.md) ``` -------------------------------- ### ItemsAdder to Nexo Migration Steps Source: https://github.com/nexo-mc/nexo-documentation/blob/master/migrate/itemsadder-nexo.md This section details the step-by-step process for migrating from ItemsAdder to Nexo. It covers placing the Nexo JAR, copying the ItemsAdder plugin folder for conversion, backing up worlds, removing old JARs, starting the server, and checking for conversion issues. ```markdown **Put Nexo JAR in your `Server/plugins` folder** #### Copy `plugins/ItemsAdder`-> `plugins/Nexo/converter/ItemsAdder` The `converter`-folder does not exist by default. Simply make the new folder Nexo will convert the content from this folder and delete it after Any future packs you might get can then be put in here and it will all be converted again **Take a backup of all your worlds** Whilst migration should be flawless, it is still recommended to make a backup of your world-folders before swapping to Nexo There might be small oversights leading to minor loss of furniture/custom blocks **Remove ItemsAdder & LoneLibs JAR-files** Keep `plugins/ItemsAdder` as this is what Nexo will convert from. Also good to keep it as a backup in-case you need to migrate again in the future. **Start your server** **Check console for conversion issues and test out items/glyphs** ``` -------------------------------- ### Nexo Community Guides Source: https://github.com/nexo-mc/nexo-documentation/blob/master/SUMMARY.md Community-contributed guides for Nexo, including information on vendors and API usage. ```markdown * [Vendors](community-guides/vendors.md) * [API](community-guides/api.md) ``` -------------------------------- ### Migration Steps Source: https://github.com/nexo-mc/nexo-documentation/blob/master/migrate/oraxen-nexo.md Step-by-step instructions for migrating from Oraxen to Nexo, including file placements and server actions. ```markdown **Put Nexo JAR in `ServerFolder/plugins`** #### Copy `plugins/Oraxen`-> `plugins/Nexo/converter/Oraxen` The `converter`-folder does not exist by default. Simply make the new folder Nexo will convert the content from this folder and delete it after Any future packs you might get can then be put in here and it will all be converted again **Ensure you remove Oraxen JAR from your plugins folder** It is also recommended to go into your `Server/WORLD/datapacks` and remove any leftover packs from Oraxen **Ensure you make a backup of your worlds** Whilst migration should be flawless, it is still recommended to make a backup of your world-folders before swapping to Nexo There might be small oversights leading to minor loss of furniture/custom blocks **Start your server** ``` -------------------------------- ### Command Action Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/mechanics/custom-mechanic.md Demonstrates the Command-Action, which allows executing commands from the console or as the player. This example gives the player paper. ```yaml myitem: Mechanics: custom: mycustom: event: "CLICK:right:all" actions: - "[console] minecraft:give minecraft:paper 2" ``` -------------------------------- ### Custom Block Variation Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/migrate/oraxen-nexo.md Illustrates the change in custom variation calculation between Oraxen and Nexo for custom blocks. ```markdown Example: `custom_variation: 1` -> `custom_variation: 51` ``` -------------------------------- ### Connection-State ItemModel Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/mechanics/furniture-mechanic/connectable-furniture.md Example of a Connection-State ItemModel JSON file used to define different models based on the 'connectable' block state property. This reduces the number of ResourcePack files needed. ```json { "model": { "type": "select", "property": "block_state", "block_state_property": "connectable", "cases": [ { "when": "straight", "model": { "type": "model", "model": "nexo:item/nexo_furniture/connectable/connectable_straight" } }, { "when": "left", "model": { "type": "model", "model": "nexo:item/nexo_furniture/connectable/connectable_left" } }, { "when": "right", "model": { "type": "model", "model": "nexo:item/nexo_furniture/connectable/connectable_right" } }, { "when": "inner", "model": { "type": "model", "model": "nexo:item/nexo_furniture/connectable/connectable_inner" } }, { "when": "outer", "model": { "type": "model", "model": "nexo:item/nexo_furniture/connectable/connectable_outer" } } ], "fallback": { "type": "model", "model": "nexo:item/nexo_furniture/connectable/connectable" } } } ``` -------------------------------- ### Player and Server Condition Examples Source: https://github.com/nexo-mc/nexo-documentation/blob/master/mechanics/clickaction-mechanic.md Provides examples of conditions that can be used with the ClickAction mechanic, leveraging methods from the Player and Server APIs. ```APIDOC Condition Examples: #server.getOnlinePlayers().size() > 10 - Checks if the number of online players is greater than 10. #server.getAllowEnd() - Checks the value of whether the End dimension is allowed. #server.getDefaultGameMode() - Retrieves the default game mode of the server. #player.world.name == 'world' - Checks if the player's current world is named 'world'. #player.hasPermission("test.permission") - Checks if the player has the specified permission. #player.gamemode.name() == 'ADVENTURE' - Checks if the player's current game mode is Adventure. ``` -------------------------------- ### Brewing Recipe Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/general-usage/recipes.md Shows the structure for a brewing stand recipe. It specifies the base ingredient (input), the item to be brewed (ingredient), and the final result. ```yaml diamond: result: minecraft_type: DIAMOND input: minecraft_type: GLASS_BOTTLE ingredient: nexo_item: rainbow_ingot ``` -------------------------------- ### Stonecutting Recipe Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/general-usage/recipes.md Demonstrates a recipe for the Stonecutter. It defines the input item that is processed and the resulting output item. ```yaml stripped_spruce_log: result: minecraft_type: STRIPPED_SPRUCE_LOG input: minecraft_type: SPRUCE_LOG ``` -------------------------------- ### PackSquash Configuration Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/configuration/resourcepack.md A YAML configuration snippet demonstrating how to enable and configure Nexo's PackSquash integration, specifying paths for the PackSquash executable and settings file. ```yaml Pack: generation: packsquash: enabled: true executable_path: plugins/Nexo/pack/packsquash/packsquash settings_path: plugins/Nexo/pack/packsquash/packsquash.toml ``` -------------------------------- ### Nexo Glyphs with Namespaces Source: https://github.com/nexo-mc/nexo-documentation/blob/master/community-guides/vendors.md Demonstrates how Nexo allows for multiple namespaces in glyph configurations, similar to resource packs, recommending the use of separate namespaces for custom glyphs. ```yaml santa_claus: texture: nexomc:santa_claus font: nexomc:christmas_glyphs ... ``` -------------------------------- ### Furnace, Blasting, and Smoking Recipe Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/general-usage/recipes.md Provides an example for smelting recipes used in Furnaces, Blast Furnaces, and Smokers. It specifies the input item, the resulting output item and its quantity, the cooking time, and the experience awarded. ```yaml raw_iron_block_to_iron: result: minecraft_type: IRON_INGOT amount: 9 input: minecraft_type: RAW_IRON_BLOCK cookingTime: 100 experience: 20 ``` -------------------------------- ### Shapeless Recipe Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/general-usage/recipes.md Demonstrates the structure of a shapeless recipe. Ingredients can be placed in any crafting slot. Specifies the output item and its quantity, as well as the required ingredients and their amounts. ```yaml grass_block_shapeless: result: minecraft_type: GRASS_BLOCK amount: 2 ingredients: A: amount: 1 minecraft_type: MOSS_CARPET B: amount: 2 minecraft_type: DIRT ``` -------------------------------- ### ResourcePack Structure Changes Source: https://github.com/nexo-mc/nexo-documentation/blob/master/migrate/oraxen-nexo.md Explanation of changes in Nexo's resource pack structure compared to Oraxen, including shortcut folders and external pack importing. ```markdown Nexo no longer has shortcut folders for `pack/models` etc. This has always caused lots of confusion, so Nexo follows the normal structure `pack/models` -> `pack/assets/minecraft/models` etc Nexo also allows for far easier importing of external resourcepacks. Simply add any ResourcePack .zip or ResourcePack-folder (MyPack/assets/...) to `pack/external_packs` and it will be included in the final pack. ``` -------------------------------- ### Reference Glyph Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/configuration/glyphs/reference-glyph.md Demonstrates the structure of a Multi-Bitmap Glyph and how to reference individual emojis using the 'reference' and 'index' properties. ```yaml multi_bitmap: texture: spritesheet rows: 2 columns: 5 #index is the row and column number first_emoji: reference: multi_bitmap index: 1 ... tenth_emoji: reference: multi_bitmap index: 10 ``` -------------------------------- ### Component Armor Configuration Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/configuration/custom-armors/components.md Example YAML configuration for a component-based armor set (Forest Armor). It shows how to specify the material, texture layers, and the equippable component with its slot and model. ```yaml forest_helmet: material: PAPER # Can be any material, armor-item or anything else Pack: # Optional, if not specified, Nexo searches for any texture # with the filename armorname_armor_layer_X.png #CustomArmor: # layer1: nexo:item/nexo_armors/forest_armor_layer_1 # layer2: nexo:item/nexo_armors/forest_armor_layer_2 texture: nexo:item/nexo_armors/forest_helmet forest_helmet: Components: equippable: slot: HEAD model: nexo:forest ``` -------------------------------- ### Nexo Item Configuration Structure Source: https://github.com/nexo-mc/nexo-documentation/blob/master/community-guides/vendors.md Shows the recommended file structure for adding premade item configurations in Nexo, allowing for subfolders within the 'Nexo/items' directory for better organization. ```plaintext ๐Ÿ“Nexo โ””โ”€โ”€ ๐Ÿ“items โ””โ”€โ”€ ๐Ÿ“NexoMC โ”œโ”€โ”€ ๐Ÿ“„ christmas_furniture.yml โ””โ”€โ”€ ๐Ÿ“„ easter_armor.yml ``` -------------------------------- ### Shaped Recipe Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/general-usage/recipes.md Illustrates a shaped recipe, where ingredient placement matters. This example shows how to use Minecraft tags and Nexo items, defining the crafting grid shape and the ingredients for each position. ```yaml forest_axe: result: nexo_item: forest_axe ingredients: A: tag: minecraft:leaves B: minecraft_type: STICK shape: - _AA - _BA - _B_ ``` -------------------------------- ### ResourcePack Structure Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/configuration/resourcepack.md Illustrates the directory structure for Nexo's resource packs, including the main 'pack' folder, 'assets' directory with namespaces, and the 'external_packs' folder for importing third-party resource packs. ```plaintext ๐Ÿ“Nexo โ””โ”€โ”€ ๐Ÿ“pack โ””โ”€โ”€ ๐Ÿ“assets โ”‚ โ”œโ”€โ”€ ๐Ÿ“minecraft โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“models โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“item โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ๐Ÿ“‘paper.json โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ ๐Ÿ“‘custom_model.json โ”‚ โ”‚ โ””โ”€โ”€ ๐Ÿ“textures โ”‚ โ”‚ โ””โ”€โ”€ ๐Ÿ–ผ๏ธsomething.png โ”‚ โ””โ”€โ”€ ๐Ÿ“custom_namespace โ”‚ โ””โ”€โ”€ ๐Ÿ“models โ”‚ โ””โ”€โ”€ ๐Ÿ“‘custom.json โ”‚ โ””โ”€โ”€ ๐Ÿ“external_packs โ”œโ”€โ”€ ๐Ÿ“DefaultPack.zip โ”œโ”€โ”€ ๐Ÿ“custom_resourcepack.zip โ””โ”€โ”€ ๐Ÿ“custom_resourcepack2 โ””โ”€โ”€ ๐Ÿ“assets โ””โ”€โ”€ ๐Ÿ“custom_namespace2 ``` -------------------------------- ### ResourcePack Structure Examples Source: https://github.com/nexo-mc/nexo-documentation/blob/master/configuration/plugin-settings.md Illustrates the directory structure of the ResourcePack with different obfuscation modes: NONE (original structure), SIMPLE (obfuscates filenames), and FULL (obfuscates paths and filenames). ```makefile ๐Ÿ“ResourcePack โ””โ”€โ”€ ๐Ÿ“assets โ””โ”€โ”€ ๐Ÿ“custom_namespace โ””โ”€โ”€ ๐Ÿ“models โ””โ”€โ”€ ๐Ÿ“‘custom_model.json ``` ```makefile ๐Ÿ“ResourcePack โ””โ”€โ”€ ๐Ÿ“assets โ””โ”€โ”€ ๐Ÿ“custom_namespace โ””โ”€โ”€ ๐Ÿ“‘02a61ae4-2457-4dfa-91af-9598cd52fd9e.json ``` ```makefile ๐Ÿ“ResourcePack โ””โ”€โ”€ ๐Ÿ“assets โ””โ”€โ”€ ๐Ÿ“0d003f53-e176-4e74-a895-d392c82f50be โ””โ”€โ”€ ๐Ÿ“models โ””โ”€โ”€ ๐Ÿ“‘02a61ae4-2457-4dfa-91af-9598cd52fd9e.json ``` -------------------------------- ### Glyph Configuration Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/configuration/glyphs/README.md Example YAML configuration for a glyph named 'heart'. It specifies the texture, ascent, height, and optionally font, permission, and placeholders. This demonstrates how to define a custom glyph. ```yaml heart: texture: default/chat/heart ascent: 8 height: 8 #font: namespace:fontname Optional, unspecified uses font in settings.yml #permission: nexo.glyph.heart Optional, unspecified uses permission in settings.yml #placeholders: # - "<3" ``` -------------------------------- ### Component Armor Configuration Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/configuration/custom-armors/Components.md Example YAML configuration for a component-based armor piece (Ruby Helmet). It shows display name, material, model pack settings, and texture references. It also demonstrates how to manually assign the equippable component for the correct slot and model. ```yaml ruby_helmet: displayname: "Ruby Helmet" material: PAPER # Can be any material, armor-item or anything else Pack: parent_model: "item/generated" # Optional, if not specified, Nexo searches for any texture # with the filename armorname_armor_layer_X.png #CustomArmor: # layer1: default/armors/ruby_armor_layer_1.png # layer2: default/armors/ruby_armor_layer_2.png texture: default/armors/ruby_helmet ruby_helmet: Components: equippable: slot: HEAD model: nexo:ruby ``` -------------------------------- ### Nexo Item Configuration Changes (Oraxen Comparison) Source: https://github.com/nexo-mc/nexo-documentation/blob/master/community-guides/vendors.md Details specific configuration changes and recommendations for Nexo's Furniture and Custom-Block mechanics compared to Oraxen. It highlights deprecated and recommended properties. ```APIDOC Item Configuration Changes: - `itemid.Mechanics.furniture.display_entity_properties` -> `itemid.Mechanics.furniture.properties` - Description: Renamed property for furniture display entity settings. - `itemid.displayname` -> `itemid.itemname` - Description: Changed property for the item's display name. - `itemid.customname` - Description: Use for old 'DisplayName' logic from 1.20.4. - Furniture Hitbox-structure has changed. - Reference: Refer to [docs](../mechanics/furniture-mechanic/#hitboxes) - Custom-Blocks has changed. - Reference: Refer to [NoteBlock](../mechanics/custom-block-mechanics/noteblock-mechanic/) - Reference: Refer to [StringBlock](../mechanics/custom-block-mechanics/stringblock-mechanic.md) Deprecated Properties: - `itemid.Mechanics.furniture.type`: Nexo only supports Display-Entities. - `itemid.Pack.generate_model`: Determined automatically. Recommended Properties: - `itemid.Components.item_model`: Can be used on 1.21.2+ to avoid entire `itemid.Pack`. - `itemid.Pack.texture`: Use if you only have a single texture. - `itemid.Pack.textures`: Accepts a single texture, a list of textures, or a map of texture-key to texture. ``` -------------------------------- ### Custom Armor Configuration Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/configuration/custom-armors/trims.md Example YAML configuration for a Ruby Helmet using the TRIMS armor type. It specifies display name, material, and model parent. It also shows how to optionally define custom armor layers and manually assign a trim pattern. ```yaml ruby_helmet: displayname: "Ruby Helmet" material: CHAINMAIL_HELMET Pack: parent_model: "item/generated" # Optional, if not specified, Nexo searches for any texture # with the filename armorname_armor_layer_X.png #CustomArmor: # layer1: default/armors/ruby_armor_layer_1.png # layer2: default/armors/ruby_armor_layer_2.png texture: default/armors/ruby_helmet ruby_helmet: trim_pattern: nexo:ruby ``` -------------------------------- ### Custom Armor Configuration Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/configuration/custom-armors/Trims.md Example YAML configuration for a Ruby Helmet using the TRIMS armor type. It specifies display name, material, and model parent. It also shows how to optionally define custom armor layers and manually assign a trim pattern. ```yaml ruby_helmet: displayname: "Ruby Helmet" material: CHAINMAIL_HELMET Pack: parent_model: "item/generated" # Optional, if not specified, Nexo searches for any texture # with the filename armorname_armor_layer_X.png #CustomArmor: # layer1: default/armors/ruby_armor_layer_1.png # layer2: default/armors/ruby_armor_layer_2.png texture: default/armors/ruby_helmet ruby_helmet: trim_pattern: nexo:ruby ``` -------------------------------- ### Custom PackServer Implementation (Java) Source: https://github.com/nexo-mc/nexo-documentation/blob/master/community-guides/api.md Provides a Java example for creating a custom PackServer by extending NexoPackServer and overriding its methods. This is for creating custom resource pack server types. ```java public class PackServer extends NexoPackServer { @Override public CompletableFuture uploadPack() @Override public void sendPack(Player player) @Override public void start() @Override public void stop() @Override public String packUrl() @Override @Nullable public ResourcePackInfo packInfo() } ``` -------------------------------- ### Message Action Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/mechanics/custom-mechanic.md Illustrates the Message-Action for sending customizable messages to players, including support for MiniMessage formatting. ```yaml myitem: Mechanics: custom: mycustom: event: "CLICK:right:all" actions: - "[message] some message with MiniMessage support" ``` -------------------------------- ### ActionBar Action Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/mechanics/custom-mechanic.md Shows the ActionBar-Action for displaying messages in the player's action bar, supporting MiniMessage formatting. ```yaml myitem: Mechanics: custom: mycustom: event: "CLICK:right:all" actions: - "[actionbar] some message with MiniMessage support" ``` -------------------------------- ### Basic ClickAction Configuration Source: https://github.com/nexo-mc/nexo-documentation/blob/master/mechanics/clickaction-mechanic.md This snippet demonstrates the basic setup for the clickAction mechanic, including conditions and actions. It shows how to define a console command to be executed when a player interacts with a custom block or furniture. ```yaml myitem: Mechanics: furniture/custom_block: clickActions: - conditions: - '#player.hasPermission("test.permission")' actions: - '[console] say hello !' ``` -------------------------------- ### Sound Action Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/mechanics/custom-mechanic.md Demonstrates the Sound-Action for playing sounds at a location or target. It allows specifying the sound source, volume, pitch, and whether it's played for the player. ```yaml myitem: Mechanics: custom: mycustom: event: "CLICK:right:all" actions: - "{source=AMBIENT volume=0.1 pitch=1} [sound] namespace:soundkey" ``` -------------------------------- ### Known Migration Issues Source: https://github.com/nexo-mc/nexo-documentation/blob/master/migrate/itemsadder-nexo.md Highlights known limitations and issues encountered during the ItemsAdder to Nexo migration process. Primarily focuses on furniture placement and the conversion of non-Display Entity based blocks. ```markdown Nexo wont be able to migrate it 100% as there will be some things that is not doable across plugins. The biggest issue most will face is that furniture placed in your world that is not using Display Entities, will not be automatically converted. Nexo will try and convert configs to its format and should mean new furniture placed will look the same. ``` -------------------------------- ### ClickAction with Empty Conditions Source: https://github.com/nexo-mc/nexo-documentation/blob/master/mechanics/clickaction-mechanic.md This example shows how to configure a clickAction when no specific conditions are required. An empty conditions list `[]` must be provided. ```yaml myitem: Mechanics: furniture/custom_block: clickActions: - conditions: [] actions: - '[console] say hello !' ``` -------------------------------- ### Nexo ResourcePack Structure Source: https://github.com/nexo-mc/nexo-documentation/blob/master/community-guides/vendors.md Illustrates the recommended directory structure for including a ResourcePack as an 'External Pack' in Nexo. This approach, using proper namespaces, helps avoid conflicts with other packs. ```plaintext ๐Ÿ“Nexo โ””โ”€โ”€ ๐Ÿ“pack โ””โ”€โ”€ ๐Ÿ“external_packs โ”œโ”€โ”€ ๐Ÿ“RequiredPack.zip #Nexo Default โ”œโ”€โ”€ ๐Ÿ“DefaultPack.zip #Nexo Default โ””โ”€โ”€ ๐Ÿ“NexoMC โ””โ”€โ”€ ๐Ÿ“assets โ””โ”€โ”€ ๐Ÿ“nexomc โ”œโ”€โ”€ ๐Ÿ“models | โ””โ”€โ”€ ... โ””โ”€โ”€ ๐Ÿ“textures โ””โ”€โ”€ ... ``` -------------------------------- ### NexoItem Configuration Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/configuration/items-advanced.md This snippet demonstrates the configuration of a NexoItem with various components such as item name, enchantment glint override, durability, stack size, tool rules, food properties, damage resistance, enchantability, glider status, item model, tooltip style, use remainder, use cooldown, and equippable properties. ```yaml my_item: itemname: My Item Components: enchantment_glint_override: false durability: 10 # if the material above isnt a normal tool, but say PAPER # The item will not have its durability lowered by actions by default # Example of making the tool lower its durability from hitting entities and breaking blocks #durability: # value: 10 # damage_block_break: true # damage_entity_hit: true max_stack_size: 10 hide_tooltip: true tool: #damage_per_block: # Optional, defaults to 1 #default_mining_speed: # Optional, defaults to 1.0 rules: - speed: 1.0 correct_for_drops: true # If mining the given blocks should drop or not material: DIAMOND_BLOCK # The material this rule applies to, also supports list format #materials: # - DIAMOND_BLOCK # - NETHERITE_BLOCK # List of all tags can be found at https://minecraft.wiki/w/Tag#Block_tags_2 tag: minecraft:mineable/axe # The block-tag this rule applies to, also supports list format #tags: # - minecraft:mineable/axe # - minecraft:mineable/shovel food: nutrition: 2 saturation: 2 #can_always_eat: false # Optional, default is false consumable: sound: minecraft:entity.generic.eat # Optional, default is entity.generic.eat consume_particles: true # Optional, default is true consume_seconds: 1.6 # Optional, default is 1.6 animation: EAT # Optional, default is EAT effects: APPLY_EFFECTS: mining_fatigue: duration: 10 amplifier: 1 ambient: false show_icon: true show_particles: true probability: 1.0 REMOVE_EFFECTS: - speed CLEAR_ALL_EFFECTS: {} TELEPORT_RANDOMLY: diameter: 16.0 PLAY_SOUND: sound: minecraft:ambient.basalt_deltas.additions1 damage_resistant: is_fire enchantable: 1 glider: true item_model: minecraft:example #`assets/minecraft/models/item/example.json` tooltip_style: minecraft:example #`assets/minecraft/textures/gui/sprites/tooltip/example_(background & frame)` use_remainder: #minecraft_type: DIAMOND #crucible_item: crucibleid #eco_item: ecoid #mmoitems_id: id #mmoitems_type: type nexo_item: itemid use_cooldown: seconds: 1.2 #Default is 1.0 group: nexo:example #Default is `nexo:itemid`, set to ""-blank to affect by material damage_resistant: minecraft:is_fire #This acts as a replacement for isFireResistant from 1.21 repairable: minecraft:planks # Supports a single string or list of strings #- minecraft:diamond # Both individual materials and tags are supported equippable: slot: HEAD #model: minecraft:example Optional, primarily useful for Custom-Armor #camera_overlay: minecraft:example Optional, used by carved_pumpkin etc, example; `assets/minecraft/textures/example.png` #equip_sound: item.armor.equip_chain #allowed_entity_types: Optional, defaults to all entities # - PLAYER # - SKELETON #dispensable: true Optional, default is true #swappable: true Optional, default is true #damage_on_hurt: true Optional, default is true ``` -------------------------------- ### Seat Configuration Example Source: https://github.com/nexo-mc/nexo-documentation/blob/master/mechanics/furniture-mechanic/seat-mechanic.md This snippet demonstrates how to configure seats for a furniture item using YAML. It shows the structure for defining multiple seats with their respective x, y, and z offsets. ```yaml myitem: Mechanics: furniture: seats: - 0,0.5,0 ``` -------------------------------- ### NexoItem Components Configuration Source: https://github.com/nexo-mc/nexo-documentation/blob/master/configuration/items-advanced.md This snippet demonstrates the configuration of various NexoItem components using YAML. It includes settings for tooltips, stack size, enchantments, durability, food properties, consumables, equippability, damage resistance, item models, and more. The example shows how to apply these components to define a custom item. ```yaml my_item: itemname: My Item Components: tooltip_display: # Should be used instead of ItemFlags - minecraft:enchantments - minecraft:attribute_modifiers hide_tooltip: true # If true, hides the entire tooltip on hover enchantment_glint_override: false durability: 10 # if the material above isnt a normal tool, but say PAPER # The item will not have its durability lowered by actions by default # Example of making the tool lower its durability from hitting entities and breaking blocks #durability: # value: 10 # damage_block_break: true # damage_entity_hit: true max_stack_size: 10 tool: #damage_per_block: # Optional, defaults to 1 #default_mining_speed: # Optional, defaults to 1.0 rules: - speed: 1.0 correct_for_drops: true # If mining the given blocks should drop or not material: DIAMOND_BLOCK # The material this rule applies to, also supports list format #materials: # - DIAMOND_BLOCK # - NETHERITE_BLOCK # List of all tags can be found at https://minecraft.wiki/w/Tag#Block_tags_2 tag: minecraft:mineable/axe # The block-tag this rule applies to, also supports list format #tags: # - minecraft:mineable/axe # - minecraft:mineable/shovel food: nutrition: 2 saturation: 2 #can_always_eat: false # Optional, default is false consumable: sound: minecraft:entity.generic.eat # Optional, default is entity.generic.eat consume_particles: true # Optional, default is true consume_seconds: 1.6 # Optional, default is 1.6 animation: EAT # Optional, default is EAT effects: APPLY_EFFECTS: mining_fatigue: duration: 10 amplifier: 1 ambient: false show_icon: true show_particles: true probability: 1.0 REMOVE_EFFECTS: - speed CLEAR_ALL_EFFECTS: {} TELEPORT_RANDOMLY: diameter: 16.0 PLAY_SOUND: sound: minecraft:ambient.basalt_deltas.additions1 damage_resistant: is_fire enchantable: 1 glider: true item_model: minecraft:example #`assets/minecraft/models/item/example.json` ``` -------------------------------- ### NexoItem Configuration for Connectable Furniture Source: https://github.com/nexo-mc/nexo-documentation/blob/master/mechanics/furniture-mechanic/connectable-furniture.md Example NexoItem configuration file in YAML format that utilizes a ConnectionState ItemModel. It specifies the 'item_model' component and sets the furniture type to ITEM_MODEL. ```yaml connectable: itemname: Connectable Components: item_model: nexo:connectable/connectable Mechanics: furniture: connectable: type: ITEM_MODEL hitbox: barriers: - 0,0,0 ``` -------------------------------- ### Nexo Plugin Commands Source: https://github.com/nexo-mc/nexo-documentation/blob/master/general-usage/commands.md This section details the general commands available in the Nexo plugin, accessed via the `/nexo` prefix. It covers core functionalities like managing inventory, giving items, handling recipes, distributing packs, retrieving item information, reloading configurations, and toggling debug mode. ```APIDOC Nexo Commands: General: /nexo Description: Accesses all Nexo commands. Permission: nexo.command Inventory: /nexo inventory or /nexo inv Description: Displays all items in categories based on Nexo/items/filename.yml. Allows copying items but not giving them to other players. Permission: nexo.command.inventory Item Giving: /nexo give [amount] [player] Description: Gives a specified item to a player. Useful for automation or direct player interaction. Permission: nexo.command.give Recipe Commands: /nexo recipe builder Description: Creates and opens a recipe builder of the specified type. Permission: nexo.command.recipes /nexo recipe save Description: Saves the current recipe with the given name. Permission: nexo.command.recipes /nexo recipe show all Description: Displays all loaded recipes. Permission: nexo.command.recipes /nexo recipe show Description: Displays a specific recipe. Permission: nexo.command.recipes Pack Command: /nexo pack Description: Sends the resource pack to a specified player. Useful for failed automatic sending or testing. Permission: nexo.command.pack Item-Info Command: /nexo iteminfo Description: Prints general information about a NexoItem for debugging purposes. Permission: nexo.command.iteminfo Reload Command: /nexo reload Description: Reloads items, recipes, regenerates the pack, and uploads it. If Pack.dispatch.send_on_reload is enabled, it dispatches to all players. Permission: nexo.command.reload /nexo reload items Description: Reloads item configurations. Permission: nexo.command.reload /nexo reload pack Description: Regenerates and uploads the resource pack. Permission: nexo.command.reload /nexo reload recipes Description: Reloads recipe configurations. Permission: nexo.command.reload Debug Command: /nexo debug Description: Toggles the debug state of Nexo. Useful for providing detailed error logs for bug support. Permission: nexo.command.debug ``` -------------------------------- ### Furniture Mechanic Configuration Source: https://github.com/nexo-mc/nexo-documentation/blob/master/migrate/oraxen-nexo.md Overview of configuration changes for furniture mechanics in Nexo, including seats, lights, and hitboxes. ```markdown Main config-changes here are with how seats, lights & hitboxes (barrier & interaction) are defined. Nexo allows for multiple interaction-hitboxes, seats and lights. Suggest reading [Furniture Mechanic](../mechanics/furniture-mechanic/) for more info ``` -------------------------------- ### Nexo Sounds and Paintings Source: https://github.com/nexo-mc/nexo-documentation/blob/master/SUMMARY.md Configuration for custom sounds and paintings in Nexo. ```markdown * [๐ŸŽต Sounds](configuration/sounds.md) * [๐Ÿ–ผ๏ธ Custom Paintings](configuration/custom-paintings.md) ``` -------------------------------- ### Nexo Plugin Settings Source: https://github.com/nexo-mc/nexo-documentation/blob/master/SUMMARY.md Configuration options for the Nexo plugin, including general settings and resource pack management. ```markdown * [โš™๏ธ Plugin settings](configuration/plugin-settings.md) * [ResourcePack](configuration/resourcepack.md) ``` -------------------------------- ### Emoji Glyph Configuration Source: https://github.com/nexo-mc/nexo-documentation/blob/master/configuration/glyphs/README.md Example YAML configuration for a glyph that is designated as an emoji. The 'is_emoji: true' flag makes it appear in the '/nexo emojis' command. ```yaml heart: texture: default/chat/heart is_emoji: true ``` -------------------------------- ### Nexo Addons Source: https://github.com/nexo-mc/nexo-documentation/blob/master/SUMMARY.md Information on Nexo addons, specifically Carpentry and Core Shaders with text effects. ```markdown * [๐Ÿšช Carpentry](addons/carpentry.md) * [๐Ÿงฉ Core Shaders](addons/core-shaders/README.md) * [Text Effects by Akis](addons/core-shaders/text-effects-by-akis.md) ``` -------------------------------- ### Ghast Hitbox Configuration Source: https://github.com/nexo-mc/nexo-documentation/blob/master/mechanics/furniture-mechanic/hitbox/ghast-hitbox.md Example YAML configuration for defining Ghast entity hitboxes. It demonstrates how to set offset, scale, and rotation properties for multiple hitboxes. ```yaml myitem: Mechanics: furniture: hitbox: ghasts: # - offset scale rotation visible - 0,0,0 0.25 - 0,1,0 0.25 45 - 0,2,0 0.25 true ``` -------------------------------- ### Nexo Recipe Builder Usage Source: https://github.com/nexo-mc/nexo-documentation/blob/master/general-usage/commands.md This snippet shows the YAML syntax for interacting with the Nexo recipe builder and management commands. It covers creating builders, saving recipes, and displaying recipe information. ```yaml /nexo recipe builder /nexo recipe save /nexo recipe show all /nexo recipe show ``` -------------------------------- ### Nexo General Usage Source: https://github.com/nexo-mc/nexo-documentation/blob/master/SUMMARY.md General usage information for Nexo, including commands and recipes. ```markdown * [โŒจ๏ธ Commands](general-usage/commands.md) * [๐Ÿง‘โ€๐Ÿณ Recipes](general-usage/recipes.md) ``` -------------------------------- ### Custom GUI Glyph Configuration Source: https://github.com/nexo-mc/nexo-documentation/blob/master/configuration/glyphs/README.md Example YAML configuration for a glyph used in custom GUIs. It sets the texture, ascent, and height for a GUI element named 'customshop'. ```yaml customshop: texture: required/ui/menu_items #font: minecraft:my_font # Optional, defaults to minecraft:default ascent: 37 height: 256 ``` -------------------------------- ### ResourcePack Server Options Source: https://github.com/nexo-mc/nexo-documentation/blob/master/main-changelog.md Details the new options for the ResourcePack server, including POLYMATH (similar to 1.x) and SELFHOST for local hosting of the pack on the server. ```APIDOC PackServer Options: POLYMATH: Same as in 1.x SELFHOST: SelfHost/Localhost the pack on your server itself ``` -------------------------------- ### Merging Custom Resource Packs with Nexo Source: https://github.com/nexo-mc/nexo-documentation/blob/master/faq.md Explains how to add custom resource packs to Nexo's generated resource pack. Place your .zip or folder in `Nexo/pack/external_packs` for automatic merging. Refer to the ResourcePack page for more details. ```markdown You can merge any resourcepacks into the ResourcePack generated by Nexo. You can do so by simply adding the .zip or folder to `Nexo/pack/external_packs` and the plugin will merge it into the final ResourcePack and send it to all players. Check out the ResourcePack page for a detailed explanation ``` -------------------------------- ### Stripped Log Configuration Source: https://github.com/nexo-mc/nexo-documentation/blob/master/mechanics/custom-block-mechanics/noteblock-mechanic/stripped-log-mechanic.md Configuration example for the Stripped Log Mechanic. It specifies the block type, custom variation, the block to transform into (stripped_log), and any additional drops. ```yaml my_block: Mechanics: custom_block: type: NOTEBLOCK custom_variation: 2 log_strip: stripped_log: stripped_log drop: bark ``` -------------------------------- ### Texture Display Issues (OptiFine vs. Vanilla) Source: https://github.com/nexo-mc/nexo-documentation/blob/master/faq.md Explains why textures might work with OptiFine but not in vanilla Minecraft. This is often due to OptiFine-specific formatting. Ensure filenames are lowercase, contain no spaces, and textures do not exceed 256x256 resolution for vanilla compatibility since Minecraft 1.11. ```markdown This usually stems from said textures or models using OptiFine only formatting. As of Minecraft 1.11, the ResourcePack formatting is very strict. Filenames must be all lowercase, cant contain spaces and textures can't exceed 256x256 resolution. ``` -------------------------------- ### Custom Saddle Configuration Source: https://github.com/nexo-mc/nexo-documentation/blob/master/configuration/custom-mob-armor-1.21.2+/custom-saddles-1.21.5+.md Example YAML configuration for a custom saddle. It defines the item type, textures for the harness and icon, and specifies the allowed entity types for equipping. ```yaml forest_saddle: itemname: Forest Saddle type: SADDLE Pack: texture: nexo:items/forest_armor/forest_saddle_icon CustomArmor: pig_saddle: nexo:items/forest_armor/forest_pig_saddle horse_saddle: nexo:items/forest_armor/forest_horse_saddle Components: equippable: slot: BODY allowed_enity_types: [ PIG, HORSE ] ``` -------------------------------- ### Nexo Java API for ResourcePack Management Source: https://github.com/nexo-mc/nexo-documentation/blob/master/configuration/resourcepack.md Demonstrates how to programmatically import resource packs using the Nexo Java API. This involves specifying the source location, which can be a local directory or a zip file. ```java NexoPlugin.getPlugin().getPackManager().importPack("path/to/your/resourcepack"); ``` -------------------------------- ### Asset Conversion Locations Source: https://github.com/nexo-mc/nexo-documentation/blob/master/migrate/itemsadder-nexo.md Details the locations where Assets from ItemsAdder are converted and stored within the Nexo plugin directory. This includes resource pack content, items, and glyph/font images. ```markdown ResourcePack content from ItemsAdder is all bundled into `Nexo/pack/external_packs/ItemsAdder/namespace/...` Items are moved into `Nexo/items/itemsadder/...` Glyphs/Font Images are moved in `Nexo/glyphs/itemsadder/namespace/...` ```