### Querying Documentation Example Source: https://docs.nexomc.com/configuration/items/itemmodel-builder/condition-itemmodel This example shows how to perform an HTTP GET request to query the documentation dynamically for additional information. The 'ask' query parameter should contain a specific, self-contained question in natural language. ```http GET https://docs.nexomc.com/configuration/items/itemmodel-builder/condition-itemmodel.md?ask= ``` -------------------------------- ### Integrating StringBlock with BlockLocker Source: https://docs.nexomc.com/mechanics/custom-block-mechanics/stringblock-mechanic This example demonstrates how to enable BlockLocker protection for a StringBlock. It shows the configuration to allow protection and specifies the type of protection (e.g., CONTAINER, DOOR, ATTACHABLE). Ensure BlockLocker plugin is installed. ```yaml Mechanics: custom_block: type: STRINGBLOCK blocklocker: can_protect: true protection_type: CONTAINER ``` -------------------------------- ### Querying Documentation via HTTP GET Source: https://docs.nexomc.com/configuration/dialogs/dialogtype Demonstrates how to query the NexoMC documentation dynamically using an HTTP GET request with the 'ask' query parameter. ```http GET https://docs.nexomc.com/configuration/dialogs/dialogtype.md?ask= ``` -------------------------------- ### PackSquash Configuration Example Source: https://docs.nexomc.com/configuration/resourcepack Example YAML configuration for enabling and setting paths for PackSquash integration within Nexo's resource pack generation process. ```yaml Pack: generation: packsquash: enabled: true executable_path: plugins/Nexo/pack/packsquash/packsquash settings_path: plugins/Nexo/pack/packsquash/packsquash.toml ``` -------------------------------- ### Agent Instructions: Querying Documentation Source: https://docs.nexomc.com/compatibility/crucible To get more information not present on the page, make a GET request to the page URL with an 'ask' query parameter containing your question. ```http GET https://docs.nexomc.com/compatibility/crucible.md?ask= ``` -------------------------------- ### Querying Documentation with NexoProxy Source: https://docs.nexomc.com/addons/nexo-proxy To get more information not directly on the page, make an HTTP GET request to the page URL with an 'ask' query parameter. ```http GET https://docs.nexomc.com/addons/nexo-proxy.md?ask= ``` -------------------------------- ### Brewing Recipe Example Source: https://docs.nexomc.com/general-usage/recipes Sets up a brewing stand recipe to create diamonds using a glass bottle and a custom 'rainbow_ingot' as the ingredient. ```yaml diamond: result: minecraft_type: DIAMOND input: minecraft_type: GLASS_BOTTLE ingredient: nexo_item: rainbow_ingot ``` -------------------------------- ### Query Documentation via HTTP GET Source: https://docs.nexomc.com/configuration/items/item-appearance Make an HTTP GET request to the current page URL with the 'ask' query parameter to dynamically query the documentation. The question should be specific and self-contained. ```http GET https://docs.nexomc.com/configuration/items/item-appearance.md?ask= ``` -------------------------------- ### Querying Documentation via HTTP GET Source: https://docs.nexomc.com/configuration/sounds To get more information not present on the page, make an HTTP GET request to the documentation URL with an 'ask' query parameter. The response will include a direct answer and relevant excerpts. ```http GET https://docs.nexomc.com/configuration/sounds.md?ask= ``` -------------------------------- ### Querying Documentation Dynamically Source: https://docs.nexomc.com/compatibility/anti-cheat-plugins To get more information not directly on the page, make an HTTP GET request with an 'ask' query parameter. This is useful for clarifications or retrieving related documentation. ```http GET https://docs.nexomc.com/compatibility/anti-cheat-plugins.md?ask= ``` -------------------------------- ### NexoItem Example with pre-made Model file Source: https://docs.nexomc.com/configuration/items/itemmodel-builder/reference-itemmodel Use this snippet to reference a pre-made Model file for your item. Ensure the model path is correctly specified. ```yaml myitem: ItemModel: type: model model: namespace:mymodel #References assest/namespace/models/mymodel.json ``` -------------------------------- ### Multipack Configuration Example Source: https://docs.nexomc.com/configuration/resourcepack/multipack-feature Defines resource packs with options for requirements, defaults, and conflicts. Use this to set up custom music and tool styles. ```yaml templates: custom_music: required: false default: false path: "custom_music" 2d_tools: required: false default: true conflicts_with: 3d_tools 3d_tools: required: false default: false conflicts_with: 2d_tools ``` -------------------------------- ### Dynamic Documentation Query Source: https://docs.nexomc.com/mechanics/furniture-mechanic/hitbox/interaction-hitbox Perform an HTTP GET request to query documentation dynamically with the 'ask' query parameter. ```http GET https://docs.nexomc.com/mechanics/furniture-mechanic/hitbox/interaction-hitbox.md?ask= ``` -------------------------------- ### Glyph Configuration with Namespaces Source: https://docs.nexomc.com/community-guides/vendors Example of configuring glyphs in Nexo, demonstrating the use of multiple namespaces for textures and fonts. ```yaml santa_claus: texture: nexomc:santa_claus font: nexomc:christmas_glyphs ... ``` -------------------------------- ### Querying Documentation via HTTP GET Source: https://docs.nexomc.com/mechanics/custom-block-mechanics/noteblock-mechanic/stripped-log-mechanic To get more information not present on the page, make an HTTP GET request to the current URL with an 'ask' query parameter containing your question. ```http GET https://docs.nexomc.com/mechanics/custom-block-mechanics/noteblock-mechanic/stripped-log-mechanic.md?ask= ``` -------------------------------- ### Querying Documentation Dynamically Source: https://docs.nexomc.com/general-usage/commands To get information not explicitly present on this page, perform an HTTP GET request with the 'ask' query parameter. The response will include a direct answer and relevant excerpts. ```http GET https://docs.nexomc.com/general-usage/commands.md?ask= ``` -------------------------------- ### Item Model Builder Example Source: https://docs.nexomc.com/configuration/resourcepack/multipack-feature This example demonstrates using the ItemModelBuilder to create custom items, combining different models. Refer to the ItemModel Builder documentation for more details. ```yaml base_item: item_model: type: "composite" models: - type: model model: "item/diamond_sword" - type: model model: "item/diamond" ``` -------------------------------- ### Alternative ItemModel Component Setup Source: https://docs.nexomc.com/configuration/items/itemmodel-builder/reference-itemmodel This alternative setup uses the `item_model` component, which can be used when relying on CustomModelData. It's an alternative to directly setting the ItemModel. ```yaml myitem: Pack: texture: namespace:mytexture Components: item_model: namespace:myitem ``` -------------------------------- ### Text Entity Configuration Example Source: https://docs.nexomc.com/mechanics/furniture-mechanic/text-entities Example of configuring a Text-Entity for an armchair, including text content with formatting, line width, opacity, and alignment. This configuration is part of the furniture's mechanics. ```yaml arm_chair: itemname: Arm Chair material: PAPER Pack: model: nexo:item/nexo_furniture/arm_chair dyeable_model: nexo:item/nexo_furniture/arm_chair_dyeable custom_model_data: 1005 Mechanics: furniture: # Also allows a list of text_entities; # text_entities: # - text: "something" # - text: "something2" text_entity: # / text_entities offset: 1,1,1 text: - test hisome text to test gradientsssssstest - aaa aaaaaaahtest test again tracking_rotation: CENTER text_opacity: -1 line_width: 200 alignment: LEFT shadow: false see_through: false translation: 0,0,0 ``` -------------------------------- ### Querying Documentation with 'ask' Parameter Source: https://docs.nexomc.com/compatibility/mythicmobs-custom-mobs Demonstrates how to dynamically query documentation for additional information using an HTTP GET request with the 'ask' query parameter. ```http GET https://docs.nexomc.com/compatibility/mythicmobs-custom-mobs.md?ask= ``` -------------------------------- ### Query Documentation Dynamically Source: https://docs.nexomc.com/community-guides/api Perform an HTTP GET request to the documentation URL with the 'ask' query parameter to get specific information. The question should be natural language and self-contained. ```http GET https://docs.nexomc.com/community-guides/api.md?ask= ``` -------------------------------- ### NexoItem Example for a 2D NexoItem with just a Texture provided Source: https://docs.nexomc.com/configuration/items/itemmodel-builder/reference-itemmodel This example shows how to define a 2D NexoItem by providing only a texture. NexoMC will automatically generate the Model file based on the item ID. ```yaml myitem: Pack: texture: namespace:mytexture #References assest/namespace/textures/mytexture.png ItemModel: type: model model: myitem # When only a texture is provided, Nexo generates the Model for ``` -------------------------------- ### Querying Documentation Dynamically Source: https://docs.nexomc.com/mechanics/custom-block-mechanics To get additional information not explicitly on a page, perform an HTTP GET request with the 'ask' query parameter. The question should be specific and in natural language. ```http GET https://docs.nexomc.com/mechanics/custom-block-mechanics.md?ask= ``` -------------------------------- ### Querying Documentation Source: https://docs.nexomc.com/addons/core-shaders/text-effects-by-akis To get more information not present on the page, make a GET request to the page URL with an 'ask' query parameter containing your question. ```http GET https://docs.nexomc.com/addons/core-shaders/text-effects-by-akis.md?ask= ``` -------------------------------- ### Query Documentation Dynamically Source: https://docs.nexomc.com/migrate Perform an HTTP GET request on the current page URL with the `ask` query parameter to get specific information. The question should be specific, self-contained, and in natural language. ```http GET https://docs.nexomc.com/migrate.md?ask= ``` -------------------------------- ### Querying Documentation via HTTP GET Source: https://docs.nexomc.com/mechanics/furniture-mechanic/light-mechanic To get specific information not present on the page, perform an HTTP GET request with an 'ask' query parameter. The question should be in natural language. ```http GET https://docs.nexomc.com/mechanics/furniture-mechanic/light-mechanic.md?ask= ``` -------------------------------- ### Query Documentation Source: https://docs.nexomc.com/mechanics/furniture-mechanic/seat-mechanic Perform an HTTP GET request to dynamically query documentation. Use this when information is not explicitly present or requires clarification. ```http GET https://docs.nexomc.com/mechanics/furniture-mechanic/seat-mechanic.md?ask= ``` -------------------------------- ### Query Documentation via HTTP GET Source: https://docs.nexomc.com/configuration/dialogs/dialogbase Use this method to ask specific questions about the documentation. The response includes a direct answer and supporting excerpts. ```http GET https://docs.nexomc.com/configuration/dialogs/dialogbase.md?ask= ``` -------------------------------- ### Query Documentation Dynamically Source: https://docs.nexomc.com/general-usage/faq/itemmodels-vs.-custommodeldata To get information not explicitly present on a page, send a GET request to the page URL with an 'ask' query parameter containing your question. This allows for dynamic retrieval of answers and relevant documentation excerpts. ```http GET https://docs.nexomc.com/general-usage/faq/itemmodels-vs.-custommodeldata.md?ask= ``` -------------------------------- ### Query Documentation Dynamically Source: https://docs.nexomc.com/mechanics/furniture-mechanic/bed-mechanic To get more information not present on the page, send an HTTP GET request to the page URL with an 'ask' query parameter containing your question in natural language. ```http GET https://docs.nexomc.com/mechanics/furniture-mechanic/bed-mechanic.md?ask= ``` -------------------------------- ### RangeDispatch ItemModel Example Source: https://docs.nexomc.com/configuration/items/itemmodel-builder/rangedispatch-itemmodel This example demonstrates how to use the RangeDispatch ItemModel to show different models based on the item's count. It defines thresholds for specific counts and a fallback model. ```yaml custom_diamond: ItemModel: type: range_dispatch property: count entries: - threshold: 1 model: type: model model: namespace:single_custom_diamond - threshold: 2 model: type: model model: namespace:double_custom_diamond - threshold: 10 model: type: model model: namespace:big_custom_diamond fallback: type: model model: namespace:custom_diamond ``` -------------------------------- ### Querying Documentation via GET Request Source: https://docs.nexomc.com/mechanics/furniture-mechanic/text-entities Demonstrates how to query the documentation dynamically for additional information not explicitly present on the page. This is done by appending an 'ask' query parameter to the page URL. ```http GET https://docs.nexomc.com/mechanics/furniture-mechanic/text-entities.md?ask= ``` -------------------------------- ### Custom Slab Configuration Source: https://docs.nexomc.com/addons/carpentry Example configuration for creating a custom slab block. Supports up to 4 variations. ```yaml custom_slab: material: PAPER itemname: Custom Slab Pack: parent_model: block/slab texture: nexo:items/carpentry_blocks/ashen_oak_planks #textures: # Example if one wants different textures # bottom: block/reinforced_deepslate_bottom # side: block/reinforced_deepslate_side # top: block/reinforced_deepslate_top Mechanics: custom_block: type: SLAB custom_variation: 1 # 1-4 are available ``` -------------------------------- ### Query Documentation Dynamically Source: https://docs.nexomc.com/addons/nexo-creative-inventory To get additional information not directly present on the page, perform an HTTP GET request with the 'ask' query parameter. The question should be specific and in natural language. ```http GET https://docs.nexomc.com/addons/nexo-creative-inventory.md?ask= ``` -------------------------------- ### Example Dialog Configuration Source: https://docs.nexomc.com/configuration/dialogs This snippet demonstrates a comprehensive dialog configuration, including various action types, body types (message and item), and input types (text, boolean, number, and single choice). It showcases the flexibility of Nexo's dialog system. ```yaml type: NOTICE action: label: "Notice Label" tooltip: "Notice Tooltip" width: 150 action: type: RUN_COMMAND command: "nexo inventory" base: title: "Title" externalTitle: "External Title" canCloseWithEscape: true afterAction: CLOSE bodies: message_body: type: MESSAGE message: "Some Message allowing MiniMessage" width: 200 item_body: type: ITEM description: "Some Description" #description: # contents: "Some description" # width: 200 showDecorations: true showTooltip: true width: 16 height: 16 inputs: text_key: type: TEXT width: 200 label: "Text Input Label" labelVisible: true maxLength: 32 initial: "Initial Input Text" multilineOptions: maxLines: 1 height: 32 bool_key: type: BOOL label: "Boolean Input Label" initial: true onTrue: "some_action" onFalse: "some_action" number_key: type: NUMBER width: 200 label: "Number Input Label" labelFormat: "options.generic_value" start: 0 end: 1 initial: 0.5 step: 0.1 single_key: type: SINGLE width: 200 label: "Single Input Label" labelVisible: true options: option_1: display: "First Option" initial: true option_2: display: "Second Option" initial: false ``` -------------------------------- ### StringBlock Mechanic Configuration Example Source: https://docs.nexomc.com/mechanics/custom-block-mechanics/stringblock-mechanic Basic configuration for a StringBlock, specifying its type, custom variation, model, hardness, and drop behavior. ```yaml jasmine_flower: Mechanics: custom_block: type: STRINGBLOCK custom_variation: 2 model: jasmine_flower hardness: 2 drop: silktouch: false ``` -------------------------------- ### Querying Documentation API Source: https://docs.nexomc.com/configuration/dialogs/dialogaction Demonstrates how to query the documentation dynamically using an HTTP GET request with the 'ask' query parameter. This is useful for retrieving specific information not explicitly present on the page. ```http GET https://docs.nexomc.com/configuration/dialogs/dialogaction.md?ask= ``` -------------------------------- ### Querying Documentation with 'ask' Parameter Source: https://docs.nexomc.com/configuration/items/itemmodel-builder/select-itemmodel To get more information not directly on the page, make an HTTP GET request to the page URL with the 'ask' query parameter. The question should be specific and in natural language. ```http GET https://docs.nexomc.com/configuration/items/itemmodel-builder/select-itemmodel.md?ask= ``` -------------------------------- ### Custom Trapdoor Configuration Source: https://docs.nexomc.com/addons/carpentry Example configuration for creating a custom trapdoor block. Supports up to 4 variations. ```yaml custom_trapdoor: material: PAPER itemname: Custom Trapdoor Pack: parent_model: block/template_orientable_trapdoor_bottom texture: nexo:items/carpentry_blocks/ashen_oak_trapdoor Mechanics: custom_block: type: TRAPDOOR custom_variation: 1 # 1-4 are available ``` -------------------------------- ### Querying Documentation Dynamically Source: https://docs.nexomc.com/compatibility/placeholderapi To get information not explicitly present on this page, perform an HTTP GET request to the page URL with the 'ask' query parameter. The question should be specific and in natural language. ```http GET https://docs.nexomc.com/compatibility/placeholderapi.md?ask= ``` -------------------------------- ### Custom Stair Configuration Source: https://docs.nexomc.com/addons/carpentry Example configuration for creating a custom stair block. Supports up to 4 variations. ```yaml custom_stair: material: PAPER itemname: Custom Stair Pack: parent_model: block/stairs texture: nexo:items/carpentry_blocks/ashen_oak_planks #textures: # Example if one wants different textures # bottom: block/reinforced_deepslate_bottom # side: block/reinforced_deepslate_side # top: block/reinforced_deepslate_top Mechanics: custom_block: type: STAIR custom_variation: 1 # 1-4 are available ``` -------------------------------- ### Query Documentation with 'ask' Parameter Source: https://docs.nexomc.com/community-guides To get specific information not directly on a page, perform an HTTP GET request to the page URL with the 'ask' query parameter. The question should be clear and self-contained. ```http GET https://docs.nexomc.com/community-guides.md?ask= ``` -------------------------------- ### Gif-Glyph Configuration Example Source: https://docs.nexomc.com/configuration/glyphs/animated-glyphs Configure an animated glyph by specifying the GIF file path, ascent, and height. Optional parameters like frame_count and offset can be used for optimization and precise alignment. ```yaml necoflap: gif: nexo:gifs/necoflap.gif ascent: 9 height: 11 #frame_count: X Optional, mainly used for limiting larger GIFs #offset: X Mainly if the GIF is not overlapping frames perfectly ``` -------------------------------- ### Conditional ItemModel Example Source: https://docs.nexomc.com/configuration/items/itemmodel-builder/condition-itemmodel This example demonstrates how to use a Condition ItemModel to display a different model when an item is broken versus when it is not. It utilizes the 'broken' property to determine which model to show. ```yaml custom_sword: ItemModel: type: condition property: broken on_true: type: model model: namespace:custom_sword_broken on_false: type: model model: namespace:custom_sword ``` -------------------------------- ### Reference Glyph Configuration Example Source: https://docs.nexomc.com/configuration/glyphs/reference-glyph This YAML configuration demonstrates how to define a Multi-Bitmap Glyph and then reference individual emojis within it 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 ``` -------------------------------- ### Configuring a Large Wooden Door Source: https://docs.nexomc.com/mechanics/furniture-mechanic/door-mechanic Example configuration for a standard wooden door, including hitbox settings, sounds, and open properties. This snippet demonstrates how to set up a door that toggles its hitbox when opened. ```yaml large_wooden_door: itemname: Large Wooden Door Pack: model: nexo:item/nexo_furniture/large_wooden_door Mechanics: furniture: limited_placing: floor: true hitbox: barriers: 0..1,0..2,0 block_sounds: place_sound: block.wood.place break_sound: block.wood.break properties: translation: 0,1,0 delay: 4t door: open_sound: block.wooden_door.open close_sound: block.wooden_door.close toggle_hitbox_on_open: true open_properties: translation: -0.85,1,0 ``` -------------------------------- ### Querying Documentation via API Source: https://docs.nexomc.com/compatibility/mmoitems To get additional information not explicitly present on the page, make a GET request to the page URL with an 'ask' query parameter containing your question. The response will include a direct answer and relevant excerpts. ```http GET https://docs.nexomc.com/compatibility/mmoitems.md?ask= ``` -------------------------------- ### Query Documentation Dynamically Source: https://docs.nexomc.com/compatibility Perform an HTTP GET request on the current page URL with the 'ask' query parameter to dynamically query the documentation. Use this when the answer is not explicitly present, you need clarification, or want to retrieve related sections. ```http GET https://docs.nexomc.com/compatibility.md?ask= ``` -------------------------------- ### Custom Elytra Configuration Example Source: https://docs.nexomc.com/configuration/custom-armors/custom-elytras-1.21.2%2B This snippet shows the YAML configuration for a custom elytra, including its item name, material, texture reference, and equippable component details. ```yaml forest_elytra: itemname: "Forest Elytra" material: ELYTRA Pack: texture: nexo:item/nexo_armor/forest_elytra_icon Components: equippable: slot: CHEST asset_id: nexo:forest_elytra ``` -------------------------------- ### Shapeless Recipe Example Source: https://docs.nexomc.com/general-usage/recipes Defines a shapeless recipe where ingredients can be placed in any order. The 'amount' field specifies the quantity of the resulting item. ```yaml grass_block_shapeless: result: minecraft_type: GRASS_BLOCK amount: 2 ingredients: A: minecraft_type: MOSS_CARPET B: minecraft_type: DIRT C: minecraft_type: DIRT ``` -------------------------------- ### MythicMobs Custom Mob Configuration Source: https://docs.nexomc.com/compatibility/mythicmobs-custom-mobs Example configuration for a MythicMob, demonstrating how to equip items and define drops using NexoItem IDs. ```yaml ExampleMob: Type: WITHER_SKELETON Equipment: - IRON_HELMET HEAD - nexo:forest_sword HAND - nexo:forest_shield OFFHAND Drops: - nexo forest_chestplate 1to2 1.0 - #nexo itemid amount probability ``` -------------------------------- ### Furnace, Blasting, and Smoking Recipe Example Source: https://docs.nexomc.com/general-usage/recipes Configures a recipe for smelting operations, such as furnace, blasting, or smoking. It specifies the input item, the resulting item, and associated experience points and cooking time. ```yaml raw_iron_block_to_iron: result: minecraft_type: IRON_INGOT amount: 9 input: minecraft_type: RAW_IRON_BLOCK cookingTime: 100 experience: 20 ``` -------------------------------- ### Stonecutting Recipe Example Source: https://docs.nexomc.com/general-usage/recipes Defines a recipe for the stonecutter block, transforming one type of log into its stripped variant. ```yaml stripped_spruce_log: result: minecraft_type: STRIPPED_SPRUCE_LOG input: minecraft_type: SPRUCE_LOG ``` -------------------------------- ### Reference ResourcePack File in Config Source: https://docs.nexomc.com/general-usage/faq Example demonstrating how to reference PNG textures or JSON models within NexoMC configuration files. It shows the correct format for specifying textures and models using their namespace and file path. ```yaml myitem: Pack: # assets/minecraft/models/item/paper.json model: minecraft:item/paper.json # assets/nexo/textures/item/nexo_defaults/forest_axe.png texture: nexo:item/nexo_defaults/forest_axe ``` -------------------------------- ### Sound Action Source: https://docs.nexomc.com/mechanics/custom-mechanic Example of playing a sound effect with customizable source, volume, and pitch. The sound key follows the namespace:soundkey format. ```yaml myitem: Mechanics: custom: mycustom: event: "CLICK:right:all" actions: - "{source=AMBIENT volume=0.1 pitch=1} [sound] namespace:soundkey" ``` -------------------------------- ### Shulker Hitbox Configuration Source: https://docs.nexomc.com/mechanics/furniture-mechanic/hitbox/shulker-hitbox Example configuration for shulker entity hitboxes. Parameters include offset, scale, and length. Direction defaults to UP if not specified. ```yaml myitem: Mechanics: furniture: hitbox: shulkers: # - offset scale length direction visible - 0,0,0 1.0 1.0 - 1,0,0 1.2 1.5 EAST - -1,0,0 0.8 2.0 UP ``` -------------------------------- ### Configure Custom Harness Source: https://docs.nexomc.com/configuration/custom-mob-armor-1.21.2%2B/custom-harness-1.21.6%2B Example configuration for a custom harness item. Specifies item properties, resource pack details for textures, and entity type restrictions for equippable components. ```yaml forest_harness: type: PAPER itemname: "Forest Harness" Pack: parent_model: item/generated texture: nexo:items/nexo_armor/forest_harness_icon CustomArmor: harness: nexo:items/nexo_armor/forest_harness Components: equippable: allowed_entity_types: [ HAPPY_GHAST ] slot: BODY ``` -------------------------------- ### Example Custom Armor Configuration (Ruby Helmet) Source: https://docs.nexomc.com/configuration/custom-armors/trims This YAML snippet shows how to configure a custom armor item, specifically a Ruby Helmet, using the TRIMS type. It specifies the display name, material, and texture path. The 'Pack' section includes optional settings for custom armor layers and the base texture. ```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 ``` -------------------------------- ### Full GUI Menu Configuration Source: https://docs.nexomc.com/configuration/resourcepack/multipack-feature Configures a graphical user interface for players to toggle resource packs and cycle through tool styles. Includes item customization and actions. ```yaml templates: custom_music: required: false default: false 2d_tools: required: false default: true conflicts_with: 3d_tools 3d_tools: required: false default: false conflicts_with: 2d_tools menu: title: "Resource Pack Options" rows: 3 slots: music_toggle: offset: x: 3 y: 2 base_item: material: NOTE_BLOCK lore: - "Click to toggle" action: type: TOGGLE target: custom_music enabled_item: itemname: "Music Pack | Enabled" disabled_item: itemname: "Music Pack | Disabled" tool_style: offset: x: 7 y: 2 base_item: material: STICK lore: - "Click to switch style" action: type: CYCLING targets: - id: 2d_tools itemname: "Tools | 2D" - id: 3d_tools itemname: "Tools | 3D" ``` -------------------------------- ### Query Documentation Dynamically Source: https://docs.nexomc.com/addons Use this method to ask questions about the documentation and receive direct answers with relevant excerpts. The question should be specific and self-contained. ```http GET https://docs.nexomc.com/addons.md?ask= ``` -------------------------------- ### Select ItemModel Example: Renamed Diamond Source: https://docs.nexomc.com/configuration/items/itemmodel-builder/select-itemmodel This example demonstrates how to use a Select ItemModel to display a different model when an item has been renamed by a player. It checks the 'custom_name' component and provides specific models for a renamed diamond and a list of other named diamonds, with a fallback model. ```yaml custom_diamond: ItemModel: type: select property: component component: custom_name cases: - when: "Renamed Diamond" model: type: model #References assest/namespace/models/renamed_diamond.json model: namespace:renamed_diamond - when: # When can also be a list of conditions here - "Diamond1" - "Diamond2" model: type: model model: namespace:multiple_diamonds # A Fallback ItemModel in case none of the cases match fallback: type: model model: namespace:custom_diamond ``` -------------------------------- ### Getting Nexo ResourcePack Hash with PlaceholderAPI Source: https://docs.nexomc.com/compatibility/placeholderapi Retrieve the current hash of the Nexo ResourcePack using this placeholder. ```plaintext %nexo_pack_hash% ``` -------------------------------- ### ITEM Connection Configuration (pre-1.21.1) Source: https://docs.nexomc.com/mechanics/furniture-mechanic/connectable-furniture Configures connectable furniture using the ITEM type for versions prior to 1.21.1. Relies on NexoItems for model selection. ```yaml connectable: itemname: Connectable Pack: model: nexo:items/nexo_furniture/connectable/connectable Mechanics: furniture: connectable: type: ITEM default: connectable straight: connectable_straight left: connectable_left right: connectable_right inner: connectable_inner outer: connectable_outer hitbox: barriers: - 0,0,0 #Dummy NexoItems for linking to a Model connectable_straight: excludeFromInventory: true excludeFromCommands: true Pack: model: nexo:item/nexo_furniture/connectable/connectable_straight connectable_left: excludeFromInventory: true excludeFromCommands: true Pack: model: nexo:item/nexo_furniture/connectable/connectable_left connectable_right: excludeFromInventory: true excludeFromCommands: true Pack: model: nexo:item/nexo_furniture/connectable/connectable_right connectable_inner: excludeFromInventory: true excludeFromCommands: true Pack: model: nexo:item/nexo_furniture/connectable/connectable_inner connectable_outer: excludeFromInventory: true excludeFromCommands: true Pack: model: nexo:item/nexo_furniture/connectable/connectable_outer ``` -------------------------------- ### NexoItem Configuration with ITEM_MODEL Source: https://docs.nexomc.com/mechanics/furniture-mechanic/connectable-furniture This YAML configuration sets up a 'Connectable' item using the ITEM_MODEL mechanic. It specifies the 'item_model' component, linking to the 'nexo:connectable/connectable' ItemModel, and defines basic furniture hitbox properties. ```yaml connectable: itemname: Connectable Components: item_model: nexo:connectable/connectable Mechanics: furniture: connectable: type: ITEM_MODEL hitbox: barriers: - 0,0,0 ``` -------------------------------- ### Permission Condition Source: https://docs.nexomc.com/mechanics/custom-mechanic Example of how to add a permission check as a condition for a custom mechanic. The mechanic will only trigger if the player has the specified permission. ```yaml myitem: Mechanics: custom: mycustom: conditions: - "HAS_PERMISSION:some.permission" ``` -------------------------------- ### Build and Get Custom Items Source: https://docs.nexomc.com/community-guides/api Use the ItemBuilder to create custom items from an ID and retrieve an item's ID from an ItemStack. ```java ItemBuilder itemBuilder = NexoItems.itemFromId(itemID); ItemStack itemStack = itemBuilder.build(); String itemId = NexoItems.idFromItem(itemStack); ``` -------------------------------- ### Applying Mining Fatigue Effect Source: https://docs.nexomc.com/configuration/items/components Example of applying a mining fatigue effect to an item. Specifies duration, amplifier, and visual settings. ```yaml APPLY_EFFECTS: mining_fatigue: duration: 10t amplifier: 1 ambient: false show_icon: true show_particles: true probability: 1.0 ``` -------------------------------- ### Simple Custom Trident (NexoItem) Source: https://docs.nexomc.com/mechanics/custom-trident A basic NexoItem configuration for a custom trident, letting Nexo generate the ItemModel. Specify models for both regular and throwing states. ```yaml forest_trident: itemname: Forest Trident material: TRIDENT Pack: model: nexo:item/nexo_tools/forest_trident throwing_model: nexo:item/nexo_tools/forest_trident_throwing Mechanics: trident: display_transform: HEAD ``` -------------------------------- ### Place Custom Furniture Source: https://docs.nexomc.com/community-guides/api Use the NexoFurniture class to place custom furniture in the world, optionally specifying the player who placed it. ```java NexoFurniture.place(itemID, location, @Nullable player) ``` -------------------------------- ### NexoItem Configuration for Basic ItemModels Source: https://docs.nexomc.com/mechanics/furniture-mechanic/connectable-furniture This YAML configuration is for a 'Connectable' item that uses basic ItemModels for each connection state. It requires specifying the different ItemModels to be used. ```yaml connectable: itemname: Connectable ``` -------------------------------- ### Disabling Recipes Source: https://docs.nexomc.com/general-usage/recipes Shows how to disable specific recipes by listing their keys in the `disabled_recipes.yml` file. This example demonstrates disabling a vanilla Minecraft recipe. ```yaml minecraft:vanilla_recipe ``` -------------------------------- ### ResourcePack Structure with NONE Obfuscation Source: https://docs.nexomc.com/configuration/plugin-settings Illustrates the directory structure of a ResourcePack when NONE obfuscation is applied, retaining original paths. ```makefile 📁ResourcePack └── 📁assets └── 📁custom_namespace └── 📁models └── 📑custom_model.json ``` -------------------------------- ### ResourcePack Structure with FULL Obfuscation Source: https://docs.nexomc.com/configuration/plugin-settings Demonstrates the ResourcePack structure when FULL obfuscation is used, obscuring both filenames and directory paths. ```makefile 📁ResourcePack └── 📁assets └── 📁0d003f53-e176-4e74-a895-d392c82f50be └── 📁models └── 📑02a61ae4-2457-4dfa-91af-9598cd52fd9e.json ``` -------------------------------- ### Shaped Recipe Example Source: https://docs.nexomc.com/general-usage/recipes Creates a shaped recipe for a custom item, 'forest_axe'. It utilizes Minecraft tags for ingredients and defines a specific crafting shape. ```yaml forest_axe: result: nexo_item: forest_axe ingredients: A: tag: minecraft:leaves B: minecraft_type: STICK shape: - _AA - _BA - _B_ ``` -------------------------------- ### Custom Bars Configuration Source: https://docs.nexomc.com/addons/carpentry Configure custom bars by specifying the material, item name, parent model, and texture. This setup is used for custom block types. ```yaml custom_bars: material: PAPER itemname: Custom Bars Pack: parent_model: block/template_bars texture: my_texture/path Mechanics: custom_block: type: BARS ``` -------------------------------- ### Add Nexo Repository and Dependency Source: https://docs.nexomc.com/community-guides/api Configure your project's build file to include the Nexo repository and add the Nexo API dependency. ```kotlin repositories { maven("https://repo.nexomc.com/releases") } dependencies { compileOnly("com.nexomc:nexo:") //Nexo 1.X -> 1.X.0 } ``` -------------------------------- ### Custom Trident with Separate Throwing Model (1.21.1+) Source: https://docs.nexomc.com/mechanics/custom-trident Configure a custom trident with a distinct model for when it is thrown. This setup uses two NexoItem configurations for different states. ```yaml forest_trident: itemname: Forest Trident material: TRIDENT Pack: model: nexo:item/nexo_tools/forest_trident Mechanics: trident: thrown_item: forest_trident_throwing display_transform: HEAD forest_trident_thrown: excludeFromCommands: true excludeFromInventory: true Pack: model: nexo:item/nexo_tools/forest_trident_throwing ``` -------------------------------- ### MMOItems in NexoRecipes Source: https://docs.nexomc.com/compatibility/mmoitems Utilize MMOItems as ingredients or results in NexoRecipes. Similar to drops, specify `mmoitems_id` and `mmoitems_type`. This example shows a shaped recipe using an MMOItem as an ingredient. ```yaml myrecipeid: result: mmoitems_id: FALCON_BLADE mmoitems_type: SWORD ingredients: A: mmoitems_id: FALCON_BLADE mmoitems_type: SWORD shape: - "___" - "___" - "_A_" ``` -------------------------------- ### Custom Trident ItemModel (1.21.4+) Source: https://docs.nexomc.com/mechanics/custom-trident An example ItemModel that conditionally applies different models based on whether the item is being used. This allows for distinct visual states for throwing and idle. ```json { "model": { "type": "minecraft:condition", "property": "minecraft:using_item", "on_false": { "type": "minecraft:model", "model": "nexo:item/nexo_tools/forest_trident" }, "on_true": { "type": "minecraft:model", "model": "nexo:item/nexo_tools/forest_trident_throwing" } } } ``` -------------------------------- ### StringBlock Configuration: Random Place Source: https://docs.nexomc.com/mechanics/custom-block-mechanics/stringblock-mechanic Configures a StringBlock to randomly place one of several specified StringBlocks upon placement. Includes examples for multiple random place configurations. ```yaml random_place: Mechaincs: custom_block: type: STRINGBLOCK custom_variation: 1 random_place: - random_place - random_place2 - random_place3 random_place2: Mechanics: custom_block: type: STRINGBLOCK custom_variation: 2 random_place3: Mechanics: custom_block: type: STRINGBLOCK custom_variation: 3 ``` -------------------------------- ### Basic Light Mechanic Configuration Source: https://docs.nexomc.com/mechanics/furniture-mechanic/light-mechanic Configure a furniture item to emit light with a specified offset and light level. The default is non-toggleable. ```yaml myitem: Mechanics: furniture: lights: #toggleable: false # Default is false #toggled_model: some_nexo_item # The NexoItem to show when light is on #toggled_item_model: namespace:model # The ItemModel to use when light is on lights: - 0,0,0 15 # x,y,z lightLevel ``` -------------------------------- ### Custom Mechanic Example Source: https://docs.nexomc.com/mechanics/custom-mechanic Defines a custom mechanic named 'test' triggered by a right-click. It checks for player permission and executes a console command if the condition is met. The item is not consumed. ```yaml myitem: Mechanics: custom: test: one_usage: false event: "CLICK:right:all" conditions: - "#player.hasPermission(\"example.permission\")" actions: - "[console] give cooked_beef 1" ``` -------------------------------- ### Basic Custom Sound Configuration Source: https://docs.nexomc.com/configuration/sounds Configure a basic custom sound by specifying its ID and the associated sound file. This is the minimum required for a custom sound. ```yaml sounds: - id: block.custom.mysound # id: namespace:id sound: nexo:mysound.ogg # References assets/nexo/sounds/mysound.ogg #sounds: # Optional, list of sounds where a random will be selected # - mysound.ogg # - mysound2.ogg ``` -------------------------------- ### Implement Custom PackServer in Java Source: https://docs.nexomc.com/community-guides/api Extend NexoPackServer and override methods to create a custom pack server. This is used when Nexo's provided PackServer types are insufficient. ```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() } ``` -------------------------------- ### ResourcePack Structure with SIMPLE Obfuscation Source: https://docs.nexomc.com/configuration/plugin-settings Shows the ResourcePack structure with SIMPLE obfuscation, where only filenames are obfuscated, preserving the directory layout. ```makefile 📁ResourcePack └── 📁assets └── 📁custom_namespace └── 📑02a61ae4-2457-4dfa-91af-9598cd52fd9e.json ``` -------------------------------- ### Advanced Custom Sound Properties Source: https://docs.nexomc.com/configuration/sounds Utilize advanced properties to fine-tune custom sound behavior, such as streaming, preloading, volume, pitch, and attenuation. This configuration is useful for more complex sound setups. ```yaml #https://minecraft.wiki/w/Sounds.json sounds: - id: nexo:music.something sound: nexo:music/something.ogg sounds: # Alternative if you have more than 1 sound-file - nexo:music/something.ogg - nexo:music/something2.ogg stream: true # Optional, defaults to false preload: true # Optional, defaults to false volume: 1f # Optional, defaults to 1f pitch: 1f # Optional, defaults to 1f weight: 1 # Optional, defaults to 1 attenuation_distance: 13 # Optional, defaults to 16 jukebox_playable: # Optional, Used for registering a custom music-disc sound comparator_output: 15 # Optional, defaults to 15, must be in 1..15 range: X # Optional, If omitted, the sound will have a variable range. duration: 2.5s description: Description ``` -------------------------------- ### Creating a Custom Music Disc NexoItem Source: https://docs.nexomc.com/configuration/custom-music-discs Configure a NexoItem to act as a custom music disc by referencing a registered sound ID using the `jukebox_playable` component. Custom textures can be applied via the `Pack` section. ```yaml my_music_disc: itemname: My Music Disc material: PAPER Pack: texture: namespace:discs/my_music_disc Components: jukebox_playable: song_key: namespace:my.sound ```