Staging deployment - accounts, purchases and downloads are staff-only. Go to the live site

NexoMC Changelog

v1.27

Stable

Added

  • split item formatting into individual itemname, lore and customname toggles 0a7cd87
  • place split atlases and remaps in 1.21.11+ overlays with unified premodern blocks atlas 0643f9c
  • rework 1.21.11+ atlas split, cloning models and textures shared between items and blockstates 4591ba2
  • support inlined item-model cases and a texture shorthand in ItemModel parsing 791040f

Fixed

  • toggling debug state via command not working 2d42832
  • obfuscate equipment layer-textures and textures referenced from vanilla-keyed models and fonts 2f40d5b
  • stop blocking pack-generation for 5 minutes when ModelEngine never fires its registration-event a077461
  • clamp face-UVs only on models an item-definition can bake ba265a8
  • only drop auto-assigned armor asset-ids for helmets using a 3D Pack.model 4d6ffc2
  • resolve multipack template-packs per pack-server so LobFile and S3 can serve them 7150fc2
  • let config-defined PersistentData win on item-update so changed values stop being pinned to the stored copy c553762
  • skip breaking already-removed furniture so spam-clicking modelengine furniture stops duping drops dc57e23
  • use binary-stable NMS accessors in commons handler so fixed number-formats transform on 1.21.11+ 64a0ef5
  • calculate gif glyph frame offset from actual frame size instead of aspect ratio 6fd7c2e
  • nest tag-only component roots so glyph and shift fonts stop leaking onto following text f6d1679
  • support array-type PersistentData like TAG_CONTAINER_ARRAY and skip unknown data-types d624567
  • parse glyph and shift tags in options-menu lang keys 0d97213
  • run furniture culling and door packet-updates on the entity's Folia region-thread 250d4a8
  • keep custom_model_data entries in the material item-model when items prefer item_model 4bb01ef
  • clamp model face-UVs outside the 0..16 range to prevent 26.1+ clients dropping item-definitions 667ada0
  • glyph and shift fonts leaking onto following text when a component consists solely of the tag fb66bc0
  • use the resolved furniture placement-variant for placement-specific config like restricted_rotation 379176e
  • correctly nest the gradient-tag in the resource-pack prompt message 0c61baf
  • restore damaged_models and keep pack base-models in the legacy override conversion 0f8ffeb
  • support custom_model_data on clock, compass and recovery_compass via native item-model generation 4cb5ede
  • apply ItemsAdder id-remaps when converting items so remapped ids resolve to a Nexo item 82d4ca8
  • gate and resolve papi-tags in player chat on the sender instead of every receiver ceb9cea
  • build nested containers for TAG_CONTAINER values in an items PersistentData section c642d9f
  • make Components.enchantable 0 remove the component instead of clamping it to 1 a00e9b5
  • always suffix atlas-split clone-keys so item-ids ending in item or block are not overwritten b08ce96
  • redirect missing item-model textures to a placeholder so the whole item-definition still loads 2f3af72
  • transform fixed number-formats on scoreboard packets so glyphs render in playerlist objectives 8a64bdd
  • remove block-sound tasks through the iterator so unloading a world does not corrupt the map c211ae7
  • batch recipe reloads so the server no longer resends every recipe to every player per recipe 958040d
  • only migrate POLYMATH pack-server to HERMES for pre-HERMES configs 59bb014
  • preserve component roots in packet transforms and rework glyph tag scanning, escaping and parsing a63a09d
  • min culling-distance comparing against max bound, disabling occlusion-culling when a min distance is set 7a650a1
  • resolve papi-tags against the receiving player, fixing bypassed permissions and empty output outside chat 8367ff4
  • remap vanilla item-definitions and clone atlas-less vanilla textures in the 1.21.11 atlas-split bf8892d
  • undefined custom-armor layers parsing as empty keys and blocking sibling layer-textures 37845ee
  • complete ModelEngine pack-future instantly when its pack was zipped before Nexo enabled ebeb806
  • decode raw PacketEvents buffers with the pipelines current protocol, fixing unformatted and dropped packets f8c76dd
  • stale overlay-content from previous pack-generations breaking textures on reload 0adbfec
  • gif-glyphs not working on 26.2 due to missing text-shaders in the 26_2 overlay c7ff0a9
  • allow hide_tooltip to be defined in tooltip_display component f73d035
  • paletted_permutations atlas-sources losing their separator-field, breaking trim item-models 5a7b1b7
  • stale nexo overlay-entries from imported packs overriding Nexos own ranges 920078c
  • obfuscation replacing overlay models with their base-pack variant 5d18e09
  • clamp 1.21.11+ model rotations in legacy overlays only, decided by the packs lowest format b830f0c
  • noteblock dupe when broken within a tick of its note playing ca69b58
  • 1.21.11+ model rotations only reaching clients below 26.1 due to single overlay 21d1b7a
  • blocks_attacks failing to build on Paper 26.2 due to changed bypassed_by signature 818d027
  • use_remainder referencing a nexo_item being dropped depending on item parse-order 243185e
  • furniture step and fall sounds never playing due to hitbox block lookup b0f019d
  • reference-glyphs missing from emoji-list and their placeholders never registering 6c4884c
  • animated glyphs rendering blank when their component is resolved before pack-generation finishes 2f779a2
  • add force_visibility setting for FurnitureBed 62b2bcc
  • issue with FurnitureBeds not properly handling invisibility toggling 8420e0b
  • parse config enums case-insensitively and throw clear error on invalid furniture-state type afea966
  • RecipesView using Legacy-formatting which breaks glyphs 2f238a5
  • generate crossbow charged/firework models so ItemModels don't break with model or texture shorthand 15632e9
  • validate items-atlas paletted trims and accept 1.21.11+ '/' sprite separator d42d934
  • JukeboxPlayable's not converted for IA 1f9ead4
  • use ClickEvent.copyToClipboard in glyphinfo command to avoid missing-field crash be1e003
  • teleport ModelEngine furniture async so placement works under region threading 461f2f8
  • rebuild 26.2 scoreboard team parameters via record codec so glyph tags format in prefix and suffix 65e794e

