promotional bannermobile promotional banner

Official Craftics Pack

The official Craftics modpack with all compatibility content mods and QOL features.
Back to Files

v0.4.1

File nameOfficial Craftics Pack-v0.4.1.zip
Uploaded
Aug 21, 2026
Downloads
24
Size
45.0 KB
Mod Loaders
Fabric
File ID
8698456
Type
R
Release
Supported game versions
  • 1.21.1

What's new

0.4.1

Addon API: Charging for an Attack

  • A new onAttackApCost hook, handed the AP an attack costs after the engine's own discounts. Return less to make the swing cheaper, more to make it dearer
  • Clamped to [1, cost]: a handler can never hand out a free attack, and never charge more than the weapon asked for. Attacks that were already free skip the hook entirely
  • This is the shape an AP discount has to take. Adding AP back to the pool after the fact only works for the player the engine happens to be resolving, which is why the Feral Claws bug below existed

Feral Claws Doing Nothing in a Party

  • Fixed Feral Claws having no effect for anybody but the party's combat leader. It refunded AP by fetching a combat manager for the wearer, and that lookup returns a fresh idle manager for a player who is not the leader - so the AP was added to an instance nobody was playing and quietly discarded
  • Reworked while fixing it: a 50% chance an attack costs 1 AP less, taken off the price rather than refunded afterwards, instead of a refund on kill. Never below 1 AP total, so a sword or bow is not discounted and the claws pay off on 2 AP weapons - axes and the mace
  • Refunding on kill also meant the artifact did nothing at all in the fights where AP is tightest, since a swing that fails to kill is exactly when the AP was needed

Silent Event Arenas

  • Fixed raid boss, pillager camp and bastille arenas playing no music at all. The soundtrack is chosen by arena biome id, and these three are event arenas whose ids are declared by the level rather than by a biome anyone travels to, so none of them had an entry - and no entry means silence rather than a fallback
  • Arena biome resolution now lives in one place the soundtrack can ask, instead of being re-derived. A level whose arena and music disagree was the failure mode

Bone and Wither Armor Affinity

  • The Immersive Armors Bone and Wither sets now carry the Ranged affinity rather than Blunt and Special. Both sets exist to keep arrows flying - their whole bonus is firing without spending one - so an archer wearing them was levelling the wrong stat to improve what the armor does

Accessories Lost to Infinite Mode

  • Fixed Accessories-mod trinkets not coming back after an infinite run. A run stashes your whole island loadout and returns it at the end, and accessories were the one part it never touched: they walked into the run and the loadout came back without them
  • Stored as NBT so they survive a server restart mid-run, and a no-op when the Accessories mod is absent

Tab List Power Scores

  • Removed the power score drawn beside names in the tab list. The standings boards are where a score belongs

Smaller Things

  • The Pet affinity's description now mentions the +1% spawn egg drop chance it has always granted. The bonus was real and applied; only the tooltip omitted it
  • Two more playtesters credited

LuckPerms and Craftics Commands

  • Every Craftics command is now behind a named permission node instead of a bare operator check. hasPermissionLevel(2) is answered by the vanilla op list before any permission mod is consulted, so LuckPerms could not grant, deny or track a single Craftics command no matter how it was configured - the only way to let someone run one was to make them a full server operator
  • Nodes read craftics.command.<name>. Grant craftics.command.* for the old all-or-nothing shape, or hand out individual nodes so a build-team member can move the lobby spawn without also being able to wipe an island
  • craftics.lobby.bypass covers editing inside protected lobby areas
  • Operator status still works and nothing needs configuring: each check falls back to level 2 when no permission mod is installed, so a server without LuckPerms behaves exactly as it did

Turning the Auction and Lootboxes Off

  • /craftics auction enable|disable and /craftics lootbox enable|disable take either system offline without stopping the server. For an economy exploit found mid-event, the choice used to be leaving it open or kicking everybody
  • Stored as disabled rather than enabled, so an existing world that has never seen the setting reads as on. A flag that defaulted to off would silently close the auction house on every server that updated
  • A closed lootbox reports that it is closed and consumes the click, rather than passing it along to whatever else was listening on that block

