PATCH NOTES

What changed in The Realm.

Notes from each release of The Realm, newest first.

A release marked Release summary shows the short note published with that release.

v1.9.0

Release summary

The Realm v1.9.0 (protocol 76). The new Realm Launcher reads latest-v2.json and installs Realm, HexServerPack, RealmMap and RealmArmory. Map and Armory use verified immutable website downloads. The previous latest.json and archive are retained for older launchers; download the new launcher from The Realm website.

v1.8.20

Release summary

The Realm v1.8.20 / protocol 76 launcher modules, built from source commit f41a46720414c4698bd8104377ab94ce7a29ddac. The matching VPS archive has been installed; the controlled battle worker rollout is completing alongside it.

The maintainer reported successful connection, version check, restart, and rejoin before this package build. No new E2E run was requested or performed for this release.

v1.8.19

Release summary

The Realm v1.8.19 client modules (protocol 76).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.8.18

Release summary

The Realm v1.8.18 client modules (protocol 76).

Includes battle completion and encounter recovery fixes. The launcher verifies the module archive and individual installed files.

v1.8.17

Release summary

The Realm v1.8.17 — protocol 76.

Includes wounded-hero battle completion, active worker rejoin, the four-player handoff threshold, committed-disconnect handling, and retained battle results/rewards.

v1.8.16

Release summary

The Realm v1.8.16 — protocol 76.

Includes the latest merged gameplay and battle-worker fixes. Use the Realm launcher’s Refresh and Install / Update controls to download this release.

v1.8.15

Improve battle connection diagnostics in player reports.

  • Record sampled reliable-packet acknowledgements and outstanding delivery age to help investigate battle lag.

Keep disconnected armies in battle and limit battles to six players

  • Disconnecting, including quitting the game, keeps a player's army in its battle for up to ten minutes so the player can return. An expired return window applies the existing retreat loss, including 50% in battles between players.
  • Battles and sieges allow six players in total across both sides. Disconnected armies retain their place during the return window; AI parties and companions do not consume player places.
  • Returning to an already reserved place remains possible when the battle is full.
  • Troops on both sides of player-versus-player field battles and sieges no longer flee because of low morale, including after a commander falls or disconnects.
  • Manual retreat remains available. Battles against NPCs retain their existing morale rules.

Wound AI lords fought in player battles, cap AI reinforcements at five minutes and drop silent battle peers faster.

  • AI lords and clan members fielded by a player now carry their battle injuries back to the campaign, so they end wounded instead of at full health.
  • AI parties can only reinforce a running player battle within five minutes of its start instead of indefinitely.
  • A battle peer that stops answering for ten seconds is dropped to the relay route instead of freezing its soldiers for a minute.
  • The encounter menu releases a stale battle claim once its battle has finished, so surrender and send-troops no longer stay greyed out.
  • Removed the redundant server reinforcement adapter that skipped Coop's own AI reinforcement handling.

Preserve battle ammunition on reconnect and prevent restarting lost battlefields for free.

  • Keep the original ten-minute reconnect deadline across repeated disconnects and retain armies after unconfirmed mission exits.
  • Synchronize spent ammunition during troop ownership changes while rejoining surviving battle agents at their current health and positions.
  • When the last P2P battlefield owner disappears, refuse a fresh restart, apply a 50% non-hero troop loss when the reconnect window expires, and block reengagement with the same party or settlement for fifteen minutes.

Allow timed-out players to return to an ongoing peer-hosted battle

  • An unexpected connection timeout preserves a player's party and ten-minute return window while another player remains in the battle. The current host continues controlling the absent player's troops.
  • Returning after the normal reinforcement cutoff restores participation in the same battle. Expired return windows, deliberate retreats, and the last remaining player leaving release the absent party and its battle reserves.
  • Worker handoff waits until retained players return or their return windows end.

Keep surviving battle troops under active control when another player withdraws.

  • Transfer surviving AI troops and their mounts to the remaining battle host so they can keep fighting and taking damage.
  • Remove a disconnected player's withdrawn troops and mounts when their reconnect window expires, even after another host has taken control of them.

Guard the battle worker's frozen campaign load against the native ready sweep and auto-simulation.

  • The battle worker now installs the same after-load Player-character repair the campaign host uses, and logs whether those Player characters stay ready.
  • The worker skips MapEventManager.Tick so vanilla cannot auto-resolve the frozen battle it is about to host; battle resolution stays with the campaign server.

Unfreeze battle players promptly when a battle worker dies while loading.

  • The campaign server now polls the worker manager for a submitted battle worker until it connects, and logs that status so a freeze can be diagnosed from the campaign log.
  • A worker that crashes while loading the frozen campaign aborts the handoff within seconds instead of leaving players frozen until the 180 second deadline.
  • Manager pipe failures and unknown attempts stay on the deadline so a live worker is not aborted by a missing record.

Prevent players from offering lordship to companions or promoting them into kingdom lords.

  • Reject stale promotion requests without changing companion ownership, fiefs, gold or influence.

Refresh campaign menus, Party controls and the map HUD with matching artwork.

  • Add bottom-left chat and quest buttons, private clan chat and a combat-log tab while keeping server notices visible.
  • Use T to toggle chat and J to toggle quests outside text entry.
  • Refresh Party, escape and shared menu controls, preserve the reset action, and add a curved statistics bar with matching imported textures.

Allow taking the last item out of a castle or town stash.

  • Emptying a stash no longer fails because the empty leftover snapshot is omitted on the wire.
  • The same empty leftover is accepted for warehouses and a fully emptied party inventory.

Fix the black screen when opening the clan menu with the Realm layout.

  • Keep recruiter controls working when the Realm fiefs page replaces the native clan panel.

Show the five-player allowance in Clan Mates separately from personal companions and AI parties.

  • Clarify that personal companions and AI parties do not consume shared player slots.

