Legends of Aria: Eternal — Patch Notes
Game content 1.0.2 · Client 1.4.2
Steam will update your client automatically. You must be on 1.4.2 to log in.
The largest content patch since launch: a new endgame dungeon, alliances, town sieges, a rebuilt wilderness, and a long list of fixes — including the reason attack speed has never felt right.
Hell — a new endgame dungeon
Hell is a persistent shared PvPvE region, not an instance — everyone who gets in is in the same Hell, and the whole dungeon is a Chaos zone with open PvP rules.
Getting in. Demonic Gatekeepers appear roughly every three hours across Barren Lands, Black Forest, Eastern Frontier, Frozen Tundra, Southern Hills, Southern Rim and Upper Plains. Killing one opens a passage for five minutes, capped at ten characters and one entry per character. Entry takes a deliberate interaction and shows a danger warning you can permanently opt out of. Recall, runebooks, escape scrolls and ordinary portals cannot bypass any of this.
Getting out. The paired Hell-side passage stays open for extraction and is not population capped. Three more extraction portals open at randomized safe anchors every two hours, for five minutes each.
You can also buy your way out. The Infernal Sacrificial Altar takes 100 Infernal Shards and a 10-second uninterrupted channel — stand still, and movement or damage breaks it — then opens a portal that lasts five minutes. It drops you at a random one of nine wilderness locations across Southern Rim, Southern Hills, Upper Plains, Eastern Frontier, Black Forest, Barren Lands and Frozen Tundra, so you get out but you don't choose where you land. Shards are only consumed once the portal actually forms; a ritual that fails costs you nothing.
Infernal Shards crumble when you leave, and that is the whole decision. Keep farming under PvP pressure; spend 50 with Malrec on a relic schematic and try to escape with what you bought; spend 100 at the altar to leave on your own terms right now; or take what you have to a free exit and lose the rest.
What's down there. Hell's own creature population — Cerberus, hounds, imps, demons, wraiths, reavers, golems, gargoyles, gazers, scribes, lanterns, screechers, serpents, succubi and Veilborn elites — with tiered health, damage, recolors, auras, stealth behaviour and reinforcements. Named and dynamic encounters cover Caldris, Malrec, Vespera, Vharok, Mammon, Gorvath, Xalith, Stormeye and the Archfiend.
Eight new craftable artifacts, each reserving signature slots out of nine:
Hellfang — a third consecutive hit within six seconds deals 15 true damage and restores 5 stamina. 10s cooldown.
Mammon's Claim — 3% weapon-hit proc marks a target for six seconds and returns 25% of the damage it dealt as true damage, capped at 30. 12s cooldown.
Spectral Wound — 3% weapon-hit proc stops health and stamina regeneration for six seconds. 15s cooldown.
Fleshrender — 3% weapon-hit proc cuts healing received by 20% and deals 4 poison damage per second for eight seconds. 15s cooldown.
Stormeye Conduit — harmful spell hits have a 2% chance to charge a target for ten seconds; moving while charged deals 5 true damage per second. 15s cooldown.
Ashen Pursuit — Fire Arrows deal 10% more direct damage, attacks deal 15% more to demons, and ranged hits have a 5% chance to burn for 9 fire damage over three seconds.
Malrec's Passage — five rechargeable charges, each opening a gate into Hell.
Fallen Light — while no ally is within four meters, weapon damage +8% and hits grant 10% magic resistance for four seconds; hits also have a 25% chance to burn demons and undead for 10% of maximum health over five seconds, 2% against bosses. Reserves three signature slots.
The first five drop as schematics and catalysts from their themed bosses on independent 10% rolls. Ashen Pursuit and Malrec's Passage unlock after Malrec's quest chain and are bought as resource sinks — 50 Infernal Shards, 50 Blightwood Boards, 4 Soul Fragments, and either 50 Demon Blood or 50 Spectral Bones each.
Three jewelry sidegrades — Infernal Signet, Soulglass Ring, Obsidian Ward — on one mutually exclusive roll per eligible kill, from 0.10% on veterans to 3% on bosses.
Quests. A Debt Unburied, Malrec's five-step boss hunt, awards 13 Infernal Shards and unlocks his two schematic purchases. The Forsworn Passage is an outlaw-only Caldris chain — kill Malrec, then ten players inside Hell — rewarding an Outlaw's Rune to Hell, usable only while you still qualify as an outlaw.
The Infernal Heart. Completing three distinct Hell district events in a cycle summons Azael, the Fallen Light: a fallen angel tuned for five players, with a spread check, a telegraphed spear strike, a ranged Ashen Wake debuff leaving persistent black fire, a dark fire ring, and district-themed summons. Killing him broadcasts across Hell, opens a five-minute deep extraction route, starts a twelve-hour cooldown, and creates a contested reliquary that takes an uninterrupted eight-second channel to unseal — awarding Fallen Pinions, the Fallen Light schematic, district materials and schematics, prestige books and jewelry.
Prestige books in Hell are deliberately restrained; ordinary Hell creatures get no prestige tables. Fixed and selectively spawned bosses make one mutually exclusive 3% roll (2% Rank 2, 1% Rank 3); dynamic bosses one 5% roll (3% / 2%).
Four Hell mobs finally get the magic resistance they were built around. The Vespera Willbinder, Xalith Cinder Broodmother, Hell Gazer Overseer and Mammon Gilded Warden were all authored against a third resistance tier that had never existed, so the game rejected the trait and they ran with no magic resistance at all. The tier now exists at −80%, so all four take considerably less magic damage than they did on test. Expect them to be noticeably tougher for casters.
Alliances
Alliances replace militias as the large-team organization. An alliance is a group of guilds with a shared name, coat of arms, private chat channel, and the ability to hold a town. Militias are retired in the same patch, and the one piece worth keeping — the keep siege and each town's keep flag — is now how alliances take towns from each other. Everything here is cluster-wide and survives restarts.
Chartering
Allard, the trader in Valus, stocks an Alliance Charter at no cost. A Guildmaster uses it and fills in a name (4–35 characters), a tag (2–4, unique shard-wide), and heraldry from 37 designs — mandatory, there is no ratify button without one. Ratifying turns the charter into a memorial item recording the founding date. Your guild becomes the leader guild, and an alliance may contain only its founding guild, so you can charter first and recruit later.
Membership and authority
A guild belongs to at most one alliance, and you participate only through your current guild. Authority belongs to the leader guild, not the founder — whoever is currently its Guildmaster is the Alliance Leader, so passing your guild on passes alliance authority with it.
Action | Alliance Leader | Member Guildmaster | Everyone else |
|---|---|---|---|
Invite a guild, or revoke an invitation | Yes | No | No |
Accept or decline an invitation for your guild | — | Yes | No |
Remove a member guild | Yes | No | No |
Leave the alliance with your guild | No | Yes | No |
Disband the alliance | Yes | No | No |
Read the alliance page, roster and town | Yes | Yes | Yes |
Deliberately narrower than guild invites, which an Emissary can send — joining or leaving changes the standing of every player in a guild.
Invitations expire after 7 days and are swept off both sides. Officer and member changes never affect alliance membership, and neither does transferring a guild to a new Guildmaster. The leader guild cannot leave or be removed; the Alliance Leader disbands instead. Disbanding a guild cleans up its alliance ties.
Alliance chat
/alliance , aliased /a, reaches every online player of every member guild.
Lines read [Alliance] Aldric |IRON|: hold the north gate — the speaker's guild tag is always shown.
/togglealliancechat mutes it for you; the setting persists across sessions and survives changing guild or alliance.
3-second cooldown between messages. Being inside it is refused privately.
Trial members are excluded in both directions. Trial is a rank a Guildmaster has to demote someone into — joiners land on Member — so it works as explicit probation.
Membership is re-checked per message, so a guild that leaves or is removed loses the channel on its next line. /militia and /m are gone.
Heraldry
Your design is worn by the alliance cloak, the town banners of a town you hold, the keep flag, horse barding, and the alliance's symbol in the social window.
A cloak belongs to its alliance, not its carrier — carry another alliance's cloak and you see their arms. Changing heraldry repaints every cloak: world-placed, in packs and banks, and carried by anyone who logs in afterwards. A cloak also updates itself whenever it loads, so one that sat in a bank through three changes is correct when you take it out.
There is also an Alliance Horse Statue — blessed, and it unpacks into a horse already wearing barding in the alliance's colours.
Holding a town
Pyros, Helm and Eldeir can be held. An alliance holds at most one, and a town at most one alliance; ownership belongs to the alliance, so guilds joining and leaving never move a town.
Holding a town does one thing for now: every banner in it flies your heraldry and says who holds it — 33 in Pyros, 39 in Helm, 28 in Eldeir, free-standing poles and the keep's wall-mounted ones alike, repainting in a ripple through the town. Losing it puts the town's own banners back. Taxes, spawns, vendor access and defensive perks are later work built on this ownership record.
A held town also gets an alliance portal on a stone platform — Pyros and Helm have platforms placed. The Alliance Leader targets a marked rune to set its destination and toggles Public or Private (owning alliance only). The portal exists only while the town is held.
Taking a town
Any member of an active alliance can take a town, and the keep door is closed to every alliance but the holder's.
Battering ram — Carpentry craft, 70 Carpentry, 20 Blightwood Boards, recipe required. Use it on an enemy keep door to deploy the world ram. Swings every 5 seconds for 100 damage, and needs two or more attacking-alliance members within 12 units or it damages itself. The door warns the holding alliance by name, and breaks open at zero health.
Gateman's Mallet — the defender's answer, 40 Carpentry, 5 Blightwood Boards, recipe required. Use on a damaged door to spend 5 Blightwood Boards for 250 health, 2-second channel, 2-second cooldown, including mid-siege. One supplied defender roughly matches one ram.
The door will not auto-repair while a ram exists or enemy alliance members are inside the keep, so the breach stays open for the run and heals once they leave.
Inside the courtyard, "Take Flag" on the keep's flag pole starts a 15-second channel. Completing it takes the town immediately — banners swap and the capture is announced shard-wide, naming the alliance that lost it. If your alliance already held a town, it gives that one up in the same transfer.
A freshly captured town is protected for 24 hours — its flag cannot be taken and its door cannot be rammed.
PvP around a siege
Members of different active alliances within 30 units of the keep flag, or 20 units of the keep door, become lawful opponents for 10 minutes, refreshed while they stay in range. This works everywhere, including inside guarded towns, and guards do not intervene — they act on criminals, not alliance conflict.
Players not in an alliance are never flagged and never become targets this way; interfering means normal PvP rules and normal consequences.
The social window
Alliance management lives in the Social window alongside Friends and Guild, rebuilt onto the shared tab layout. /allegiance opens it on the Alliance tab, and repeating the command reopens that tab rather than closing the window. The old militia window is gone.
No guild — the tab tells you a guild is required.
Unallied guild — lists every pending invitation with the inviting alliance's name and tag, the guild that sent it, and time left. Accept and Decline are drawn for the Guildmaster only.
Allied guild — the page heads with name, tag and banner; Roster lists each member guild with its tag, Guildmaster and member count. The footer holds Disband Alliance for the Alliance Leader, or Leave Alliance for any other member Guildmaster.
The Alliance Leader also gets Invite and Pending Invites sub-pages.
Militias are retired
Every seam that was still running is switched off. Organic King of the Hill events can no longer self-start, and the three control point controllers, the militia graveyard spawner, the Eldeir militia boss, the three Spiritwood lumber piles, the militia merchant and the six guest flag poles are removed from the world. The 30-day seasonal favor wipe is gone, and killing a player no longer accrues militia favor or rank. The militia prestige abilities (Summon Ram, Equip Cloak, Summon Mount) and /militiarank are disabled, and militia chat is gone.
The keep siege loop survives, re-keyed to alliances. Keep doors still grant township access. One consequence worth naming: capturing a CTF flag used to repaint every town banner on the shard to the winning militia's colours, which could visually take a town from the alliance holding it. That repaint is gone.
Town sieges
This is a staff-run event, not a world spawn. A siege never appears on a timer and cannot be triggered by players — a GM places and starts it. Watch for the announcement: the assault is called out ahead of the first wave, with a short lead-in (30 seconds by default) to reach the town.
Monster camps rise outside a town and send waves that physically march on the town center, battering down barricades and the Town Siege Stone. If the stone falls the event is lost; clear every wave to win. Each wave announces itself, with a grace period between.
The stone has 3,000 HP by default, with damage feedback and a tooltip. Between waves players can repair it — 10 boards and 2 iron for +200 HP.
Attackers path in with per-mob lane offsets so they arrive on a broad front, engaging players, guards and barricades on the way.
Barricades come two ways: a craftable kit (Carpentry 50, 80 boards and 20 iron) with cursor placement, 1,000 HP and fine rotation control; and permanent pre-placed fixtures, invulnerable outside events and healed afterwards.
Real town guards are swapped for killable stand-ins marked "(under siege)", restored with instant respawn on cleanup.
Rewards are event-level only: lottery tokens per participant, a consolation payout on a loss (50% by default), victory titles such as "Hero of Valus", and a trophy roll. Wave mobs carry no loot and decay in 90 seconds.
Six preconfigured events are ready for staff to pick from: Valus twice (hell and swamps), Eldeir, Asper in Belgae, Oasis in the desert, and Gazer Island as a non-town event where resident mobs are cleared and suppressed for the duration. Each has its own waves, bosses, timings and rewards. A new mob, the lizardman brute, comes with them.
Each event sets its own PvP rules. In lawless mode everyone near the event carries a self-expiring mark, and two marked players can fight with no criminal flag, murder count or karma loss — town protections are lifted between them. In protected mode the town stays as safe as peacetime: stand-in guards cannot be attacked by players, and invisible Town Marshals answer guard calls with the classic lightning bolt against murderers and greys, never the siege mobs.
The wilderness
The overworld was mostly empty, with content sectioned off into points of interest. Camps fill it in at low-to-mid tier so they don't compete with dungeons, awakenings and world bosses — a solo-friendly, off-meta route for players who can't contest heavily fought PvP objectives.
Dynamic camps
Camps now cover Cultist, Rebel, Undead, Bandit/Demon, Pirate, Goblin, Orc, Giant, Spider, Elemental, Kobold and Barbarian encounters, with expanded Eastern Frontier bandit/goblin and Upper Plains giant/elemental coverage. Frozen Tundra runs kobolds and barbarians under one controller.
Specialist combatants. Bandit and rebel archers apply Mortal Strike; the huge Orc boss throws axes with heavy bleeds; the Pirate boss throws bombs; large undead camps field a Necromancer with frost and poison plus paired melee/archer skeleton summons, both with Mortal Strike.
The Blademaster. Killing the huge camp's Orc Bloodaxe Lord has a 10% chance to spawn a Black Forest Blademaster, announced to the region. At half health it creates two lootless mirrors. It carries guaranteed gold, two Standard martial essences and materials, plus independent rolls for a Pristine essence (25%), the Orcish Cleaver schematic (15%) and an iron weapon-rack trophy (5%).
Seven Treasure Hunting tutorials, adding Black Forest Orc, Eastern Frontier Bandit, Upper Plains Giant and Frozen Tundra Kobold to the existing Cultist, Valus Bandit and Southern Rim Rebel chains. Completing any one blocks the others.
Attacking a large or huge camp announces it to the region, on a shared ten-minute cooldown. Undead camps get their own line. Spider camps are excluded.
Camp contracts
Seven camp bosses have a 10% chance to drop a contract. You claim one fresh contract of each type per account per rolling 24 hours, but claimed contracts are transferable and progress rides on the item, so whoever carries it can finish and redeem it. Reading a completed contract delivers its reward bag directly — no NPC.
Contract | Required kills | Guaranteed Pristine | Bonus |
|---|---|---|---|
Large Undead / Necromancer | 50 lich lords in Ruin | 3 | 25% Rare/Volatile |
Huge Orc / Bloodaxe Lord | 50 orcs in Contempt | 2 | — |
Large Giant / Giant Earthshaker | 50 ogres in Contempt | 3 | 25% Rare/Volatile |
Huge Cultist | 50 veteran cultists in Ruins of the Artificer | 2 | — |
Huge Kobold | 50 drakes or dragons in Deception | 3 | 25% Rare/Volatile |
Large Pirate / Corsair | 50 pirate HQs in Pirate's Grotto | 3 | 25% Rare/Volatile |
Large Demon / Dark Demon | 50 eligible demons in Hell | — | 3 guaranteed Rare/Volatile |
Contracts must be read on the boss corpse to claim, with loot rights, line of sight and within three units. Banked contracts do not progress. Pets, summons, mirrors and guard-assisted kills don't count.
Essence merchants and conversion
Large Cultist and Rebel camps roll for a Standard essence merchant; huge Cultist and Rebel and large Orc camps roll for a Pristine one — 30% per completed camp, three exchanges per player. Permanent essence converters offer targeted three-for-one conversions plus gold.
Conversion is deliberately expensive. It exists to reduce gear fear after a PvP loss without making protected play the more efficient route, so Rare, Volatile, Mythic, warding and encounter-specific essences stay out of it entirely.
Rare wilderness encounters
Eleven rare encounters now rotate through New Celador's wilderness cells, each a self-contained fight with collectible rewards: the Ashen Exile, Beast Binder (with controlled creatures), Bloodwing, Exiled Duelist, Fallen Templar, Gravecaller (with grave servants), Iron Oath, Plague Doctor, Royal Huntsman (with hunting wolves), Unseen Knife, and Wandering Warlock (with a bound demon).
They bring their own palettes and world decorations — banners, trophies, reliquaries, weapon displays and braziers — with packed versions you can keep and place.
Alexia, Daughter of Alexis
Defeating a large Cultist camp boss has a 10% chance to trigger a roaming escalation. Alexia spawns in one of five authored Barren Lands locations — Jhalir, Flat Wilds, The Dunes, Withering Sands or Gold Coast — announced to nearby players, and only one can be active at a time.
She is a 4,200-health Cultist boss who fights and casts, calls phased veteran Cultist reinforcements, and uses a telegraphed Void Blood area mechanic that bypasses Parry entirely. She carries rich warrior and mage loot, wilderness prestige books, rare enchanting essences, a unique Bloodstained Banner collectible with a packed version, and an extra coin bundle.
The Woodland Dragon
A burnt clearing in the Black Forest where a weakened dragon guards a locked chest, spawning as a dynamic camp up to three at a time and decaying once cleared. The dragon runs every combat scalar at 70% — 2,380 health instead of 3,400 — and is leashed to the clearing. It always carries the chest key. The chest holds 1,600–2,400 coins, a 3% prestige book roll (Rank 1 twice as likely as Rank 2, never two in one chest) and a 0.25% packed rare mushroom deed.
Crafting
Inscription makes staves and wands
Staves and wands have historically been an Inscription craft and have moved back, which also gives Inscription a reason to exist beyond scrolls. Non-artifact staves and wands return for flavour, checked so they don't compete with or outclass artifacts.
Inscription tables gain a Staves tab — Staff, Mage Staff, Pearl Staff, Iron Staff, White Staff at skill 0 / 25 / 45 / 65 / 85 — and a Wands tab with the Apprentice's, Novice's and Master's Wands at 25 / 45 / 65. Material costs climb with the progression, and the table tooltip and skill book description mention the new weapons.
Five staff and four wand schematic artifacts move from Woodsmith to Inscription, gated on Pearl or White Staff while keeping their original Cobalt/Obsidian, boss material and gem costs. Schematics you already own still work — one still stored as Woodsmith is recognized from its catalog entry. Crafted artifacts keep their material-based durability and enchant capacity.
Apprenticeships and Commission Marks
Earning recipes through crafting orders alone is pure RNG. Two new routes make it targetable, at a price.
Apprenticeships. Profession traders offer a course: complete three commissions built from recipes you already know and can craft, collect the normal rewards along the way, then choose a guaranteed recipe reward at the end. Progress persists per profession, and you can continue, reissue or abandon a course. As your skill rises, later commissions favour harder recipes you know.
Commission Marks. Regular crafting orders award profession-specific Commission Marks — one to four by order tier. Spend 12 marks at that profession's trader to pick any unknown recipe from the existing reward pool, provided you meet its skill requirement. Marks are stored on your character, not as tradable items, and the trader menu and recipe shop show your balance. Apprentice commissions and targeted orders award no marks.
Order-list refreshes. Pay 2,000 gold to refresh a regular order list, with confirmation. Lists expire after an hour and existing commissions are preserved.
Artifact signatures
All 72 non-Hell artifact schematics now carry a named signature trait — weapons, armor, apparel, shields and tools. Each has its own identity rather than being a numeric reskin, and reserves one or two enchant slots by strength. Occupied signature slots are shown on the schematic, the crafted item, and in the crafting table.
A few examples of the range:
Dragonslayer (Dragonlance) — 6% more weapon damage to dragons.
Avalanche Blow (Frozen Battle Axe) — 5% chance on hit to invoke Stun Strike, stunning enemies in a short frontal arc for 2 seconds (1 against players). 20s cooldown. 2 slots.
Training Balance (Lycaon's Royal Training Knife) — attacks use the better of your Slashing or Piercing skill. 2 slots.
Careful Fletching (Quiver's Bane) — 8% chance not to consume a fired arrow.
Hushing Reprisal (Silence) — successful blocks have a 10% chance to interrupt a caster. 20s cooldown.
Cooling Shell (Explorer's Ice Shield) — after standing still for 2 seconds, gain 3 armor until you move.
Clean Flaying (Lycaon's Royal Skin Flayer) — 5% chance for an additional meat while skinning.
Signature slots count against enchant capacity: a two-slot signature on a seven-capacity item leaves five, and a second three-slot essence will be refused.
Attack speed was 100x too weak
Almost every attack-speed buff and debuff in the game has been landing at one hundredth of its advertised strength. They now do what they say.
Only two values were written in whole percent and worked correctly — the Rune of Speed essence and the Wendigo's enrage. Everything else was written as a fraction and read as a percent, so a "30% faster" buff delivered 0.3%. At a speed-5 weapon and 100 maximum stamina:
Before | After | |
|---|---|---|
God buff, 30% faster | 4.237s | 2.975s |
Belgae Warmaster enrage, 50% faster | 4.229s | 2.125s |
Azura's final phase, 20% faster | 4.242s | 3.400s |
Blood-Fury Guard, 8% faster | 4.247s | 3.910s |
Numbing Blow, 4% slower | 4.252s | 4.420s |
Enfeeble, 15% slower | 4.256s | 4.887s |
Demoralized, 20% slower | 4.258s | 5.100s |
Rune of Speed essence, 8% | 3.910s | 3.910s — unchanged |
Wendigo enrage, 15% | 3.612s | 3.612s — unchanged |
The idol curse was making cursed players faster — its slow was written as a raw delay multiplier, which read as a fraction came out as a speed-up. It is now a genuine 2x slower swing.
The haste cap is now player-only. The 30% ceiling was unreachable while every buff was 100x too weak; correcting the units made it bind, and it was quietly clipping the Belgae Warmaster's authored 50% enrage down to 30%. It now applies to players stacking haste from gear, essences and buffs, while encounter scripts keep authority over their own numbers.
Worth knowing: slows are uncapped and are now 100x stronger. Demoralized, Enfeeble and Numbing Blow together are a 39% slower swing.
The character sheet's Attack Speed description also documented a formula the game has never used and never said the number is a delay where lower is faster. Both corrected.
Archery, explosives and mounted combat
Archers can fire on the move, at 20% reduced accuracy with a visible Moving Shot debuff — this applies to ranged NPCs too, so mobs are no longer frozen in place to shoot at you. Shots require the target inside a 45° forward firing cone, and selecting a target no longer auto-turns a player archer.
Explosive Shot is a new Rogue rank 3 prestige ability: Archery 80, 30 stamina, 30 damage in a 10-meter radius, explicit target required. Its ability book has been added to loot tables.
Unstable Concoction is rebalanced from 50 damage in 2 meters to 30 damage in 10 meters, matching Explosive Shot, and is now craftable at Alchemy 75 from 5 Mushrooms and 2 Cursed Bones. The bigger change: it now works against players and their pets, where it previously rejected both outright and was PvE-only. Group members, guildmates and criminal-protected targets are still protected. With the wider radius and the dismount, it is a craftable anti-cavalry grenade.
Both explosions throw riders on a single hit, resolved against Will, rather than the generic daze-then-throw roll. The impact ring shows the real blast radius and the Will tooltip says so. Both are Unparryable — without it a Fighter in Parry stance took zero damage and reflected half of it back.
Prestige abilities preserve your mount by default. Only Hide, Steal and Snoop dismount you — three of sixty-three, replacing an allowlist that had already missed Parry, Shattering Impact and all nine Barding songs. Weapon, Martial Prowess and Sorcery abilities no longer dismount either, across instant, queued-hit, target-selection and nested effects. Abilities that dismount your enemy are unchanged.
Stamina costs are consistent mounted and on foot: shortbow, longbow and warbow shots cost 10, 15 and 20; Wound, Stun Shot and Explosive Shot cost 20, 25 and 30.
Archery bugs
"Cannot See Target" was backwards. The line-of-sight check was inverted, refusing the ability when you could see your target and allowing it when you could not.
Stun Shot never stunned anything — its effect was not loaded at all, so the ability completed and went on cooldown with no result. It now applies its stun, and enough Will still resists it.
Centershot works at zero stamina again. Its free shots were rejected by the stamina check before the exemption was consulted.
Auto-fire stops when its bow is removed or swapped, instead of carrying the old bow's stamina cost and firing interval onto the new one.
Invalid or destroyed targets and mid-fight weapon changes no longer leave firing stuck active, and Fire Arrow validates target, weapon and casting state before working out firing speed.
Elemental arrows
Fire, poison and frost arrows are a new Bowcrafting line. They fire as normal ranged attacks and apply a throttled secondary effect on a hit:
Fire — a burn over time plus a temporary defense reduction.
Poison — an isolated elemental poison that doesn't replace or interfere with other poison.
Frost — frost damage plus Chilled movement pressure.
Each effect has its own cooldown, so rapid fire can't proc every shot. All three recipes are in Bowcrafting and crafting orders, take arrows plus the matching elemental resource, and support normal, Ash and Blightwood Boards with matching arrow templates. Recipes drop from archer and boss sources, and selected bandit, Cultist, Kobold, Rebel and Void archers now carry elemental ammunition themselves.
The chaos zone now rotates
The chaos zone used to be a constant that changed once per season, and moving it meant shipping a client build.
It now rotates automatically every 7 days between six regions: Southern Hills Cemetery, Black Grove, Flat Wilds, Nosca Grove, The Brooks and Waterfall Mine.
The active zone is highlighted on the world map, updating live when it rotates — no relog, no reopening the window.
/timer gains a Chaos Zone section with the current zone and time until the next rotation.
Entering or leaving the zone after a rotation takes effect immediately.
Ruin is excluded from the pool — it is a separate map rather than a region on the continent, and would apply the gameplay effects over a blank map.
Outlaws — shrine ransom
Outlaws (5 or more murder counts) who die to another player now get a choice at red Outcast Shrines instead of only Release Spirit.
Pay & Resurrect costs 5,000 bank gold per murder count — 30% to the player who killed you, 70% out of the economy. Your death-lost skills are restored. It does not pardon you or reduce your murder count.
Accept Loss keeps your gold and distributes one randomized loss across your highest skills:
Murder counts | Highest skills affected | Total loss |
|---|---|---|
5–10 | 3 | 1–2 |
11–20 | 3 | 2–4 |
21–30 | 4 | 3–6 |
31–40 | 4 | 4–8 |
41+ | 5 | 5–10 |
Outlaws can no longer recover death-lost skills from an intact corpse — the ransom is the only retention path. Criminals below 5 counts keep the original penalty and corpse recovery. Player-pet kills credit the pet's owner, and PvE deaths don't offer the ransom.
Cerberus
The Catacombs Void Guardian gains a positioning mechanic. About 45 seconds into the fight, and roughly every 45 seconds after, Cerberus runs a corruption sequence hitting the 0–6 m, 6–12 m and 12–18 m bands in a shuffled order. A red outer circle telegraphs the active band for four seconds, with a green inner circle for the two outer bands; the next band begins one second after the previous detonates.
Anyone caught receives Seed of Corruption — a buff, a red shadow effect and a moving four-meter circle. After six seconds it bursts for 40 Void damage to everyone within four meters including the carrier, seeding them in turn. A second application does not delay an existing seed. Seeds clear on death, encounter reset, or moving more than 40 meters away. The blast bypasses Parry.
Cerberus also now drops from the Awakening rank 2 and rank 3 prestige book tables, on top of its existing boss, scroll, mage, map and coin loot, and keeps its separate roll for Cerberus artifact schematics and the statue.
Merchants and the economy
Bulk prices are spelled out before you commit. Prices climb as a merchant's stock drains, so a stack of reagents listed at 5g each costs well over 5g times the count — and the Custom quantity button used to be a bare "enter an amount" prompt. It now opens a quote window showing stock, the first unit's price, the real total for the quantity you type, the last unit's price, the average per unit, and a red warning when pack and bank together can't cover it. Update, Max and the −100 / −10 / −1 / +1 / +10 / +100 buttons re-quote on every press. Selling works the same way, showing the offer falling as stock fills. Hovering a line total in the ledger shows the same breakdown.
Accept now asks for confirmation. Buying and selling both show every line with its total, the grand total and your available gold before anything changes hands. If stock moves between confirming and paying, the transaction is refused and the ledger refreshed rather than charging a different amount.
Checkout can draw on pack and bank together. Affordability was judged on pack plus bank but payment taken from only one, so a 22,500-gold house blueprint that neither purse covered alone was refused as "can't afford". The pack is emptied first, the remainder comes from the bank. Gold Available shows both with a breakdown in platinum-and-gold notation, and a bill you can't cover reports the total, what you hold where, and exactly how much you're short. Checkout also refuses to take gold if the merchant is dead or out of reach, and refunds it if delivery becomes impossible after payment.
All sales go through the Sell window. The legacy right-click sale path, which had different buyback rules, is gone. Right-click → Sell still opens the Sell tab.
New vendor: Zenobia Valcaris, Mistress of the Menagerie
A haughty aristocrat draped like a queen has arrived, and she deals only in the finest exclusive beasts. Now in stock — the complete Horse Mount statue line:
Mount | Bareback | Saddled |
|---|---|---|
Midnight | 200 platinum | 220 platinum |
Blood | 200 platinum | 220 platinum |
White | 200 platinum | 220 platinum |
Each is sold as a blessed mount statue: place it, and the mount is yours. Because it's blessed, it stays with you. The mounts are cosmetic — a distinct coat, no stats.
Her shelves aren't full yet. Expect more rare mounts and pet goods to join the Menagerie over time.
Every path that creates gold now runs through one place, which turned up three wrong payouts:
Freeing a prisoner, and Rothchilde, actually pay now — both handed you a 1 coin purse instead of the 1–40, 500 or 250 gold intended.
Loot purses hold the amount rolled, not the roll plus one.
Selling to an NPC merchant no longer pops your backpack open every time.
Loot and drop rates
Chests roll their loot when you open them, not when they spawn. Camp and treasure chests used to fill the instant they appeared and again on every reset timer, so the world was permanently full of gold and items in chests nobody had found — most of which reset or despawned untouched. Mob loot has always rolled on death; chests now match. Same tables, same odds, same guard protection and gold multiplier. Town containers and the ornate catacombs coffin are unchanged. One visible consequence: a GM looking inside an unopened chest sees it empty.
Prestige books have been rebalanced and themed. Books were spread across overlapping generic tables, several boss death paths bypassed the intended tables, and newer books were missing from some tables entirely. Each activity now has an explicit rate and cap:
Source | Was | Now | Books |
|---|---|---|---|
Protected dynamic boss | 5% T1 | 5% T1 | 1 |
Wilderness dynamic boss | 5% T1 / 3% T2 | 5% T1 / 0.05% T2 | 1 |
Deception / Ruin frequent dragon | 2% T2 / 1% T3 | 2% T2 / 1% T3 | 1, themed |
Deception / Ruin / Contempt HQ boss | 8% T2 / 5% T3 | 5% T2 / 2% T3 | 1, themed |
Medeina and Misha champions | 10% T2 / 3% T3 | 10% T2 / 3% T3 | 1 |
Spider, scorpion, werewolf, Wendigo | 5% table, 2.5% T3 | independent 5% T2 and 2.5% T3 | up to 2 T2 + 1 T3 |
Awakening bosses, Cerberus, Grim Reaper | separate tables, up to 7 | one 28% roll | 1–3 |
Themed pools: Deception is Fighter and Rogue, Ruin is Mage and Rogue, Contempt is Tamer and Bard. Rank 1 books were reported as harder to find than the higher tiers, hence the sharp drop in the wilderness dynamic boss Rank 2 rate.
LootLevel 16 is new, guaranteeing two pristine essences plus four from the pure and mythic tiers, in protected areas as well as wilderness. Lord Barkas, Vazguhn the Ancient, Alexis, Champion of Azura, Death and Cerberus are now LootLevel 16 — and because both the corpse roll and the distributed boss roll award six, that is 12 guaranteed essences when both run. Warding essences remain independent 25% rolls on top.
Pristine essence sources are rebalanced by where they spawn. Fifteen overworld sources — Goblin HQ, the bandit, rebel, undead and gazer bosses, Harpy Matriarch, Shrine Guardian, Ice Skeleton boss, Flying Beetle boss, Yeti boss, Gargantuan Beetle, Golem boss, Lizardman General and the Flat Wilds Drake — drop to LootLevel 10. Contempt ogres and Ruin lich and dark lords get dungeon-specific LootLevel 11 variants. The Flat Wilds Common scaled boss is capped at 10.
Corruption rewards have been cut back.
Before | After | |
|---|---|---|
Greater Demon gold | 1,350–1,650 | 134–200 |
Dark Demon gold | 1,350–1,650 | 267–333 |
Ancient Scroll (Greater Demon, Dark Demon, Gazer) | 80% | 1% |
Guarded Gazer gold, any world | 350–600 | 134–200 |
Guarded Gazer ethereal bone, any world | 80%, 1–3 | 1%, 1 |
Gazers outside guard protection keep their original gold and bone rewards, raw essence is unchanged at 80% for 3–5, and demon rewards outside Corruption are unchanged.
Corruption Dark Demons can tear open a passage to Hell — a 30% chance on death spawns a paired Hellgate, a portal at the death site into Hell and a return portal at the Hell arrival point. Both last five minutes; the entry side takes ten characters, the return side is uncapped. Guard kills don't count.
Dungeon crate drop rates were listed far higher than they actually were — a "10%" crate was really 4%. They now land on their stated numbers: 1.5% / 4.5% / 9% / 18% for Low, Mid, High and Boss.
SOS maps now drop from pirates. All eight pirate templates carry SOS tables covering every tier including the Tattered map, one map per kill, with no Fishing requirement. Pirate drops have their own account-wide daily diminishing returns, separate from fishing: 100% for the first two maps in a 24-hour window, then 50%, then 10%, then nothing past eight. Pirate HQs also gain a working treasure map table — the one they had referenced a table that doesn't exist, so they were dropping no regular treasure maps at all.
Pirate's Grotto gains a Pirate Marksman, a longbow pirate with Mortal Strike and Pirate Knight loot, sharing spawners 50/50 with the existing pirates, plus nine rare spawners weighted 49% pirate, 49% marksman and 2% Pirate HQ. This targets an enclosed corner where players could fight indefinitely without risk of taking damage.
Spiders drop more silk — the rich spider table moves from 25% to 30%, Spider Hunters and Huntresses from 10% to 15%. New rares have been added to craft-order rewards, along with new furniture items.
The Enchanting Table is craftable — a memorized Carpentry recipe at 75 Carpentry for 150 boards at a Carpentry Table. The recipe drops from the Wendigo on a separate 30% corpse roll, and is in the ornate coffin pool.
League NPCs are gone from the world. All eight league quest-giver and reward-vendor spawners in New Celador are disabled, along with the William Patrick militia vendor. We're not doing seasonal or militia content, and some of them carried cursed equipment, which isn't where we want weapons and armor to go. Their rewards are being redistributed elsewhere. See Alliances → Militias are retired for the rest of the shutdown.
Skills and training
Barding could never increase. Two bard skills were wired to opposite halves of the system: Barding was visible, granted at character creation and gated the entire Bard prestige tree at 40 / 60 / 80 — but was trained by nothing, anywhere, while a separate hidden skill was the only thing Provoke actually trained. Every point a bard earned went into the invisible one, so Barding sat at its starting value forever and the Bard prestige tree was locked at rank 0. Provoke now trains Barding, and the hidden skill is removed.
Provoke's Musicianship gains were also passing their difficulty value into the wrong argument, running at roughly a fifth of the intended rate. Note songs still do not train Barding — Provoke remains the only source.
Bard trainers now teach it. Trainers only teach skills they personally hold, and the bard trainers held only Musicianship and Entertainment. Brian also couldn't train anything at all — his greeting never offered the option. Both fixed.
The Recall Scroll inscription recipe works. It had been commented out since the original Citadel import — not a regression, it arrived disabled — and was the only commented-out scroll in the whole table while the rest of its travel family (Mark, Portal, ChargeRunebook) was craftable. It is retiered to match Mark scroll exactly: 46.4 / 96.4, using 2 Moss and 1 Ancient Scroll.
Interface
The group window has been reworked.
Invite by name from a text field in the window, or the new /invite command (alias /groupinvite). Exact match first, then a unique partial match; ambiguous names are listed for you.
Invite by target — the Invite Target button gives you a cursor.
The window now opens when you are not in a group, so you can start one from it — via /invite with no name, /group with no message, or the Group entry on your own context menu.
Every member row is clickable: Show Status / Hide Status for anyone, plus Promote and Kick when you're the leader.
Show Bars opens the standard health/mana/stamina status element for every member at once. Bars follow the group — closing when a member leaves, is kicked, logs off or crosses regions, and re-opening when they're back. The preference persists across relog.
Members on another region show as Elsewhere rather than Online or Offline.
Martial Prowess and Sorcery effects show their remaining time. Enrage, Shield Wall, Nemesis, Intimidation, Resonating Energy and Affliction all carried no timer on their icons. Intimidation is also correctly marked as a debuff, and Nemesis shows remaining duration rather than resetting when the nemesis type changes. Bloodlust, Sorcery activation and Wisp Armor stay untimed — they don't expire on a fixed timer.
Shattered Armor is now visible, displaying on its target for the full eight-second debuff and refreshing on reapplication. Shattering Impact's tooltips now say "Bashing weapon required." once, in red, only when a valid weapon is missing, and equipment-sensitive prestige actions refresh after a hand or armor change, including hotbar icons retained after retraining.
Character attribute tooltips have been rewritten to match what the stats actually do: Strength mentions health, Agility its indirect effect on attack speed and its effect on bandage cooldown, Intelligence mana regeneration, Wisdom the single chance to halve spell damage (the old wording implied two outcomes), and Will the effects it can resist, including some dismount attacks.
Game windows left open for a long time now close on the next click rather than sitting there doing nothing — ten minutes by default, longer for windows meant to stay open.
Fixes
Mobs could get stuck permanently invulnerable while still attacking you. The flag set when a mob leashes is saved to disk, and every path meant to clear it could be missed — including a server restart inside a five-second window, which stranded it permanently. Five of the six combat states had no safety net, and the aggro handler kept re-targeting the parked mob, which is why it went on swinging. All four gaps are closed, and mobs already stuck in the live world heal themselves the next time their region loads.
Wyverns and dreads were not casting spells or using abilities. Dreads declared nine spells but had no magic skill, so only Heal and Cure passed the requirement check. Wyverns had no weapon abilities and relied on a message with no handler anywhere, making DragonFire, TailWhip, TailStrike, Lunge and Fly silent no-ops. Ice wyverns had the skills but no spell list.
A gathering tool breaking mid-harvest left you stuck — unable to mount, hearth out or do anything without a relog. The harvest lock sits on the player but was only cleared by code on the tool, which is destroyed when it breaks. Now cleared on break, with fallbacks when you move, enter combat or equip a replacement.
Market payouts were corrupting coin purses. After a trade on the Eldeir board a player's bank purse weighed 22,279 stones — locking the bank — while showing its old balance, and would have snapped back at the next restart or split, silently losing the trade money. The board's own purse had the mirror problem and would have minted gold. Purses moved by the market now keep their breakdown in step, and any purse whose breakdown disagrees with its balance repairs itself on load, on module reload, or when its owner logs in.
"You do not have enough GoldV2." Coin splitting reported an internal name. It now uses the display name and, when your purse holds enough value but only in larger coins, explains the rule: larger coins can only be broken down at a bank.
Build Your First Home could not be completed by anyone who already owned a plot — the "Place Your Plot" step needed your plot count to exceed a snapshot, but accounts are capped at one plot. Owning a plot with no free slot now completes it, and anyone stuck clears about a second after logging in.
[Fighter I] The Basics and [Mage I] You're a Wizard asked for 10 skill points in any weapon or magic skill but tracked only your highest one, so raising a second skill did nothing and the step was impossible once your top skill sat within 10 points of its cap. Each skill is now measured against its own starting level, a skill reaching its cap counts, and players already on the step keep credit for progress since starting.
Quests with a cooldown threw an error on every eligibility check — 2,244 times in seven days across four shards — because a quest whose content offers step 2 first gets a placeholder step 1 with no timestamp. Corrupt or missing timestamps now favour the player.
Quest goals counting mob kills threw an error on every player tick, and a step could be both failed and completed in the same pass when a fail condition or time limit fired.
Pets could stop responding to combat commands — Wyverns in particular — when AI replacement removed their casting timers but left the "currently casting" and "disabled" flags behind. That orphaned state is now recovered whenever you issue a pet command.
A crafted soulstone showed its window then ignored every click. The module and effect sent each other different message names, so the stone went inert for the session, and the window rebuilding on each skill toggle was read as you cancelling. Only an explicit Cancel ends the session now, and dismissing with Escape leaves the stone recoverable.
Soulstones from the character-liquify path read as empty, written in the spirit stone's format while the window understood only the soulstone's — so storing a skill into one orphaned the original permanently. Both formats are now understood, and existing broken stones repair themselves the first time you open them.
A guard executing someone no longer credits their earlier attacker with a murder. If you had fought someone in the wilderness and they then attacked you in a neutral zone, the guard killed them and you took the murder count. The guard's punishment is unchanged.
Essence shards and crystals could be equipped as armor. Their client art IDs were still listed as chest and leg slots from when that art block was clothing, so 18 essence templates and four crystals defaulted to Equip on double-click. Two unused clothing templates that would have rendered as crystals were removed with them.
/deletechar now enforces a minimum character age. The intended gate was never active, so a character could be deleted the moment it was created. Characters must be at least 5 days old, and the command tells you how long yours has existed.
Palido Domingo's price and playtime cap now come from his template rather than being hardcoded, and his idle price hint quotes the live value.
Several long-standing sources of Lua errors are now guarded, including a nearby-object lookup that fired 69,000 times in a week, skinning a creature whose meat type has no definition, bandages and pet commands attaching a module twice, and splitting a stack with a non-numeric amount.
For server operators
The launcher's admin panel now requires a password and runs over HTTPS. It starts and stops regions, rewrites the cluster config and executes Lua, so it is protected by default rather than by choice. First run walks you through an admin username and password — on the console where there is one, otherwise on a setup page reachable only from the launcher's own machine. Authentication is no longer a setting, and the settings API can change a password but not clear one.
Everything moves to TLS on port 5443, with a self-signed certificate generated on first run or a real one (PEM or PKCS#12) via CertificatePath. Port 5000 still answers and redirects there, ahead of any credential prompt, so bookmarks keep working. If you expose the dashboard, forward both ports; the help page's firewall instructions are now 3001-3100,5000,5001,5443,27015.
Upgrade notes: an install with remote access explicitly disabled keeps that setting. One with no password enters first-run setup on next start, reachable only from the machine itself until one is set. --reset-auth returns you to setup rather than serving the panel unprotected.
⚠️ Config change that can block logins. Plain (non-Steam) logins now require a configured ServerPassword, no longer shipped in the default configs. If your cluster uses the plain login path, add it to ClusterConfig.xml by hand before deploying. Steam logins are unaffected.
Other operator-facing changes:
Running a town siege. Staff (DemiGod) place and start every siege; nothing is seeded and nothing self-starts. /siegecreate [event] places the controller and stone on a cursor target, /siegesetevent picks the event, /siegeaddcamp marks where attacker camps rise, and /siegestart [wave][delay] begins the assault. /siegetest runs one tiny wave with a 5-second warning and no rewards. /siegestatus, /siegestop, /siegeremove, /siegeclearcamps, /siegeaddbarrier and /siegeclearbarriers cover the rest.
A GM audit log. Privileged actions write to .GMLog.log instead of the chat log, one JSON object per line, mirrored to the console. The chokepoint sits in the engine before Lua sees the command, so a privileged command cannot be hidden by editing the script behind it — and a god on a mortal character or under /testmortal is still audited. dostring is logged before it executes, along with character edits and template creation. Arguments are recorded as an array alongside text, the command line as typed.
Player Handling monitoring tools and a passive bot watcher. The DemiGod player list marks rows by rank, standing and bot-watch level. Tour hops the admin to each online player in turn; Follow re-teleports to the selected player periodically, skipping the hop when already close by. Both survive a region change and stop when the window closes.
A passive watcher attaches to every mortal character at login — never staff — and scores a range of server-side behavioural signals into a single suspicion value, surfaced as the marker on the player list. It records timings and counts only, never chat content, and costs well under a millisecond per player per minute. Bot Check puts a challenge to a player and reports the outcome to the admin; Bot Report shows the full rollup. Treat the score as a reason to look at someone, not as evidence on its own.
A gold faucet log. Every coin created writes a line to .GoldLog.log — file only, since gold is created constantly by ordinary play and would bury the console. Each line carries the amount, a source tag (loot, merchant_sell, quest_reward, admin_create, …), who ended up holding it, and the object whose script created it, stamped by the engine rather than the caller. The per-account tracker says a balance jumped; this says where it came from. Every path that creates coins now runs through the shared helpers, so there is exactly one way gold can enter the world.
Deferred chest loot changes what the faucet log counts. Chests now roll when a player opens them (see Loot and drop rates), so GoldLog.log records gold that reached a player rather than gold minted into chests nobody found — and thousands fewer world objects, lighter on saves and backups.
A live metrics and gold dashboard. Each process exposes a /metrics endpoint — cluster-wide population and region roster from the cluster; frame time, object count and local population from each region. The launcher polls every 15 seconds into live tiles and a local time series, and pulls per-account gold totals with high-balance and large-jump alerts. Alerts are forensic — they surface candidates for a human and never act on their own. The page sits behind the admin password. The metric store does not currently prune.
The dedicated server ships for Linux through Steam, on its own depot, with the same public-mod allowlist so internal mods cannot leak into a release. Packages are validated before anything is replaced, and an invalid one leaves the previous staging intact.
Dedicated-server setup guidance corrected. The firewall and port-forwarding help said TCP; both the cluster control port and the gameplay ports are UDP. The region port range excluded the Login region. QueryPort = 0 falls back to the standard Steam query port, not game port + 1. The dead Steam ID lookup link is replaced with an in-page guide.
Custom Connect now assumes the cluster port. A bare address used to get :3000, the standalone gameplay port, so connecting to a cluster by address alone failed silently. It now assumes 5001. Standalone servers reached by a bare address need the port typed in full.
CacheObjVarReads now defaults to off, and is absent from the shipped configs and launcher UI. The cache remembered misses as well as hits and nothing invalidated it on object load, so a read during a load or region transfer could be remembered as "absent" indefinitely — and the common read-modify-write pattern would write that degraded value back. On a live region, 70% of cached entries were the absent sentinel.
The FrameTime CSV dump is now off by default. It shipped on for every region with no rotation and nothing consuming it, growing ~3 MB a day normally and 115 MB a day once Lua profiling had been enabled. Enable per build with -p:FrameTimeCsv=true.
Deploy and build scripts reorganized. The two deploy scripts were a fork rather than a variant, and the test-server copy was missing the game-data preservation logic that stops a deploy deleting a world. There is now one script driven by a host profile, with no default profile. A new update-binaries.sh swaps assemblies only, staging by default, with one-command rollback; both apply and rollback refuse to run while server processes are alive.
Deployment channels.build.py --test / --live require every repo the build compiles from to be on that branch, clean, and fast-forwarded to exactly origin/, so a package is provably the branch it claims to be; blockers are reported in one pass. The channel goes into the archive filename (LoA-DedicatedServer-Linux-live-v20260916-143022.zip), and builds with neither flag are stamped dev. This renames the build output — update-binaries.sh was widened to match, but anything else globbing the old name will silently keep picking pre-rename archives. deploy.sh --live refuses any package that isn't a live one (--any-build overrides); --test warns and continues.
The launcher can copy the game files on demand, and stops the server to do it. The deploy script leaves the server running, so "Game Files Update Available" → Copy Now failed part way through, and dismissing it left no way back. A Game Files button next to Start Server opens the dialog whenever you want, including when nothing is pending. With the server running, Copy Now becomes Stop Server & Copy — it confirms first, waits for file handles to drop, says plainly if a file is still in use, and leaves the server stopped. The copy still writes into the live folder file by file, so an interrupted copy can still leave a mixed version.
A region's Address is editable in the launcher's cluster config. It was read-only and always regenerated from World Name and Subregion, so a region not following that convention couldn't be configured from the dashboard — and a hand-written Address in ClusterConfig.xml was overwritten on load and saved back wrong. It now auto-fills while it matches the generated value, pins when you type your own, and hands control back when cleared.
Scripts for pulling, archiving and restoring server data. Four new scripts taking the same --test / --live / -p PROFILE arguments as deploy.sh, mostly because the on-disk layout isn't guessable: per-region logs under /Cluster/logs, the whole-server log under /logs, launcher.log in the install directory, game data in ~/loa-gamedata-backup, and the launcher's rolling saves in /Cluster/backups. Each asks the host where its data directory is rather than assuming. pull-logs.sh and pull-backups.sh only copy. archive-logs.shtruncates in place (: > file) rather than deleting — the server holds these files open, and unlinking one leaves it appending to an inode nobody can read again — and it reads the archive back with tar -tzf before truncating anything. restore-backup.sh accepts --test and nothing else: --live and -p are refused outright, since restoring replaces every character, item and house on the target.
Region server logs are far quieter, and luaexec no longer drops requests. The Serilog configuration in appsettings.json was never actually read — the logger was built with a hardcoded Debug level before the configuration existed — so every ASP.NET parameter-binding and execution-plan line went to disk, roughly 8 per request. A "Removing stale client auth data" warning sat above its own timeout check rather than inside it, firing every tick per pending entry (over a thousand warnings in three seconds for one SteamID). Unloading an object with no VM state now logs at Verbose, since that is the routine case during a mass unload.
The real bug behind the noise:
