Voxel Shop beta is live. Expect occasional bugs. Learn more
Custom Blocks, Items, Furniture, ResourcePack & more
[Fixes]
- Badly converted BBModels causing rest of pack to break
- Placing furniture with Entity-hitboxes causing error
- Issue with Glyphs in scoreboards and other places in some scenarios
reimplement_noteblock setting is enabledworld/worlds option to ALLOW/DENY with.bbmodel in your NexoPack and reference in configs.myitem:
Pack:
model: namespace:bbmodel # Referenced just like a normal JSON Model file #assets/namespace/models/x
Pack.generation.merge_textures in settings.yml | NONE, SIMPLE & FULLSelfHost-PackServer not working due to bad Setting handling
Issue reading some ItemModels due to lacking 26.1 transformation-logic
Issues with Textures not loading for CustomModelData-setups due to bad Atlas-handling
Incomplete vectors in configs causing issues
PackObfuscator producing different pack when external-pack contained one or more PackOverlays
NexoInventory containing outdated and invalid item
Incorrect break-hardness for custom blocks with empty hand
Reloading Nexo causing desync with Furniture-TextEntities
Shapeless recipes not accepting amount for ingredients
Issues with parsing MM tags when it should not in some packets
MMOItems not supported in Furniture & CustomBlock Drops
Remove debug error for NexoPaintings loading successfully
Issues with FurnitureDoor not properly opening consistently
Issues with Harness CustomArmor logic
Issues with using NexoItems as templates for other NexoItems
Models with 1.21.6-8 format assumed to be 1.21.11+ only
Interaction-hitboxes locked to block-grid when teleported
NexoCreativeInventory fixes for Velocity servers
Limit size of packets to not hit limits
CustomArmor not always generating, especially for harness
Add equip_on_interact, can_be_sheared & shear_sound to Equippable-Component
Allow specifying left_rotation & right_rotation in FurnitureProperties as angles
Split Textures between ITEMS & BLOCKS Atlas for 1.21.11+ Clients
Makes item-textures not affect mipmap level (not required to use ^2 resolutions anymore)
Fixes issues where blocks and items using the same texture would cause conflicts sometimes
By default this is disabled behind a temporary legacy_atlas setting whilst finalizing CMD fixes
26.1.1 support
Recommend waiting until PaperMC releases stable builds
NexoProxy Addon-hook
BlockSounds for custom/vanilla-replaced blocks sometimes getting stuck in WorldGuard zones etc
Bad WorldEdit block-cast causing issues with CustomBlocks
Pack incorrectly assuming to always use PackFormat based on ServerVersion
Ignored MCMeta causing issues for 1.21.11+ server supporting older clients
Account for MultiBitmap Glyphs when validating font texture-usage
ItemModel-Builder in templates not properly parsing TemplatePlaceholders deeply nested
StoredEnchantments not kept when updating NexoItem (Enchanted Books)
Locale used for translations not updated internally when player changes Language setting
WorldGuard blocking storage breaking Furniture seats
Furnace recipe-builder not accepting experience values
PackObfuscator not working since 1.20
Glyph tags not parsed in Death-Screen
<lore> template placeholder rendering literally when item has no lore
Nexo items substituting vanilla materials in custom recipes
Text after glyph not rendering in scoreboard
1.21.6 non-22.5-increment single angles not accounted for
Allow Durations to be defined with multiple DurationUnits (100s -> 1m40s)
Split S3 PackServer logic between endpoint- & public urls for upload/download
PackValidator: Now detects invalid PNG files (such as JPEGs renamed to .png) and attempts to fix them automatically.
New Placeholders: Added <model> and <texture> placeholders for ItemTemplates. These reference itemid.Pack.model/texture if specified; otherwise, they default to ItemId.
Async Furniture-Packet Handling: Significantly improves performance for larger servers or those utilizing a high volume of furniture.
Sprite-Animated Glyphs (1.21.10+): * More performant than shader-based animations.
Best used for GIF-style emotes in chat (size is locked like a normal sprite object).
Added an optional type (SPRITE/SHADER) to the Glyph config.
New settings.yml default: SPRITE for 1.21.10+, SHADER for versions below 1.21.10.
NexoCreativeInventory Hook: Integration with the NexoCreativeInventory addon mod to display NexoItems in Creative Inventory menus.
FurnitureTextEntity Mechanic: Allows you to attach one or more TextDisplay entities to furniture to display text, glyphs, or other information.
SELFHOST PackServer type not working due to changes in 1.19
Issues with AttributeModifiers from 1.19
Swap operation in AttributeModifiers to Enum over int (ADD_NUMBER, ADD_SCALAR, MULTIPLY_SCALAR_1)
Convert old AttributeModifiers from HAND slot to MAINHAND
Allow parent as alias for parent_model
AttributeModifier values not properly stacking when equipping several items
Remove old AttributeModifier properties from config that breaks them
StoneCutting recipes not supporting permissions properly
Issues with Shapeless recipes not loading
NexoItems allowed in recipes based on Material when is_allowed_in_vanilla_recipes is disabled
Default EquipSound & DamageOnHurt for Glider/Elytra items in Equippable component
ElementRotation being serialized to <1.21.10 format when it should be 1.21.11
Bad PaintingAtlas entries for non custom values
Nexo using bad "min" version for PackFormat causing 1.21.11 issues
Exception thrown for Folia servers & furniture evolution mechanic & other minor Folia issues
ModelEngine-Furniture being offset by 0.5 blocks on placed
MythicMobs FancyDrop using Nexo-Items failing to register
Wack nullpointer issue from some scoreboard plugins sending bad data
Obfuscator sometimes giving a new pack when reloading/restarting Nexo
Issue with parsing array-tints for custommodeldata entries in ItemModels
Exception thrown when interacting with CustomBlocks on older versions
Issue with Stackable feature not properly allowing more than 1 entry
Allow float-based exp for Furnace-Recipes
Move stored plain-text rename text in CustomData not PDC
If PackFormat is set to min 75, always write with Modern rotations
Legacy Models for 1.21.1-3 moved into Overlays
Stops from overriding client resourcepacks (low shield etc) when not needed
Only register PacketHandling for FurniturePackets if mechanic is enabled
Config-driven ItemModel Builder for NexoItems
Simplifies process of making complex Items
Documentation can be found here
- Recipe issue caused by newer Paper changes for 1.21.11, breaking recipes on <1.21.10
- Vanilla furnace-recipes potentially blocked if equal to nexo recipe
Ghast FurnitureHitboxes not being removed properly unless relogging
Issues with FurnitureLight lookups for large servers
Ensure DirectionalBlocks cannot parent-block itself
Placing blocks/entities against furniture not always working
Placing signs with SignData against CustomBlocks opening the Sign Editor
Models using 1.21.11 format & <1.21.10 always writing to <1.21.10, when intended is 1.21.11+
supported_formats written to pack.mcmeta when format is 75+
FurnitureDoor not respecting cancelled events (e.g. WorldGuard)
Handle rotations for 1.21.11 better by providing PackFormat
Improve ResourcePack version handling with multi-support in the deserialization/serialization process
Pack.generation.force_oversized_in_gui setting not working correctly in overlays and other ItemModels
Ensure NexoItems in Ender Chests are updated
Painting atlas issue on <1.21.4 servers
Deprecate postUpdate(itemStack) in UpdateCallback
Add postUpdate(itemId, itemStack, preUpdateItemStack)
Add NexoItems#postUpdate with Java functions for easier implementations
Make UpdateConverter Java-based to better support undefined deprecated functions in Java projects
Properly obfuscate PBR textures:
_n (Normal maps)
_s (Specular maps)
Use Component for AttributeModifiers for 1.21.2+
Unchanged for older versions
Allows changing tooltip text display behavior (1.21.6+)
Stackable StringBlock Mechanic
Place multiple string-blocks into the same block to alter the model used
Acts similarly to Cherry Blossom Petals and other vanilla mechanics
Issues with Shapeless Recipes
Ghast-Type FurnitureHitbox not working
Translation-offset for FurnitureHitboxes against non-full blocks
broken_modelbroken_texture not generated properly into ItemModels
cast_modeltexture not generated properly into ItemModels
Potential FurnitureBed nullpointer when dismounting/disconnecting whilst in bed
StringBlock#require_supporting not handled when supporting block is broken by other block or decays
NexoConverter not properly saving changes to config
Shulker & Ghast FurnitureHitboxes not registered for findTargetFurnitureHitbox (PickBlock, etc.)
Do not warn about Mipmap issue for 1.21.11+ servers if texture is in Items Atlas
Potentially fix issues with WorldGuard flags and priority
Add missing furniture.lookup_block_on_light_remove to mechanics.yml
Remove old debug commands
Allow single element entries for FurnitureSeat & FurnitureBed configs
Minimum Attack Charge being set to 1 if unspecified on 1.21.11
PackGeneration potentially timing out if ModelEngine failed to load or takes too long
Support for Pack.composite_textures for automatically stacking textures on an item
Explicitly specified empty Drop.loots being ignored and item dropping itself
Paintings not registered in atlas depending on directory used
Issues with Trims for 1.21.11 clients on a 1.21.10 or older server
Issues with Models on <1.21.10 clients on a 1.21.11+ server
Issue when shutting down server whilst a FurnitureBed is being used
Â
Call NexoFurnitureInteractEvent even if player is blocked (called in cancelled state)
Improve spawning & performance of FurnitureBeds
Â
Add Misc#prevent_breaking
Prevents an item from breaking when it has 1 use left
Can be used together with Pack.broken_modelbroken_texture to display another model/texture when reaching this state
New Directional-Block type BARREL
Used to make a block with 6 identical rotated facings like a vanilla barrel
Same as DROPPER, takes north, west, south, east, up & down facings
Improve Furnace-recipes which require permissions by tracking original player better
Missing Shader-overlays for 1.21.11 clients
Vanilla & trimmed armor-icons not showing on 1.21.11 clients
Support for new ElementRotation format from 1.21.11
Missing particle reference in Nexo-generated models causing clientlog spam
Add missing entries for furniture-section in mechanics.yml
Use existing ItemModel if overriden as fallback
Minor issues with ItemsAdder-converter
Folia issues related to TridentMechanic & FurnitureSeats
Models using 1.21.11+ format but still within bounds of 1.21.8 not being converted
Clamp Models using 1.21.11+ rotations (above/below -45..45 range) for players below 1.21.11
PlaceholderAPI Tag not being correctly added to tag-resolvers always
ModelEngine furniture not being visible when reloading/updating NexoFurniture
EnergyBlast-Mechanic not working on Folia
Dont validate ElementRotations for 1.21.11+
Reset-CMD command not removing empty Pack section
Bad ItemModel logic when using ItemTemplate in NexoItem with prefer_item_mnodels enabled
FurnitureBed triggering unnecessary spawn-events causing performance loss in large scale usage
Issues with Sapling placement & timings ( @taiyouh )
Allow vanilla Models to be bused for Nexo-Generated ItemModels
Adventure-mode by default being allowed to rotate furniture
Minor optimizations to furniture
Make ItemModel the default method for 1.21.11+ servers over CustomModelData
Split Glyph-handling of Items in inventory & cursor to fix ghost-items due to client/server desync
Added new setting Plugins.formatting.cursor to enable it fully again
Improves ghosting but adds slight delay when putting item in inventory where glyph tags are formatted
Add Pack.generation.force_oversized_in_gui to specify default oversized logic for all items
Add setting to mechanics.yml to not lookup block in-world for removing furniture-lights
Add settings to toggle off individual Anti-Cheat hooks
Tag-support for Backpack-Mechanic Blacklist ( @taiyouh )
Add Mechanics.trident.sounds
Adds hit, hit_ground, throw, return sounds
Defaults to playing sounds vanilla does when unspecified
- Models & Textures not working on 1.21.11 clients due to new Atlas change
- Issues with generating EquipmentModels correctly on 1.21.4
- Issue extending Mechanic class in API due to Kotlin-only logic
1.21.1 clients crossbow not having overrides on 1.21.4+ servers
.png not removed from Textures in Pack-section with map formatting
CustomBlock with StorageMechanic not allowing shift+place interactions
Missing BlockLocker dependency in paper-plugin.yml
Potential nullpointer for FurnitureBeds on older servers
Interacting with FurnitureDoor not blocking follow-up interactions/placing
Bad Hitbox-rotation for open FurnitureDoors
Rotating Furniture with Axiom snapping back
Issue with using Short & other Number types in PersistentData
NullPointers for experimental "reimplement_note_blocks" setting
Bad max-resolution feedback in PackValidator for Glyphs
Incorrect drop logic for NexoFurniture using SHULKER type StorageMechanic
Issues placing NexoFurniture with ShulkerHitbox next to eachother
Issues with saving ItemConfig values when item uses ItemTemplates
Automatic custommodeldata & custom_variation not being saved to config when using ItemTemplates
NexoConverter changes to NexoItem-Configs not always saved to file
Allow StorageMechanic in all CustomBlock-Mechanics (Carpentry included)
Restructure large parts of NMS-logic into a shared class to lower filesize & repeated code
Internal code & naming changes & refactors
Allow explicit empty list in FurnitureHitbox to override ItemTemplates
Allow inlining & single string-instance for all FurnitureHitbox types
Swap Custom- & Command-Mechanics to Durations (2s, 20t, 1m)
Add trim_material support to NexoItem configs
Add Components.profile & Components.unset_components for 1.21.2+ Servers
Add Nexo/recipes/disabled_recipes.yml to disable Vanilla recipes
Add Plugin.formatting.villagers to disable formatting of Items in Villager Menus
Add require_supporting to Custom String-type blocks (break when connecting block is broken)
Support for 1.21.11
Add kinetic_weapon, piercing_weapon, attack_reach, damage_type, use_effects, minimum_attack_charge, swing_animation
Updated Wiki entry for these components found here
Custom Nautilus & Camel Husk Saddles
Custom Nautilus Armor
Large performance optimizations for Furniture
Mainly benefits Custom Furniture sounds & entity collision checks
Also improved for larger servers with larger playercounts and loads of furniture
Recipe-Permissions not working
Furnace-Recipe permisssion check not working
Invalid Recipe handling for filling ingredients in Recipe Showcase
Placing blocks against furniture not working
Custom-Mechanic event not defaulting unspecified event-type params to all
AttributeModifiers not applying to NexoItems
Charged- & Firework model not working with Nexo-generated ItemModels
PotionContents#customColor being reset by ItemUpdater
Bad NexoItem dropped from Connectable Furniture using ITEM_MODEL type
Incorrect behaviour from templates using <lore> placeholder
Furniture-crops not breaking when farmland_required and farmland is trampled
Modifying Drop in NExoFurnitureBreakEvent not reflected in final drop
Â
Expose title in StorageMechanic
Add StorageMechanic#storageContent
Deprecated & ScheduleForRemoval FurnitureHelper methods, moved into NexoFurniture
Add NexoItems#registerUpdateCallback, lets plugins hook into Nexo to alter pre/post ItemUpdater behaviour of Nexo
Â
Evolution-Mechanic delay -> duration
Removed exclude_modelengine_shaders setting
Inlined Pack.import.modelengine setting
Move some Item-properties to TriState over Boolean?
Make Plugin.formatting.chat_standard_tags not format system-chats if disabled
Add Plugin.formatting.translatable to disable handling of TranslatableComponents
Fixes issue of %s not being formatted
Rename directional_type to type in Directional-Mechanic
Add setting to disable Dialog formatting
Simplified setup for Directional Blocks
No need for dummy NexoItems anymore
Automatically set the custom-variations and all based on defined DirectionalType
Old format is still supported
You can also reuse custom_variation of the parent & 1 child-block (Logs need 3 variations not 4, etc)
Â
NexoITems used in LootTables missing properties
Add /nexo dumpitem command
If no argument, prints out mainhand/offhand of sending player
Can specify a NexoItem ID or player(s) to print out helf item-info for
Add Directory-based files in NexoInventory
Adds new NexoInventory.type to inventory.yml, defaults to FILE
Changing to DIRECTORY makes the NexoInventory organize everything into the corresponding folder structure as found in plugins/Nexo/items
Folder-icon can be customized with NexoInventory.directory_icon
Add Search-button to NexoInventory(1.21.6+)
Can be customized with NexoInventory.search_icon in inventory.yml
Make icon-settings in inventory.yml support ItemModels directly
No need for referencing a NexoItem if you provide an ItemModel in the Nexo ResourcePack
Referenced like all other ResourcePack files, namespace:key
Some Nexo-Subcommands lacking permission nodes
No longer require nexo.command permission to use nexo commands
If set to false, will block all commands
Blocking/Pulling-Model not working properly when prefer_item_models is enabled
Bunch of fixes and tweaks for NexoInventory
Recipe-listeners registering twice on reloading Nexo
ClickAction CLICK-event not supporting left/right/middle clicks
Bad while-loop in take command causing server holdup
Bad conversion of textures lists with single entries in Pack-sections
ArmorEffectrequire_full_set not working as intended
CustomBlock not setting Custom Variation properly for Directional Blocks
Â
Attempt to use newest supported NMS version if "unknown" or too new
Means in general Nexo will work on latest release automatically
Optimizations to CustomBlock-sounds & PDC usage
Optimize FurnitureLight packet-handling
Disable NexoRecipes with permissions from being used in Crafter
Swap away from seconds/ticks in favour of Durations in most places
Durations are formatted like, 2.2s or 10t
seconds, ticks, minutes, hours, days, weeks, months
Applies to ArmorEffect/PotionEffect durations
JukeboxPlayable length_in_seconds -> durations for sounds.yml
properties.delay in FurnitureMechanic
Consumable consume_seconds -> consume_duration
Use Cooldown seconds -> duration
Â
Add PlaceholderAPI-Tag<papi:placeholder>)
These are "client-side" so usage will, like glyphs, not modify the actual tag
- Placing blocks against Decorated Pots & Cauldrons not working
- Improve stream checks for performance (<\@taiyouh >)
- Missing custom Chorus-Block info from blockinfo command
- Parsing of some Conditional ItemModel properties
- Items with ItemTemplates having injectId false and not working
- Invalid dismounting for FurnitureSeats on <1.21.4 servers
- Missing TintSource when merging existing ItemModels
 * Caused items using Leather to not be dyeable with for example ModelEngine
