Custom Blocks, Items, Furniture, ResourcePack & more
- Furniture placeable inside non-full interaction hitbox furniture
- Blocks placeable in interaction-hitbox furniture
- Various minor IA-Converter issues
- Composite-models in ItemModels not being obfuscated
- Items loading twice on startup
- CustomArmor-textures not working when helmet is 3d Model
- Overriding vanilla consumable-component if not specified in config
- ItemUpdater not setting lore if old-item had no lore
- Minor Folia issues
- Overrides not merged if non-default base-model provided
- NexoItems using JIGSAW & other blocks not showing correctly on 1.21.4
- Long loading times due to Trims CustomArmor
- Rotation & light-toggle issues for interaction-hitbox furniture
- NoteBlockDatapack not adding 1.21.4 wood-types, causing slow mining on Pale-Oak blocks
- Custom step-sound for furniture async issue
- Issue with LimitedPlacing radius checks
- S3 & LobFile PackServer issues
- Issues with repairable-component
- Glyph tabcompletion not working
- Incorrect drop-amounts in some cases
- GlyphTags not working in Scoreboard
- Chorus customblock sounds not working
- Stone step/fall sounds not working
- PickBlock not working on 1.21.4 for furniture & custom blocks
- Improve MythicMobs drop-hook
- Incorrect interaction-point for interaction-hitbox furniture interactions
- Allow decimal custom-block hardness values
- Dont reload recipes on reload due to paper-issue
 * Server is resending all recipes for each recipe, causing large amounts of lag. Unfixable on our end
 * Server-restart required for recipe-changes to take effect
- Change syntax for give & take commands, `/nexo give <itemid> [amount] [player(s)]`
- Restructure CustomBlock sections in `mechanics.yml`
 * `noteblock`, `stringblock`, `chorusblock`-sections moved under a shared `custom_blocks` section
 * `tool_types` property moved out of sub-mechanics and into `custom_blocks`- section. Can be defined in subblock aswell
 * Move `custom_block_sounds` under shared one in `custom_blocks`