Open party role selection to the left of the assigned portrait so Finance no longer covers the choices.

  • Keep the Quartermaster, Scout, Surgeon and Engineer selection boxes accessible.

Assign companion recruiters from the clan screen

  • Select an owned town or castle in the clan screen's Fiefs tab to assign or recall a companion recruiter remotely. Recruiters share the existing two-companion-party limit with regular armies.
  • Recruiters visit nearby friendly villages and pay 5,000 denars per troop from the fief's management reserves, then return troops to its garrison. Only successful recruits are charged.
  • Each assignment recruits at most 100 troops, capped by the companion party's available slots. Losses and save reloads do not reset this allowance.
  • Assignments survive saves, pause while the owner is offline, and stop spending when fief ownership changes. Returning recruiters retain their party slot until reclaimed.

Marry owned companions and protect player spouses from trading

  • Player spouses cannot be offered or transferred in player or NPC trades, including existing wives and captured spouses. Ransoming or freeing a spouse remains available.
  • Players can flirt with their own companions, complete courtship, and marry them directly instead of marrying lords.
  • A married companion keeps their party and ownership while using the existing spouse allowance instead of a companion slot.

Close completed battle encounters after returning to the campaign map.

  • Defer battle cleanup while another screen is open or the encounter menu is still initializing, so defeat cannot strand the map behind an unfinished encounter.
  • Avoid refreshing encounter options before their menu handler is ready and preserve unrelated settlement menus.

Record defeated lords as wounded on the campaign map.

  • Accepted battle casualties now update hero health as well as the battle roster, preventing defeated lords from remaining healthy campaign troops.

Disable fire ballistae in sieges.

  • Remove fire ballista construction options and clear existing deployed or reserved fire ballistae between battles.
  • Use ordinary ballistae when a saved fire ballista reaches mission preparation before cleanup. Other siege engines retain their existing behavior.

Disable player cheat menus throughout Realm gameplay.

  • Remove the controller cheat menu from battles and sieges, block campaign-map cheat shortcuts, and reject cheat-menu actions including healing and wounding enemies.
  • Prevent the legacy client-cheat configuration option from enabling player cheat mode.

Make escape-menu tips opaque and reduce bottom-left navigation size.

  • Give game tips an opaque backing so underlying text cannot show through.
  • Reduce navigation icons, button bounds and notification measurement by 20%, with smaller labels.

Let finished encounters leave the campaign map after a forced attack

  • After a player already entered a forced battle and that mission emptied past the decision timer, leaving the encounter can close the shared map battle instead of keeping both parties parked.

Fix valid troop deposits being refused by castle and town garrisons.

  • Match garrison donation troop identities with their transfer data, including deposits into empty owned garrisons.

Heavy escort caravans keep their 100-troop limit after reloading a campaign.

  • Starting another campaign or loading an older save without escort data clears the previous campaign's heavy caravan records.

Add a 100,000 denar magistrate caravan with a 100-troop escort.

  • Town notables keep the small and better-troop caravan offers and add a more-troops option that costs 100,000 denars.
  • The new caravan uses the standard caravan troop types, fills to 100 members, and keeps that escort cap so it does not desert.

Stop AI parties from fearing Horde of Deserters parties.

  • AI parties no longer treat hordes as avoid/flee threats, while player engagement and avoidance stay available.
  • Existing forbidden flee orders are cleared the same way forbidden attack orders already were.

The Horde of Deserters is neutral, crawls at map speed 0.2 and is capped at two hordes

  • Hordes no longer attack anyone: not players, caravans, companion parties, lords or bandits. Players can still attack and destroy them, and other players can reinforce that fight.
  • A horde never joins a battle that is already running and cannot be pulled into one, so it never reinforces either side against a player.
  • Hordes move at a fixed map speed of 0.2, below the normal minimum, so anyone can outpace them.
  • At most two hordes roam the map at once instead of three. Saves that already hold three keep them until they disperse.
  • A horde wave is skipped if the encounter restrictions could not be installed, rather than spawning a horde that would fight like ordinary bandits.

Keep Horde of Deserters encounters exclusive to players.

  • Hordes and AI parties no longer attack or reinforce each other. Other hordes and AI parties attached to player armies cannot join a Horde battle.
  • Players can fight and reinforce against a horde. Existing forbidden AI attack orders are cleared.

Accept inventory equips when stealth gear is still the shared default snapshot

  • Closing inventory no longer fails with a submitted-inventory mismatch when a hero's stealth set is missing, untyped, or still the campaign default loadout.
  • Untyped equipment still applies its submitted slots, and a default-matching stealth set is kept when those items are actually owned.
  • New heroes and companions send their stealth equipment with battle and civilian gear so clients stop packing the shared default stealth items.
  • Inventory commits never write stealth slots onto the shared campaign default loadout.

Show download and synchronization progress while joining a server

  • Joining now shows received save bytes, average download rate, elapsed loading-stage time, and time since progress.
  • Campaign catch-up reports applied update batches and completed world checks, while keeping the loading screen until synchronization finishes.

Raise the default clan tier required to create a kingdom from 4 to 5.

  • Align the gameplay template and both host settings screens; existing explicit server settings remain configurable.

Stop the launcher requesting the same update after the game creates its menu diagnostic log.

  • Allow the known menu log during installed-file checks while continuing to verify all release files and reject unexpected binaries.

Keep the campaign running while later joiners reuse the current join save.

  • Joining during live play reuses the latest join save and replays world updates from that cut, instead of capturing a new save for every player.
  • Reuse stops after two minutes or 8192 retained world packets, then the next joiner recaptures.
  • Campaign time is not paused to absorb join catch-up.

Add a Donate button on the main menu.

  • The main menu now includes a Donate option.
  • Accepting the warning opens the Realm support page in the default browser.

Keep map visibility updating through incomplete encounters and reject distant map conversation requests

  • Use the main party position for visibility while a raid or siege settlement is unavailable, allowing queued map movement updates to finish.
  • Check server positions before approving a new client map collision with an NPC, preserving existing encounters and native distance allowances.