- WorldGuard-Flag issue, interact taking priority over nexo-furniture-interact etc
- Optimize SaplingTask
- Zip External Packs not always merging & obfuscating Overlays properly
- Items with MaxDamage component not losing durability when undamaged
- Glyphs not correctly applying the global shadow property from setitngs.yml if unspecified in tag
- Concurrency issues for Folia servers
Â
- Dropped support for 1.20.4, 1.20.5, 1.20.6, 1.21 (not 1.21.1)
- Optimizations to ItemStack packet-handling to reduce lag & desync
- Moved NexoInventory out of `settings.yml` and into `inventory.yml`
- Move away from CommandAPI for commands
 * Easier to maintian & faster updater with new releases
- Simplify Soulbound Mechanic <\@yeahakis>
- FurnitureSeats now only exist whilst players sit on the furniture
 * Spawn when player interacts with furniture, remove it when they dismount
 * Less entities in world with a lot of seat-furnitureÂ
Â
- 1.21.9 & 1.21.10 support
- Add support for reloading Dialogs without a server-restart
 * New Dialogs will require a full restart to be registered
- Â Add global FurnitureProperties via `default_properties` to mechanics.yml for furniture
- Add setting to change output-path of Nexo's ResourcePack, defaults to `plugins/Nexo/pack/pack.zip`
 * Can be a single entry or a list of multiple entries to copy to
- Add Pack.composite_models` to automatically merge in ItemModels into your NexoItem
- Players being timed out due to bad packet-handling & recursive issue