Lobby Lootboxes That Could Not Be Clicked

  • Fixed lobby lootboxes, and every other right-click interaction, dying silently for players who had been in a cutscene. The client suppresses use and attack while a scene is playing, and five commands that teleport you out of one - /lobby, /spawn, /craftics world lobby, /craftics world hub and /craftics lobby - moved the player without ever telling their client the scene had ended. The flag stayed set for the rest of the session
  • /craftics reset_combat, the documented fix for being stuck, cleared combat state only and left the scene flag exactly where it was
  • The flag is now cleared on join and on every path that leaves a scene. It reads as a permissions problem from the player's side, which is why it went unreported for so long: nothing is denied, nothing is logged, the click simply does not happen

Black Screen After a Transition

  • Fixed the fade-to-black transition holding forever when the packet that should end it never arrived, leaving a player staring at a black screen with no HUD. The hold had no timeout and its reset was never called from anywhere, so the state survived quitting to the title screen and rejoining
  • It now fades out after 30 seconds and logs why. A transition that finishes late is a stutter; one that never finishes ends the session

Season Standings

  • A new season board showing one score per player: chapter placements plus how far they have taken their own island. /craftics seasonboard spawn places one, /craftics seasonboard remove clears nearby ones
  • The score is derived on every refresh, never stored. There is no season total in a save file to drift out of step with the values it came from, and no migration to get wrong
  • Every part of it only goes up. Emeralds and stat points are deliberately excluded - spending or respeccing would drop a player's rank without them doing anything, which reads as a bug
  • Built on the lifetime infinite score rather than the chapter one, because chapter rotation zeroes the chapter score for everyone. A season board that reset itself on every rotation would be measuring the wrong thing
  • Offline players are included, which is the point of a season board and the reason it cannot be the tab list
  • Each row shows the split as well as the total, so a player can see whether the person above them got there through chapters or through their island
  • All seven weights are configurable, so a server can retune what a season rewards without a rebuild

Tied Chapter Placements

  • Fixed tied chapter scores banking different permanent point totals depending on the order the standings happened to be built in. Placement points never reset, so an arbitrary ordering handed one player a lasting reward over an equal player for a reason nobody could see, and two reads of an unchanged save could disagree about who won
  • Ties now share the place and the points, and the next distinct score skips the places they used up: 1st, 1st, 3rd. Everyone at a banked place banks, even where a tie pushes the count past ten

Names on Boards

  • Boards show names instead of UUID fragments. A player's name is now recorded on every join rather than only by a few infinite-mode paths, so someone who had never taken a run had no name recorded anywhere and appeared on the career board as eight hex characters
  • Where a name still cannot be found, the board skips the row rather than printing a UUID - there is no UUID-to-name lookup in the mod, and a UUID names nobody a reader could recognise. A chapter podium line keeps a neutral placeholder instead, since dropping one would misreport who placed

Enemies Arriving Without an Identity

  • Fixed raid reinforcements spawning blank: a summoned wave arrived with no AI key, no name and no spawn NBT, so a modded creature turned up as an empty instance of its entity type while the creature beside it, spawned by the normal path, was correct
  • A saved fight now stores each enemy's AI key and name alongside its stats. Without them, resuming a fight rebuilt every enemy from its entity type, which is fine for a zombie and wrong for any mod that ships one entity type for hundreds of creatures - all of them came back identical
  • Resuming now matches saved enemies by identity first and position second. Matching on type alone meant a party of six creatures sharing an entity type could each take any other's saved state
  • A combatant's display name now reaches the client, so hover text, name plates and capture prompts show what the creature is rather than what its entity type is called