Give every player the full clan-tier troop bonus when joining another player's clan.

  • Human clan members receive the same 25 troops per tier as their clan leader, while AI party bonuses remain unchanged.

Prevent AI mercenary clans from being hired into player-led kingdoms.

  • Block automatic recruitment and ruler hire requests while preserving player mercenary service.

Add a Dark charcoal Realm UI theme next to Default and Blue.

  • Players pick Dark, Default or Blue in Mod Options. Dark remaps existing Realm chrome to charcoal and keeps party upgrade states distinct.
  • The visual preference is saved per player and takes effect after restarting the game.

Let players choose new Realm or default Bannerlord styling in Mod Options.

  • The visual preference is saved per player and takes effect after restarting the game.
  • Custom quests, chat, clan mates and Realm functionality remain available in both styles.

Close leftover fight menus after a won field battle returns to the campaign map.

  • Finish a completed battle's encounter even when native already cleared the map event, instead of leaving only Surrender.

Wait for other players' authorized reinforcement waves before ending a battle

  • An empty side stays in battle while the server still counts authorized troops, including another player's two-minute reinforcement wait.
  • Battles still end when the server confirms that side has no remaining troops.

Refresh Realm menus, clan and kingdom pages, quests and chat.

  • Use consistent slate materials, green selections, detailed navigation icons and readable labels.
  • Display live clan-player cards, kingdom banners, leaders and settlement details.
  • Keep quests over the campaign map and fix tab visibility and button alignment.

Criminal rating is removed: nobody is wanted by a faction any more

  • Raids, caravan and villager shakedowns, failed sneak attempts and quest outcomes no longer raise a criminal rating with any faction, and towns never turn you away as wanted.
  • Ratings carried in an existing save are cleared whenever the server loads the campaign, so players who were already wanted can enter towns again.
  • The 'Discuss the terms of your surrender' guard option, which led to a menu that was never available in The Realm, no longer appears.

Besieged lords sortie with the garrison, which now weighs the whole besieger camp before sallying out

  • When an AI garrison sallies out, every defender inside at war with the besieger leader joins the sortie, including lords who used to sit it out because one besieger was not formally at war with them.
  • The AI sortie decision now counts every party in the besieger camp, so a small siege screen backed by strong camp members no longer baits the garrison into a losing sortie.
  • A sortie into an already running relief battle outside the walls still follows the vanilla rules.

Keep a shared clan's raised renown requirement after a player leaves, and let the clan owner kick a selected clan mate.

  • Joining a shared clan permanently raises that clan's later-tier renown threshold; leaving no longer lowers it.
  • The clan owner can kick a selected player from the Clan Mates page.

Reduce repeated save pauses when players become ready to join together.

  • Join requests ready in the same network poll share one save capture while keeping separate downloads and catch-up queues.

Fix selected tavern prisoner sales being refused after a valid ransom transfer.

  • Accept native ransom-screen transfer history and count deltas so selling specific prisoners in a town tavern can commit.

Add the Horde of Deserters campaign event.

  • Every 250 campaign days, attempt to spawn one or two roaming hordes, capped at two active hordes. Each has 1,000–3,000 total fighters, including five or ten deserter lords and a randomized mix of tier 4–6 noble troops.
  • Announce arrivals and the clan that defeats each horde in the action log. Surviving hordes disperse after 150 days, with cleanup delayed until their battle ends. Hordes do not besiege settlements.

Make Bahamut and Swadian armory pieces rarer tournament and quest rewards.

  • A tournament prize is now a 7.5% chance for an armory piece and a 92.5% chance for ordinary native gear.
  • Completing a tavern quest now has a 12.5% chance to grant an armory piece instead of 25%.

Leaving a battle nobody can rejoin no longer locks you in the encounter menu for ten minutes

  • When the last player leaves a live battle over a working connection and the battlefield cannot be recovered, the server withdraws that army at once (with the usual retreat losses) instead of holding it for the ten-minute rejoin window.
  • That hold was what left the encounter menu with every option greyed out and a 0:00 rejoin timer after such a leave.
  • A player who reconnects to a battle whose battlefield is gone is withdrawn on the spot rather than told to wait for the rest of the window.
  • Players who actually lost their connection keep the whole rejoin window as before.

Count fieldable troops within the battle reserve cap

  • Reserve status excludes troops that have no fieldable authorization within the 300-combatant cap.
  • A fully fielded routing army can still complete its retreat.

v1.8.14

Release summary

The Realm v1.8.14 client modules (protocol 76).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.8.13

Release summary

Fix escape-menu tip transparency and reduce bottom-left navigation by approximately 20%. Matching client/server release, protocol 76.

v1.8.12

Release summary

Realm v1.8.12 refreshes the menus, navigation, clan and kingdom pages, quests and chat with the approved slate and green design. Includes the tab-return and text-alignment fixes.

Protocol 76. Maintainer confirmed local testing and explicitly waived additional tests and GitHub verification for this release.

v1.8.11

Release summary

The Realm v1.8.11 client modules (protocol 76).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.8.10

Finish replicated deaths for battle puppets already at zero health

  • Keep active puppets registered until death replay succeeds, preserving casualty attribution while a retry is needed.

Prevent inactive or disconnected players from holding AI lords in encounters

  • Keep the hostile three-minute decision deadline through dialogue and the battle menu, start Attack when it expires, and defeat a connected player who fails to enter within two more minutes.
  • Retreating from an AI battle sacrifices the player's regular troops and releases the encounter.
  • Withdraw disconnected players from battles and hide their parties, while allowing remaining allies and AI to continue.

Preserve horse creation keys during battle replication and worker handoff

  • Replicated and reinforcement horses retain valid creation keys so their later capture does not abort P2S takeover.