- Improved Glyph-backend
- Rewrite Packet-Handler to significantly improve read/write performance
- Transform glyph & shift-tags in Toast Popup
- Allow making multi-bitmap glyphs directly in one Glyph
 * Removes need for bitmaps.yml
 * A glyph can take a list of unicodes
 * Can be assigned automatically by setting a `columns: X` and `rows: Y` in Glyph-config
 * [More info here](https://docs.nexomc.com/configuration/glyphs#multi-bitmap-glyphs)
- Add bitmapIndex to glyph-tag, `<glyph:glyphid:X> / <glyph:glyphid:X..Y>
 * Displays the char with said index, can be a range aswell
- Improve memory-usage & generation-times for larger resourcepacks
- Folia Support
- PackSquash integration
 * Download from their GitHub
 * More info can be found on docs
- WorldGuard `nexo-furniture-interact` flag to override other flags, defaults to "undefined"
- Optimize ResourcePack generation times, caching & filesizes
- Add LobFile PackServer
 * Requires API-Key from your LobFile account
- Add S3 PackServer type
- Drop Spigot Server Support
- ItemModel not working with Pack-Obfuscation
- Bunch of minor ItemsAdder- & NexoConverter issues
- IA Converter breaking NexoItems on 1.20.4 servers
- CustomArmor issues when not using automatic layer-texture system
- Issues with datapacks enabling & custom armor using TRIMS
- ModelEngine-furniture not breaking when hitting ModelEngine hitbox
- Resourcepack sending when both on_join & pre_join are disabled
- PackValidation not excluding ItemModel files for <1.21.3-servers
- Various PackObfuscation issues
- TrimPattern being reset when updating NexoItem
- Add brewing recipe-builder command
- Disable formatting of displaynames in anvils
- Furniture step-sound in non-solid hitbox
- Placing blocks inside furniture-barriers sometimes
- Warn if texture would lower the mipmap-level on the client
- Custom-Block mining-speed not calculating Attributes from other sources
- Issues saving recipes
- Renamed items losing customname when enchanted in anvil
- Parent-Model Display-properties not inherited when overriding texture
- Entities with WIND_CHARGED exploding custom blocks on death
- ItemsAdder v4 -> Nexo Converter
 * Ensure you follow the guide here: https://docs.nexomc.com/migrate/itemsadder-nexo
 * There might still be some issues & bugs, please report these if you find them
- Improve performance & handling of item-lookups & API
- Add Furniture Shulker-type hitbox
 * Collision-hitbox, like barrier, but with options for length & scale like interaction
 * https://docs.nexomc.com/mechanics/furniture-mechanic#hitboxes
- BrewingStand recipes
- Make ItemFlags hide Tooltips for 1.20.5+ servers
- `group` property for recipes
 * Groups all shared group-id recipes in RecipeBook
- Add `Glyphs.shift_font` setting to specify the font used for shifts
- Custom Blocks not placeable against iron trapdoor whilst sneaking
- CustomBlock dropping at wrong location
- Async entity checks
- Breeze WindCharges breaking custom blocks
- Using TRIMS CustomArmor breaking recipes
- Improve Furniture Barrier-Hitbox performance, flickering and passthrough
- Stone place-sound played twice
- Minor fix to LimitedPlacing-replacability
- Issue with desynced furniture-hitbox
- Entities spawned on furniture taking falldamage
- Placing furniture against trapdoors
- Pasting with WorldEdit removing furniture barrier-hitboxes in given chunks
- Pack Mcmeta not merging properly between packs
- Various issues with ModelEngine Compatibility
- Furniture-offset not correct on slabs when furniture-config has translation defined
- Various issues with Drops
- CustomBlock-sounds not playing correctly when using block.stone/wood.X
- ModelEngine-pack not working for 1.21.4+ servers when Pakc.obfuscation is SIMPLE or FULL
- Generation of player-head models on 1.21.4
- NexoChorusBlockPlaceEvent not being called
- Cancelling regular noteblock events with `reimplement_noteblock_features` enabled
- Placing blocks on prohibited locations while using offhand & sneak
- FurnitureMechanic#isInteractable not handling sneaking + rotation correctly
 * Made furniture not placeable against eachother in certain scenarios
- VersionPatcher not finding certain models on 1.21.4 servers
- ItemUpdater not updating TrimPattern for CustomArmor
[Features]
- Add CHORUSBLOCK-type CustomBlock for transparent blocks & leaves
- Restructure Light-Mechanic LINK
- Add Lights#toggled_item_model, reference new JSON-Model in assets/namespace/models/item/x.json (namespace:x)
- Add `Pack.import.from_url` to import a ResourcePack into Nexo from a URL
- New way to define Custom Armor Layer Textures LINK
 * The old automatic system will still work and is the default if no such section is defined
[Fixes]
- Bunch more issues for 1.21.4 compatibility
- Issue with CustomBlocks marked as "falling" for third-party plugins
- Issues with Furniture & WorldEdit Copy/Pasting & Selecting
- Bad obfuscation of vanilla-override resourcepack-models
- Formatting glyph-tags in Entity Nametags
- Shifts not using custom-font
- Improve waterlogging of furniture
- Best-tool AXE defaulting to PICKAXE
- Issue reading ModelEngine ResourcePack on latest devbuilds
- Metrics not registering (Cause of huge dip on BStats)
- Kicking players not working when on Furniture
[API]
- Add ChorusBlockMechanic
- Add Events for ChorusBlockMechanic
- Add ChorusBlock methods to NexoBlocks-Class
[Features]
- Add `Mechanics.furniture.waterloggable` - Place furniture underwater and have barrier hitboxes waterlogged
- Add `Mechanics.furniture.lights_model` - Different NexoItem displayed when lights are 'on'
- Add `Mechanics.custom_block.immovable` - Prevent CustomBlock moved by pistons
- Handle Glyphs in chat on a packet-level for improved chat-handling
[Fixes]
- Optimize Furniture-handling for improved performance on large servers
- Furniture not showing when a chunk is reloaded
- Furniture-PickBlock feature not working in Creative Mode
- Furniture being "equippable" when using ARMOR materials
- Offset FurnitureSeat when furniture is placed on slabs,carpet etc
- Stacking furniture on Slabs, carpet & snow not correcting offset
- Step/fall sound not working for furniture
- `/nexo take`-command not working
- Bad rotation when sitting on a FurnitureSeat inside a Furniture-barrierhitbox
- TRIMS-CustomArmor not enabling datapack always & bad namespacing
- Sort-order for `Pack.import.external_pack_order`
- NexoInventory not supporting non-default fonts
- DyeCommand not working without NexoLibs
- CustomBlock Hit-sounds not working
- Filter out ItemModels from RequiredPack on 1.21.4 servers
- TTF-fonts overriding Nexo-shifts
- FoodComponent-replacement not working for 1.21.1
- Bow-pulling animations & model-tinting for 1.21.4 servers
- Various other 1.21.4 ResourcePack issues
- Snowfall overriding furniture-hitbox
- Logstrip mechanic not working
- WindCharges exploding Custom Blocks
- Issues with drop-amount and fortune-tools
- Issues placing lilypad & frogspawn on furniture barrier.hitbox
- NexoItems with imported Crucible/MMOItem items not assigning CustomModelData correctly
[Misc]
- Make Nexo generate models from itemid with lowercase
- Make NexoLibs optional to avoid Libby-handling of dependencies
 * More stable, requires rare manual updates
- Add some misc-settings
 * `Pack.generation.minimize_json` - compacts model-files
 * `Pack.import.model_engine.exclude_shaders` - excludes core-shaders as they might break the pack
[API]
- Cancelling NexoBlockBreakEvents not cancelling associated BlockBreakEvent
- Add `NexoFurniture#findTargetFurniture`
- Fix NexoFurnitureInteractEvent triggering twice
- Minor Drop-API changes
[Features]
[Fixes]

[Features]
[Fixes]
[Fixes]
[Fixes]
[API]
[Fixes]
[New]
ConfigTools.remove_invalid_furniture to remove invalid furniture on entity-load[Fixes]
[API]