Improved

  • group pack-validation warnings into one summary per issue 582c9ee
  • handle validation of vanilla assets used in glyphs/items better bedd345
  • chunk-key snapshot prefilter for hitbox checks and mob-move listener only registered while hitboxes exist 2bac004
  • filter step and fall game-events before any block or entity lookups in sound handlers 37ce3c4
  • single-fetch hitbox lookups for mob-move and fluid-flow checks, no iterator allocation when nothing is excluded 662a5cc
  • pre-parse required, default and external packs off-thread so pack-generation only merges them 8c4117e
  • replace linear light-location scans with packed reverse-map lookups on block-update packets 5d761ba
  • use reverse-maps for barrier collision checks instead of scanning all furniture hitboxes c86bc60
  • skip location and block lookups for non-evolving displays in evolution task 412f749
  • cache culling dimensions per yaw and remove allocations from occlusion raycasts 28d2e6c
  • mechanics.yml cleanup e3e109b
  • remove dead formatting.signs and formatting.books settings 50607c7
  • remove legacy atlas path, modern atlas splitter always runs with unified main-pack fallback c745a04
  • bad build-path 8e1ba13

v1.26

Stable

Added

  • add NexoPackFinishedEvent fired after pack build, before upload 7ab9b48
  • add HERMES PackServer-Type 1c15c20
  • expose obfuscated texture, model and sound key maps from PackObfuscator 29096fc

Fixed

  • signed-chat placeholders, plain-text MiniMessage skip and player setter recursion in NMS handlers 0e8b1f7
  • Shift.of truncating shift values above 1023 6743bf8
  • run furniture-culling raytraces on the tick thread and cache verdicts to avoid async world-read crashes 72f175c
  • only gate PAPI custom-name on permission so itemname and lore always resolve 5eb15af
  • apply component projections on signed chat, item rename and entity metadata paths so Bedrock glyph remaps aren't skipped b20dc2b
  • refresh SelfHost pack cache on regeneration so reloads apply without restart 1f5e80b
  • ensure unicode click-to-copy works correctly in GlyphInfoCommand bce9664
  • relax texture validation for regular textures 84e870e
  • atlas crash, duplicate sprites, and dropped overlays 24f9704
  • various issues with customarmor and saving etc 0dd44a1
  • VanillaResourcepack missing Metadata causing issues for 26.2+ 9eb9e4c
  • furniture-bed mannequin ignoring player scale and clearing invisibility 78fa16d
  • dyed furniture losing color on toggled light-models due to missing dye-tint 118b913
  • IA-converter cooking recipes, attribute & enchant formats, legacy colors 008a38b

Improved

  • single-pass glyph replacement configs with fixed escaping and gradient-split placeholder support 612897a
  • drop the S3-based NEXO pack server, superseded by HERMES 78e1fae