Reduce campaign join download stalls caused by oversized save metadata

  • Compress campaign metadata and transfer it in bounded chunks alongside the save, so the first progress update no longer waits for a multi-megabyte packet.
  • Record transport counters during stalled downloads to distinguish fragment delivery from completed save packets.

Preserve horse AI state when cavalry dismounts and remounts

  • Keep horses available to native remount searches while replicated stationary turns temporarily disable their movement controller.

Limit clans to five players and add kingdom clan capacity upgrades

  • Player kingdoms start with two clan slots, including the ruling clan. The ruler can purchase a third slot for 50 million denars and a fourth for 200 million on the kingdom page.
  • Offline players count toward the five-player clan limit. Existing memberships are preserved; new admissions respect the limits. Purchased kingdom capacity survives saving and loading.

Refresh all clan pages with sharper artwork, bordered controls and live player banners

  • Restyle all five clan tabs, sidebars, page backgrounds, header and Done button while preserving the remaining bottom HUD.
  • Include the imported texture packages, pixel caches and serif font in client and server packages.
  • Show server-confirmed clan mate presence, live player banners, renown at maximum tier and each player's workshop count out of one.

Allow inventory transfers to your companion and spouse parties

  • Recognize your own companion or spouse leading a separate party when giving food or managing equipment, including through army conversations.
  • Keep other players' companion inventories private and restore authoritative inventories after rejected transfers.

Send dialogue army invitations to the server instead of creating ghost attachments.

  • Inviting a lord through conversation uses the same server approval and influence payment as army management, without attaching the party locally.

Stop deployment diagnostics from retaining completed battle teams

  • Keep once-per-team deployment logging without a permanent diagnostic reference to the team and its mission.

Make diagnostic reports smaller and identify missing or truncated evidence

  • Report ZIPs retain bounded log tails and an evidence inventory so missing logs are distinguishable from successful operations.
  • Maintainer tools summarise report metadata and retrieve relevant engineering findings with source freshness checks.

Recover stale player references to finalized field battles

  • Clean up verified finalized battle references retained by player parties, including events missing from the campaign event list, and synchronize the cleanup to clients.
  • Log retained orphan references when active ownership or incomplete state prevents safe recovery.

Allow battle deployment to finish when the player's hero is absent

  • Skip hero-only deployment operations when a Coop field or siege battle has no spawned player hero, preserving troop setup and the synchronized ready barrier.

Preserve NPC recovery after temporary battle protection

  • Keep temporary hold tracking when AI recalculation issues no new order, so protection expiry can resume the party.

Allow server restarts after an NPC takes over a former player party

  • Preserve NPC-led parties that retain an old player ID without blocking campaign startup, while continuing to reject conflicting player ownership and malformed party graphs.

Hide companion-led parties while their owning player is offline

  • Park personally owned companion parties on disconnect and restore them on campaign rejoin, including after a server restart.
  • Companions already fighting finish their current battle before parking, so casualties and results settle normally.
  • Preserve party identities and assets, respect captivity, and leave other players' parties in shared clans online.

Apply the 20% offline income rate when offline resource changes are disabled

  • Process daily offline clan and personal asset income at 20% instead of skipping withdrawals until the owner reconnects.
  • Allow workshops to retain trading capital so their reduced offline income can be paid.
  • Preserve the existing settings for expenses, food and influence.

Clear retired NPC battle references for battle participants

  • Battle recovery now clears stale NPC battle links on participating clients as well as observers, while preserving references belonging to a different or replacement battle.

Allow player kingdoms to negotiate peace with each other

  • Use both kingdoms' submitted votes instead of AI willingness to negotiate when offering and accepting peace.
  • Resolve submitted peace votes when the offer expires instead of discarding accepted offers while waiting for another player clan.

Prevent overlapping network callbacks when polling restarts

  • Wait for the previous poll callback to finish before a restarted loop begins, while preserving cancellation and teardown waits.

Remove defeated quest bosses instead of retaining them in towns

  • Generated quest bosses cannot be captured; detached survivors from existing saves are removed in small batches while active enemies are preserved.

Prepare missing spawn plans when taking over battle reinforcements

  • Late reinforcements and troops recovered after a host change use their team's deployment plans instead of an uninitialized fallback frame.
  • Existing deployment and reinforcement plans remain unchanged.

Release stale movement targets after battle rejoin or host migration

  • Clear the network puppet's native movement target when a player reclaims control or the host adopts surviving troops after a disconnect or host departure.

Keep temporary siege-camp reset state local

  • Stop broadcasting the native camp-change guard that can interfere with a client's local siege-exit action, while retaining siege membership synchronization.

Allow resizing smithing parts that use full-volume scaling

  • The server accepts the normal size-slider range for full-scale parts, including mace heads, preserving their selected scale and native weight calculation.

Fix surrender leaving players stuck in the encounter menu

  • Resolve the authoritative battle before submitting surrender from dialogue, and keep surrender retryable when battle creation or identity resolution fails.

Prevent battle workers from crashing on oversized movement updates.

  • Movement batches account for both relay headers before sending; oversized disposable updates are logged and dropped without ending the battle.

v1.8.9

Recover indefinitely disabled NPC lords after the earlier save migration

  • Recheck unowned disabled lord parties across separate campaign sweeps, including saves already marked migrated and parties that become disabled again.
  • Preserve active battle, settlement, army, quest and conversation ownership, and report bounded recovery eligibility diagnostics.
  • Deliver the current clan admin, companion ownership, quest hand-in and battle recovery fixes through the launcher.
  • Match the client update with the dedicated-server package. The underlying gameplay changes are listed under the preceding private v1.8.8 checkpoint below.

v1.8.8

Refresh waiting battle movement and preserve weapon modifier identity

  • Apply the newest movement received while earlier game-thread work drains, without moving updates across lifecycle events.
  • Resolve existing weapon modifiers for battle equipment and pickups instead of constructing duplicate modifiers and logging client-creation errors.