Addon API: A Bench, and Switching Off It

  • A field ally provider can now declare reserves alongside the allies it fields: creatures carried into the fight with no tile and no mob in the world, fielded only when the player swaps one in. A party larger than the field is the point of having a party - six creatures where three fight is a different game from six all swinging at once, and choosing which three is the interesting part
  • A switch costs 1 AP and puts the incoming creature on the tile the outgoing one vacated. It is refused, with no AP spent, when it is not your turn, when the ally is not yours, when someone is riding it, or when the incoming creature is too large for the tile being freed
  • A benched creature keeps everything it was carrying. Bench a wounded, poisoned ally and it comes back wounded and poisoned with its summon timer still running - the combatant itself goes to the bench rather than being rebuilt from its definition, so every scrap of per-fight state rides along, including state added later that nobody remembers to copy. A bench that healed would be the cheapest heal in the game
  • No menu. Craftics owns what a switch means and the addon owns the screen the player picked from, the same split the combat tools use: read the bench, draw it however you like, ask for the swap. A party-selection UI is your design
  • Reserves are addressed by index rather than entity id, because a benched ally has no entity - no mob, no tile, nothing to be found by. That absence is what being benched is
  • Only provider allies get a bench, and Craftics' own hub pets deliberately do not. A hub pet is a real animal that was standing in your yard and is owed back to it; one that is neither in the yard nor in the fight is an animal in no place at all. Every end-of-fight path filters on exactly the flag that excludes it, and each would have to learn about a bench before one could be safe - where a miss duplicates the animal and a false positive destroys it, since the hub copy was discarded when the party was collected

Accuracy

  • Attacks can now miss. Accuracy is a per-action multiplier living beside the attack type, on the same slot with the same lifecycle: set for the one action an AI is about to name, cleared before the next decision. A creature whose movepool holds a wild haymaker and a reliable jab needs the haymaker to land less often, and nothing about the defender expresses that
  • Distinct from the armor-class dodge, which is the defender's property and answers "did I get out of the way". Accuracy is the attack's own
  • Inert until something asks for it. Every attack defaults to always landing, and a certain hit deliberately draws no randomness at all - so adding the roll to the damage paths does not shift any other roll in the fight. Had it drawn and discarded, every dodge and crit downstream would have started landing differently on the day this shipped, which reads as a balance change nobody made
  • A miss skips the hit outright rather than dealing zero. Zero already means three other things, and a hit that "lands for 0" still fires every on-hit rider behind it - knockback, thorns, weapon debuffs, counters
  • The player's existing ranged miss now runs through the same roll, and no longer cancels an empty-tile cone or sweep: that swing was aimed at a tile, the anchor enemy is only there to orient the shape, and there was never anything to miss
  • onMiss fires. The addon hook has been declared since the effect API existed and was invoked from nowhere

Blinded Pets

  • Fixed blindness doing nothing whatsoever to an ally. Enemies could apply it, the HUD showed it ticking down, and no ally code path ever read it - the debuff was applied to a wolf and then simply ignored
  • A blinded ally now swings at half accuracy for the turn instead of losing it. Enemies fumble their whole turn to blindness at a check allies never reach, and copying that would have a pet silently forfeit turns, which reads as the game being broken; one that visibly swings and misses reads as blinded

Stale Per-Action Overrides

  • Fixed an attack-type override outliving the action it was set for. The clear sat inside the branch that consults the AI, while the two branches that return an action without consulting it - a burning mob running for water, one that has lost sight of its target - skipped it, leaving the override to silently retype every later attack that never asked for one

Addon API: Custom Actions in a Player's Hands

  • Fixed an ally handed a custom action doing nothing at all with it. The ally turn resolved only move, attack, flee and idle, and dispatched custom actions from the enemy path alone - so an ordered custom action fell through to idle and quietly burned the turn. An addon's move worked completely in an enemy's hands and landed as a single plain hit in yours, which made the same move strictly better on the side you were fighting
  • A handler's damage now routes by whose action it is rather than assuming an enemy threw it. An ally's action hits creatures and never falls through to the player; previously anything an ally targeted that was not itself was read as "the player", so a pet's own move hit its owner
  • Handlers can name the player outright with damagePlayer. Before this the player was whatever was left after ruling out allies and the actor, so an action that meant the player had to pass a throwaway combatant as a token, and an ally's action had no way to say it at all
  • Attack-type effectiveness is applied on the handler's behalf for creature targets, so an addon move deals the same damage from either side. It changes nothing for an action that never declared a typing

