NexoMC Changelog

v1.29.1

Stable

Fixed

  • stop furniture light and barrier updates from re-triggering their own restore and flooding packets ee6c069

v1.29

Stable

! [Fixes]

Furniture

  • Furniture packets not being sent with netty injection disabled
  • Furniture lights going dark after chunk unloads, ignoring placed blocks or toggling back off
  • Waterlogging leaking between furniture of the same type
  • Sliding door hitboxes not following the panel when opened
  • Barrier hitboxes not blocking chests and shulker boxes from opening
  • Furniture evolution and armor effects not running on Folia
  • Furniture culling causing lag
  • Modified drops from NexoFurnitureBreakEvent being ignored in some cases
  • Furniture beds erroring, spamming debug messages or breaking with Moonrise on 26.3
  • nexo-furniture WorldGuard flags not applying to hitboxes, seats and ModelEngine furniture
  • Protection plugins not stopping jukebox and evolving furniture interactions

Items

  • Item updates removing custom-model-data and unbreakable set by other plugins
  • Trimmed armor breaking pack generation
  • Blocks with hardness: 0 not breaking instantly
  • PotionEffects ignoring durations like 10s and the particles and icon keys
  • throwing_model being ignored
  • Directional variations getting lost on reload
  • Shift and glyph tags not working on Adventure 4 servers
  • Mechanics disabled in mechanics.yml still running until a restart

Recipes

  • Smelting mechanic not smelting every drop
  • Recipe reloads resending every recipe to every player
  • Brewing recipes not working on 26.1 to 26.3

Pack

  • Multipacks, templates and overlays not overriding files when obfuscation is on
  • Base item model overrides missing from generated models
  • Pack generation failing on a full temp folder, or throwing away everything when one step fails
  • Corrupt or unfinished external pack downloads being read
  • Hermes uploads not being retried
  • ViaVersion pack format dropping below 1.21.4
  • GIF shaders missing on 26.3
  • Bundles and block updates breaking from dropped packets

* [Changes]

  • Replaced automatic CustomArmor detection with an explicit CustomArmor.id per item, with old setups being converted automatically
  • Replaced disable_enchanting with the enchantable: 0 component, with old configs being converted automatically
  • Moved RequiredPack and DefaultPack downloads from GitHub to Hermes
  • Improved overlays so a single supported overlay no longer shadows imported files

~ [API]

  • Added NexoFurnitureDropEvent for editing furniture drops
  • Added NexoItems.registerExternalItem and NexoPreItemsLoadEvent for plugins registering their own items
  • Added NexoFurniture.registerItemOverride for per-player furniture items

+ [Features]

  • Added disable_components_on_prevent_breaking, which disables tools and weapons kept alive by `prevent_break
  • Added Misc.extended_enchantable, which also blocks anvils and grindstones for items with enchantable: 0
  • Added preserve to crafting recipe ingredients, so components like enchantments carry over to the result
  • Added support for 26.3
    • Added support for the compostable, cooking_fuel, brewing_fuel, interact_animation and attack_animation components
  • Added furniture placement previews, opened by sneaking with furniture in hand and rotated by scrolling
    • Example; preview_placement: true on a furniture, with defaults under furniture.preview_placement in mechanics.yml

v1.28

Stable

! [Fixes]

  • Fixed Custom-Tridents playing the return sound playing when picked 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

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

* [Changes]

  • 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

± [API]

  • Added NexoCustomBlockPreDropLootEvent for changing or cancelling custom-block loot before it drops
  • Added methods on Drop for reading the min and max amounts

+ [Features]

  • 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
  • Support for ingredients of a specific amount, that take durability damage & be replaced upon crafting

v1.27

Stable

✓ [Fixes]

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_CONTAINERs, 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

* [Changes]

  • 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