Stop repeated failed worker takeovers from continually freezing a P2P battle.

  • Allow one retry after an aborted takeover, then keep the affected battle on P2P without further automatic takeover pauses.
  • Keep the retry limit across player reconnects and host changes while isolating it from other battles.
  • Identify the exact failed mount-checkpoint field in the existing rejection diagnostic without relaxing import validation.

Keep catapults for campaign bombardment only

  • Prevent normal and fire catapults from deploying in siege assaults and sally-outs for either side, including reconnect replay.
  • Keep campaign construction, bombardment and siege-engine records intact; rams, towers and ladders remain available.

Let clan owners appoint admins to negotiate peace

  • Show Owner, Admin and Member ranks with owner-only Promote and Demote controls in Clan Mates.
  • Keep admin rank through saves and reconnects, remove it when leaving the clan, and allow admins to negotiate clan peace while the owner is offline.
  • Restrict the Members screen and companion fief grants to heroes owned by the individual player.

Keep diplomacy in player kingdoms under player control.

  • Prevent recruited AI clans from proposing diplomacy in player kingdoms.
  • Resolve player-kingdom diplomacy using submitted player votes, without AI votes or timeout fallback decisions.
  • Preserve autonomous diplomacy between AI kingdoms.

Show both Troop replenishment hand-in requirements

  • Show recruited troops and regular troops available to transfer, and only direct players back to a Quest Giver once both requirements are met.

Recover saved AI lords stranded in an indefinite hold without a current owner.

  • Preserve timed disables and parties controlled by conversations, quests, armies, settlements, sieges or battles.
  • Reduce routine AI and successful local replication log output while retaining failures and disabled-lord diagnostics.

Restore missing battle entry options after reinforcement data arrives.

  • Refresh the encounter option list after synchronized battle membership and troop updates without restarting the encounter or changing the reinforcement deadline.

Preserve player formation orders when reinforcements arrive

  • Reinforcing troops no longer force formations owned by an active player into AI control or replace their current orders with a charge.
  • Battle control diagnostics now track the local hero even after the main-agent reference is lost, with health and worker handoff context.

Repair native scene restoration during battle worker handoff

  • Restore the captured battle atmosphere in a private worker scene while preserving the original terrain and campaign mission settings.
  • Preserve specific worker import errors in campaign and client logs, and release remaining players after an aborted handoff even if another player's connection fails.

Stop reconnecting players from automatically loading back into a battle

  • After a battle disconnect or crash, finish reconnecting at the encounter screen and choose Rejoin the battle to return within the existing countdown.

Prevent a battle cleanup error from stopping the server

  • Keep battle cleanup and its recovery together so an error while finishing a battle does not disconnect everyone on the server.

Raise the battle troop cap to 300 per side

  • Allow up to 600 combatants across both sides in P2P and worker-hosted battles.
  • Keep the existing 400 deployment units per side and 800 total live-agent limit, including horses.

Repair battle synchronization during delayed updates and reconnects

  • Stop expired movement updates from pulling troops back to old positions.
  • Apply confirmed damage without waiting for cosmetic missile replay and preserve health through control handback.
  • Restore a returning player's own reinforcements and preserve routed troops across replay.
  • Recover held guard state and guard releases when a battle connection changes routes.
  • Return rejected worker entries to the campaign and keep unconfirmed reserve pointers from spawning duplicate troops.
  • Keep merged movement-only Steam packets disposable under connection pressure.

Integrate the dedicated battle worker and its fixes into the main Realm source

  • Include the worker manager, campaign importer, player continuity, retreat, reinforcement and command-control repairs alongside their current shared campaign code.
  • Load campaign item and character content before decoding worker battle snapshots, and stage required campaign XML and schemas without loading content-module code.
  • Align worker imports and reinforcements with the shared 300-combatant side limit while retaining mount and total live-agent limits.

Fix companion health appearing stuck while healing

  • Companion health percentages and wounded indicators now update while the party screen stays open, without resetting pending troop transfers.

Fix companion-party creation and enforce two additional parties per player

  • Accept the party screen's leader placeholder and empty selection rows while preserving authoritative troop-transfer checks.
  • Limit each player to two additional companion-led parties independently of caravans.
  • Log companion-party submissions, slot usage, roster mismatches and creation outcomes.

Keep the server launcher responsive while automatic restarts finish

  • Bound the wait for final console output after the server process exits and preserve captured logs before restarting.
  • Prevent late output or exit notifications from the previous process affecting the next server session.

Repair stalled lord movement and conversation AI releases, with automatic diagnostics

  • Restore conversation-owned AI flags without waiting for a settlement exit that disabled AI cannot perform, including saved deferred releases.
  • Release conversation-owned AI for besieging armies while preserving their original siege orders and protecting replacement owners.
  • Allow repeated movement orders to rebuild stopped navigation and retry failed paths instead of being discarded as unchanged.
  • Record bounded server diagnostics identifying stationary lords, hold ownership, decision outcomes and recruitment limits.

Protect surviving troops after retreating from battle

  • Apply the existing two-minute protection after a confirmed retreat so nearby enemies cannot immediately trap the surviving party in an unseen encounter.

Disable new ballista construction by players during sieges

  • Remove normal and fire ballistas from player build choices unless a matching engine already exists in reserve.
  • Keep AI construction and existing siege equipment unchanged.

Repair siege reconnect loading and recover failed battle initialization

  • Delay replayed siege equipment movement, damage and ladder animation until the scene finishes initializing.
  • Stop retrying a partially initialized battle after a loading error and use the existing safe cleanup for field battles and sieges.
  • Preserve rejoin participation when a resumed mission fails to load and record the first initialization error with its battle identity.

Preserve ammunition and shield condition during worker handoff

  • Restore captured weapon values after native spawning so equipment perks are not applied twice during battle import.

v1.8.7