Commanded Moves Losing Their Typing

  • Fixed the ally turn clearing the pending attack type and accuracy before reading the standing order. An addon sets both when it issues a command and the order is obeyed a turn later, so every commanded move arrived untyped and at default accuracy - leaving the ally AI as the only way to give an ally a typed move, which is the wrong seam for a player-issued order
  • Blindness now scales an accuracy the attack already brought instead of replacing it. Overwriting meant a wild haymaker was more likely to land while blinded than while sighted, so the debuff read as a buff on exactly the attacks it should punish hardest. Two sources of blindness now compound, and no stack of them can grind a combatant down to unable-to-act

Modded Weapons and Armor Now Work on Install

  • Modded weapons that nothing registered used to hit for a bare fist, and modded armor was worth no Armor Class at all. Both failed silently: a whole weapon pack equipped normally, showed a tooltip, and left every blade in it identical and useless with nothing on screen to say why. Craftics now works stats out from the item itself, the same way it has always read a modded food's heal value off its own nutrition
  • Damage is not a formula. Craftics' own numbers are hand-tuned and do not track vanilla - a netherite axe hits for 27 where vanilla gives it 10 - so a modded weapon is placed on Craftics' existing ladder by interpolation instead. A sword sitting between iron and diamond in vanilla terms gets a Craftics number between iron and diamond
  • The ladder is read from the live vanilla items at runtime rather than hardcoded, so it follows the Minecraft version and the server's own damage config instead of drifting from them. A weapon far above netherite is clamped rather than extrapolated: a joke sword with 400 attack damage does not get 400 damage here
  • Weapon shape is read from the item's name and decides damage type, AP cost, reach and signature trick, using the families Craftics already supports: daggers and sai, chakrams and other thrown blades, warglaives, spears, halberds and glaives, scythes, greatswords, greataxes, warhammers, bows. A modded halberd reaches a tile the way a Craftics halberd does
  • Compound names beat the words inside them, so a greataxe is not an axe and a warglaive is not a glaive. Tools are excluded outright - a modded pickaxe contains "axe" and does not become a battleaxe - and anything that reads as no weapon at all is left alone rather than guessed at
  • Armor gets an affinity too, chosen from its material's name, because every Craftics set grants one and a set granting none reads as broken next to the rest. A modded variant of a vanilla material lands where the player already expects: "reinforced iron" boosts Cleaving exactly like iron. Armor Class comes from the piece's own rating and toughness, measured against the ladder for its own slot, since a chestplate carries three times a helmet's points and one shared ladder would call every helmet leather
  • Toughness counts on its own, because diamond and netherite carry identical armor points and differ only in it - a score built on points alone would hand every modded end-tier armor diamond's number
  • An explicit registration always wins. Inference only ever fills a gap, so a compat module or a datapack correcting a guess is never fighting it. Off entirely with autoIntegrateModdedGear in the config

Addon API: Clicking an Ally

  • An addon can now handle a player clicking one of their own allies. Craftics did exactly one thing with that click - heal, if the player held the ally's registered heal item - and refused everything else, which is a closed set and the wrong shape for an addon whose allies are the point of the mod
  • There was no way to reach it from outside: grid clicks arrive on Craftics' own packet and go straight into the attack path, so no Fabric event ever sees them. This is the general form of the heal-item hook that was already sitting there
  • Handlers get first refusal, before the heal-item check, and decline by returning false so anything they do not recognise still heals as it always did. Craftics charges no AP for an ally click, so a handler that should cost something spends it itself

