Hytale Update 7 Breaking Changes for Server Owners: Exit Code 11, ClientFeature Removals, and What Hotfix 0.6.4 Actually Fixed

Por : nome Categoria: guides : minutos min ler

Two things happened to Hytale servers in the first week of September 2026, and they are on different builds. Hotfix 0.6.4 shipped on 7 September to the live stable release, and it is a networking hotfix at heart: better router discovery for automatic port forwarding, an end to two PCs on the same network removing each other's port forward, and hosts keeping their network connection alive so friends can rejoin after a disconnect. Meanwhile the Update 7 pre-release, published 3 September, carries the breaking changes: the server now refuses to boot when its data would land inside the launcher's install folder and exits with code 11, nine flags have been removed from ClientFeature and moved into the GameplayConfig asset so plugins naming them stop compiling, every chunk lookup returning a WorldChunk is marked for removal in favour of ChunkStore.getChunkReference, the ShowEventTitle packet dropped IsMajor for an EventTitleStyle field, and the max view radius command now rejects anything above 32 instead of 512. None of the breaking changes are on your stable server yet. All of them are coming.

If you run a Hytale server, the most important line published in the last week is not about Goblins. It is this, from the Update 7 pre-release patch notes of 3 September 2026: "The server now refuses to boot when the content it writes would land inside the launcher's install folder, which every update patches or wipes. The check covers the working directory plus --universe, --prefab-cache and --backup-dir, and it prints the steps to move them somewhere safe before exiting with code 11." A server that refuses to boot is a different category of change from a server that logs a warning. Before you read any further, though, the distinction this whole article is built on: Which Build Are We Talking About Two separate things landed in the first week of September, and almost every summary in circulation has merged them. BuildStatus as of 10 September 2026What it contains 0.6.4Live stable. The version switcher on docs.hytale.com reads Release 0.6.4 (current).A hotfix. Port forwarding, joining and rejoining, a world upgrade fix, creative tool fixes, three crash fixes. Update 7 pre-releaseOpt-in only. The switcher on pre-release.docs.hytale.com reads Pre-release 0.7.0-pre.1 (current).Chapter 1 content, and every breaking change in this article. The breaking changes are not on your stable server. They are in a pre-release you have to opt into, and they will reach stable eventually because that is what pre-releases are for. So the work in this article is scheduling work, not emergency work, with one exception noted below. Two caveats on those version strings. The 0.7.0-pre.1 pin appears only in the docs version switcher; it is not in the patch notes, and Hytale has not branded the build that way. And the hotfix post carrying 0.6.4 is the same page that carried the earlier Update 6 hotfixes, with a byline still reading "Posted by Hytale Team August 27, 2026". The 0.6.4 section was appended in place, under a heading reading exactly 0.6.4 (Sep 7, 2026). If you have that page bookmarked and judge it by its byline, you will keep missing new builds. The Short Version Exit code 11. The pre-release server refuses to start if its data would be written inside the launcher's install folder. This is deliberate, it is protecting you, and it is the change most likely to look like a broken build. There is an escape hatch you probably should not use: --allow-install-dir, or the hytale.allow_install_dir system property. Nine flags left ClientFeature for the GameplayConfig asset. A plugin naming any of them stops compiling. Every chunk lookup returning a WorldChunk is marked for removal. Behaviour is unchanged for now; you get deprecation warnings and a clear migration target. The ShowEventTitle packet changed shape, which breaks any plugin that builds it by hand. The max view radius command now rejects anything above 32, down from 512. 0.6.4 on stable is worth taking now for the port forwarding and rejoin fixes alone. Exit Code 11: The Server That Will Not Start Start with why this exists. The launcher's install folder is patched or wiped by every update. If your universe, your prefab cache or your backups live inside it, an update can take them with it. The pre-release server now checks for that arrangement before it starts, and if it finds it, it stops. The check covers four locations: The working directory the server was launched from --universe --prefab-cache --backup-dir Note the first one especially. Plenty of small servers were started by dropping a jar next to the game and running it there, and plenty of scripts inherit a working directory nobody chose on purpose. You can pass all three flags correctly and still trip the check on the working directory alone. The behaviour on failure is unusually considerate: it "prints the steps to move them somewhere safe before exiting with code 11". So the fix is on your screen. The failure mode to actually worry about is the one where nobody reads it, because a supervisor, a systemd unit or a panel wrapper swallowed stdout and all you see is a process that keeps dying. If a pre-release server is restart-looping, capture the output and read it before you change anything else. An exit code of 11 with no visible message is this check, not a corrupt install. --allow-install-dir, and why you probably should not There is an opt-out, quoted verbatim: "Added an --allow-install-dir flag, mirrored by the hytale.allow_install_dir system property, for anyone who wants to run there anyway and accept the data loss risk." "Accept the data loss risk" is Hytale's phrasing, not ours. The flag does not make the arrangement safe; it makes the refusal stop happening. The risk it was refusing to take is that an update patches or wipes the folder your world lives in. There is one legitimate use for it: unblocking a container or an automated deployment right now, at 2am, while you plan the move properly. Treat it as a temporary measure with a note attached, not as a config line you forget about. Moving the data out is a one-off job; discovering after an update that your universe was inside the install folder is not recoverable by any amount of cleverness. Our guide to pre-release worlds and mods living in separate patchline folders covers the layout that makes this easy to get wrong in the first place. ClientFeature Lost Nine Flags to GameplayConfig This is the change that stops code compiling, so it is the one to schedule a build against. Verbatim: "ClientFeature no longer carries DisplayHealthBars, DisplayCombatText, CanHideHelmet, CanHideCuirass, CanHideGauntlets, CanHidePants, AllowBlockPlacement, AllowBlockBreaking or AllowBlockGathering, and a plugin naming one of them stops compiling. Those rules live in the GameplayConfig asset now, while ClientFeature keeps the movement capabilities plugins register themselves." The split is coherent once you see it. ClientFeature now means capabilities a plugin grants, chiefly movement. GameplayConfig means rules the server sets: what the HUD shows, what armour can be hidden, whether blocks can be placed, broken or gathered. Those were never really plugin capabilities; they were server policy wearing a capability's clothes. There is a visible payoff for players in the same notes: "Server rule changes now affect players immediately, so health bars, combat text, armor hiding and the rules for placing or breaking blocks all update without needing to leave and rejoin the server." Those are the same nine flags. Moving them into an asset is what makes live application possible, so the breakage buys something concrete rather than being a tidy-up for its own sake. What to do: Grep your plugin sources for all nine identifiers. A compile against the pre-release will find them for you, but grepping is faster and tells you the size of the job before you set anything up. Anything you find is a policy toggle, so it moves to GameplayConfig rather than being deleted. Re-test any UI that assumed a rule was fixed for a session. Rules now change mid-session, and a plugin that read a flag once at join time and cached it is now wrong the moment an operator changes it. Note also, from the same notes: "Explosions no longer break blocks in worlds where block breaking is turned off." If you run a protected build world, that closes a real hole rather than being a cosmetic change. The WorldChunk Deprecation Wave The broadest change by surface area, and the gentlest: "Every chunk lookup that returns a WorldChunk is now marked for removal, across IChunkAccessorSync, IWorldChunksAsync, IWorldChunks, World and LocalCachedChunkAccessor. Behavior is unchanged, but plugins compile with deprecation warnings and should move to ChunkStore.getChunkReference and the section store." Read the two halves separately, because their urgency is completely different. "Behavior is unchanged" means nothing breaks today. Your plugin still runs. You get warnings. "Marked for removal" across five types is a statement of intent about a future build. Deprecation at that breadth is not a hint that one method is going away; it is the old chunk access model being retired. The migration target is named: ChunkStore.getChunkReference and the section store. The direction is consistent with where the world model has been heading, and the word "section" is the tell: a chunk stops being a single vertical column object you fetch and becomes a reference into a store of sections. The same notes contain the practical evidence of that shift: "Explosions, block explosion effects, block harvesting, raycast selectors and the spectator camera all work in cubic worlds now that TargetUtil no longer assumes a single vertical column." That is the assumption being removed from the engine, and it is the same assumption baked into any plugin that treats a WorldChunk as a column. If your plugin does terrain work, this is the paragraph to take seriously: the deprecation is the warning, the TargetUtil fix is the reason. Do the migration while it is optional, because doing it under a compile error later is the same work with a deadline attached. The ShowEventTitle Packet Break "The ShowEventTitle packet dropped IsMajor in favor of an EventTitleStyle Style field, which breaks any plugin that builds the packet by hand. Styles include Default and Major." A boolean became an enum. The mapping is obvious enough — IsMajor true becomes Major, false becomes Default — and the reason for the change is presumably that "Styles include" leaves room for more than two. The phrase to notice is "builds the packet by hand". If you use whatever API wraps this, you are probably fine. If you construct the packet yourself, which plenty of event and minigame plugins do for control over presentation, this one is yours. It is a small edit; the risk is not noticing it exists. Max View Radius: 512 Became 32 "The max view radius command rejects anything above 32 now, instead of 512." This is a tidy-up rather than a new limit, and it is worth being precise about which thing changed. The documented ceiling has been 32 for a while — we wrote up what the official server docs say about MaxViewRadius when that Javadoc first appeared, and a value above 32 in config.json was already an error condition that stopped servers starting on the Update 6 launch day. What changed here is the command: it used to accept anything up to 512, and now it refuses above 32, matching the documented cap. The practical effect is that a number nobody should have been setting can no longer be set at runtime. If you have an admin script or a startup macro that sets a view radius above 32, it will now be rejected rather than silently accepted. Fix the script; do not go looking for a way around the cap, because the docs are explicit that a larger value buys nothing. Two Additions Worth Having /auth login without signing out first "Server operators can now run /auth login browser or /auth login device while already signed in, without signing out first. The existing session stays active until the new sign-in finishes, so a cancelled or failed login leaves the server signed in as it was." Small, and genuinely good operational design. The old shape of this — sign out, then sign in, and hope — has a window in it where a failed or abandoned login leaves you signed out on a live server. The new behaviour has no such window: the session you have is held until the session you want succeeds. If you have a runbook that says "sign out first", delete that step once you are on a build that has this. A Rewards module plugins can extend "Added a Rewards builtin module that plugins can extend with their own reward types. It ships one type for now, EntitlementReward, which grants an entitlement through RewardAsset." One built-in type today, an extension point for your own. For anyone building vote rewards, event prizes or progression tie-ins, this is the beginning of a first-party surface to build against instead of inventing one. Nothing has been said about what else will ship in it, so treat "one type for now" as exactly that. Hotfix 0.6.4, On Stable, Right Now Now the half that affects your live server. 0.6.4 landed on 7 September 2026 and is the current stable release. It is mostly a networking hotfix, and if you support players who cannot connect, it is the best week in a while to tell them to update. The three headline fixes in 0.6.4 are all about getting everyone into the same room and keeping them there. Joining and connecting Automatic port forwarding is more patient. "Router discovery no longer gives up early when other devices on your network are slow to answer, so fewer players should see the 'automatic port forwarding is unavailable' message." If that message is the one your players keep screenshotting at you, this is the fix, and it is on the player's machine rather than yours. Two PCs on the same network no longer fight. "Fixed a case where two PCs on the same network could remove each other's port forward when either opened or joined a world." Households with two players, LAN parties and anyone testing with a second machine were hitting this without a chance of diagnosing it. Hosts keep the connection alive while a world is open. "This should help with cases where friends could not rejoin after a disconnect until the host restarted the game." Note the hedge in the original: should help. It is a fix for a case, not a guarantee for every rejoin failure. None of that touches Double NAT, which remains its own problem with its own hedged timeline — our Double NAT explainer covers what is and is not promised there, and what you can do meanwhile. And if you are still triaging connection failures generally, the Update 7 pre-release notes add a diagnostic worth knowing about: "Added a Copy Network Report button to the Online Play screen. It copies a short diagnostic report with no addresses in it, so you can paste it when you ask for help." That one is listed in the pre-release notes rather than in 0.6.4, so check the player's build before you ask them for it. The same notes also say the Online Play screen "now says in plain words whether your friends will be able to join, and what to do if they cannot", which is a meaningful upgrade on a NAT-type label for anyone doing support in a Discord channel. Worlds, tools and stability Entities with block models saved in Update 5 worlds now keep the correct position and scale when the world is upgraded to Update 6. Read the caveat carefully, because it is in the notes and it is load-bearing: this "does NOT repair entities that were already upgraded with the wrong position and scale". If you have already upgraded, 0.6.4 does not go back and fix what the earlier upgrade got wrong. Restore from a pre-upgrade backup if the result matters. Builder tools: rotating a multi-axis block selection now rotates entities with block models correctly; builder tool keys no longer stay bound after you leave a world; and dragging an item with no icon onto the entity tool no longer crashes. Audio: ambient world loops stop the moment you leave a world instead of playing on over the main menu. Three crash and error fixes that matter server-side: a crash when the server sends a fluid update before it has sent every block type, a server error when a projectile with an explosion that damages no blocks detonated, and a server error when a respawn confirmation arrived after the player had already left. The last two are the shape of thing that shows up in your logs as noise until someone works out it is reproducible. Modder-facing fixes in 0.6.4 Anchor PropDistribution no longer drops random parts of props in an 8x8 grid pattern when world generation runs on more than one thread. If your generator has been producing a faint regular pattern of missing props and you assumed it was your placement code, it was not. An ItemGrid in custom UI no longer needs DefaultItemIcon. A ClientTool now receives OnActiveStateChange(false) when the world is torn down while the tool is active, which is the teardown callback you would otherwise have to work around. The version chain on that page For anyone tracking builds: 0.6.1 (27 August), 0.6.2 (27 August), 0.6.3 (31 August), 0.6.4 (7 September). Our write-ups of Update 6 stable and its launch-day hotfixes and of hotfix 0.6.3 cover the earlier links in that chain. A Migration Checklist In the order that costs you the least time: Update stable to 0.6.4. No breaking changes, three real joining fixes. Nothing here needs a plan. Grep your plugins for the nine ClientFeature flags. Five minutes, and it tells you whether you have a compile problem or not. Grep for hand-built ShowEventTitle packets. Another five minutes, and the fix is a one-line enum swap. Check where your server actually writes. Working directory, --universe, --prefab-cache, --backup-dir. If any of them sit inside the launcher install folder, move them now — that is good practice on stable today, and it is the difference between booting and not booting on the pre-release. Confirm your logs are captured. The boot refusal prints its own remedy, which is worthless if your process manager throws stdout away. Compile a plugin against the pre-release and read the deprecation warnings. This is how you find out how much WorldChunk work you are carrying, while it is still optional. Fix any script that sets a view radius above 32. If you run more than one node, the ordering questions get harder, and our piece on native transfers versus proxies for server networks covers how mixed builds behave when players move between them. Frequently Asked Questions What is Hytale server exit code 11? It is the Update 7 pre-release server refusing to boot because the content it writes would land inside the launcher's install folder, which every update patches or wipes. The check covers the working directory plus --universe, --prefab-cache and --backup-dir. The server prints the steps to move them somewhere safe, then exits with code 11. Move the data, or pass --allow-install-dir to override the check and accept the data loss risk. Do the Update 7 breaking changes affect my stable server? No. As of 10 September 2026 the current stable release is 0.6.4, and every breaking change described here is in the Update 7 pre-release, which is opt-in from the launcher. They will reach stable at some point, so the work is worth doing early, but nothing on your stable server changes today. Why does my plugin no longer compile after updating? Most likely ClientFeature. It no longer carries DisplayHealthBars, DisplayCombatText, CanHideHelmet, CanHideCuirass, CanHideGauntlets, CanHidePants, AllowBlockPlacement, AllowBlockBreaking or AllowBlockGathering, and naming any of them stops compilation. Those rules now live in the GameplayConfig asset. Is WorldChunk removed in Update 7? Not removed, marked for removal. Every chunk lookup returning a WorldChunk across IChunkAccessorSync, IWorldChunksAsync, IWorldChunks, World and LocalCachedChunkAccessor is deprecated. Behaviour is unchanged and plugins still work, but they compile with warnings and should move to ChunkStore.getChunkReference and the section store. What does hotfix 0.6.4 fix? Automatic port forwarding gives up less easily during router discovery, two PCs on the same network no longer remove each other's port forward, and hosts keep their connection to the network alive while a world is open so friends can rejoin after a disconnect. It also fixes entity position and scale when upgrading Update 5 worlds, three builder tool problems, ambient audio playing over the main menu, and three crash or server-error cases. Why do my friends see "automatic port forwarding is unavailable"? One known cause was router discovery giving up early when other devices on the network were slow to answer, and 0.6.4 changed that behaviour so fewer players should see the message. Make sure the player is on 0.6.4 before troubleshooting anything else. Can I still set MaxViewRadius above 32? No. The documented cap is 32, and in the Update 7 pre-release the max view radius command rejects anything above 32 instead of 512. The official server docs explain why a higher value buys nothing. What is in the Update 7 pre-release for players? The first wave of Chapter 1 content: the Rune Ability system, six reworked Goblin NPCs, five gadgets and a gliding rework, mostly reached through Creative Mode. We cover all of it in our Update 7 Part 1 write-up. The One Sentence To Take Away Take 0.6.4 on stable today; treat the Update 7 breaking changes as scheduled work, starting with wherever your server writes its data. The boot refusal is the only one that turns into an outage rather than a compile error, and it is also the only one you can fix before you ever see it. If you are listing a server that is ready for what is coming, the HytaleCharts server list is where players are looking for it.