Confirm battle retreats and preserve worker battle control and reinforcements

  • Confirming retreat removes half of the retreating party's remaining regular troops, rounding the loss up. Heroes, companions, prisoners and other players' troops are preserved.
  • Re-entering after retreat uses the reduced roster; stale leave messages and duplicate withdrawal receipts cannot remove a new entry or apply the penalty twice.
  • Transfer late AI reinforcements to dedicated battle workers, remove queued troops on withdrawal and settle pending joins before completing a battle.
  • Restore captured battle weather, morale and banners on workers, preserve formation control during temporary input pauses and prevent repeated failed capture attempts.
  • Preserve authoritative deaths, dismounted horse control and surgery rewards through worker battles and reconnects.
  • Keep battles with up to two human players on P2P; eligible larger field battles can transfer to a worker and remain there until completion.

Preserve battle ownership through worker handoff and player reconnects

  • Keep allied teams' formations distinct when transferring a battle to a worker.
  • Apply locally owned combat damage while player input is temporarily paused for handoff.
  • Accept a returning player's new combat actions and reject delayed actions from their previous control period.
  • Preserve worker hero health and contribution reporting until control is handed back to the player.
  • Record field-battle character, command and retreat transitions alongside the existing siege diagnostics.

Repair battle worker handoff, completion, damage replay and animation synchronization

  • Replay horse-charge deaths without looking up a missing weapon slot.
  • Carry action speeds for both animation channels while preserving ongoing action progress.
  • Use explicit battle damage fields and packed action flags, with matched client and server wire versions.
  • Record bounded receive-stage diagnostics for Steam tunnels and mission packets.
  • Accept valid checkpoints for battle sides without heroes and report the exact field when a checkpoint is rejected.
  • Keep the player camera attached during handoff and apply received combat damage while the battle drains before transfer.
  • Queue incoming player and mount damage notifications using the accepted damage amount.
  • Preserve each native team's reward ownership when a battle transfers to a worker.
  • Wait for native deployment completion before pausing a joining player for handoff.
  • Prevent riderless horses from blocking a routed army's battle result and log the conditions holding completion.

Keep owned companions when leaving a shared clan

  • Preserve existing companion ownership across clan transfers and reconnects after a clan tier drop.
  • Reject incomplete asset transfers instead of reporting a successful clan leave.
  • Close the clan screen before leaving and prevent reopening it until the request finishes.

Release NPC AI holds after conversations become battles

  • Retain conversation recovery when a battle, siege, army or other activity takes control, then restore AI after that activity ends.
  • Preserve recovery across save/load without replacing newer movement orders or preexisting AI holds.

Enable dedicated battle workers from host server settings

  • Save a persistent worker preference and prepared startup file in the dedicated server settings.
  • Verify matching worker files and manager readiness before enabling multiplayer battle handoff.

v1.8.6

Correct campaign request origins and party cleanup

  • Apply replicated party roles without sending them back as new requests, and restrict local role requests to personally owned parties.
  • Use the dedicated-server valuation when explaining a refused safe-passage offer.
  • Keep released player parties out of the dedicated server's camera state and remove camera references when parties are destroyed.
  • Prevent battle teardown from restarting native casualty reporting alongside co-op casualty accounting, while preserving native hideout battles.

Repair companion health, quest hand-ins, and encounter continuity

  • Report owned companions' battle injuries to the campaign server so healing reaches every client, including after a knockout or battle exit.
  • Stop travel when an encounter begins and prevent settlement entry from interrupting an unresolved hostile conversation or safe-passage barter.
  • Stop repeated server-detected encounters from flooding players and the console with rejection messages while a conversation is already active.
  • Record why a bandit barter cannot be submitted and explain when its encounter has ended.
  • Keep approved AI encounters queued until the previous battle's loot screens finish, preserving loot and the current encounter request.
  • Release a completed battle's camera lock once the campaign map is active again, without interrupting live missions or loot screens.
  • Refresh the player's campaign map icon when deferred battle membership is cleared so the fighting animation stops after mission exit.
  • Resolve troop hand-ins against the player's registered party and show whether a hand-in was submitted instead of promising rewards before confirmation.

Keep inventory equipment consistent with server updates

  • Prevent closing or resetting an inventory screen from restoring equipment removed by a received server update.
  • Reset pending inventory edits when authoritative equipment changes, while preserving edits when an unchanged update arrives.

Keep lord parties moving after visiting villages

  • Lord and caravan parties now continue their normal hourly recruitment while waiting beside a village or town, so they do not remain stuck there after the settlement interaction ends.

Limit player battles to 200 troops per side

  • Limit initial deployment and reinforcement grants to 200 active troops per side while keeping excess troops in reserve and preserving campaign AI-versus-AI battles.

Keep the server console readable during AI battles

  • Hide routine troop-reserve, successful replication and deserter-merge diagnostics from the host console while retaining them in the full log.
  • Keep moderation feedback, server health, warnings, failures and unfamiliar output visible.

Fix reinforcements getting stuck in strategic camera when soldiers die during loading

  • Apply confirmed battle deaths while a joining player is still deploying so missing soldiers cannot block deployment completion.
  • Retain and retry a death when native processing remains blocked, with bounded diagnostics instead of leaving a living soldier outside synchronization.

Show personal companion limits and protect player character development in shared clans

  • Show each player's own companion count and allowance in the clan screen, matching their separate recruitment slots.
  • Restrict character development to the player's own hero and personally owned NPC heroes, and reject attempts to edit another player's stats on the server, including while that player is offline.

Fix wounded players being unable to join another player's battle

  • Choosing Attack can now join an ongoing field battle or siege after the server accepts the request, even when your hero is wounded.

v1.8.5

Restore the leave-alley-empty outcome

  • Leaving a defeated gang alley empty now clears its owner, applies the native relation changes, and ends matching attacks on the player's alleys.

Keep alley troop transfers atomic

  • Validate and commit the alley and player troop changes together so managing an alley cannot silently lose troops.