Diagnostics: Unclaimed Spawn Keys

  • Craftics now says once, per key, when a combatant was given an AI key that no spawn customizer is registered for, and lists the keys that are registered. An undressed combatant looks exactly like a generic one, so the only way to tell "my customizer ran and did nothing" from "my customizer was never called" was to add logging on the addon side and guess between them
  • Only for a combatant whose AI key differs from its entity type, since that difference means somebody set the key deliberately. An ordinary mob nobody intended to customise stays silent, so a vanilla install logs nothing

Addon API: Combat Portraits

  • An addon can now draw the combatant icons in the combat HUD itself. Craftics picks a head texture by entity type, which fails completely for a mod whose single entity type stands in for hundreds of creatures: no icon registered for that type could be right for more than one of them, so every combatant fell through to a coloured square with a letter in it
  • The renderer is handed the entity id, not just the type, because the roster is already keyed by it and the creature is standing in the client world - so an addon can reach the live entity and draw whatever its own screens draw, rather than being limited to a flat texture it would have had to invent
  • One registration covers all four places a combatant icon appears: both rosters, the turn-order strip and the hover inspect panel. A portrait in one panel and a blank square in the next reads worse than blank squares everywhere
  • Renderers get first refusal and do not replace the fallback, so anything unclaimed still gets its head texture or coloured square. The damage tint is passed through, so a portrait can redden by health the way the enemy column already does
  • A renderer that throws is logged once and then never asked again for the session. This runs once per combatant per frame, and something that fails once fails sixty times a second

Addon API: Hiding HUD Panels

  • A combat HUD panel can now be turned off by an addon that draws its own version of the same thing. A compat mod whose party screen already lists your creatures had no way to stop Craftics stacking an ally roster underneath it, which is two lists of the same information competing for one corner of the screen
  • Four panels are addressable rather than one switch for the ally list, because the redundancy argument is never about one panel for long: a mod that replaces the party list usually replaces the opposing side's list too
  • Hiding the enemy roster keeps hover inspection. Pointing at an enemy, an ally or a party member still opens its stat panel - that is a different feature, and replacing a list is not a reason to lose it
  • Suppression is visual only. Craftics keeps tracking and syncing everything the panel would have shown, so a panel turned back on mid-fight shows the truth immediately instead of catching up
  • Players get their own toggles for the ally and enemy rosters in the config's Visual section. Neither side overrules the other: an addon cannot force back a panel the player turned off, and a player who never touched the setting does not undo an addon that replaced it

Title Screen Crash on Addon Biomes

  • Fixed the menu crashing every frame once any addon campaign was installed. A biome id was concatenated straight into a texture path, and a resource location rejects the : in a namespaced id, so building the path threw instead of returning something that merely fails to resolve. The "no card art, draw a flat backdrop" fallback was on the very next line and could never be reached
  • Craftics' own biomes are all bare - plains, cave, deep_dark - so nothing in the base game ever produced an id that could trip it. The documented convention for addon biomes is namespace:path, which the addon template's own example uses, so this hit every code-registered addon campaign immediately and no vanilla install ever
  • The same concatenation existed at five places, not one: the title screen backdrop and its save-card thumbnail, two in level select, and the world-icon writer. All five now go through one resolver that cannot throw whatever the id looks like
  • Addon card art is now looked up in the addon's own namespace: mymod:cavern reads assets/mymod/textures/gui/biomes/cavern.png. Two addons naming a biome the same thing no longer overwrite each other's cards

Addon API: An Event Can Become a Fight

  • Fixed a forced event being unable to turn into a level. The non-choice path built its arena from the level it had queued before the handler ran, and cleared the pending level first, so a handler that asked to run its own fight was silently overruled and the event could only hand out rewards. That rules out the entire shape a trainer battle, a gym or a scripted ambush needs, and left choice events as the only way to reach it
  • EventManager.setPendingNextLevel is now read back. It was public, it was on the object every handler is handed, and nothing anywhere called it - so the setter an author reaches for first did nothing at all on either path
  • Both paths now resolve the same way: whatever the handler set on its EventManager, else whatever it set on the combat manager, else the level already queued. A handler that starts its own fight instead of queuing one is left alone rather than having a second arena built on top of it

