Voxel Shop beta is live. Expect occasional bugs. Learn more
Custom Blocks, Items, Furniture, ResourcePack & more
Furniture
NexoFurnitureBreakEvent being ignored in some casesnexo-furniture WorldGuard flags not applying to hitboxes, seats and ModelEngine furnitureItems
unbreakable set by other pluginshardness: 0 not breaking instantlyPotionEffects ignoring durations like 10s and the particles and icon keysthrowing_model being ignoredmechanics.yml still running until a restartRecipes
Pack
CustomArmor.id per item, with old setups being converted automaticallydisable_enchanting with the enchantable: 0 component, with old configs being converted automaticallyNexoFurnitureDropEvent for editing furniture dropsNexoItems.registerExternalItem and NexoPreItemsLoadEvent for plugins registering their own itemsNexoFurniture.registerItemOverride for per-player furniture itemscompostable, cooking_fuel, brewing_fuel, interact_animation and attack_animation componentsdisable_components_on_prevent_breaking, which disables tools and weapons kept alive by prevent_breaking until repairedMisc.extended_enchantable, which also blocks anvils and grindstones for items with enchantable: 0preserve to crafting recipe ingredients, so components like enchantments carry over to the resultpreview_placement: true on a furniture, with defaults under furniture.preview_placement in mechanics.yml- Fixed thrown tridents ignoring the configured thrown item, and the return sound playing when picking one up off the ground
- Fixed backpack item filters being bypassed by click-dragging items in
- Fixed Crucible items showing raw item-stat placeholders
- Fixed Glyph shadow-color and hover-text disappearing when a message was made up of only that glyph
- Fixed Nexo translations dropping the arguments of translatable messages
- Fixed team packets from other plugins with placeholder parameters failing to send
- Fixed dialogs with an item in their body failing to register on startup
- Fixed armor items not getting an equippable component assigned automatically
- Fixed Nexo items being usable inside crafters even with `allow_in_vanilla_recipes` turned off
**Furniture**
- Fixed furniture beds not skipping the night on newer servers and not acting like vanilla beds while sleeping
- Fixed players being dismounted inside or below a furniture bed instead of beside it
- Fixed connectable furniture cornering wrongly on parallel rows, ignoring rotated corners and leaving stale shapes on its neighbours
- Fixed renamed furniture not stacking, and dyed or renamed furniture dropping the plain item
- Fixed cloned worlds sharing furniture hitboxes with the world they were copied from
- Fixed furniture culling running on the main thread, which cost performance
**Resourcepack**
- Fixed newly shipped default glyphs never arriving on servers that already had a glyphs folder
- Fixed the pack hashes reaching the proxy after the pack they belong to
- Fixed errors on servers that have pack generation or pack hosting turned off
- Fixed BBModel elements always falling back to legacy rotations
- Fixed obfuscation keys going missing when a cached pack was reused instead of regenerated
- Fixed a wrong vanilla-pack version being picked on locally compiled server jars
- Replaced the `Glyphs.default_shadow_color` setting with `Glyphs.default_shadow`, and old configs are still read and converted for you
- Removed the TRIMS CustomArmor
* Entire CustomArmor setting is now gone as we only have COMPONENT type now
- Reworked how the resourcepack atlases are split so the new 1.21.11 item and block atlases work
- Added `NexoCustomBlockPreDropLootEvent` for changing or cancelling custom-block loot before it drops
- Added methods on `Drop` for reading the min and max amounts
- Added a whitelist option to Backpack Mechanic
- Automatically determine supported PackFormat based on ViaVersion/ViaBackwards if present
- Added the multipack template hashes to the pack data sent to NexoProxy
- Added settings for the anvil repair-cost cap and for what a furniture bed requires before you can sleep
- Added four new recipe types:** Smithing, Transmute, Anvil and Crafter**
* In-game builders for Smithing, Anvil, Crafter & Campfire RecipeBuilders
- Added support for ingredients that require more than one item
- Added ingredients that take durability damage instead of being used up, which is handy for tools
- Added replacement ingredients, so you can pick what an ingredient turns into after crafting
Glyphs & text
- Scoreboard glyphs, GIF-glyphs and the `glyphinfo` command not working on 26.2
- GIF-glyph frames offset wrong when frame size did not match the aspect ratio
- Animated glyphs rendering blank when resolved before pack-generation finished
- Reference-glyphs missing from emoji-list and never registering placeholders
- Glyph tag scanning, escaping and parsing reworked to keep component roots
- Glyphs not rendering in playerlist objectives using number-formats
- Glyph and shift tags not parsing in options-menu lang keys
- Recipe-Screen using legacy formatting, thus not allowing glyphs
- Gradient-tag not nested correctly in the resource-pack prompt
- PAPI-tags bypassing permissions and returning nothing outside chat
Items
- JukeboxPlayable and ItemsAdder id-remaps not converting properly from IA
- Crossbow breaking when defining `charged_model`/`firework_model`
- `use_remainder` referencing a nexo_item being dropped depending on item parse-order
- `blocks_attacks` failing to build on Paper 26.2 due to changed `bypassed_by` signature
- `Components.enchantable` 0 clamped to 1 instead of removing the component
- PersistentData not building nested `TAG_CONTAINER`s, missing array-types and erroring on unknown types
- Config-defined PersistentData pinned to the stored copy on item-update
- Missing item-model textures breaking the item-definition, now using a placeholder
- `custom_model_data` dropped from the material item-model when preferring `item_model`
- `damaged_models` and pack base-models lost in the legacy override conversion
- Model face-UVs outside 0..16 making 26.1+ clients drop the item-definition
- 1.21.11+ model rotations only reaching clients below 26.1, now clamped in legacy overlays
**Pack**
- Incorrect "missing texture" for Paletted Permutation atlas entries
- Undefined custom-armor layers parsing as empty keys, blocking sibling layers
- Armor asset-ids only being dropped for helmets that use a 3D `Pack.model`
- Obfuscation replacing overlay models with their base variant, and skipping equipment layers, vanilla-keyed models and fonts
- Stale overlay-entries from imported packs and older generations breaking textures
- Multipack template-packs not resolving per pack-server, so LobFile and S3 can serve them
- Pack-generation hanging when ModelEngine zipped early or never registered
- POLYMATH migrating to HERMES even on configs that already used HERMES
Furniture & blocks
- ModelEngine issue on Folia due to teleport not teleportAsync
- Furniture culling and door packet-updates running off the Folia region-thread
- Furniture using the wrong placement-variant for settings like `restricted_rotation`
- Furniture step and fall sounds never playing due to hitbox block lookup
- Furniture duping drops when spam-clicking ModelEngine furniture
- FurnitureBed potential invisibility issue due to third-party plugins
- Noteblock dupe when broken within a tick of its note playing
- Unloading a world corrupting the block-sound task map
- Min culling-distance comparing against max bound, disabling culling when set
Misc
- Decode raw PacketEvents buffers with the pipelines current protocol, fixing dropped packets
- Reworked atlas split to properly handle the 1.21.11+ split, removing the `legacy_atlas` setting
- Allow defining texture in ItemModel-Builder to skip Pack & manual Model files
- Split item formatting into individual itemname, lore and customname toggles
- Allow specifying `tooltip_display.hide_tooltip`
- Added `force_visibility` setting for FurnitureBed
- Improved validation of vanilla assets in glyphs and items, grouped per issue
- Optimized Furniture occlusion-culling, pack-generation, barrier collisions, light-block handling,
step/fall sounds, the furniture evolution-task and mob-movement and liquid-flow around hitboxes
disable_blocking not using durations
Optimizations to Item-Packet handling
Opening FurnitureDoor causing hitbox retracking issue
CustomArmor issues when making unified saddle item
Config-phase stuck issue in some rare RP scenario
Renamed furniture loosing custom-name when broken and dropped
Glyph-tags not replaced fully in item lore for ShowItem HoverEvents
Item-formatting lost when placing items back with cursor-formatting disabled
improve issue with ghost-items when cursor-formatting is enabled
adding AttributeModifiers no longer remove default modifiers like attack speed
ItemConfigs always thinking it "changed" and saving
FurnitureCulling issue on some non-Folia multi-thread server-types
FurnitureStates not cycling when FurnitureStorage is opened
Clientlog spam when using merge_textures due to missing #particle reference
IA-converter recipe issues
Dyed furniture losing color on toggled light-models
FurnitureBed mannequin ignoring player-scale and clearing invisibility
VanillaResourcepack missing pack.mcmeta causing issues for 26.2+ servers
Validation checks for textures being too strict
GlyphInfo not working properly
refresh SelfHost pack cache on regeneration so reloads apply without restart
Potentially fix PAPI-tag permission not working properly
Remove "NEXO" S3-based PackServer type
This is not S3-type, just Nexos built in one
Add API for third-party plugins to hook into PacketTransform pipeline
Minor API changes and additions for upcoming project(s)
Add NexoPackFinishedEvent
Add new HERMES Pack-Server type
Should be more stable and reliable for larger packs than old one
Supports up to 200MB for now, will increase to 500MB (MC max)
HermesExtension is an addon for servers using Nexo 1.9->1.25.1, adding support for this HERMES-type
Furniture-Placements
Allows for customizable furniture based on the surface placed against
Example being a Lamp hanging from the roof, standing on the floor or mounted on a wall
Changes done in NexoPrePackGenerateEvent being ignored
Issue with trying to cull furniture when player swaps world
Lore handling in single-line and empty ItemTemplates
ResourcePack sending double during Reconfiguring a player (MineHut common issue)
Resend PackHashes to proxy on reconnect so restarts dont force client re-download
ItemModel-Builder improperly handling oversized_in_gui & other "root-tags"
Folia issue with CustomBlock Step/Fall sounds
Players slurping up dropped items when laying in FurnitureBeds
NexoConverter not migrating old Components.jukebox_playable entries to inlined format
StringBlock not being deterministic in its BlockData assigning causing "different" NexoPack hash each time
CustomModelData not being updated properly on NexoItems
Start assigning CHORUSBLOCK CustomBlockTypes for id 49..63 (the safe values not included in vanilla world-gen)
Use new Mannequin entity for 1.21.10+ on Nexo FurnitureBeds
Fixes issue with invisibility due to overlapping with model
Less packets needed, more stable, etcetc
Remove ItemFlag and make backwards compatible Components.tooltip_display
NexoConverter will automatically migrate ItemFlag config-entries to new format
For 1.21.5+ tooltip_display should always be used
For 1.21.4 it did not exist, now it mimics ItemFlag logic but directly handling it instead
Add option for NexoDialogItems to override the itemModel and/or lore of the specified NexoItem, or just specify one without
Remove deprecated API-methods and fields
Deprecate Trim-CustomArmor, will be removed in the future
Clean up internal logic away from ItemMeta -> DataComponents
Remove deprecated item-config options; fire_resistant (damage_type) & hide_tooltip
:warning: Drop support for 1.21.1, 1.21.2, 1.21.3, 1.21.7 & 1.21.9
1.21.4, 1.21.5, 1.21.8, 1.21.10, 1.21.11, 26.1.x & 26.2 are now supported versions
NexoTag feature for simplifying repeated-recipes
Each NexoItem can have one or several NexoTags
Components.can_break/can_place can now specify nexo_blocks directly
Add Plugin.formatting.action_bar to disable packet-handling for it
Disable to fix issue with Typewriter discarding modified packets & CustomNameplate issues
Increase maximum amount of Custom-Blocks for NOTEBLOCK-type from 1149 -> 1349 (26.1+ only)
26.2 Server & Client support
Until Paper has it as experimental it is adviced to stick to 26.1.2 tops
Make block_delay component into a Duration
Weird texture issues when a Model only specifies particle
Folia-related issues due to FurnitureCulling
Crops dropping incorrectly if broken during initial stage
Misc#prevent_breaking causing issues
Improve Vulcan AntiCheat & NexoFurniture compatibility
Improve reliability of ModelEngine Auto-Pack import
Issues with WorldGuard flags being set preventing furniture from being placed on other furniture
Issue with WorldGuard flag not accounting for players who bypass region-permissions
Furniture sending hitboxes to other worlds, overlapping potential blocks
BBModelGenerator not preserving valid Texture-paths defined inside the BBModel
If a path is invalid, defaults to following fallback structure
pulling_textures not working due to missing Model's not being generated
Paintings not working when asset_id contains .png suffix
FIXED-transform when placed on non-full blocks being wrong
PackObfuscator not always obfuscating files proper
Excluded files not being removed from final pack always
Equippable-Component for 3D modelled helmets not being set when undefined
Backpacks with Equippable#swappable causing inconsistent behaviour with open/equip
TextureMerger inconsistencies on select Models when using SIMPLE & FULL
TextureMerger issues with animated-textures
Atlas-issue when using legacy_atlas and CustomModelData
Issue with command-mechanic and consuming
Various other minor ResourcePack read/write issues
Pistons being able to push/pull blocks into NexoFurniture
Asset-id set for itemmodel-provided Equipment items
NexoOverlays applying to 1 version higher than it should
Sort overlays based on supported-formats
Furniture TexEntities not being shown when tracking furniture initially
Default equip_on_interact for Equippable-component to false
Improve performance of various Furniture hitbox/light lookups
Allow defining composite_textures and make basic Models that will stack
Add Misc#prevent_renaming mechanic option
Add Pack.generation.skip_unsupported_overlays
Removes "extra" PackOverlays from final pack when its below or above your supported main PackFormat defined in pack.mcmeta
Dynamic Furniture-Culling
This feature aims to improve performance of furniture for clients by culling furniture the players cannot see
Mainly culls furniture behind walls & other obstacles within a configurable radius & interval
[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