Allow eligible parties with low food supplies to join player armies

  • Army creation and invitations no longer reject otherwise eligible parties because they have 15 days of food or less.

Keep army portraits and troop totals current

  • Refresh the army panel from synchronized membership and troop counts without reopening a menu.
  • Wait for accepted invitations before adding parties locally, and finish dismissal cleanup before refreshing the panel.
  • Log discrepancies between displayed, listed, and attached army parties.

Cancel released battle launches and close terminated missions

  • Cancel delayed fresh joins and rejoins even when the server releases the battle during mission creation, and restore the ordinary attack option.
  • Protect accepted rejoins while the player loads, and preserve the existing rejoin deadline after a failed delivery.
  • Close missions ended by the server and stop further battle result reports from the terminated client.

Preserve battle synchronization during late joins and host disconnects

  • Send loading catch-up only to newly ready players so existing participants do not receive repeated troop placement corrections.
  • Retain buffered troops through disconnects and reconnects, restore their control when they can spawn, and avoid duplicate replacement troops during host migration.
  • Retry deployment catch-up when its route cannot accept a send, and send movement authority changes once through the mission relay.

Repair battle recovery across host changes and connection loss

  • Keep valid troop deaths and retreats counted when the mission host changes.
  • Keep routed troops, weapon changes and siege ownership consistent when a direct battle connection fails.
  • Release failed battle-loading attempts without cancelling a newer rejoin.
  • Discard obsolete pending actions for troops that have left the battle.

Restore disconnected battle participants within ten minutes

  • Returning players get Rejoin the battle with a countdown separate from the reinforcement cutoff.
  • Resume existing troops without requiring a fresh hero spawn, preserve retry deadlines, and guard incomplete siege menus.
  • Add disconnect, rejoin eligibility, reserve, control restoration, and cleanup diagnostics.

Reduce battle relay congestion and preserve ordered recovery state

  • Batch small ordered combat relay messages with the existing campaign stream while preserving membership, spawn and authority ordering.
  • Keep accepted deaths recorded for the mission so a retried deployment snapshot cannot recreate a defeated troop or horse.
  • Apply battle results, host changes and control handbacks in receive order on the game thread.

Reduce campaign catch-up waits on higher-latency connections

  • Keep a small bounded window of replay batches in flight while preserving ordered client application, frame budgets, and the final world-ready barrier.

Unlock caravans at clan tiers 1 and 3

  • Each player unlocks their first caravan at clan tier 1 and their second at clan tier 3, up to two active caravans. Caravan purchase options explain the next unlock.

Count cavalry as two deployment units in coop battles

  • Troops deploying with a mount use two of each side's 400 deployment units across all players. Troops deploying on foot, including ordinary siege cavalry, use one.
  • Siege reinforcements and host recovery follow deployment's horse rules. Excess troops stay in reserve, with casualties and routs releasing their deployment units for reinforcements.

Adopt the joined clan's tier and increase the later clan renown requirements

  • Joining refreshes the destination clan's tier and renown on every client. Tier-zero resets remain limited to returning to a personal clan or creating one.
  • Before shared-clan scaling, tier 3 remains at 700 renown and tiers 4, 5 and 6 require 2,200, 4,100 and 9,150 renown.
  • Shared clans advance at the increased renown requirement shown in the clan screen, while keeping tiers they already earned.

Limit hired companion captivity to 30 campaign days

  • The server checks hired companions once per campaign day and frees them between 29 and 30 days of captivity, even when captor perks prevent normal escapes. Saved capture times keep the limit across restarts and prisoner transfers.

Restore companion refills when the original templates are all occupied

  • Add 800 distinct companion templates using the existing cultures and skill profiles, allowing taverns to replenish after the original pool has been hired.
  • Keep existing companions and the limits of 10 spawns per refill pulse, 100 recruitable companions by default, and 1,000 living wanderers.

Keep battle combat messages independent of temporary direct connection loss

  • Damage, death, health and their spawn and control prerequisites use the reliable campaign relay while mission membership remains connected.
  • Direct route failure and reconnection no longer discard these messages with the old direct connection. Movement keeps its existing transport.

Keep forced encounters progressing after the conversation closes

  • Preserve the battle decision timer when a hostile conversation becomes a battle, so its deadline starts auto-resolve instead of leaving Attack and Surrender blocked. Server diagnostics now distinguish a decision lock from a running battle.
  • Log the server's siege, camp and army leadership when an assault order is rejected, with repeated identical diagnostics limited to once per minute.

Keep pending game updates queued after an earlier action fails

  • A failing queued action no longer silently discards later updates or strands callers waiting for those updates.

Improve campaign and battle synchronization diagnostics

  • Record bounded campaign and mission packet summaries on clients and servers, including receive failures and rejected relay routes.
  • Record mission entry and departure outcomes, siege launch stages, inventory delta results, and sync handler timing and missing identities.
  • Include millisecond timestamps, session identifiers, and suppression counts so repeated failures can be traced across player logs.

Reduce all hero skill XP gains by 50%

  • All hero skills now earn half their previous XP, on top of existing skill-specific balance settings. Existing levels and accumulated XP are preserved.

Reduce roster updates queued during campaign loading

  • Combine adjacent compatible inventory updates and bounded troop operations while retaining clears, object lifetimes and the ordered final join tail.

Prevent reinforcement cooldowns from blocking initial battle deployment

  • Players loading into an already active battle can deploy their initial troops without the reinforcement cooldown blocking their spawn.
  • Subsequent player reinforcement waves keep their two-minute gap, while AI reinforcement eligibility remains immediate.

Keep the campaign running when a connected player falls behind

  • An overloaded player connection no longer pauses everyone. Sustained or excessive backlogs disconnect only that player with a reconnect message.

Keep market stock current while shopping and after rejected purchases

  • Stock changes received during shopping survive closing or cancelling the inventory. Purchases that become unavailable reset the pending cart, and rejected trades refresh the merchant inventory to remove phantom stock.