Raid Softlock After the First Round

  • Fixed a raid locking up the moment the opening round ended, with the last player shown as still taking their turn and nobody able to act or pass. The raid's prep turn skips the first enemy phase so the party can reposition before any pillager fires, and that shortcut jumped straight back to the player phase without handing the round to the first player. The turn counter had already wound back, so every client was told it was the first player's turn while the server still believed it belonged to whoever ended the round: the first player's input was rejected as out of turn, and the last player's client never offered the button
  • The AFK timer could not rescue it either, because it only counts down during a turn it believes someone is holding. That is why the fight sat there indefinitely instead of timing out
  • The Phantom armor bonus skips the enemy phase the same way and had the same latent bug in any party fight, not just raids. Both now share one hand-off, so a third skip cannot reintroduce it

Compat Item Stats Missing for Everyone but the Host

  • Fixed instrument, paladin and simply-swords items showing no Craftics stats for anyone except the world's host. Compat gear is registered late, after every other mod's items exist, and the three places that trigger it each kept their own hand-written list which had drifted apart. Instruments and paladins were only on the list the server runs, and a multiplayer client never reaches that one
  • The host was the one player who could not see the problem, since their client shares a process with the server and picks the registration up for free. From every other seat it looked like a permissions bug
  • All three now call one shared list, so a newly added compat cannot be registered in some sessions and not others

Pets Not Coming Home After a Fight

  • Fixed a party member's pet failing to return to their island. The restore worked out which island the animal belonged to and then spawned it into whichever world the restore was running for, so a guest's wolf was placed at its own island's coordinates inside the host's dimension. From the owner's side the animal simply never came back
  • Solo play was never affected, which is why it survived this long: with one player the two worlds are the same world
  • A pet restored without stored NBT is also re-tamed to its actual owner rather than to whoever the fight was resolved for, and everyone who got an animal back now has their party list resynced instead of only the player the restore was called for

Allies With Nowhere to Stand

  • A fielded ally that cannot be placed now says so in chat instead of only in the server log. With a handful of tamed wolves a full arena was near-impossible to hit, so a log line was enough; an addon fielding a party of six on a cramped floor reaches it easily, and a creature that silently never turns up reads as the game having lost it
  • Reported once with a count rather than once per ally, so a tight arena reads as a tight arena instead of a stack of errors

Addon API: Sending Out From an Empty Field

  • A trainer can now field a benched creature onto an empty tile with nothing withdrawn. Switching captures the outgoing creature's live state onto the bench, so it needs one on the field to capture; when a trainer's last creature was knocked out there was nothing to withdraw, the bench was stranded, and the trainer conceded with reserves left - the opposite of how a gym battle ends
  • The reserve is removed from the bench rather than swapped, since nothing is coming back to take its place. Swapping would leave the same creature sittable twice
  • It is fielded through the same path a switch uses, so its NBT, spawn customizer, AI key and typing land exactly as if it had started the fight on the grid. Refused, with the bench untouched, when the tile is out of bounds, occupied, not standable, or too small for the creature's footprint