Allow rejected marriage offers to be revised and resubmitted

  • A rejected marriage barter now keeps its original server authorization so the player can correct and resubmit the offer without restarting the conversation.

Reduce offline income to 20%

  • Players receive 20% of clan, caravan, party, workshop, and alley income earned while disconnected. Online earnings and existing expenses keep their current rates.

Limit workshop ownership to one per player

  • Each player can acquire one workshop regardless of clan tier. Players sharing a clan have separate allowances, and rejected extra purchases do not charge gold.

Keep player lords out of captivity and recover older captive saves

  • Player lords cannot be taken prisoner, including while offline. Defeat and surrender still cost troops and companions, while the player returns with their hero after the battle ends.
  • Saved captive players regain an active party before joining. Failed campaign synchronization now logs the exact baseline rejection reason.

Fix sallying out against a player-led siege

  • Defending commanders can use Sally out from gate to start a battle against another player's besieging army.

Keep accepted tavern contracts visible while quest slots refresh

  • Quest Giver dialogue now identifies the active contract alongside its slot refresh timer and keeps the last host-confirmed offers available during a client-time refresh.

Collect diagnostics in one clearly named Report ZIP

  • Crash, manual and completed-session reports now leave one dated ZIP instead of folders of loose files and a duplicate archive.
  • Include available boot, patch-loader, main-menu video and party-sync performance logs alongside gameplay logs, binary details and crash dumps, with capture status inside the report.

Remove riderless battle horses after a 90-second grace period

  • Horses left by fallen or dismounted riders are removed from the battle after 90 seconds without a rider. Remounting cancels cleanup and a later dismount starts a fresh grace period.
  • Replicate horse removal across battle peers without killing campaign horses or recording extra troop casualties.

Preserve siege reserves and share battle troop limits across players

  • Each battle side shares a server-issued allowance of 400 deployment units, including sieges and sally-outs. Casualties free slots for reinforcements.
  • Unspawned reserves survive repeated host disconnects even when a client rebuilds its campaign roster with different troop identifiers. Troops already killed, wounded, or routed do not return as reinforcements after a handover.
  • An empty or fleeing current wave cannot trigger victory while reinforcements are waiting. Migration diagnostics distinguish retained reserves from troops already fielded.

Stop negative daily food balances in towns and castles

  • Town and castle food stocks no longer drain from a daily deficit, including during sieges. Positive growth and existing storage limits still apply.

Fix companion and other AI parties getting stuck while travelling to settlements

  • Parties can resume travelling after stopping and choosing the same town or village again, including when seeking food.

Protect personal heroes and keep shared clan departures safe

  • Players can dismiss and appoint only their own heroes. Governor changes also protect another player's installed or travelling governor.
  • Family gained after joining a clan can lead personal parties and use their player's wages and income when ownership is unambiguous.
  • Departing heroes give up governorships and cancel governor travel to towns that remain in their former clan after the departure succeeds.
  • The last guest retains the Leave button. Clans with fiefs or kingdom obligations require a successor before their final member can leave.

Keep player siege troops fighting until ordered to retreat

  • Player formations no longer automatically withdraw from sieges because of morale or the siege AI's strength estimate, including after their commander falls. Explicit retreat commands still work.
  • Routed survivors return to winning player siege parties at battle cleanup without restoring killed soldiers or removing wounds.

Spread periodic battle equipment repairs across their five-second window

  • Reduce peak unchanged equipment refresh work while preserving the existing polling response to wield-state changes.

Fix troop upgrades rejected after XP changes

  • Upgrading the last troops in a stack no longer fails when they earn extra XP before the server applies the upgrade.

Fix parties remaining stuck in battles after reaching zero fit troops

  • Allow unfinished AI field battles to resolve normally when one or both sides have no fit troops left, releasing surviving parties from the battle.

v1.8.4

Release summary

The Realm v1.8.4 client modules (protocol 74).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.8.3

Release summary

The Realm v1.8.3 client modules (protocol 70).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.8.2

Release summary

The Realm v1.8.2 client modules (protocol 70).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.8.1

Release summary

The Realm v1.8.1 client modules (protocol 70).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.8.0

Release summary

The Realm v1.8.0 client modules (protocol 70).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.7.8

Release summary

The Realm v1.7.8 client modules (protocol 69).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.7.7

Release summary

The Realm v1.7.7 client modules (protocol 69).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.7.6

Release summary

The Realm v1.7.6 client modules (protocol 68).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.7.5

Release summary

The Realm v1.7.5 client modules (protocol 68).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.7.2

Release summary

The Realm v1.7.2 launcher update (protocol 68). Includes the transferred-player movement authority repair so the server and remote clients receive player movement correctly. Install through the Realm Launcher Refresh/Update flow.

v1.7.1

Release summary

The Realm v1.7.1 client modules (protocol 68).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.7.0

Release summary

The Realm v1.7.0 client modules (protocol 68).

The Realm Launcher verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.6.7

Release summary

The Realm v1.6.7 client modules (protocol 66).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.6.6

Release summary

The Realm v1.6.6 client modules (protocol 65).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.6.5

Release summary

The Realm v1.6.5 client modules (protocol 65).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.6.3

Release summary

The Realm v1.6.3 client modules (protocol 64).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.

v1.6.2

Release summary

The Realm v1.6.2 client modules (protocol 64).

The Realm Launcher verifies the package SHA-256 and every manifested file before installing CoopRealmServer and HexServerPack.

v1.6.1

Release summary

The Realm v1.6.1 client modules (protocol 63).

The Realm Launcher verifies the package SHA-256 and every manifested file before installing CoopRealmServer and HexServerPack.

v1.6.0

Release summary

The Realm v1.6.0 client modules (protocol 62).

The Realm Launcher reads latest.json, verifies the package SHA-256 and every manifested file, then installs exactly CoopRealmServer and HexServerPack.