Infinite Mode Bleeding Into Normal Play

  • Fixed a parked Infinite Mode run being treated as the run you are currently playing. Parking a run deliberately keeps it marked active - that is how it survives to be resumed - and only raises a separate "suspended" flag, but three of the checks that ask "is this fight an infinite one?" read the active mark alone. With a run parked, every normal campaign level answered yes
  • The visible symptom was the smallest part of it: the victory screen's Go Home button still read Pause Infinite Mode Run and Go Home after you had gone back to normal mode
  • Underneath, the same check meant a party wipe in an ordinary campaign level ended the parked run - zeroing its score and clearing its saved inventory, accessories and stats, the entire save point - and then returned early, skipping every normal death penalty on the way out
  • Campaign boss kills were routed into the infinite-mode boss flow, which counts a biome cleared and overwrites the shared biome cursor with a freshly rolled infinite biome. Campaign clears banked points into the infinite score, the all-time score and the best-ever score
  • Going home from a campaign level also skipped the biome reset the button promises, because that one reads the flag directly rather than through the shared check. Left alone, the fix would have corrected the label while leaving the behaviour wrong, so both landed together
  • There is now a single named check for "a run that is being played right now", and the three predicates route through it, including the one that follows a player's stored host pointer - parking re-stamps that pointer at the host itself, so without it a parked run walked straight back in through the side door
  • The places that legitimately mean any run, parked included are unchanged and now say so: stopping a run, resuming one, and the hardcore island wipe, where a parked run must die with the island it was saved on
  • Parking a run no longer drops members who were mid-fight or offline from its roster. They were left holding run loot in place of their real inventory until they happened to relog, because the only path that could give it back could no longer see them
  • Note for existing worlds: this stops the damage, it does not undo it. A run already clobbered by the old behaviour stays clobbered

Feral Claws

  • Fixed Feral Claws doing nothing at all. It was also the wrong shape - free attacks scale badly - so it is now a 50% chance for an attack to cost 1 less AP, with attacks never dropping below 1 AP
  • The floor means 1 AP attacks, which includes swords and bows, are never discounted. The artifact is worth carrying on heavier weapons and honest about it

Silent Trial Chambers and Raids

  • Fixed the music cutting out entirely on entering an event: trial chambers and their ominous variant, raids, raid bosses, ambushes, pillager camps and bastilles. Event arenas are not biomes anyone travels to, and the soundtrack is chosen by biome, so an arena whose id had no entry played nothing rather than falling back
  • The arena and the soundtrack now resolve the biome the same way, so a built arena and its music cannot disagree

Bone Armor Fighting the Wrong Way

  • Skeleton bone and wither bone armor now grant Ranged affinity instead of Blunt. Both sets exist to keep a quiver full, and typing them off the material they are cut from put them at odds with the only reason to wear them

Accessories Following You Into Infinite Mode

  • Accessory slot items now stay with your island loadout instead of being carried into an Infinite Mode run. Every other slot was already stashed on entry and handed back on exit; trinkets were not, so a run inherited them and the island lost them for its duration
  • They are stashed and restored across all four transitions - starting a run, parking one, resuming it, and ending it - so a trinket cannot be stranded on the wrong side of any of them
  • A run that was already in progress before this update is left alone. Restoring an empty stash for one would have wiped the trinkets the player is actually wearing, so those runs finish on the old behaviour rather than being migrated

Stars in the Tab List

  • The score numbers Craftics drew beside player names in the tab list are gone

The Infinite Mode Wolf That Did Not Last

  • Fixed the wolf handed to a Pet class run behaving like a wild spawn rather than a tamed pet, so it did not carry past the first level. It is now adopted as a proper party pet, owned and tamed, with its state captured the way every other pet's is. Dying is the only thing that takes it off your party now

Pet Affinity and Spawn Eggs

  • Each point of Pet affinity now adds +1% to the chance a fight drops a spawn egg, on top of the base chance and any luck items. In a party the highest Pet affinity among everyone being rewarded is the one that counts, so bringing a pet specialist helps the whole party rather than only themselves

Enemies Spawning On Top of Party Members

  • Fixed party members being placed onto tiles that were already occupied, which read as enemies spawning inside them. The placement search checked that a tile could be stood on but not whether something was already standing there, and the party's own positions were not refreshed before the search ran
  • Only the island owner was reliably safe, since they were placed first. An occupied tile is still used as a last resort for an arena with genuinely nowhere else to put someone, rather than leaving a fighter out of the fight