Changelog
See what's new added, changed, fixed, improved or updated
Upcoming - V2
V2 is not released yet. This is the full list of what it brings, so you can prepare configs and the database before it ships. Read Upgrading from V1 first.
Upgrading from V1
Client and GameServer must be updated together. The game data sync protocol went from v27 to v50, and many packets changed
DataServer and GameServer must be updated together (guild notice, Market, Talent Tree, Dungeons, Achievements, Bestiary, entry limits, Inscriptions, Kill Log, loot filter all use new DataServer packets)
New V2 installs get every table from the V2
MuOnline.bak. A V1 database upgraded by hand needs these scripts, in this order, before the V2 DataServer will start:DataServer\SQL\DatabaseObjects\dbo.TalentTree.Table.sql(file is UTF-16)dbo.DungeonProgress.Table.sql(orDataServer\migrations\dungeon_progress.sql, safe to re-run)dbo.AchievementProgress.Table.sqldbo.ItemExt.Table.sqldbo.PvPKillLog.Table.sqldbo.HelperLoot.Table.sqlSQL\Migrations\add_resetsystem_missing_columns.sql- fixesInvalid column name 'ResetDay'and AutoReset settings never saving on databases made from the original scriptSQL\Migrations\add_luckyspin_missing_columns.sql- fixes spin charges and pending rewards not savingSQL\Migrations\add_optiondata_changeskin.sql- fixesInvalid column name 'ChangeSkin'and option rows never savingSQL\Migrations\0001_axiom_schema_version.sqlSQL\Migrations\0002_market.sql- adds the Market columns and drops the oldPShopItemValuetableSQL\Migrations\0003_golden_archer.sql- adds theGoldenArchertable (Rena counts)SQL\Migrations\0004_bestiary.sql- adds theBestiaryProgresstable (Bestiary kill counts)SQL\Migrations\0005_entry_limit.sql- adds theEntryLimittable (event and dungeon entry counts per account)
The DataServer now refuses to start on an old database. It reads
dbo.AxiomSchemaVersion; if the table is missing or below version 5 it logs[Schema] NOT STARTINGand never opens its port. An older database would otherwise make saves fail silently on missing columnsThe boss list moved out of the Bridge config into
Data\Plugins\BossClasses.xml. The<BossClasses>block inPlugins\Bridge\Config.xmlis no longer read - copy your own entries into the new file. If the file is missing, no boss kills are announced or countedThe Launcher now reads
Data\Local\UpdateConfig.iniinstead of the .axiom files. Re-run ConfigEncoder and ship the newUpdateConfig.iniwith the client. Without it the Launcher skips updates ([Update] Enabledreads as 0) and cannot show server statusShip the new
Skill.txtwith both GameServer and client (weapon requirements moved into it)Re-encode
ClientConfigwith the new ConfigEncoder. The client now only accepts a config of exactly the expected size; an old one is rejected, every setting falls back to built-in defaults, and the reason is written to the log. Bad values (zero divisors, zero frustum, broken fog values) are corrected and loggedShip the new UI files under
Data\Interface\UI\with the clientShip the new
Data\Local\MapWater.xmlwith the client. Without it, water on normal maps stays vanilla (the Kalima sea shader still works)EventTimerInfo.xml: the old<Section Header>tooltip format is no longer read (see Event Timer below)ItemLevelCurve.xmlships turned ON and makes +10..+15 weapons and armor stronger than vanilla. SetEnable="0"to keep vanilla numbersCreating a Summoner or RageFighter now needs its character card (sold in the cash shop), on by default. Characters that already exist are not affected. Set
SUCreateType = 0andRFCreateType = 0inGameServerInfo - Common.datto keep V1 behaviour (both classes free)Dying to a monster now costs EXP (never zen or items), on by default. Set
DeathExpPenaltySwitch = 0inGameServerInfo - Common.datto keep V1 behaviour (see Characters & combat)ItemOption.xmlno longer ships the leftover TEST block (option slots 14-28 on every weapon from +1 to +15: elemental damage, double damage, ignore defense, SD, PvP damage, PvP attack rate, BP, excellent and critical damage). Weapons lose those extra lines. Keep your old rows if you relied on themThe dead custom events (GvG, TvT, Kill All, PvP 1x1, Run and Catch, Russian Roulette, Hide and Seek, Quickly, EventStart) were removed. Ship the new
Command.xml(their commands are gone);TvTEvent.datandGvGEvent.datare no longer readShip the new
Move\Move.txt(Custom Arena entries) andPlugins\Events\CustomArena.xmlMovement speed guard settings changed in
GameServerInfo - Common.dat:MoveSpeedGuardBurstandMoveSpeedGuardDeadzoneare gone,MoveSpeedGuardSlackis new (default 3),MoveSpeedGuardTolerancedefault is now 35, andMoveSpeedGuardModedefaults to 2 (snap back, no kick). See Characters & combatGameServer, DataServer and JoinServer must be updated together (cash shop purchases and Lucky Coin exchange changed between GameServer and DataServer)
New
MaxPacketsPerSecondinGameServerInfo - Common.dat(default 250, 0 = off): a connection that sends more packets than this is disconnected and loggedNew failed-login limits in
JoinServer.ini:LoginFailAccountMax(5),LoginFailIpMax(20),LoginFailWindowSeconds(300),LoginFailBlockSeconds(300). 0 turns a limit offShip the new
Item\ItemMove.xml: the Blood Castle weapon and the Cursed Castle Water can't go into a personal store or the guild vault
New systems
New UI engine (AxiomUI) with two skins: "classic" looks like vanilla, "axiom" is new painted art. Pick it with
UI_SkininClientConfig.xml. Moved to the new engine: login, server select, character select and create, options, Esc menu, message boxes, character info and detailed stats, Resets, VIP, Guild info and create, Jewels Bank, Window Menu (U), Quick Command, Move (M), Commands (D), Party (P), Duel HUD, Help (F1), Pet info, Gens, Event Timer (H), quest log, Kanturu, Imperial Guardian, Doppelganger, Illusion Temple, Blood Castle / Devil Square / Chaos Castle entry, Lucky Coin, guild war / soccer score, Castle Siege gate lever, gatekeeper, guardsman, catapult, castle lord (Senatus) and battle map, duel spectator screens, invasions, the top-left map plate, the chat window, Sell Posts (S), Lucky Spin (K), the Lucky Item box (Jerridon), the Add Points popup, NPC dialogue, quest progress, the class quest NPC, the NPC shop, Julia, the inventory, extended inventory, vault, trade, chaos mix box, the X cash shop and all its popups, the Talent Tree, the Golden Archer, the MU Helper window (with its settings page and skill picker), the message boxes (NPC menus, event results, duel, progress bars, amount input, warehouse PIN keypad, item confirms, jewel combine / split), and the HUD overlays (buff icons, Pets card and low-durability icons, Hunting Log, party card, quest tracker, system messages, scrolling notice). In the axiom skin Resets, VIP and Guild are tabs of one "Character Services" panel. The layout XML files underData\Interfacemust ship with the clientTalent Tree (free). A new skill tree window (N key) built entirely from the server's
Data\Plugins\Characters\TalentTree.xml, so owners design the tree in XML with no client patchUp to 3 categories. Nodes have tiers, max rank (up to 20), per-rank values, required nodes, "points spent in this category" gates and class filters. Some nodes only work with a given wing, full armor set, shield or weapon type
About 60 node effects: stats, HP/MP/SD/AG, defense, rates, crit/exc/double/triple, reflect, regen, resists, damage for a single skill, upgrading a skill to its Improved/Enhanced form, granting a skill, exp/master exp/drop/zen %, and lower reset level requirement
Points come from master levels by default (
PointSource="MasterLevel"), or fromLevel,ResetorManual"Reset Tree" gives all points back for zen (
Respec,RespecZen, default 10,000,000)TalentTree.vanilla.xmlis the vanilla S6 master tree converted to talents - copy it overTalentTree.xmlto use it. Vanilla nodes that grant a skill the client cannot cast are left outTooltips show units, next/max rank and unmet requirements in red. GM command
/talent points <n>. Saved per character on the DataServer
Item Tiers (paid). Group items into named quality tiers (e.g. "Legendary") by index range in
Data\Plugins\Items\ItemTiers.xml. Each tier multiplies the bonuses an item already has, with a separate multiplier per type: excellent, +option, luck, item options, implicits, ancient set, set stats, sockets, harmony, 380, and optionally base damage/defense. Nothing is stored on the item, so existing items are tiered the moment the file loads and go back to normal when a tier is removed. The item name is drawn in the tier colour with the tier name under it, and the tooltip shows the scaled numbers. Ships with example tiers commented out, so nothing changes until you add someAchievements (paid). Achievements window in the Window Menu (U) with one tab per category and a points total
Up to 8 tiers per achievement. Each tier gives points and up to 4 rewards (zen, exp, items, item bag, buff, level/master points, WCoin/Goblin points) that the player claims with a Claim button
Triggers: monster, boss and player kills, level, resets, NPC talk, maps visited, event wins, chaos mixes, item upgrades, pickups, Lucky Spin, quests, play time, trades, Market sales, rare drops
One XML per category in
Data\Plugins\Achievements\. Ships 6 categories and 64 achievements._TEMPLATEfile lists every fieldUnlocks and claims save at once, the rest every
AutosaveSec(Settings.xml, default 180). GM commands$achstate,$achset,$achreset,$achreload
Dungeons (paid). Timed, instanced runs on normal maps, solo or as a party. Others on the same map cannot see your run, its monsters or its drops
Party runs: the party leader presses Enter and the whole party goes in together. The leader pays the entry fee once. Every member must stand near the leader (
PartyRange, default 10 tiles), be alive and high enough, and have that level unlocked; if one does not, the leader sees who and why. A party member outside can press Enter to join a run that is already goingDying, leaving, disconnecting or leaving the party takes only that member out. The run ends when the leader leaves. On a clear, every member still inside gets the unlock and their own reward roll. Kill drops can be picked up by the whole party
Tier scaling: each tier (or level) sets monster Life, Damage, Defense, EXP and Drop as a % of normal, plus extra % for each extra party member, so Heroic and Mythic are really harder and a 5-player run is harder than a solo one. "Forgotten Depths" ships with Heroic at 160% life / 150% EXP and Mythic at 250% life / 220% EXP
New browser layout in both skins: Dungeon, Monsters, Requirements and Rewards as icon grids instead of a text list. Requirements turn green or red (level, unlock, zen, the fee item with have / need), the fee item shows its real model, every entry has a tooltip. Ship the new
fragments\dungeon.xml,fragments\axiom\dungeon.xml, both skins and the newskins\axiom\icon\dgn_*.pngiconsOpen the browser with L or at the dungeon NPC (
NpcClass). It shows each level as Locked, Open or Cleared, with map, time limit, monster count, death rule, reward, entry fee, min level and scheduleUp to 3 tiers of 5 levels. Clearing a level in time unlocks the next. Each level sets map, spawn, walkable areas, time limit, whether death ends the run, zen/item entry fee, monsters and bosses, reward bag and exit gate
During a run every way out except Leave is sealed: map portals, the Move window (M),
/move, town portal scrolls, party summon and event teleports ("Teleports are sealed during a run. Use Leave to exit."). Only the level'sExitGatestill works. A HUD shows the countdown and "Monsters X / Y". If time runs out there is no reward and everyone is moved out afterExpiredGraceSec(default 15 s, time to pick up loot). Before, a failed run never closed and players stayed inside until they leftOne file per dungeon in
Data\Plugins\Dungeons\, with<Schedule>for opening hours. Ships "Forgotten Depths" (Lost Tower, Normal/Heroic/Mythic). GM commands$dgnenter,$dgnleave,$dgnstate,$dgnclear
Inscriptions (paid). A new permanent way to power up items
The first time a weapon, armor, shield, wing, ring or pendant lands in an inventory, warehouse or chaos box, it rolls a hidden Potential (0-100). Plain items roll high (50-100), excellent/ancient/socket items low (25-45), harmony/380 items in between (35-60)
The Chaos Goblin has a new Inscription tab that spends Potential: open a slot (weapons 3, armor/shields/wings 2, jewelry 1), inscribe it (pick the effect with a catalyst jewel, or roll a random one), Forbidden Inscribe (cheap random, failure corrupts the slot forever), and Empower (raise one tier). The tab previews what the mix will do
About 110 inscriptions: flat bonuses, "% of a stat as a bonus", bonuses per corrupted slot, and skill changes (more damage, faster cast, shorter cooldown, debuff on hit, use a skill while the item is worn). Some are limited by class
Inscriptions are permanent. A failed mix loses the materials, corrupts the slot or destroys the item, per recipe. A recipe can bind the item to the character
Tooltips show "Potential X / Y", every slot and "Bound to" plus the character name. Inscriptions follow the item through trade, warehouse, drops, Market and Sell Post
Config:
Data\Plugins\Inscription\Inscription.xml,Pools.xml,Recipes.xml. GM command/insc info|pot|set|corrupt|clear(item in the first inventory slot). Unlicensed or disabled: nothing happens and nothing is lost
Bestiary (paid). Kill counts per monster family unlock permanent bonuses against that family, like Terraria banners. Open it from the Window Menu (U)
Families group monsters (e.g. all Skeletons). Each family has up to 8 kill milestones; each milestone gives one bonus against that family: Damage (+% damage dealt), Guard (-% damage taken), Spoils (+% drops and zen) or Hunter's Mark (chance a kill counts twice). Each bonus is capped per family (
Cap, default 10%)A kill counts for every player who gets EXP from it, so parties progress together
Map mastery: finish every family listed for a map and get +EXP% on that map
Window: family list with progress, milestones as cells (green when reached), your current bonuses, the monsters that count and the map mastery state. A toast pops on each milestone (achievement toast spot; click it to open the Bestiary on that family)
Config:
Data\Plugins\Bestiary\Bestiary.xml(ships a small example: Lorencia, Dungeon and Lost Tower families). GM commands$bststate,$bstset,$bstreset,$bstreload. Needs migration0004_bestiary.sql
Bosses (paid). Any monster class listed in
Data\Plugins\World\Bosses.xmlbecomes a boss, however it spawns (map spawn, invasion, Summon Item, dungeon,/monster)It scales with the players fighting it: +% Life, damage and defense per extra fighter (
LifePerPlayer,DamagePerPlayer,DefensePerPlayer,MaxPlayers).ScaleMode="Live"follows the count up and down,"Peak"only rises, so leaving does not weaken itEvery player's contribution is tracked: damage dealt, healing done to fighters and damage taken from the boss, each with its own weight
When it dies, rewards are personal and by rank: top players, the top party, the top guild and a participation bag, each from an ItemBag, straight into the inventory or dropped owned by that player. The boss's normal loot is not dropped, so nobody can steal the kill. The top 3 are announced to the map or the server
Players near it see a boss HP bar at the top centre (boss name on the plaque, HP as numbers and %, and "+40% HP" while extra players have made it stronger), and a contribution card at the lower right with their share and rank, how many are fighting and the top 5. The card drags by its header and remembers where you put it
Field bosses: add a
<Spawn>to a boss and the server spawns it on a map at a random spot from your list, at server start and again after it dies (random minutes after death likeRespawn="60-90", or clock times likeTimes="12:00,20:00"). It announces "has appeared" and warns N minutes before (Warn), to the map or the whole serverBoss scripts: add a
<Script>to a boss to give it phases (by HP % or time: more damage or defense, a new set of attacks, a line on screen) and special attacks:Slam: the exact hit area is drawn on the ground (circle, cone, line, or a donut that is safe in the middle) with a timer line, and it lands on whoever is still inside. Damage is a % of each victim's max HP, with optional stun, freeze or knockback
Summon adds (a phase can make the boss invulnerable until they die), pull far players in, teleport to a player, heal, say a line
Enrage timer after N seconds of fighting
Cast any vanilla skill (
Type="Skill", e.g. Decay or Meteorite) with its own effect and damage.Vanilla="0"turns off a boss's hardcoded spells (Medusa, Kundun ...) so the script decides every skillMedusa ships with a 3-phase script as an example
Bosses never roll affixes. Ships with Medusa and Kundun configured (Selupan as a commented example). Ship the new
fragments\bosshud.xml,fragments\bosscontrib.xml,boss\frame.png(all underData\Interface\UI), shells and skins with the client
Monster Affixes (free). Open-world monsters can spawn as Magic, Rare or Champion with 1-4 affixes (over 80 in the default config: Frozen, Venomous, Thorned, Vampiric, Shielded, Volatile, Splitting, Summoner, Blinker, Pack Leader, Fleet, Giant, Wormhole, loot affixes like Jeweller and Golden, and more)
The HP bar is coloured and widened by tier, the name reads like "Frozen Brutal Bull Fighter", and a row of affix icons sits under the bar with a hover description
The monster gets a tint, glow, size change, a ground ring and an aura per affix. Area attacks are telegraphed: a ring on the ground shows where damage lands about 1s later
Rarer tiers give more exp, zen and items, extra loot rolls, and Champions drop a bag (EventItemBag 201-215)
Config:
Data\Plugins\World\MonsterAffix.xml(tiers, affixes, map and class blacklists). Event maps are excluded. Dungeon monsters can roll affixes with<Rules AllowDungeon="1">. GM commands/affix <tier> <ids>,/affixinfo,/affixreload
Custom Skills (paid). New skills are added in
Data\Plugins\Characters\CustomSkills.xmlwith no code changes: icon, tooltip, learn item, requirements, targeting, damage, buffs, debuffs and visual effects. MuHelper can use them and they work in combos. Shipped skills:Meteor Storm (Wizard), Soul Seeker (Wizard)
Fire Blow (Knight), Blood Storm (Knight, Magic Gladiator)
Focus Shot (Elf), Party Healing (Elf)
Havok Spear (Magic Gladiator)
Wind Soul (Dark Lord)
Learned from new scrolls and orbs in
Item.xml(do not drop - hand them out through shops or GM). New attack skills must be added toCustomCombo.xmlas Secondary to combo
Market (replaces the personal store). Up to 50 items per store, each priced in one currency: Zen, Jewel of Bless, Soul, Chaos, WCoin C, WCoin P or Goblin Points
Items left in the old store grid move into store rows on first login
Cannot be listed: event items, rental/periodic items, lucky items, items with
AllowStore=0in ItemMove, bound items,/locked items, socketed pentagrams, trade-blocked itemsStores cannot open in Chaos Castle, Illusion Temple, the Custom Arena map (40) or maps in
<BlockedMaps>. Castle Siege is not blocked unless you add map 30The inventory's store button opens "My Store": drag or right-click items in, set prices, take items back, open or close the store, collect earnings, and see recent sales in the "Sold" tab
Clicking another player's shop (or
/purchase) opens their store. Buying always asks for confirmation. The seller gets "[Market] X bought your Y" in chatS (or
/market) opens Market search for this GameServer: filter by name, excellent, ancient, socket, luck, skill, additional option, min level and currency, sort by newest or price. Search works in safe zones onlyPrices are 64-bit, so zen prices above 4.29B work
Coin purchases use escrow on the DataServer: the buyer's coins are held, then the seller is paid or the buyer is refunded. Coin sales stuck for 10+ minutes (GameServer crash, link drop) are settled automatically every 60s
Config:
Data\Plugins\Market.xml(MaxRows,OpenMinLevel,SearchSafeZoneOnly,StoreViewRange,SearchPageSize,SaleLogKeep,<BlockedMaps>, per-currencyCommission,Min,Max). Needs a restart to change
Market offline store. "Go Offline" in My Store closes the game and your character keeps selling in town. A confirmation shows the max time and the cost. It ends on relog, sell-out,
MaxMinutes(default 1440), server shutdown, or when the hourly cost cannot be paid (default free). Listings are kept. Cannot run together with the helper or offline attack.<Offline Enabled SafeZoneOnly MaxMinutes CostPerHour>inMarket.xmlChaos Goblin Recipe Book. Talking to the Chaos Goblin opens a recipe book first, grouped in category tabs. Each recipe shows its materials, result, required level, max success rate and how many of each material you carry. "Combine" opens the chaos machine with that recipe pinned and lists what is still missing. A "Recipes" button next to Mix goes back. Built from
ChaosMix_Recipes.xml(new display attributesDisplay Category,Display Result,Display ResultRandom,Source Group). A recipe can now have up to 16 materials (was 8)PvP Kill Log (free). "Kill Log" in the Window Menu (U) with Deaths and Kills tabs. Click a fight to see every attacker, damage per skill, HP/SD at death and the last hits with crit/excellent/double/triple/combo tags. A death recap pops up when a player kills you. Covers world PvP, duels, siege, events, Gens and guild wars. Config
Data\Plugins\KillLog.xml(KeepPerChardefault 50,FightTimeoutSec,MinTotalDamage, which PvP types to record)Drop Codex (free). "Codex" in the Window Menu (U). Type 2+ letters of an item name and the server lists every source that drops it: monster, map, level range, spawn count, item level and chance per kill for your character. No config
MuHelper loot filter. A "Loot filter" tab in the Drop Codex (also from new "Codex" / "Filter" buttons in the MuHelper Obtaining tab). Up to 100 Pick up / Ignore rules per character, for one item or a group (any gear, weapons, armor and shields, wings, jewelry), with conditions: min level, excellent count, ancient, skill, luck, additional option, sockets, min drop level, my class. Ignore beats every pick rule and checkbox. Zen and jewels are never blocked by "Any gear". Saved on the server, and the offline helper uses the same rules
NPC voices. 63 NPCs say a short line when you open and close them (about 300 clips). Music dips while they talk.
Data\Local\NpcVoice.xml(CooldownMs,DuckMusic), clips inData\Sound\Voice\Item level curve. Owners set how much +1..+15 adds to damage, defense, block rate and magic defense per item range, as a
Flatamount plus aPercentof the +0 value.Data\Plugins\Items\ItemLevelCurve.xml, reload with/reload item, players relog to see new values on carried items. Shipped ON: +15 weapons get +110 damage + 45% of base (vanilla about +66). Shields and wings stay vanilla. Item tooltips now show the server's real +level numbers (the old client showed +36 at +15 while the server gave +66)Item Extension layer. Items can now carry extra saved data by serial (DataServer table
ItemExt). It follows the item through trade, warehouse, ground, Market and Sell Post, and is deleted when the item is sold to an NPC, used in a mix or despawns. Used by InscriptionsShared boss list
Data\Plugins\BossClasses.xml(31 bosses) used by Bridge announcements and Achievements. Achievements no longer counts any monster as a boss kill
Server Manager & tools
New Axiom Server Manager (
AxiomServerManager.exe) replaces ServerStartUpStarts servers in order with delays, Stop All in reverse. Restarts crashed servers (
AutoRestart,RestartDelayMs). Can hide the server windowsLive status, live log, CPU/RAM/disk/network and player graphs for every server
Commands tab per server. GameServer: all
reload.*,event.start.*,event.start.arena <0-13>,server.close.1m/3m/5m,server.logout.all,server.disconnect.all,notice <text>,user.kick <account>. ConnectServer:reload.serverlistPlayers tab (online list with kick, players per map), Invasions tab (state, next start, force start, reload)
SQL Server window: CPU, requests/s, sessions, memory, blocked and running queries, waits. Uses the DataServer DSN unless
SqlConnectionis setSettings in
ServerManager.xmlnext to the exe
Server Manager updates (from 2.0.1 on). The Updates button turns orange when a new version is out; it never installs by itself. Install checks the package signature, backs up files and database, runs new
SQL\Migrations\NNNN_*.sql, keeps your config (new ini keys are added with defaults, edited files stay live and the shipped one is saved as<file>.new), starts everything and checks each server reports the new version. If anything fails, it rolls back.UpdateChannelSTABLE or RCEvery server (GameServer, DataServer, JoinServer, ConnectServer, BridgeServer) has a control channel for the Manager:
ControlPort(0 = off),ControlKey,ControlBind(default 127.0.0.1),ControlInstance. Default ports GS 55990, DS 55991, JS 55992, CS 55993, BS 55994. A second GameServer on the same machine needs its ownControlPort. SetControlKeybefore binding to anything other than 127.0.0.1New AXIOM Config Editor (
Tools\ConfigEncoder\AxiomConfigEditor.exe). EditClientConfig.xml,ServerConfig.xmlandMapFog.xmlin a form with limits checked. "Save + Run ConfigEncoder" shows the encoder's warnings in a Problems list. It never encrypts by itselfAxiomEditor no longer fails to open Item.xml or ChaosMix files with a wrong
encoding=header (for exampleutf-16on a UTF-8 file copied from another server). The game always ignored that headerConfigEncoder now always writes a plain
Data\Local\UpdateConfig.ini([Update] Enabled/ServerIP/ServerPort/UseHTTPS,[Game] GameServerIP/GameServerPort)Launcher no longer deletes client files when the updater is off. It ran the full update even with
Enabled="0", including the step that deletes every file missing from the manifest, which wiped installs. It also no longer deletes anything when the manifest is empty or fails to download.UpdateConfig.iniandLauncherConfig.iniare protectedLauncher is no longer Themida-packed and has real version info. Antivirus flags dropped from 40/71 to 1/71 on VirusTotal
Performance & stability
Fixed GameServer crashes that could happen when many players log in, log out, change characters or trade at the same time
Major performance improvements, GPU now skins bones and particles/effects are batched
GameServer now holds far more players on the same hardware (tested: 800 fighting bots stable on a 4 vCPU VM)
Outgoing packets are batched per player: one encrypt + one send per flush instead of one per packet per recipient. A player's own replies are never delayed.
SendBatchWindowinGameServerInfo - Common.dat(ms, 0-200, default 50, 0 = off, restart to change; not in the shipped file, add the line to change it)Sending no longer puts 64 KB of buffers on the stack per packet; encryption writes straight into the socket buffer
Send completions no longer queue behind the global socket lock
Nagle is now off on player sockets when send batching is on (the GameServer never actually set it), which lowers ping under load
Viewport: empty monster viewport lists are skipped, adding to a full list returns at once, monsters only search players/summons instead of every nearby object, and the spatial grid only clears the cells it used
Spawns and item drops are sent right after the viewport tick instead of waiting for the next batch
Built-in GameServer profiler: CPU per section and per thread, written once a minute to
Perf\YYYY-MM-DD.txt.PerfProfilerinGameServerInfo - Common.dat(default 1; not in the shipped file)Character saves are no longer lost when many players disconnect at once. The GameServer's send buffer to the DataServer was a fixed 512 KB; a mass logout overflowed it, the GameServer cut its own DataServer link and dropped the queued saves. The buffer now grows as needed
GameServer now always recovers after a DataServer or JoinServer restart. With several GameServers, one could stay connected but refuse all logins until relaunched. Reconnects are now thread-safe, a clean close by the other side is detected, late close messages no longer kill a fresh link, the JoinServer link re-registers on every reconnect, and logins are re-enabled whenever both links are up
Moved or traded items no longer come back after a relog. Since the 4-thread DataServer save queue (V1.0.7), two saves of the same account could run at the same time, and an older full save could finish after a newer one and bring back the old inventory. Every message for one account now runs one at a time, in order. Other accounts still run in parallel
Item changes now persist within ~2s: jewel use (vanilla + custom), NPC buy/sell/repair, inventory moves/equip. Previously only saved on 3-min autosave or logout
Chaos mix results are no longer lost or duplicated if the window closes while the DataServer is answering. Materials are used up the moment the mix is sent, the result goes to the box if open or to the inventory, and the box stays locked until it arrives (max 30s). If nothing fits it is logged as
[ChaosResultLost]so a GM can restore itItems created straight into the inventory (cash shop,
/make, jewel mix/unmix, Lucky Coin, Moss, start items) are no longer lost if the inventory filled in the meantime. They drop at the player's feet, owned by the playerGround items no longer vanish or replace each other on busy maps. The client had room for only 1000 ground items, so every drop past that overwrote another one on screen. The limit now matches the server (8000)
Object limit raised from 17000 to 32000 (monsters 15000 to 30000) for dungeon instances
Crash fixes: splitting a jewel bundle in the extended inventory, durability update for an item in an extended slot. Fixed possible memory corruption in trade with more than 10 matching items, and a one-byte overflow when reading a letter
Reload Common no longer breaks plugin items. Reloading Effect.xml wiped the effects the Item Effect plugin adds, so its items did nothing when clicked until a restart. Reloading Item.xml dropped every custom pet and mount, and reloading the Custom Pets plugin then skipped all of them as "collides with Item.xml". Both are re-added after a reload now
Monster
MoveSpeed,CustomSkills.xmlandItemLevelCurve.xmlnow reload with their parent configs. Players who log in after the reload get the new valuesSelupan fight no longer drops from 120 to 50 FPS. His slam decal drew about 40,000 ground tiles one by one every frame; it now draws only the visible tiles in one batch. Helps every ground decal (magic circles, meteor shadows)
Ground item names (ALT) are much cheaper to draw (400 labels used to cost about 50 FPS), no longer stack on top of each other, and draw under HP plates, chat bubbles and the system message box
Minimized and alt-tabbed clients no longer eat CPU. Skipping rendering while minimized was only wired up for windowed mode, so a minimized fullscreen client still ran the full frame loop. Worse, a fullscreen client that lost focus hit vanilla's anti-multibox path: it called SetForegroundWindow, cycled the window through minimize and maximize to drag itself back in front, and closed the client outright on the second attempt - all inside a loop with no sleep in it, so it held a full CPU core while doing it. Fullscreen clients now behave like windowed ones: minimized or in the background they keep running game logic (helper, network, reconnect) at 25Hz with rendering skipped, they stay minimized, and they do not close themselves. The frame limiter also yields its timeslice instead of spinning through the last couple of milliseconds of each frame, which it was doing once per frame per client
Removed a dead packet hex-dump loop that a modified client could use to overflow the stack
Imperial Guardian runs much faster. All four Imperial Guardian music slots use the same track, and every frame one map's music code stopped it and the next restarted it, about 8 ms per frame. The music also plays there now (it restarted every frame, so it was never heard)
Imperial Guardian torches, fire bowls, smoke, waterfalls and candles no longer spawn 2-5x too many particles at unlocked FPS (they fired once per rendered frame instead of once per game tick)
The client no longer closes with "LoadBitmap Failed: Data\World3\mini_map.tga" after Imperial Guardian. It could only use 2 GB of memory and ran out loading the next map; it can now use 4 GB on 64-bit Windows. A minimap that fails to load no longer closes the game
The client no longer crashes on exit (access violation right after "Destroy" in MuError.log)
Monsters & world
Respawn speed:
Data\Plugins\World\RespawnRate.xmlscales the Monster.xmlRegenTimeof normal map monsters. A global % (Rate), a % per map (<Map Index Rate>), and optional crowd scaling: respawn gets faster for each player on the map aboveFrom, never faster thanFloor%. Event maps, field bosses, invasions, summons and dungeon monsters keep their own timings. Ships unchanged (100%, crowd off)Monsters now leash: dragging one too far makes it give up, walk home, heal and reset damage credit. Configurable via
MonsterLeashDistance/MonsterLeashReturnHome/MonsterLeashHealOnReturninGameServerInfo - Common.dat, disabled by default (MonsterLeashDistance0). The leash fires at the spawn's wander radius plusMonsterLeashDistanceextra tiles (invasion spawns count as 30). Previously an aggroed monster ignored its wander radius entirely and, once aggro lapsed, stood frozen wherever it stopped until it died. A monster that loses its target while outside its wander radius heads home straight away rather than waiting to be dragged the full leash distance first - outrunning a chase used to leave it standing in the field, because a monster past its home radius is not allowed to pick a wander destination either, so it could neither chase, wander nor leash. If the way home turns out to be blocked for good, it settles where it stands after 30s and resumes wandering there instead of retrying forever. Blood Castle, Chaos Castle, Devil Square, Kalima, Illusion Temple, Doppelganger, Imperial Guardian and Castle Siege monsters are excluded, as are event boss wavesMonsters now find their way around obstacles instead of getting stuck on them. The router walked greedily toward its target and, after its first step, could only turn 45 degrees at a time and never turn back - so any concave shape (a building corner, a bridge railing, a bend in a wall) trapped it. It also gave up after ten backtracks and refused outright to plan any route longer than fifteen steps. When it gave up the monster did not move at all, and re-failed identically on every tick afterwards, which is why a monster that lost its line to you could stand frozen indefinitely. Movement now uses a breadth-first search: it finds a route whenever one exists nearby, walks the first stretch of a longer route and re-plans as it goes rather than refusing the whole thing, and when you are somewhere it genuinely cannot reach it closes to the nearest tile it can get to instead of stopping dead. The search allocates no memory while it runs and stops as soon as it has a route, rather than scanning the surrounding area every time
Monsters now walk on your screen at the same speed they walk on the server. The client moved every monster at one fixed speed (about 400ms per tile), while the server uses each monster's own
MoveSpeedfromMonster.xml(400 to 1600ms). Slow monsters - the Bloody monsters in Aida are 700 - reached you on screen seconds before they reached you on the server, so close-range skills (Death Stab, Fire Blow) played their animation on a monster that was really still 2-3 tiles away and dealt no damage until you stood still and waited. The server now sends every monster's speed at login and the client walks each one at that pace. ChangingMoveSpeedand reloading monsters applies to players who log in afterwardsSpeed changes on a single monster now show on screen too: the Fleet affix, a pack leader's Hastening aura and the Ice slow. Before, the server walked a Fleet monster 40% faster while the client still drew it at normal speed, so it reached and hit you before it visibly arrived - Fleet was only an icon. The server now tells nearby players whenever a monster's speed differs from normal or changes, and the client walks it at exactly that speed
The server now walks characters and monsters at their real configured speed. Movement is checked on a 100ms timer, and every step was counted from the moment the timer noticed it instead of from when it was due, so each tile took up to 100ms longer than configured (400ms ended up nearer 500ms). The server was always behind what players saw on screen - for their own character and for monsters
Bosses no longer stand idle or rarely cast (Nightmare, Balgass, Gaion, Imperial Guardian bosses, Kanturu monsters).
MonsterSkill.xml"*" was read as 0, which filled empty skill slots with skills that did nothing. Nightmare no longer freezes after summoning (MonsterAIUnit.xmlunits 68-70). New GM command/aigroup <group> [del|0-3]attaches AI to bosses spawned with/monsterMonster HP bar shows the monster's level in grey after its name, e.g. "Bull Fighter [63]"
Ground item slots can be set per map with a new
MaxItemsattribute inMapManager.xml(default 500, max 8000, read at startup only). Players only scan nearby cells for itemsRemoving a monster AI group (Crywolf, Kanturu, Raklion style) no longer deletes unrelated monsters that reused a dead member's slot
Monster names longer than 10 characters no longer spill into the next field; "Killed by monster" shows the full name
Party experience share range is now configurable. A party member gets a cut of a kill if they are within 10 tiles of the monster, measured as a straight line on the same map - vanilla never checked whether anything stood in between, so members could be fed through walls from a neighbouring room.
PartyExperienceDistanceinGameServerInfo - Common.datsets the radius in tiles, andPartyExperienceRequireLOSadditionally requires a clear line of sight, blocking the share when a wall sits between the monster and the member. Both default to vanilla behaviour (10 tiles, walls ignored). Party heal and buff range is unaffected and stays at 10Monster spawns reworked on several maps (
MonsterSetBase): Dungeon, Lost Tower, Atlans, Tarkan, Icarus and Aida got many more spots; Lorencia, Noria and Kanturu 1 were thinned out; Arena spawns removedMonster damage to players can now be tuned.
MonsterDamageRateToDW...MonsterDamageRateToRFinGameServerInfo - Character.datset how much damage each class takes from monsters, and a new per-mapMonsterDamageRateinMapManager.xmlscales it per map. The vanilla rule that a player's defense counts only 50% is nowPlayerDefenseRateVsMonsterandPlayerDefenseRateVsPlayer(both default 50). All defaults keep vanilla behaviour. Player summons are not affectedMonsters can have an element weakness and strength:
Weak="Fire" Strong="Ice"inMonster.xml, or a map default withElementWeak/ElementStronginMapManager.xml. A skill of that element dealsElementWeakBonus% more orElementStrongPenalty% less (Character.dat, default 20/20). Element badges sit beside the monster's HP bar, in the same style as the affix icons: the weakness on the left (green rim, up arrow), the strength on the right (red rim, down arrow), with a hover tooltip ("Weak to Fire: Fire skills deal extra damage"). Ship the newData\Interface\UI\atlas\element.png/element.xmlwith the client. Skill tooltips show the skill's element ("Element: Fire", from theSkill.txtType column) so players can pick the skill that matches Monsters can also have Earth, Wind and Water resistance now (Resistance4-Resistance6, optional). The shippedMonster.xmlsets no weaknesses yetThe monster kill EXP formula is now config:
ExpBaseOffset,ExpBaseDivisor,ExpLevelGapFree,ExpHighLevelBonusFrom,ExpHighLevelBonusDivisor,ExpFinalRate,ExpPartyLowLevelSupport,ExpPartyHighLevelBonusBase,ExpPartyHighLevelBonusDivisorinGameServerInfo - Common.dat. Defaults give the same EXP as beforeParty EXP no longer wraps around at high rates (the shared pool was a 32-bit number, so a level 200 monster at x100000 could pay a tiny or garbage amount). The special party bonus (
PartySpecialExperience) now needs 3 different classes in range; it counted duplicate classes before. The party bonus for monsters level 65+ now uses the party's average level instead of the killer's level for every member.PartyGeneralExperience6-10/PartySpecialExperience6-10were written past the end of a 5-slot array and are no longer readKalima 7 monsters (Death Angel, Death Centurion, Bloody Soldier, Aegis, Lord Centurion, Necron, Schriker and Kundun, classes 268-275 and 331-338) now use their skills. A typo (
&&instead of||) meant they never got them - Kundun had no poison, fire slash, summon or immunityMonster HP is capped at 2,000,000,000. Medusa's 78,000,000,000 was silently cut to about 2.1 billion and then turned negative inside the EXP math, so Medusa kills paid wrong EXP. Too-large values are now clamped at load and spawn (also through CustomMonster, affixes and Summon Items) and logged in red at startup
Monsters patrol around their spawn again. The patrol target took its Y coordinate from X, so wandering monsters drifted along a diagonal
A monster's aggro list no longer fills up with the same player. Each time a player walked back into view they were added again, until the 20-slot list was full
Kanturu 2 traps (Laser Trap and Canon Trap) now sit exactly where they are placed. They used the random spawn type, so each one landed up to 3 tiles away from its spot and moved again on every restart and respawn. Laser traps hit players standing away from the beam and missed players standing in it. All 27 now use the fixed type, like the Kanturu 3 traps (
038 - Kanturu 2.xml)
Events
Kalima 1-7 entry rules can now be set per tier: level, reset, grand reset and master reset ranges. The same rules apply to Lost Map +N and Kalima Ticket.
KalimaTier1..7 Min/Max Level/Reset/GrandReset/MasterResetinGameServerInfo - Event.dat(all -1 = vanilla level brackets), andKalimaMasterAnyTier(1 = master characters may enter any tier)Kalima ticket now properly assigns the map (was always 1 tier lower). It sends you to the highest Kalima you qualify for
Kalima ticket and Lost Map tooltips show the requirements from Event.dat (they used Illusion Temple brackets), with your highest stage highlighted and a red line if you do not qualify
Castle Siege: Gems of Defend and Jewels of Guardian in the extended inventory now count
Entry limits per account:
Data\Plugins\Events\EntryLimits.xmlsets how many times an account may enter Blood Castle, Devil Square, Chaos Castle, Illusion Temple, Imperial Guardian and Doppelganger per day and per week (MaxPerDay,MaxPerWeek,ResetHour,WeekResetDay). Dungeons takeMaxPerDay/MaxPerWeekon their<Dungeon>; the dungeon window shows an "Entries 1/3" cell under Requirements (shipskins\axiom\icon\dgn_entries.pngand both skins). All characters of an account share the count. A player with no entries left is refused before the ticket is used and told when it resets; in Imperial Guardian and Doppelganger the party goes in without that member. AddEntryLimit="BloodCastle"to an Event Timer row and its tooltip shows "Entries: 2/3 today". Everything ships at 0 (no limit). Needs migration0005_entry_limit.sqlInvasion HUD and map names can be 32 characters (were cut at 24/16)
Invasion monsters with
RegenType="1"now respawn (afterRegenTimeSec, near where they spawned). Before, they never came back once killed. An invasion with respawning monsters ends on its timer, not when all are killedBlood Castle's bridge no longer stays raised after it has opened. The bridge dropping and the gate walls coming down were each announced once, to whoever was registered at that exact moment, and the client played the drop as a short one-shot animation. Any client that could not act on that moment - the map still settling, the world not active yet on that frame - kept the raised bridge model and the closed gate for the rest of the run, while the server had already opened the way and everyone else walked straight through it. The bridge and gate state is now re-sent to each player until it has landed, and the client remembers what the server told it instead of relying on the animation reaching its last frame, so a missed drop is corrected on the next tick rather than never. A side effect of the old behaviour was that the gate posts beside the bridge could be left in their closed pose too, depending on the order the map objects happened to be drawn in
Event Timer (H) supports up to 3 tabs, colours, headers and bold lines from
EventTimerInfo.xml(<Tabs>,Tab=,NameColor=,<Header Color>,<Line Color Bold>). Tooltips can be about 2000 characters (was 1024). The old<Section Header>format is no longer read. Arena slots 29-33 were mislabelled; fixedKanturu event HUD no longer shows 0 seconds during the last minute
Custom Arena class fights (Survivor, MG vs MG, DW vs DW, DK vs DK, RF vs RF, DL vs DL, Elf vs Elf, SUM vs SUM) can be joined again. They ran on schedule but nothing pointed at their entry gates, so nobody could get in and they never started. Players now join from the Move window (M) while an arena is open ("Arena DW vs DW" and so on,
Move.txt70-77). The open announcement says how to join, and the arenas have English names instead of "GMxGM", "BMxBM"Removed the dead custom events: Guild vs Guild, Team vs Team, Kill All, PvP 1x1, Run and Catch, Russian Roulette, Hide and Seek, Quickly and EventStart. They were switched off but still ran every tick and left hooks in combat, trade, death and respawn code. Their commands (
/veloz,/abrirevento,/participar,/pegapega,/queroir,/escesc,/roletarussa,/offpvp,/pvp,/matamata,/starttvt,/startgvg) and GameServer menu items are gone; the TvT and GvG rows in the Event Timer are disabledGolden Archer works again (free plugin,
Data\Plugins\Events\GoldenArcher.xml). Talk to him to open the Rena window next to your inventory. "Register" hands in one Rena, "Register All" hands in every Rena you carry, extended inventory included. The count is per account and saved on the DataServer. Rewards (zen, items, event bags, chat message) are set per count in the XML:Everyrepeats,Atfires once. Defaults: 30,000 zen every 10 Renas, a Box of Heaven every 25, jewels at 100/250/500/1000. Window text is inGameStrings.xml(11400-11403). Needs SQL migration 0003Castle Siege battle map: the guild commander now sees guild member positions (never worked), units are coloured by their real team (was random), the battle skill icons no longer break after leaving the castle, and the mouse wheel only switches the battle skill over the skill plate instead of anywhere on screen
Selupan's knockback (and any server push while walking) no longer disconnects players through the movement anti-hack. The push was counted as a speed-hack snap, five pushes meant a kick, and the client kept walking its old path after the push. Server position corrections now cancel the walk
Fixed a Castle Siege weapon aiming bug
Custom Quests: fixed a turn-in bug. Items and costs a quest asks for are always taken before the reward is given. Item objectives can set
Level(default -1 = any level). A quest that lists the same item or currency twice is not loaded (logged)Fixed a Castle Siege mark registration bug. Signs of Lord are now taken when you register, and are given back if your guild is not registered for the siege (before, they were lost)
Fixed event reward bugs: the Illusion Temple win reward, the Leo the Helper and Santa Claus gifts and the Gens monthly reward are now given exactly once, as intended
Characters & combat
Level up can now leave HP, MP, SD and AG as they are instead of always filling them.
LevelUpRestoreLife,LevelUpRestoreMana,LevelUpRestoreShield,LevelUpRestoreBPinGameServerInfo - Common.dat, all default 1 (fill, vanilla)SD can now also soak monster damage, not only PvP damage, using the same
ShieldGaugeRate.ShieldGaugePvEinGameServerInfo - Common.dat, default 0 (PvP only, vanilla)Damage reflect against monsters now uses the monster's full hit (before your defense), not what was left after defense. Full reflect has its own rate,
FullReflectDamageRatePvMinGameServerInfo - Character.dat(default 100). The shippedReflectDamageRatePvMchanged from 100 to 1000. Affix blasts, thorns and damage over time are not reflectedEight master tree bonuses that were calculated but never applied now work, and buff tooltips show them: Mana Shield Mastered, Greater Critical Damage Mastered/Extended, Infinity Arrow Improved, Swell Life Enhanced/Mastered, Magic Circle Improved/Enhanced, Increase Block Enhanced, Dark Spirit attack speed
Monsters can no longer stack bonus hits: an ignore-defense hit no longer also doubles, and a double hit no longer also triples
Elf normal attack range went from 6 to 7 tiles
Auto PK: double-tap Ctrl to lock force-attack on, double-tap again to turn it off. Holding Ctrl still works as before. While on, the cursor shows the attack sword with a red outline. Can be turned off in Options ("Ctrl x2 Auto PK"), saved per PC. The double-tap latch is off on servers marked Non-PvP in the server list
Death costs experience. Dying to a monster takes 1% of the current level's EXP (0.7% at master level, 3/4/5% for PK level 4/5/6). You never lose a level, and never lose zen or items. No penalty for PvP deaths, event maps, Crywolf during the battle or dungeon runs. Settings:
DeathExpPenaltySwitch,DeathExpPenaltyMinLevel(11),DeathExpPenaltyRate,DeathExpPenaltyMasterRate,DeathExpPenaltyPKRate1-3,DeathExpPenaltyInDungeoninGameServerInfo - Common.dat(rates are per mille, 10 = 1%)Weakness, Innovation and Sleep now follow the same PvP rules as attacks. They used to land on any player, even in town and on Non-PK servers, because they never went through the attack checks. Every area skill that can hit players now checks the Non-PvP setting, safe zones and PK rules first
On a Non-PK server, asking for a duel is refused with "Duels are disabled on this server." Before, the duel started but no hit could land. Set map 64 to
NonPK="0"inMapManager.xmlto keep duelsSkill scrolls and orbs now say why they cannot be used ("Requires level X, strength Y, energy Z", already known, list full) instead of doing nothing
Hunting log tracks master experience after level 400
Bot NPC messages (BotWarper, BotPkClear, BotAlchemist, BotReward) show in chat again
Bot Buffer no longer refuses players with more than about 2.1 billion zen
Players no longer see each other standing in different places. The server threw away any move that arrived within 100ms of the previous one, and it measured that gap on arrival - network jitter bunches normal clicks together (almost a third of the dropped moves arrived in the same millisecond as the one before), so it was the player's newest path that got discarded. The client had already started walking it and was never told, so from then on the player's own screen and everyone else's disagreed, and hits on that player failed the server's range check even when both clients showed them side by side. Moves are now rate-limited with a small burst allowance instead of a hard gap, a skill's dash packet no longer blocks the move right after it, and the client spaces its own moves at least 120ms apart - a click that comes too early is walked straight away and sent a moment later instead of being lost. Server position corrections can no longer be swallowed by the same gate. Moves still dropped (flooding, or moving while stunned/frozen) are written to the action-reject log as
MOVE_THROTTLE/MOVE_STUNNEDThe server now walks players at the same speed every client draws them. It walked everyone at a flat 400ms per tile (and 1.3x on diagonals), while the client walks 333ms in town, 267ms running or with wings, down to about 211ms on Fenrir - so on every walk the server's position fell behind what everyone saw. Hits failed range checks, and anything the server pushed out about that player (a position correction, someone coming into view) placed them tiles behind, which showed up as players "jumping" back after walking to an NPC. The server now uses the client's own rules: walk/run ramp, wings, Uniria, Dinorant, Dark Horse, Fenrir (faster when excellent), custom mounts, safe zones, Chaos Castle, Ice and Frozen Stab slows, transformation rings, and true diagonal distance
Clicking an NPC now walks you right next to it, or opens it at once if you are already close. Before, the character often stopped several tiles short, and the next click made it turn and walk back toward the NPC before going where you clicked. An NPC farther away than one walk is now reached in one click. Holding the mouse button on an NPC or an item no longer opens the NPC while your character is still far away (and no longer makes the next click walk back to it first)
The server's map walk and safe-zone data (
Data\Terrain\*.att) now match the shipped client maps, including the reworked Lorencia, Arena (the server had an older layout) and Elbeland. To go back to the originals, replace the files with your own copiesYour character no longer gets pulled back near some walls and NPCs (Lorencia, Elbeland, Arkania, Arena, Aida, Kubera and a few map edges). The game and the server disagreed about which tiles you can stand on; the server now sends its own map of blocked tiles when you enter a map, so you never walk where it would refuse you
Your position no longer drifts from the server when the game moves or stops your character on its own: walking into range for a skill, walking to loot, talking to an NPC, being frozen or stunned mid-walk, MuHelper casts. Any walk or stop the server did not hear about is now sent right away
Long clicks no longer end one tile short on the server
Movement checks on the server were reworked. The speed check now uses each character's own speed (walk, run, wings, mounts) over the last few seconds, and is on by default: a move that is not possible is refused and the character is put back where the server has it (no kick unless
MoveSpeedGuardModeis 3). Legit play, lag, spinning in place, knockbacks, teleports and respawns do not trigger itFixed a bug where a player could later end up at the wrong spot after a map move was refused (for example with an NPC window open)
A teleport the server refuses no longer leaves the Teleport skill unusable until the next map change
Fixed several bugs with Teleport, Teleport Ally, gates, Dungeon areas and the Chaos Castle position report while frozen or rooted
Other players' run speed no longer depends on your gear. Whether a character breaks from walk into run was also checked against your own boots, so wearing +5 boots made everyone around you run on your screen while they walked on their own
Other players' attack and skill animations now play at their own attack speed, not yours. Before, a fast caster seen from a slow character had every swing cut off or idled between casts, and an offline helper looked like it skipped skills and spammed the combo finisher
Death Stab and targeted custom skills (e.g. Fire Blow) no longer miss a monster that is still walking to where you see it. The range check now also accepts the tile the monster is walking to (the server's own AI picks it, so it cannot be faked by a client), and your own path end when it is within 2 tiles of where the server has you. Rejected casts log the monster's destination to the
SKILL_RANGEaction-reject lineGround-aimed custom skills (Soul Seeker, Focus Shot, Blood Storm) no longer land on empty ground when cast on a walking monster. The client aimed them at the tile where it draws the monster; while the monster walked, that could be 2+ tiles from where the server has it, so every hit missed until it stood still. When a monster is under the cursor, the area is now centred on the monster's server position
Custom skills can no longer be cast through walls. Like vanilla skills, a cast needs a clear line from you to the target (or to the aimed ground spot); with a wall in between nothing happens
Elf bow auto-attack no longer slides into melee range or rubber-bands back. The chase path was never sent to the server, so the server kept you at the start tile. Multi Shot no longer sends extra hit packets with skill 0
Combo finisher damage can now be set per class in
CustomCombo.xml<ClassScaling><Class Id Str Agi Vit Ene Cmd Divisor DamageMul/>. Before, every class used (STR+AGI+ENE)/2. Shipped: Wizard/Summoner Energy, Knight Strength, Elf Agility, MG Str+Ene, Dark Lord Str+Cmd, Rage Fighter Str+Vit. A class with no row keeps the old formula. Optional<ClassRules Mode>sets the chain rule per class (shipped empty = vanilla)Combo now works on multi-hit skills (Flame, Twister, Evil Spirit, Hellfire, Aqua Beam, Cometfall, Inferno, Triple Shot, Impale, Penetration, Fire Slash, Fire Scream). The combo is decided once per cast and each target gets the combo hit once. Before, these skills never stepped the chain, or the first hit reset it (Penetration gave two combo numbers)
Combo hit numbers pulse to 3x size and back while rising
Twisting Slash, Rageful Blow, Fire Slash, Strike of Destruction and Flame Strike need a non-staff weapon, as in the vanilla client (
ReqWeapon=31inSkill.txt). The MG helper was casting Twisting Slash with a staff. Impale now requires riding. The hotbar no longer greys out Fire Slash, Ice Arrow, Impale, Mana Rays and Spiral Slash with hardcoded stats and weapon lists the server never usedSpells keep their on-foot animation while mounted. A Soul Master on Fenrir cast with a two-handed auto-attack pose. Only physical swings and the 5 spells with real riding versions (Sleep, Chain Lightning, Lightning Orb, Drain Life, Summon) use riding poses
Swell Life on a party no longer stacks the class bonus once per member
Sending a party invite no longer locks your NPC, trade and warehouse use until the other player answers. Only the invited player is locked
Guild notice no longer goes blank after a GameServer restart. The DataServer loaded it but never sent it. Guild masters also get an Edit/Save button for the notice in the guild window (before, only the
@>textchat trick). A changed notice now replaces the old one instead of showing under itFix mount + transform ring animations on teleport. Your character no longer stands on foot under the mount after login, teleport or map change until you walk. A transformation ring skin change no longer dismounts vanilla mounts (Fenrir, Dinorant, Uniria, Dark Horse)
Pet/mount health now always shows with a transformation ring equipped, including after teleport (it read the visual mount instead of the equipped slot). It stays hidden in Chaos Castle on purpose
Custom mounts no longer stay drawn glued to a monster-model transformation ring skin
Dark Horse and Dark Raven no longer show each other's level and experience. The client does not store pet stats on the item - it keeps whatever the server last told it in a single slot shared by both pets, and the server re-sends the equipped pet's stats every time that pet earns experience. With a Raven equipped and a Dark Horse sitting in the inventory, the horse's tooltip therefore printed the raven's level, experience and required level, and kept changing as the raven levelled, because a tooltip is only requested once when the cursor lands on the item and never corrected afterwards. Each pet type now keeps its own entry, and the equipped pet's updates no longer overwrite the pet you are pointing at
Blaze Napin (Swamp of Calmness) can now be targeted, damaged and killed, and shows a health bar. Its client-side name literal had been re-encoded at some point and grown to 43 bytes, overflowing the 32-byte
CHARACTER::IDfield and overwriting the object's server key six bytes past it. With a wrong key the client matched no health-bar, action or damage packet for that monster, so it stood in idle forever and looked invulnerable - the server was applying damage the whole time. Thirteen other monsters had the same overflow reaching less critical fields and are fixed too: Shadow Knight, Ghost Napin, Ice Napin, Shadow Master, Splinter Wolf, Blade Hunter, Kentauros Warrior, Dark Mammoth, Dark Iron Knight, Gateway Machine, Death Centurion, Captain Grizzly and Venomous Chain Scorpion. Name writes that come from data (Npcname list, server CustomMonsterVisual, translated event text) are now length-boundedRage Fighters can now make a Condor Feather. Cape of Fighter is a 2nd level wing exactly like Cape of Lord, and the server has always accepted it in the Condor Feather mix, but the recipe table decoded from Webzen's own
Mix.bmdnever listed it - the mix window matched no recipe for it, so the cape could not even be dropped into the chaos box. Cape of Lord was already listed and keeps working. Both still need +9 and at least one option (luck/skill/additional), same as every other 2nd level wing in that mixFollow no longer gets stuck. Following pathed to the leader's exact tile, and the pathfinder refuses a destination another character is standing on - so the moment the leader stopped walking the follower had nowhere legal to go and froze on the spot. The only way to restart it was to walk the leader around the follower until the goal tile happened to come free, which is why it looked like follow only worked while the leader kept moving. Follow now aims at the ring of tiles around the leader and takes whichever one is open, and stops as soon as it is standing within one tile of them - the pathfinder treats occupied tiles as unavailable, including the follower's own, so leaving the "am I there yet" decision to it left a free tile one step sideways every time and the follower shuffled between two tiles next to a stopped leader instead of standing still. It also re-plans at most every 150ms, and only when the leader has actually changed tile or the follower has run out of path - before this it rebuilt and re-sent the whole route 25 times a second, which the server had to throw away and re-plan every time
Follow no longer depends on where your mouse is sitting. It ran inside the block that handles clicking on the world, which is skipped whenever the cursor is over any interface. Mouse coordinates only update while the cursor is inside the window, so a client you were not actively using kept whatever position the cursor had when it left - and if that was over the bottom bar or an open window, follow stayed switched off until you moved the mouse back over that client. This is why a second client had to be hovered before it would start moving
Background clients no longer answer your keyboard. Key and mouse-button state was read through GetAsyncKeyState, which reports the state of the whole system rather than of one window, and the guard meant to ignore it while a window is not focused sat behind a compile switch that was never turned on. In windowed mode the "we lost focus" flag was never even set, so a client could not have told the difference anyway. With several clients open, any of them sitting under the mouse cursor acted on hotkeys you pressed in the one you were actually playing. Focus is now tracked in windowed mode as well as fullscreen, input is ignored while a client does not have focus, and held keys are cleared on the way out so nothing fires off when you switch back. Unfocused clients also stop holding a stale mouse-over highlight and tooltip from wherever the cursor happened to leave the window, and their character stops head-tracking a cursor that is not theirs - the head-look angle was fed the last known cursor position with no lower bound on it, which bent the neck away from the body
Fixed a bug in guild alliance management
Guild creation always checks the minimum level, and a character already in a guild can't create another
Fixed a bug with support skills (heals and buffs) used without a valid target
Character names (new characters and the rename command) can use letters and digits only, the same as the character creation screen. A character in a guild can't be deleted until it leaves the guild
Renaming a character in slot 6 or 7 no longer hides it from the character list
Fixed guild vault bugs. The vault stays locked to the member who opened it until they close it, log out or change server; others see "in use" until then
Fixed a Jewels Bank loading bug. If the bank can't be read from the database it stays "loading" (reopen it to try again) instead of showing an empty bank
Fixed bugs in the friend list, guild member removal, character rename and character delete
Fixed character loading bugs at character select and when changing server
Items & chaos mix
Potion heal rates now come from one server table (
*PotionRateinGameServerInfo - Common.dat) that is also sent to the client, so potion tooltips show what the server really heals ("Restores X% HP, Y% SD"). Covers Apple, Life/Mana/SD/Compound potions and Elite potions. The hardcoded elite potion text is gone9 more jewels stack up to 255: Life, Creation, Guardian, Harmony, Extension, Elevation, Gemstone, Lower and Higher Refining Stone
Ancient set fix to match vanilla: Plate Helm and Plate Pants no longer roll the Kantata set (Rave only), Spirit Helm and Spirit Boots can now roll Karis
Eternal Wing Stick is no longer treated as a book by the "General Book" option range
Extended inventory now has up to 4 grids (was 2). Each expansion item unlocks the next grid, also when used from an extended slot. Items in the extended inventory now work properly: skill scrolls and orbs can be right-clicked to learn, Ctrl+Click Sell Post posts the right item (it posted whatever sat in the same main inventory slot), jewel un-mix no longer crashes, arrows reload, event tickets and quest items are counted, repair-all price includes them
Right-click in the extended inventory now uses every item the regular inventory can: stat fruits, Armor of Guardsman, free tickets, Devil's Invitation, Invisibility Cloak, Scroll of Blood, revive and portal charms, Santa invitation, inventory and vault expansion scrolls, inventory-equip rings. Secret potions now refuse when the buff is already on, like in the regular inventory
Chaos Castle with the Armor of Guardsman in the extended inventory works (the client crashed). Castle Siege: a single Sign of Lord can be registered from the extended inventory, and "Register All" works when all signs are there
HUD arrow / bolt count includes the extended inventory. Ctrl+Q/W/E/R binds potions over the extended inventory too. The extended inventory is locked during a chaos mix and the Lucky Coin window, like the regular one
PK drop on death picks from the whole bag including unlocked extended grids. It used to pick from the regular inventory plus the first 12 cells of the first extended grid, even when that grid was still locked
Fixed a server loop that could read past the inventory when an event (GvG, TvT, Party vs Party) takes required items with
ReqItemLevel=-1. Level -1 now means any levelArrows, bolts and other stacks are never sent for repair (the server always refused them)
In repair mode, left-clicking a stack splits one item off it
Repair prices now come from the server, so the price shown is the price charged. This covers the repair tooltip, the NPC "Repair All" total, MuHelper auto-repair and the pet trainer. Before, items with luck showed about 18% less than the self-repair actually took
Chaos recipe counts fixed: a stack only counts for an ingredient row it fully fits (Chaos read "9/10" while the mix itself matched)
Walking away from the Chaos Goblin closes the chaos window and recipe book like other NPC windows. Walking no longer closes the quest log
Equipment tooltips show "Item Level: N" (the Level column from Item.xml)
Buff tooltips hide lines whose values are all 0
Sell Post items show their proper names (Crest of Monarch, Box of Kundun +N and so on)
Illusion Temple tickets on the ground show their +level
Cash shop: Enter accepts and Esc cancels every popup (buy, option select, gift, use, delete, item info, notices). Before, only the last buy confirmation took them
Jewels Bank auto-deposit no longer writes a console line for every pickup
Jewels (Bless/Soul/Life/Harmony/refining/custom) sitting in the extended inventory can now be used on items in the regular inventory. The drop was silently ignored before - only the reverse direction and same-grid upgrades worked
JewelsBank no longer loses 1x2 items on withdraw. The space check counted 1x1 cells, so extra stacks dropped to the floor
Items with +Option above +16 no longer lower the chaos mix success rate (options 5-15 added nothing to item value). NPC prices unchanged
A stack of N items now counts as N in chaos mix value
The chaos window no longer stays stuck after some mix result codes
Cash shop items with
Duration="0"now show "Permanent" instead of "-"Cash shop options show the item's +level, so two options of one item no longer look the same at different prices
Default
CashShop.xmlfixes:The 400 WC Talisman of Luck option is now 4 talismans. Before, it sold one Talisman +4, which works the same as +0. Talisman of Luck now stacks up to 10 (
ItemStack.xml), the most a chaos mix countsSummoner and RageFighter character cards now give their own cards. The Summoner card unlocked RageFighter, and the RageFighter card gave a Scroll of Strength that ran out at once
The bundle packages (Package Box A/B/E/F, the Paid Channel bundles) can be bought. Their Buy button did nothing
Removed broken entries: a free "Package Box D", an empty WCoin(P) "Package Box A", "Item 13-97" and the "Dark Lord Character Card" (both gave items nothing uses)
The "Paid Channel Access Ticket" bundles are now one "Paid Channel Bundle" per currency, named for what is inside. WCoin listed it twice, and the two WCoin(P) copies had different seals
Removed 203 products that no package listed and nobody could buy
Reset Fruits stack (up to 50,
ItemStack.xml). Each fruit resets 10 points and one is used per click. The cash shop "x20" now gives 20 fruits instead of one fruit that reset 200 points at once. Fruits players already have keep the same total: a fruit that reset 100 points becomes a stack of 10Item Tiers also scale ItemImplicit bonuses (
ImplicitMul)Item implicits for other classes show in grey with the class list, e.g. "Wizardry Damage +58% (Dark Wizard, Magic Gladiator)"
Socket "Skill attack increase" now shows in the skill tooltip. It always worked on the server
Buff skill tooltips show the server's real values (master tree, server config) instead of hardcoded vanilla formulas. Greater Defense showed half the real amount
Skill tooltips show "Combo (Step 1)" / "Combo (Step 2 or 3)" for every class when
EnableComboToAllSwitch=1Sell Post items show their inscriptions in the chat link and the post list
Fixed temporary items tooltip not showing at certain scenarios
Item tooltips show "Cannot be dropped" on every item the server refuses to drop: weapons and armor +5 and higher, excellent, ancient and harmony items. Before, only items listed in
ItemMove.xmlhad the line, and +5/+6 items could be dragged out of the inventory with no message while the server quietly refused the dropFix durability showing 0 in the lucky spin for all items
Lucky Spin now checks inventory space before the roll, against the biggest prize on the wheel, instead of after the roll against whatever landed. A rejected spin costs nothing, so the old order let inventory shape act as a free prize filter: leave a single 1x1 gap and every prize larger than 1x1 was silently thrown away and re-rolled until a 1x1 one landed
Lucky Spin rewards held back for a full inventory could be lost when more than one was owed at the same time. Item creation is a round trip through the DataServer, so the inventory does not update in the same step it is requested — delivering several rewards in one go space-checked all of them against the inventory as it looked before any of them arrived. With room for one, the rest passed the check, had their saved rows deleted, then failed to fit and fell to the floor at the player's feet, where a full inventory could not pick them back up. Rewards are now handed out one at a time, and a reward's saved row is only cleared once that reward has actually been sent
Lucky Spin has its own tick, win and lose sounds
A misconfigured ItemBag (
/make,/drop, or a monster's event drop bag pointing at a Cat/ItemIndex pair with no matching Item.xml entry) no longer spams the drop sound and re-spawns the broken item every time it triggers.CItemBag/CItemBagExnow validate every configured drop entry against the loaded item table at load time; anything not actually configured is dropped from the bag permanently instead of being rolled and attempted forever./make,/makesetand/dropreject an unconfigured item code up front instead of sending it to the DataServer at all. Rejections are written once to a newItemBag\log next to the GameServer (toggle:WriteItemBagLoginGameServerInfo - Common.dat, on by default) naming the bag file, event name, and the bad Cat/ItemIndex, so a broken bag is easy to find and fix instead of just being loudFixed a Jewels Bank bug when leaving the game. The bank closes when you return to character select or change server
Fixed stack bugs with a full inventory. An NPC purchase that does not fully fit is refused, and picking up a stack takes what fits and leaves the rest on the ground
Recipe book: new "Quick Combination" row at the bottom of the list, selected when you talk to the Chaos Goblin. It has no recipe: Combine opens the chaos machine and the machine finds the mix from what you put in. Texts 11390-11391 in
GameStrings.xml
Market & trade
Shop titles show again after the seller dies and respawns
Personal store price table
PShopItemValueis gone (replaced by the Market)Duel-stake payout: items drop at the winner's feet when the inventory is full, instead of being lost
Fixed a zen bug in trades. If a player no longer has the zen they offered when both press OK, the trade is canceled
Fixed several item bugs around trading. While a trade or mix window is open, the Jewels Bank, Lucky Spin, resets, dungeon entry, quest turn-in and Lucky Coin wait until it is closed, and full stacks don't turn into their bundle until then
Fixed a Lucky Coin registration bug
Fixed zen and item bugs in bet duels (
DuelBet). Both stakes are held from the moment the duel starts; the winner gets both, a draw or an aborted duel gives each player their own stake back. During a bet duel only HP, MP and SD potions can be usedItemValue.xml: buy and sell are now set apart.Value+WCoinC/WCoinP/GoblinPointset the buy price;SellPrice+ the newSellCurrency(Zenby default) set what NPCs pay. Items bought with coins now sell for Zen unlessSellCurrencysays otherwise. The shipped Apple, Horn of Fenrir and Flameberge entries sell for ZenFixed several guild and party bugs: alliance, rival and guild war answers, and party restore after a GameServer restart (still works within
PartyReconnectTimeof the server start)Stunned or sleeping characters can't attack or cast until it wears off
/classeresets stats to the new class's base and returns all other points as free points (fixes a stat point bug); talent points are refunded tooFixed GM command checks:
/talent points,/affix*and/stressbotneed GameMaster level 2, the custom quest$q*test commands need level 1.StressBotPlugin.xmlships disabledFixed a bug in reset item costs. The exact items the reset asks for are taken, and only from the bag: worn items no longer count
Castle Siege weapons work as intended again: only your own side's weapon, one shot each time you open it, and the shot now deals damage where it lands
Quest World item quests (e.g. bring 5 Apples) now take the items when you finish
/infoshows VIP level only to GMsFixed a Rage Fighter skill bug with Beast Uppercut, Chain Drive and Dark Side. Normal hit counts are unchanged
Fixed a skill timing bug when switching between skills. All skills now share one cast pace on the server, like on the client; Twisting Slash, Fire Slash, Power Slash, Rageful Blow, Strike of Destruction and Plasma Storm follow the same pace on the client too. GameServer and client must be updated together
Skill data (
Data\Skill\Skill.txt): the skill type columns now match the original client again. Berserker, Recovery and the Rage Fighter buffs are buffs again, so in Illusion Temple they can be cast on party members. Column 30 is renamedSkillFamily(it was calledIsDamagebut was never a damage flag)Fixed a damage bug in skills that hit several times per cast (Evil Spirit, Twister, Flame, Penetration, Triple Shot, Fire Slash, Fire Scream and others). Normal hit counts are unchanged
Fixed warp bugs. Stunned or frozen players can't use the move window,
/move, custom move commands or dungeon entry until it wears off. Custom move commands and dungeon entry don't work inside event maps (leave with the move window). The move window needs the Market store closed, and PK murderers can't enter dungeonsFixed several cash shop bugs. Coin balances update right after a purchase or gift, and other coin purchases see the new balance at once
Fixed another cash shop bug. Packages are always sold for the price shown in the shop
MuHelper
MuHelper can now use Elite Healing Potions and SD potions. The potion page has two new rows, "Elite Potion" and "SD Potion", each with its own threshold bar (0 = off). Elite Healing Potion has its own HP threshold, so it can be set lower than normal potions as an emergency drink. SD uses Small, Medium, then Large SD Potion when the shield drops below its threshold. One potion per tick, in the order Elite, normal, SD, because the server rejects two potions used back to back. Works the same in the offline helper. Existing helper settings load with both new options off
Elf "Recover" (restores SD) for yourself and party members, each with its own SD threshold (0 = off). The helper heals HP first and only casts Recover on a tick with no heal. Members with no shield are skipped. Works offline too
The potion/support page uses compact rows: label, value ("HP 40%", "Off") and a bar
Hunt range is drawn on the ground as a glowing border while the helper runs. With "Return to original position" it stays around the start spot, otherwise it follows you. "Show range indicator" checkbox, saved per PC
New "Event Items" checkbox on the pickup page. The server's extra pickup list (
MuHelperPickup.xml) was always on and invisible; now each player can turn it off. On by default. Hovering "Jewel/Gem" or "Event Items" shows the items in that listSummoner curses: a "Curses" button under Combo opens three curse slots (Sleep, Weakness, Innovation, Blind - whichever she has learned). The helper casts them on its target before attacking and again when they wear off. A curse that does not stick (resisted, immune boss) is retried after 4s, at most twice per target, so it never holds up the attack. Works the same offline. Client and GameServer must be updated together; existing helper settings load with no curses
Combo and Activation Skill 2 now work for every class (Dark Lord had no 3rd slot). Combo needs only Basic + Activation 1; Activation 2 is an optional 3rd step, and empty steps are skipped
Dark Lord "Use Dark Spirit" checkbox removed. The Auto / Together / Cease radio decides alone (Cease = leave the raven alone), and it moved next to the buff icons
Hunting zone with "Return to original position": new targets are picked only inside the range, a target that steps out mid-fight is finished up to 3 tiles past the edge, other loot is picked up to 2 tiles past it, and your own drops are picked up wherever they land. A rare drop at the edge used to be left behind
Item pickup gives up on a far item only when it stops getting closer for 4s, instead of after a fixed 4s walk
Free space in the extended inventory now counts when deciding if an item fits
"Pick Excellent" no longer picks up some non-excellent items (it tested the whole option byte)
Long-range counter attack now works with "Return to original position". A monster hitting you from outside the range was dropped the same tick it was added. Players never get this exemption
PvP counter attack now hits the real attacker. The client guessed the attacker from the last character it saw swing or cast, which was wrong for spells, and buffs from other players could arm it. The server now sends the attacker in the damage packet. Buffs never arm it and party members are never countered
PvP counter attack no longer hides the attacker's mount and pet. After the helper countered a Dark Lord on a Dark Horse, your client showed him in the riding pose with no horse and no raven. The helper marked the attacker as a monster to target him, and mounts and pets are removed from anyone who is not a player. It now keeps him a player and only flags him as a counter target
Monsters that just walk into view no longer count as attackers (pulled the helper toward far spawns with long-range counter on)
MuHelper now attacks monsters that walk into hunting range right away. When a monster started walking, the helper measured its distance against where it was heading before the new path, so a monster walking in was only picked up on its next move - often a second or more later. Monsters that spawned inside the range were never affected, which is why only walking-in monsters felt slow
MuHelper no longer locks onto monsters it cannot reach. A target behind a wall, across a gap or on a ledge with no route was picked like any other, and the helper then walked at it forever: the move step kept failing, nothing dropped the target, and the next tick re-picked the same monster. The character stood still looking like it was attacking. Both the online helper and the offline/auto-attack bot now give a target up after the pathfinder has refused it for 1.5s straight, suppress it for 10s so the periodic rescan does not immediately hand it back, and move on to something they can actually hit. One failed lookup is not enough to drop a target, because the pathfinder also treats other characters as obstacles - a player standing in a doorway would otherwise cost you the monster behind them
The helper prefers monsters it has a clear line to, and no longer dances back and forth around objects: when a wall is in the way it walks next to the monster and stops on the first tile with a clear line. A chase that stops getting closer for 4s drops the monster
Party buff, heal and Recover no longer drag the helper out of its zone. A member is only supported if reachable from inside the zone; others are skipped instead of freezing the rotation
Buff rotation fixes: your own character is its own step, "Support Party" no longer turns off self buffs, members who left or warped no longer stall the rotation, and a buff that keeps failing for 5s is skipped
The helper no longer walks back to its spot while it still has a target; it finishes the fight first
The helper can cast custom skills from
CustomSkills.xml, attack skills and buffsHelper casts play the same animations as manual casts (Death Stab and its master versions, Fire Breath while flying, Falling Slash on Fenrir, Fire Scream, Rageful Blow master versions, mounted casts)
MuHelper can no longer cast while stunned or asleep. Manual play blocks attack input under Stun/Sleep (the mouse-click attack handler checks for it), but the helper's decision brain - shared by the online client helper and the offline server-side helper - never did, so getting stunned and then flipping helper on let it keep swinging through crowd control in both PvP and PvE. The brain now idles for the tick whenever the character is stunned/asleep (client) or under CheckStunEffect (server: Stun, Sleep, Earth Prison, Pentagram Stun), same as a manually-played character would
MuHelper no longer gets stuck on buffs that cannot be used while mounted
Auto-repair no longer spams repair on arrows and other stackables every 5s
Dying in a duel no longer pops up "MU Helper cannot ..." every round
"MuHelper stopped." only shows when a running helper stops, not at login
MuHelper pickup item list scrolling would bug out sometimes showing duplicate entries. It now opens at the top
Off helper now picks up jewels. "Pick up Jewels" was being tested against a hardcoded list that had actually been filled with potion IDs, so offline it matched nothing - Gemstone, Bless, Soul, Life, Creation, Harmony and both refining stones were all walked past, while the same character online picked them up fine. Offline now reads the same
MuHelperPickup.xmljewel list the client doesOff helper now has its own master experience rates per account level:
OffAttackMasterExperienceRate_AL0.._AL3inGameServerInfo - Common.dat(missing key = normalAddMasterExperienceRate). A missingOffAttackExperienceRate_ALnnow falls back to the normal experience rate instead of 0 (no experience at all)Off helper attack pacing matches the animation speed your client plays. Viewers see full swings, and it does not step mid-swing. Cyclone and Twisting Slash no longer cast on itself, Death Stab sends one hit instead of a double swing, Elf can start offline in buffs-only mode, and it never steps onto safe-zone tiles
Off helper is no longer switched off when an affix (Wormhole, Vortex, Gale) throws the character
Off helper: support setups (buff/heal only) can go offline, High Elf no longer needs Infinity Arrow to start, a buff it cannot cast or low AG no longer freezes it, and buffs follow the self/party options like online
Off helper no longer freezes walking back to its start spot (it counts as arrived within 1 tile, and logs
[OffBrain] cannot route backif it cannot get there)Off helper only sees items in its own dungeon instance
Every reason the offline helper stops is written to the console, and a character idle for 60s logs an
[OffIdle]line once a minuteThe MuHelperPickup.xml jewel list gained Guardian, Extension, Elevation, all bundles, Loch's Feather and Crest of Monarch
Helper no longer stands hitting a Warded monster for 0 forever. Expired guardians never released the parent's immunity
UI
Game resolution & Fonts size changes apply instantly without window restart. New "Font Size" selector (Auto, 8-15) in Graphics
New hotkeys: S = Market search (was Sell Post, still in the Window Menu U), A = Talent Tree, L = Dungeon browser. The C panel Master button (dead before) opens the Talent Tree
Talent Tree: every node has an icon. Nodes that had a "?" now use 62 new painted icons (ids 1000+ in
TalentTree.xml, files inData\Interface\UI\talent\). The window sizes itself to the tree. The old Master Level window is removed (the Talent Tree replaces it)Inventory: ring and pendant slots are their vanilla size again, with the item scaled to fit. Equipped items spin when hovered, like bag items. Broken equipped items get the vanilla red tint. Axiom skin: new equipment slot art
X cash shop: the axiom skin no longer leaves an empty gap above the storage list when there is no banner. Switching skin with the shop closed no longer crashes
Axiom skin: related windows are grouped into tabbed panels ("Quests", "Character Services"), and most windows can be dragged by the title bar with their position remembered. Classic windows stay at the V1 positions
Server owners can restyle the UI without a client rebuild: layouts, skins and shells are plain XML/PNG under
Data\Interface\UI\and reload live when changedUI text is drawn sharp at any resolution, and new windows are drawn in batches
Options window has a separate Music volume slider, in game and on the login screen
Graphics "World" switches that apply instantly: Atmosphere, Contact Shadows, Enhanced Colors, Glow, Loot Beams, Player Bars, Item Drop Levels. Each only works if the server has that feature on. Graphics and Options settings have hover tooltips
Party: one combined SD+HP plate over allies (always on, even with Player Bars off), and the party HUD has a gold SD bar between HP and MP
Over-head name, chat, shop title and HP plate no longer overlap. The shop title no longer covers the SD bar with wings or a mount
Ground gear names can show their drop level, e.g. "Kris [135]". Graphics > "Item Drop Levels" (on by default)
CatchUp is displayed as a buff now in the buff row, instead of taking place in the middle of the screen
Debuffs now always render on their own row to not be mixed with buffs
Reset panel: stats distribution with autoreset can now be toggled between raw values and % values (saved in
ResetSystemSettings.AutoResetMode). % is a share of the points that reset gives, and a live "Allocated X / N" line shows while you type. "Reset Now" also applies your stat allocation. GameServer, DataServer and client must be updated togetherThe stat add popup closes after Add / Enter
Player names no longer float 2-4 blank lines above the head
System messages start with "[SYSTEM]" and stay until newer ones push them out
Item tooltips draw above windows docked beside the inventory
Inventory icons no longer show the wrong size or position until hovered
Win-key shortcuts (Win+Shift+S, Win+D, ...) no longer trigger any game key
Pressing Enter on a confirmation window now presses OK instead of just closing the window. On single-button dialogs the Enter key was wired straight to "close", bypassing whatever the OK button was supposed to do. Worst case was Osbourne in Aida (Lower/Higher Refining Stone): the server had already opened the chaos box and locked the character's inventory, Enter made the dialog vanish without opening the mix window, and nothing was left to send the close notice - the character stayed locked until the game was restarted. Clicking OK with the mouse always worked. Affects every single-button dialog that performs an action
Fixed a bug where stuff became unclickable after leaving the party
Invasions: the top button now opens a list window (like Move) on click instead of a drop-down on hover. It shows every running invasion with its maps, monsters left per map and time left
Quest tracker: click a quest to open the quest log on that quest
Scrolling notice at the top moves at the same speed at any FPS (it raced at high FPS) and long notices scroll to the end (the tail was cut once the start left the screen)
Buff tooltips no longer have an empty line under the buff name
Axiom skin: buttons are darker metal (the light grey face read as washed out on dark windows)
Castle Siege battle map shows for everyone in Valley of Loren while the siege battle runs, and only then (TAB toggles it). Before, it showed all week, but only for players who joined the map server there or happened to see a guild member on arrival - most players who teleported in never got it
Over-head chat bubbles and the Gens rank mark no longer jitter when players move: overlapping bubbles were pushed in whole steps and the mark was snapped to whole units while the text moved smoothly
Chat text in any language shows correctly in the new UI windows (chat lines are UTF-8)
Chat box buttons: a lit button now means that kind of message is shown. The whisper button is lit while whispers are allowed. The system button hides or shows the system messages on the right side (before, it blanked the chat log)
Chat input: clicking the world or a button no longer stops typing, and Enter puts the cursor back into the chat when another window took the keyboard. The chat log no longer blocks clicks on the world (wheel, right-click on a name and the scroll / resize bars still work there). A chat line only lights up when the pointer is on its text
Chat emotes are back: typing words like "hustle", "lol", "clap" or "bye" in chat plays the matching animation again. The new chat window had stopped triggering them
Removed the item explanation and set explanation windows: nothing ever opened them, not even in vanilla
MU Helper text boxes (item names on the Obtaining tab, the seconds boxes) show what you type. The text was white on a white box
Character creation greys out classes the account has not unlocked yet, Rage Fighter included (it always looked available, and creating one silently failed). Using a Summoner or Rage Fighter card says the class is unlocked, or why the card cannot be used (already unlocked, or the level a character must reach first)
Item models in the new UI windows (Lucky Coin, Jewels Bank, Market, recipe book, quests, drop codex, achievements, Lucky Spin, Doppelganger and Imperial Guardian NPCs) no longer show through message boxes or windows opened on top of them
The password box in the guild delete, vault lock and vault unlock popups no longer sticks out of the popup
Chaos Card and Cherry Blossom mix windows: the bottom description lines no longer touch the left border (both skins)
Duel spectator: the enemy SD bar trail follows the enemy's SD (it used yours), and enemy bars shrink like yours instead of squashing
Character select: the info box above each character also shows the guild name, Master Level and Master Resets, plus Resets and Grand Resets next to the level. Each value only shows when the character has it (in a guild, or above 0). The box grows to fit. GameServer, DataServer and client must be updated together
Lucky Coin: the Delgado menu and the exchange window show how many coins you have registered. The exchange window updates after each exchange
Graphics
Loot beams: a light pillar over valuable drops (excellent, ancient, socket, jewels), each with its own colour.
<LootBeams>inClientConfig.xml, plus a "Loot Beams" switch in GraphicsBloom (Glow) is now on by default and retuned (threshold 0.72, intensity 0.45, 3 blur passes). Blue spells glow, snow doesn't. Per-map multiplier in
MapFog.xml. Graphics switchNew depth fog with per-map colour and density in
Data\Local\MapFog.xml(EnableFog,Fog_*inClientConfig.xml). Graphics switchNew ambient occlusion (SSAO) and contact shadows (
EnableSSAO,SSAO_*). Graphics switchNew "Enhanced Colors": sharpen, contrast, saturation, warmth, vignette, per map via
Grade*inMapFog.xml. Graphics switchDamage numbers are drawn after post-processing, so they no longer blur
Map fog is no longer ~3x too thick. These fog emitters have no self-limit - they keep emitting and their on-screen density is decided by the particle pool, which AXIOM had raised from 3000 to 9000, so the same fog code produced 3x the clouds and could black out the screen (Aida, Karutan). All 33 bulk fog emitters scaled to match, across Aida, Karutan, Chaos Castle, Doppelganger, New Town, Kanturu 1st/2nd/3rd and shared map objects. Also means skill effects stop losing their particle slots to fog in busy areas
Spinning fog/cloud particles no longer strobe. Particle rotation advanced once per game tick but was drawn raw, so fast-spinning clouds stepped at 25Hz while everything around them was smooth - it looked like those particular effects were running at low FPS
Monster and map effects no longer scale with FPS: particle bursts, footstep smoke, torches, weapon glows, sparks and aura pulses were spawning 3-4x too much at unlocked frame rates because they fired once per rendered frame instead of once per game tick. Also fixes fade/burst durations running too fast (e.g. corpse dissolves) and walk/idle sound chatter
Anti-aliasing and Glow are both on by default now. Anti-aliasing runs after the glow pass, so thin bright details (a weapon glint, a spell spark, a distant lamp) still glow instead of being smoothed below the glow threshold first
Character shadows now include wings, weapons, shields, Rage Fighter gloves and capes. Before, the shadow was a body-only stand-in, so a winged character cast the shadow of a bare body. Wings cast a see-through shadow (
Shadow_WingAlphainClientConfig.xml, default 0.35), weapons and capes cast solid onesShadows follow the ground on sloped or stepped terrain instead of being cut in half at tile edges (e.g. Devias snow). Glowing parts (flames, wing shine, monster auras) no longer cast black slabs
Terrain draws much faster. Every tile where two ground textures blend broke the terrain batch and was drawn on its own (7.9 ms down to 0.7 ms on an empty Arena)
Fights with Erohim's Fissure are much lighter. Each fissure particle searched every tick for a bone that does not exist
Star Fall's star now lands about 0.5s after the cast, when the server applies the damage, instead of well after the hit
Wings of Darkness lightning, firework sparkles and Maya's meteors and stones in Kanturu move smoothly instead of blinking or stepping at high FPS
+15 helmet eye tendrils no longer wobble when the character turns in place
The Chaos Goblin in Noria is easier to click (an invisible wall marker sat on top of it)
Skill effects (e.g. the Kanturu laser) no longer randomly render with big blocky pixels until restart. Shared textures kept whichever filter loaded first. Changing "Linear Filter" now applies to already-loaded textures
Bright cloud blobs near the screen edges in Karutan are gone
Devil's attack lasers no longer hang in the air as yellow X marks
Saint Crossbow is pink again
Celestial Bow +9 and higher no longer shimmers on the blades
Erohim and his Fissure no longer render white outside Land of Trials (invasions, custom events). His textures only loaded when you entered that map
Dreadfear no longer smokes forever after death. Its corpse was never actually fading: the dissolve wrote to a value that the character renderer restores every frame, so the body stayed fully visible and the smoke had no stop condition. The fade now runs properly and the smoke ends with it. Same fix applied to the Kanturu 3rd version of the boss
New water in Kalima. The sea is now a real water surface: moving ripples, island cliffs visible under the water, the sea gets darker and bluer with depth, foam where it meets the cliffs, a sun glint, and reflections of islands and characters. It keeps the original Kalima textures, so the map still looks like Kalima. Needs post-processing on for the under-water view and reflections; with it off the water still gets the ripples and glint
New water on normal maps. Water tiles get moving ripples, a sky tint, a sun glint, foam at the shore, and reflections of trees, hills, buildings and characters. Each map keeps its own water texture and is still lit by spells. The ground texture used for water is lava, sand, ice or mud on many maps, so only maps listed in
Data\Local\MapWater.xmlget it. On by default: Lorencia, Noria, Battle Castle, Valley of Loren, Elbeland, Loren Market and maps 85, 93, 94, 95. More maps are in the file switched off, to check and turn on. Every setting (ripples, glint, foam, reflection strength, brightness, sky colour) can be set per map. Atlans is unchangedKalima: item beams, custom skill effects, rain, the MU Helper range border, and glows over the open sea (wings, auras, buffs) are no longer hidden under the water
Two players wearing the same wings now both show the wing effects. With Wings of Darkness (and data-driven wing effects from
ItemEmitters.xml), only one wearer on screen had the lightning: each player's wings cleared the previous frame's lightning by item type, which erased it from every other wearer of the same wings. All mapsElf Recovery cast glow at the hands no longer flickers at high FPS
The glowing orb that Heal, Greater Defense and Greater Damage make on the target now pulses instead of flickering at high FPS
Symbol of Kundun glows slowly again instead of flickering at high FPS or with several on screen
Wing of Storm, Sword Dancer, Grand Soul Shield and Elemental Shield animate at their original speed at high FPS. Their glow and texture animations ran faster the higher the frame rate (Wing of Storm and Sword Dancer also sped up with each extra wearer on screen)
Schriker (Kalima) costs far less FPS: half the blade fire particles, and its body is no longer drawn a second time for glow
Kanturu 2 Canon Trap fires its energy ball again. A frame-rate check added to the attack code always failed there, so the ball was never created
Kanturu Laser Trap hits now show a lightning bolt from the trap to the player it hit, with a thunder sound. Before, it showed the Lost Tower fire trap's small fire puff and flame sound
Monster and trap attack effects now fly at the player who was attacked. The client aimed every monster attack at your own character, so a monster hitting someone else drew its beam or ball at you
Sound
Sound is now directional. Monsters, NPCs, skills, effects, map props and item drops pan left/right by where they are on screen, get quieter with distance (full volume within 3 tiles, silent past 15), and far sounds carry a short echo. UI sounds, ambience and your own character stay centred. The same sound can now play from up to 4 sources at once, each with its own side and volume - vanilla only ever had one voice per sound, always centred, always full volume (the blacksmith's hammer across town was as loud as one next to you). Music is unaffected
30 missing music tracks added. Kalima, Aida, Kanturu, Elbeland, Raklion, Crywolf, Balgass, Cursed Temple, Swamp, Duel Arena, PK Field, Imperial Fort, Doppelganger, Karutan, the login screen and others were silent
Music playlists: make a folder named after a track (e.g.
Data\Music\Devias\) and that zone plays a random .mp3 from it, never the same one twice in a rowThe music slider no longer changes the volume of every sound; effects have their own setting (effects volume resets to default once). Music goes silent while minimized and fades when the window loses focus. The new wzAudio.dll needs the VC++ 2015-2022 x86 runtime
Ambient loops are 10 dB quieter. Charon's energy orbs are no longer heard across all of Noria. Item and jewel drop sounds play again
Sounds that shared a slot and played each other's audio depending on map order are fixed: Hanzo's anvil heard in Noria (Lala's harp), Kundun and the Castle Siege door / bow mercenary, Shadow's second attack, Fenrir's second pain sound, Raklion Hell Spider death (file name did not exist), Ax Warrior death (played a woman's voice), Queen Bee death (played the Ax Warrior's), Land of Trials extra bull grunts
Crywolf music plays. The tracks were .ogg, which the music player cannot play; they are .mp3 now
Music no longer goes silent because another MU client left the music setting off in the registry
Monster death sounds no longer replay 3-4 times per kill. The sound was retriggered for the whole corpse lifetime, so any death sound shorter than the corpse restarted every time it finished. Affects Persona, Twin Tale and Dreadfear (Kanturu), and the Fire/Poison Golems (Land of Trials). Other monsters already played theirs once
Riding the Dark Horse (or a custom mount that rides like it) no longer plays human footsteps on top of the hoof steps
Security
Chaos mix: a client can no longer send a different MixID to run a mix at another recipe's success rate (a mismatch is now refused, not just logged). The box is emptied when the item is sent for creation, so closing the window mid-mix cannot dupe. Mixes must be opened at the right NPC, packet sizes are checked, rate requests are throttled, and refused mixes no longer count for achievements or quests
Market: periodic, lucky, pentagram-socket and trade-blocked items cannot be listed,
/lockblocks Market actions, actions are limited to one per 150ms, and the DataServer keeps each account's messages in orderThe action packet no longer echoes 2 stale bytes as the attack target
Chaos Castle "stuck at x,y" packets are checked (within 15 tiles and walkable). Before, a client could teleport anywhere in Chaos Castle. Logged as
CC_POSITION_INVALIDUsing a map gate you are not standing in is logged as
GATE_MISMATCH. Portals are blocked during a dungeon runAn item serial found in both the inventory and the Market store is treated as a dupe: logged and the player is disconnected
Path copy into the 15-step buffer is capped, so a long path can no longer write past it
Packet sizes are checked more strictly, and leftover data from other packets can no longer be read
One connection can no longer flood the server. Repeated Event Timer, Market open/close, Gens join/leave and
/inforequests are throttledLogin: too many wrong passwords block the account or address for a few minutes, and a wrong account name gets the same answer as a wrong password
/unlockis blocked for 10 minutes after 5 wrong codes, and lock codes are no longer written to the logsFixed item and coin bugs in the Jewels Bank, the vault, the cash shop, the Market and Lucky Coin. The DataServer now keeps every account's and character's data in order, so a fast relog can't load old data
Fixed bugs in talent points and resets, quest turn-in during a trade, Quest World quests, Castle Siege weapons, guild join and guild create, alliances, Snowman and Julia moves, Doppelganger / Imperial Guardian party entry, and event items taken out of Blood Castle / Illusion Temple
Config & admin
New action-reject log in the
ActionReject\folder next to the GameServer, all off by default:WritePacketRejectLog(unknown opcodes, wrong sizes),WriteMovementRejectLog(teleport range, forged path, blocked tile, stuck warp,MOVE_THROTTLE,MOVE_STUNNED, gate mismatch, CC position),WriteSkillRejectLog(incl.SKILL_RANGE),WriteItemRejectLoginGameServerInfo - Common.dat. The last two are not in the shipped file. Capped at 5 lines/s per category per playerNew Market log in the
Market\folder (WriteMarketLog, default 1): every deposit, withdraw, price change, open/close, buy, collect, refusal with reason, coin escrow step and refundFactoryReset.sqlalso clearsPvPKillLogandHelperLootCustom Quests have a
Repeat="Weekly"mode that resets for everyone at the same moment:WeeklyResetDay(0 = Sunday .. 6 = Saturday, default Monday) atDailyResetHourinPlugins\Quests\Settings.xml.CooldownwithCooldownHours="168"stays a rolling 7 days from each player's own turn-inThe server list shows "(Non-PVP)" on the right server again. The ConnectServer packed each server's Non-PvP flag by its position in the group while the client reads it by server code, so groups with gaps in their codes showed the label on the wrong server
Scrolling notices:
Util/Notice.xmlacceptsType="2", a band that scrolls across the top of every player's screen (it existed on the client but nothing on the server could send it). Options:TextColor,Speed(10 slow, 25 default, 60 fast),Count(times it scrolls per broadcast, 1-30) andDelay(seconds between those). New GM command/slide <text>(Command.xml Index 87) sends one right away to every GameServer of the group. Players can hide it with the slide-help option in Options. Ship the newCommand.xml
V1.0.71
A repair, durability and pricing hotfix. Repair bans stop being hardcoded item ids and become data in Item.xml, item values no longer overflow into negative or nonsense prices, and two long-standing monster bugs (poison damage percent, resistance clamping) are fixed.
Client
Bug Fixes
Items sitting on vanilla non-repairable indexes (Pandora's Pick, mini wings, transform rings) silently refused to repair. The repair ban now follows
Repair="0/1"in Item.xml instead of hardcoded item ids.Item durability could display past the 255 cap (255/270) when the item carried an excellent or ancient option.
Ancient wings showed 247/255 forever and never repaired - the client granted wings the +20 ancient durability bonus that the server never gives to the wing slot.
Repair cost showed -9223372036854775808 on high level items: the item value overflowed 32 bits and the negative value went through a square root.
Item prices overflowed to negative values on high DropLevel items such as wings and custom items.
The extended inventory showed a client-estimated item price instead of the server price.
Item price changed depending on where the item sat (equipped, inventory, extended inventory) and was only correct after reopening the shop.
The sell price estimate was three times too high - buy and sell were swapped.
Custom pets and mounts now tell you they cannot be repaired instead of the click doing nothing.
GameServer
Bug Fixes
Non-repairable items are now data driven through
Repair="0/1"in Item.xml instead of hardcoded item ids, matching the client.Item prices overflowed to negative values on high DropLevel items such as wings and custom items.
Effect.xml Value1-4 are now 32-bit. Values above 65535 used to silently wrap, turning a poison-per-tick cap of 2000000 into 33920.
Monster AI poison casts used the monster's object index as the damage percent instead of 3%, so monsters in high object slots poisoned for hundreds of percent of current HP per tick.
Monster resistances 2-7 were clamped against the first resistance value instead of their own.
V1.0.7
The rendering release. Every remaining effect that still ran at the 25Hz logic rate now renders at your real frame rate, item and character effects moved onto shaders, and the systems that were still hardcoded (skill requirements, set options, downgrade rules) became configuration. Adds new systems on both sides: Lucky Spin, custom pets and mounts, the Bridge event exporter, item implicits, item emitters and tooltip expansion.
Client
Rendering and performance
All remaining skill and buff effects now render at your real frame rate instead of the 25Hz logic rate: Twisting Slash and Cyclone sword glow, attack and defense-down debuff glow, Summoner curse cast flash, Death Stab ghost sparks, Lightning and Electric Spike sparks, Elf heal and AG sparkles, energy flares, Evil Spirit, screen shakes, Swell Life, Thorns, Berserk and the combo nova - no more strobing.
Excellent, ancient, +level glow, oil and chrome item effects are now rendered through shaders, and character and item effect rendering went through a heavy GPU optimization pass.
Kalima was heavily optimized.
Character turning is no longer choppy, and various animation jitter was fixed.
Restored the missing +15 set effect on the character.
Dropped items now spin and settle smoothly.
All blinking UI elements (chat input caret, announcements) now pulse at full frame rate.
Client launch speed improved further.
Features
Lucky Spin: configurable prize wheels with charges, weekday recharge schedules, entry gates and per-slot rates.
Custom pets and rideable mounts with their own models, animation sets, movement speed and item options.
FPS and ping counters on the HUD.
Map names are now shown in the top-left panel, read from MapManager.xml.
Buff and potion tooltips now show their actual values.
Quest UI improvements, including hiding completed quests per quest configuration.
ItemSellPost UI reworked with an online indicator and a whisper button.
Item tooltip expansion: new tooltips, borders and labels driven by ItemOption.xml filter patterns.
Items in equipment slots are auto-scaled and centred the same way as items in the cash shop.
Discord Rich Presence.
Account creation and "remember account" are now available directly from the login box.
The reset window was updated - stat inputs can be moved through with Tab.
CustomItemVisual pages gained more operations for item render meshes, including per-page spin and oscillation.
Screenshot path is now configurable through ConfigEncoder.
Event display can be ordered by how soon each event starts instead of a static list, and the fix for events not showing up at all.
Added a "Register All" button for Lucky Coins and Mark of Lord.
Entering a stat amount above the cap now autocorrects to exactly the number of points needed to reach the cap, so you can type any large number to fill a stat.
Bug Fixes
The combine window listed each required item by the name of one specific piece, even when the recipe accepted a whole range. Tiered crafts read as if only that one piece was valid.
Right-clicking anywhere on the UI no longer casts a skill or starts a walk, and closing a window no longer moves your character.
Casting past a skill's maximum range now clamps the distance instead of failing, and out-of-range casts no longer play their effects when no damage can land.
Percentage-based bonuses now update the character panel instead of being silently dropped from the stat packet.
Fixed jewels not being applicable to wing slots - every such check now uses the item slot rather than hardcoded item ranges.
Fixed Wings of Fate and some Muun pets (for example Blue Fairy) not rendering when viewed from behind.
Custom pets and mounts now appear for other players immediately instead of after a zone change or reconnect.
Fixed flying mount and custom wing checks across all zones and boss fights.
Fixed Rage Fighter head direction when casting buffs and Dark Side, and restored Impale animations.
Fixed a crash when both characters had 0 defense and 0 shield, caused by the health bar.
Fixed a UI bug where ground items matching items in an open quest window rendered incorrectly or moved into the UI when picked up.
Fixed buff effects not being cleaned up while in a party.
Fixed Dark Lord scroll body light being too dark in the inventory.
Crywolf scorpions no longer render their shadow above themselves.
Fixed the +13 set effect jittering.
Fixed wings disappearing after a trade.
Fixed a client crash when hovering certain items while certain items were equipped.
Personal store names now stay on one line.
Screenshot shortcuts no longer open the sell post window.
Right-clicking the chat interface without an active chat input no longer autofills the whisper name.
Stackable items picked up from the ground now show the amount in the system message.
The jewel bank no longer jumps back to page 1 after a deposit or withdrawal.
The character delete prompt no longer asks for a password it always accepted empty.
Event entry rejection messages now state the real reason.
MuHelper
MuHelper and offline mode now respect the same restrictions as manual play: weapon type and ammo rules, and level, energy and charisma requirements per cast.
Fixed party healing with an Elf.
No longer gets stuck trying to pick up zen at the zen cap.
Repair fixes: no repair sound at full durability, and ancient, socket and excellent items now repair correctly.
/evonow resets only the helper's skills instead of the whole helper.
GameServer
Features
Bridge event exporter (paid add-on): exports gameplay events to the new BridgeServer for website, bot and Discord integration.
Skill learning is now validated against every stat, skill requirements are re-checked on each cast, and
KeepSkillBelowLearnReqin Common.dat lets learned skills stay castable when a reset drops the character below those requirements.Skill.txt is now heavily data-driven, including two new columns:
ReqWeapon(a bitmask of the item groups the skill needs, with an either-hand bit for bows and crossbows) andReqAmmo. These are what MuHelper and the offline helper now honor.Downgrade configuration: disable classes, NPCs and systems to emulate an earlier season, synced to the client.
Set item options now share the same option pool as regular item options in ItemOption.xml, and the pool was extended with 380 options.
ItemImplicit: wizardry damage, curse damage, scepter pet damage and book success rate are now configured per class and per item range in ItemImplicit.xml. The
MagicDamageRatecolumn was removed from Item.xml - it defined all four at once and only worked on four hardcoded item ranges. Delete it from your Item.xml and move those values into ItemImplicit.xml.ItemEmitters: bone-anchored particle emitters attached to any item, configured in ItemEmitters.xml.
CustomMonsterVisual now exposes animation remapping, per-action animation speed and a configurable metal/chrome glow overlay.
Mounts and custom mounts now have a configurable flinch chance (
*DamageStuckRatein Character.dat,StuckRatein CustomPets.xml).0keeps the classic never-flinch behavior.Maximum +additional option level raised to +15, and items can now carry up to 30 options.
Skills can be strictly disallowed while mounted, configured in SkillTweaks.xml.
NoExpandNoDropare nowMonster.xmlattributes instead of hardcoded monster-class lists in the GameServer.Jewelry (rings and pendants) can be configured to allow level-up: Jewel of Bless and Soul work on them, and they drop with levels according to ItemOptionRate.xml. The maximum jewelry item level is configurable and every item source caps at it.
Attack speed overcap: equipment options and buffs can now exceed the regular attack speed cap by a configurable amount.
SpecialClassMoveLevelDiscountturns off the separate, lower/movelevel requirements for Dark Lord, Rage Fighter and Magic Gladiator.Quests can be configured to hide once completed.
The Trainer NPC now shows items left in his chaos mix inventory, not just the Chaos Goblin.
GameStrings.xml: a new server-side text table, sent to the client at login. Any configuration that puts text on screen can now use an id from this file instead of requiring an edited and re-downloaded client. Ids from 10000 upwards come from GameStrings.xml, anything below still reads the client's own text.
Chaos mix sources can carry a display name. A recipe that accepts a whole range of items - a full armor tier, every class variant of a piece - can now show one label such as "Manticore Armor Part" instead of naming whichever single item happened to be first in the range.
Bug Fixes
Fixed a critical bug where selling an item from a full extended inventory deleted it.
Blood Castle gates are now force-opened when they should be - a rare state left a gate marked "Destroyed" but still impassable.
Fixed Rage Fighter custom claws dealing no damage with skills.
Fixed duplicate Bag Index ids being silently ignored instead of loaded.
Fixed a negative overflow in the cash shop currency handling.
Chaos mixes now check extended inventory space before mixing, and right-click works for moving results back to the inventory.
Lucky item creation now supports right-click to deposit and withdraw cards, and results can go straight to the extended inventory.
Fixed the catch-up system using max level-up as the reset weight setting.
Login level check now accounts for resets, so resets no longer teleport you to town below level 6.
Sell post whisper now has anti-spam protection.
Fixed Summoner attack speed occasionally needing a spell change and recast to reapply.
DataServer
Performance
Saves are now parallelized, the write-ahead log was fixed, and only changed data is written instead of a full table scan. This should eliminate almost all slow-save warnings.
JoinServer
Features
Proper password hashing:
PasswordHashMode = 2stores accounts as PBKDF2-HMAC-SHA256 with a per-account salt and a configurable work factor, replacing plain text and WebZen's non-standard MD5. Existing databases keep working -LegacyPasswordModedecides how not-yet-migrated accounts are read, and each account is re-hashed on its next successful login. Any website or CMS can now produce the same hash with a standard library instead of shipping a compiled WebZen MD5 binary.
Tools
V1.0.6
The biggest quality-of-life and stability patch since launch. Two large themes: everything loads and syncs faster, and several long-standing custom systems (quests, sockets, item option names, catch-up) are now fully data-driven.
Client
Performance
All monsters are now preloaded when the client launches, removing the disk I/O stutter that happened the first time you walked into a new monster on a map.
Massively improved server-to-client syncing, reducing stutters during movement and viewport updates.
Massively improved client launch time - startup is faster and more consistent.
Monsters and objects now fade in and out instead of popping into and out of existence.
Raised the number of items rendered on the ground from 75 to 250.
Improved scrolling smoothness across various UI panels.
Features
Custom Quests system - server-defined quests with configurable objectives and rewards, opened with the O hotkey.
Catch-up rate mechanic - characters behind the top-ranked server progress receive scaled EXP, drop, and Zen bonuses, shown on an always-on HUD.
Extended inventory is now shown in shops and the chaos machine, and jewels and items stored there can be used directly inside those interfaces.
Party and pet health bars can now be toggled on and off, and the Hunting Log UI was reworked.
Trade and party invites are now valid for 30 seconds instead of 5.
Added a scrollbar to the MuHelper added-items list and fixed the selected-row background.
Bug Fixes
Fixed a bug where withdrawing from the jewel bank with no free inventory space could delete the items.
Event eligibility popups now state the exact reason you cannot enter (not enough resets, grand resets, master resets, or level out of range) instead of a vague message.
Fixed custom wings not rendering when culled at a distance, and removed item-level glow from small and custom wings.
Fixed CustomItemVisual static effects and effects being "stolen" by other effects (spawned without an owner).
Fixed Twisting Slash showing a stuck sword when casting and applied proper interpolation so the spinning sword no longer jitters while moving.
Fixed part of the Dark Raven rendering on a Dark Lord's back alongside the main-hand weapon.
Fixed tooltips rendering behind other UI (for example the event timer window tooltips drawing behind the bottom panel), and fixed skill tooltip placement.
Fixed the loading screen not scaling with window size when logging in a character.
Fixed party members buffing you being treated as attacking, which triggered the PvP counter.
Fixed minor crash paths in MuHelper skill icon rendering.
Fixed Marlon spawning - he now moves between his configured MonsterSetBase positions every 3-7 minutes, with corrected spawn points.
Stackable boxes now have a 0.5s cooldown before dropping to the ground to prevent spam drops.
GameServer
Features
Any item can now be flagged as a socket item, with client support and game data sync so the client recognizes exactly the configured items.
ItemDrop.xml can now spawn a stack from a single drop (for example 2-5 Jewels) instead of a single item.
Added the ItemOptionNames.xml override system for customizing item tooltip option names.
Implemented custom DLL loading (the plugin hooking that was previously missing).
Fixed the SetItemType.xml config headers.
Bug Fixes
Fixed custom chaos mixing and rewards.
Improved anti speed-hack detection with fewer false positives.
Config load failures are now logged in red, and the AutoReset debug log was removed.
DataServer
V1.0.5
Focus on offline play, self-serve performance controls, and rounding out the shop and item-visual systems.
Client
Features
Full offline helper - a replica of MuHelper that runs in offline mode (some visual glitches for other players will be ironed out over time).
Right-click to sell an item while an NPC shop is open. Hold ALT to force-sell without the confirmation popup, and press Enter to confirm the popup on expensive items.
Added an FPS limiter in System Settings > Graphics > Render so players can cap their own frame rate.
Reworked the experience bar to show absolute progress through the current level instead of a stacking value.
Effects can now be canceled by right-clicking, driven by an attribute in Effect.xml.
CashShop editing is now built into AxiomEditor, along with WC / WCC / GP editing.
Improved the level-up points popup with clearer messages, autofocus, and better hint text.
Bug Fixes
Fixed keyboard input being queued and cascading to other applications, which caused lag when keys were pressed.
Fixed CustomItemVisuals - the arrow-effect override, Rage Fighter weapons being recognized as gloves with proper left/right variants, and support for capes with no animation (they now use the default cape cloth simulation with a custom texture).
Fixed characters not leveling up when a monster gave more experience than needed to level, so experience now carries over correctly.
Fixed the Hunting Log experience value capping at roughly 4 billion.
Jewel of Life options are now picked at random when multiple are defined.
Automatic reconnection now works when the game is minimized to the tray, and the render engine stops when the window is minimized to the taskbar to save resources.
GameServer
Changelog - May
What a month... 2 server launches, 3 patch release (fourth started but not finished)
This month 1.0.4 was launched, biggest and the most "enabling" patch - Some people took it for a spin launching the server.
Client
Performance
Improved inventory rendering performance by caching item poses and optimizing sprite lookup, resulting in higher FPS when viewing items.
Features
Right-click inventory items to quickly sell them when the NPC shop is open; hold ALT to bypass the high-value confirmation popup. The confirmation dialog now also supports Enter (confirm) and ESC (cancel) keyboard shortcuts.
Added Max FPS setting in Graphics > Render tab (0/30/60/90/120 FPS), simplified experience bar to show percentage, and fixed click-through bug when closing the Graphics settings window.
Level-up points popup now autofocuses the amount input and shows clearer error messages; reset panel rewards display one per line for better readability.
Players can now right-click to cancel any buff marked as cancellable by the server (seals, scrolls, elixirs, Infinity Arrow, Swell of Magic Power, etc.), replacing the previous hardcoded system that only worked for two specific buffs.
Expanded custom item visuals system with cape texture overrides for Dark Lord/Rage Fighter capes, custom glove left/right model variants, BMD-as-texture cape mode for atlas-packed textures, and fixes for high-index item rendering and cape texture persistence when swapping wings.
VIP menu now supports dynamic tier configuration from server data (no longer limited to 3 hardcoded tiers), and invasion system capacity increased from 8 to 16 maps
Added a stat allocation popup window allowing players to add multiple points at once and configure automatic stat point distribution when leveling up
AutoReset feature is now available in the Reset Panel, allowing players to enable automatic character resets and configure stat point distribution (STR/AGI/VIT/ENE/CMD) to apply after each reset
Added tooltip in the jewel bank showing Shift+Click applies x10 or the maximum available for faster transfers.
Event entry brackets for Devil Square, Blood Castle, Chaos Castle, and Illusion Temple can now be configured server-side with support for level, reset, grand reset, and master reset requirements.
Added support for server-defined custom jewel items that can be dragged onto equipment via the inventory interface.
Experience values now display with comma separators for better readability (e.g., 1,000,000 instead of 1000000).
Bug Fixes
Fixed automatic reconnection not progressing when the game window is minimized to the taskbar.
Fixed client lag that could affect input responsiveness for the client and other applications by moving keyboard hook processing to a dedicated thread
Fixed chat-triggered emote animations that would fire inappropriately on normal conversation, and added server-authoritative success rate display for lucky item mixes with improved chaos mix filtering.
Fixed name clipping bug where the first character of a player's name was missing during trade requests.
Fixed MuHelper self-defense to correctly track PvP attackers without attacking nearby party members, and improved party HP bar visibility by pushing overlapping chat bubbles out of the way
Fixed connection and reconnection issues by properly managing wire crypto state, reducing connection establishment latency and preventing handle leaks.
MU Helper now displays clear error messages for disabled features, level restrictions, and mode conflicts, plus adds offline mode confirmation dialog.
Fixed MuHelper anti-lure protection to prevent being tricked into leaving your hunting zone and fixed repeated attempts to pick up unlootable items.
GameServer
Performance
Major performance optimizations including spatial indexing for viewport queries, per-connection send locking to reduce contention, dedicated network receive worker thread, and removal of VM emulation overhead from hot paths.
Bug Fixes
Fixed a visual bug where the experience bar would incorrectly show over 100% after leveling up until the next monster kill resynced it
Fixed item option generation for wings and custom items, corrected invasion monster drops (e.g. Kundun), and expanded custom item visual customization with cape textures and render templates.
Invasion events can now be configured with a 'Never' boss end policy, and boss names now appear in kill announcement messages.
Fixed AutoReset stat allocation interfering with the StatPopup window — stats are now applied correctly without resetting the player's active stat point distribution.
Reset functionality has been consolidated under the Reset Panel—players must now use the Reset UI instead of /reset, /gr, /mr commands or NPC menus, fixing issues caused by the previous dual-path reset system.
Fixed monster AI for Class 459 monsters which were not attacking players
Fixed +380 item upgrade eligibility check and chaos mix refunds for misconfigured options; pet mix rate display now works correctly in Trainer interface.
Fixed MuHelper auto-reset to properly respect TeleportToBaseMap settings and MuHelper run state.
Fixed player names being clipped in the item sell post system when names were exactly 9 characters long
Fixed a critical bug where items in the Chaos Box could be lost when closing the Chaos Goblin interface
Fixed race condition that could allow the same account to occupy multiple game server slots simultaneously, preventing invalid account errors and connection issues during rapid re-login scenarios.
Fixed an issue where monsters with zero item drop rate could still trigger item drop logic
Fixed a bug where players could get stuck in a reconnect loop during Crywolf events when the map overlay swaps, now automatically relocating players standing on wall tiles to prevent force-warps.
Features
Added configurable per-map PK limiting that restricts how many kills a single IP can commit within a time window, preventing excessive griefing while allowing legitimate account reconnections.
Players can now cancel certain buffs by right-clicking them; only effects flagged as Cancelable in Effect.xml can be removed, preventing exploitation.
Added stats popup UI allowing players to add stat points by amount and auto-assign stats to reach target values
Event entry brackets (Blood Castle, Devil Square, Chaos Castle, Illusion Temple) can now be configured via Event.dat with custom tier ranges based on level, reset, grand reset, and master reset, plus per-IP character limits and master class bypass options.
VIP players now receive configurable item drop rate bonuses based on their account level.
Added plugin integration support for chaos mix systems, allowing plugins to override success rates and costs for all mix types including items, wings, pets, and socket crafting
Added custom jewel data synchronization to clients, enabling proper display and handling of custom jewels defined in CustomJewel.xml.
Added map-specific level restrictions, time limits, cost multipliers, and experience rates for MuHelper and Offline Attack modes.
ConnectServer/JoinServer/DataServer
Performance
Reduced latency between ConnectServer and GameServer by disabling Nagle's algorithm on inter-server socket connections.
Reduced latency in inter-server communication for JoinServer to GameServer socket connections.
Bug Fixes
Fixed a race condition in account connection handling that could cause duplicate logins or incorrect disconnections under high latency
Features
AutoReset settings have been moved to a dedicated ResetSystem module with per-character reset tracking for Normal, Master, and Grand Reset types including day/week/month counters and timestamp tracking
Thank you everyone for your time and motivation to go forward! <3
Changelog - April
This month focused on hardening security across all components, launching the Gold Channel premium system, expanding the plugin ecosystem, and continuing to squash visual and gameplay bugs reported by the community.
Not all changes are listed here, only the most "notable" ones, you can always check our Bugs list and their status in our discord "Bugs" channel.
Client
Performance
Added effect culling to prevent performance degradation during rapid-fire spells and mass monster deaths
Visual & Rendering
Fixed LevelUP visual effects jittering sideways during player movement
Fixed visual jitter and oscillation on pet and mount effects like Dark Spirit level-up animations
Fixed Raven pet jittery movement during character motion
Fixed RF Increase Health buff visual effect not appearing when the character moves away from its original position
Fixed projectile arrows lagging at character's feet due to incorrect position interpolation
Fixed jittering of UI overlays including chat bubbles, HP bars, and shop titles to keep them properly aligned with characters
Fixed smooth movement for mounts (Fenrir, Dark Horse, Pegasus, Uniria) and pets
Fixed multiple visual glitches including teleport trails, monster effect artifacts, and smoke rendering gaps across Battle Castle, Crywolf, Empire Guardian, Swamp of Quiet, and Raklion maps
Fixed visual effect and object description issues in Kalima map
Fixed character spawns appearing with malformed or incorrect bone data
Fixed UI layering issues and corrected rendering during cinematic sequences
UI
Added Gold Channel premium server support with ticket-based access and expiration time display on character selection screen
Added 6 new quick-access menu options (Event Timers, Jewels Bank, Resets, VIP menu, Detailed Stats, Sell Posts) with keyboard shortcuts (H, J, Y, S)
Personal shops now support pricing items in Jewel of Bless, Jewel of Soul, or Jewel of Chaos in addition to Zen, accessible via Tab key when setting prices
Middle mouse button now toggles MU Helper, and UI tooltips and gauge numbers display with improved formatting
Item tooltips now group and color-code special options by category (Skill, Excellent, Luck, etc.) with fully configurable colors in the client configuration
Warehouse now supports pagination with page navigation controls for additional storage pages
Added server-synchronized effect buff system for consumables (elixirs, scrolls, seals) with new detailed stats including triple damage rate, flat damage bonuses, and full damage reflect
Enabled the cash shop system with server-side catalog sync
Fixed character class name shifting left at higher resolutions (1440p/4K) and improved character creation dialog scaling
Fixed UI glitches that caused garbled text to appear when items, monsters, or party members were near the edge of the screen
Fixed zen cost display in chaos box mixing to match server calculations
Improved Invasions UI with pagination and themed styling
Security
Upgraded client configuration file encryption from weak XOR to AES-256-GCM, providing stronger protection for server connection settings
Added AES-GCM encryption for client-server communication
Fixed security vulnerabilities in guard window rendering and UI bitmap resource allocation
Bug Fixes
Fixed PvP stats truncation for high-Dexterity characters and improved MuHelper offline mode exit behavior
Fixed accuracy of displayed combat stats (damage, defense, attack rating) by using server-calculated values instead of client-side computations
Fixed auto-hunter (MuHelper) to no longer attack player-owned summons like Elf Goblin/StoneGolem
Fixed item options with values greater than 255 being incorrectly displayed or applied
Fixed phantom item tooltips appearing for non-existent items and broken set item option displays
Fixed PVP counter-attack not triggering in MuHelper, and activation skills not respecting cooldowns
Fixed several skills (Electric Spark, Strike of Destruction, Impale, Swell Life) not working in MuHelper
Fixed Drain Life incorrectly classified as healing instead of attack in MuHelper
Fixed effect particles spawning excessively causing performance issues, and duplicate restriction text in item tooltips
Added auto-reset and auto-accept friend/guild features to MuHelper
Fixed picked up items being lost when right-clicking elsewhere in the inventory
Fixed players becoming unable to move items after reconnecting to the server
Fixed item restriction tooltips now showing server-enforced trade/sell/drop/vault/store bans
Fixed Icarus map to prevent unequipping wings or helper without a flying pet
Fixed dual-wield weapon switching and enhanced visual effect interpolation during character movement
Fixed item pricing display to properly show server-authoritative prices when buying, selling, and navigating shop pages
Reliability
Converted item effect system to plugin-based architecture, enabling custom consumable items and buffs via server-side configuration
Added Bless of Light consumable items (Low/Middle/Greater grades) providing EXP and Master EXP boosts
Added support for custom monster and NPC visual properties configurable via server configuration
Server tooltips now show detailed descriptions and load status, with configuration received from ConnectServer instead of local files
GameServer
Security
Added AES-GCM wire encryption for client-server communication to protect gameplay data and prevent packet tampering or interception
Features
Added Gold Channel system for premium server access and NonPvP server configuration
Added ItemEffect plugin system for creating custom item effects and buffs with configurable stat bonuses via XML
Added new experience boost items with low, medium, and high tiers that increase both regular and master experience rates
Added custom monster and NPC visual plugin allowing customization of model files, scale, and display names via XML
Warehouse page switching now uses UI arrows instead of /bau command, with Vault Expansion Certificate items to unlock additional pages
Post command now supports configurable Zen cost and custom message prefix
MuHelper now supports direct transition to offline attack mode through the OffLine checkbox, eliminating the need for manual /offattack commands
Added MuHelper auto-reset support with new AllowMuHelperAutoReset configuration option
Added support for custom game data paths via command-line flags or environment variables, with optional overlay directories for deployment-specific overrides
Added ReflectDamageCheckOwnerLive configuration option to control whether reflect damage continues after the reflecting player dies
Increased custom item description field from 64 to 128 characters
Character combat stats are now server-authoritative for improved accuracy
Bug Fixes
Fixed server crash when configuration files contain names or text exceeding the maximum allowed length
Fixed stat displays to correctly show effect bonuses, resolved class-specific item usage restrictions for Elixir of Leadership
Fixed skills learned independently remaining visible in hotbar after unequipping the required weapon
Fixed excellent item drop rates not being correctly applied in Config Mode
Fixed weapon skill removal to preserve independently learned skills when unequipping weapons
Expanded item price capacity to support values above 2 billion Zen
Fixed chaos mix recipes to display correct zen cost to players
Melee skills with dash functionality now properly teleport players to their target
Improved Illusion Temple event teleportation behavior
DataServer
Features
Enabled the cash shop system with stability improvements for in-game purchases and gifts
Personal shop item management features are now available on all server versions, removing the previous version requirement
ConnectServer
Features
Added server group system with dynamic tooltips, configurable positioning, and per-server descriptions sent to clients without requiring client-side file changes
JoinServer
Changelog - March
This month container Demo server release + continuing fixing bugs & issues focusing on critical - game breaking bugs, improperly working systems, annoying visual glitches.
Not all changes are listed here, only the most "notable" ones, you can always check our Bugs list and their status in our discord "Bugs" channel.
April will be spent focus even more on hunting those critical/game breaking issues and applying community suggestions.
Client
Performance
Fixed visual flickering and performance issues with effects and particles at high frame rates via smart throttling, preventing duplicate effect creation between logic and render ticks
Improved frame timing accuracy using high-resolution timers, reducing input lag and frame jitter during gameplay
Mobs and projectile effects now animate and turn more smoothly at higher frame rates
Fixed FPS calculation and reduced excessive visual effect overhead
Visual & Rendering
Fixed visual stuttering and position jumping on skill effects during combat
Fixed visual artifacts where character eye glow and equipment lights would stutter during movement
Fixed item rendering issues including black rectangles on glowing/shimmering effects and incorrect item name colors in inventory
Fixed Soul Barrier effect sound/visual reset, summoner book skill visual jitter, and wall collision detection for specific monsters
Fixed Dark Lord cloak rendering and flying helper/pet movement to follow owner smoothly
Fixed visual strobing/flickering during character level-up effects
Added MSAA (anti-aliasing) support and toggles for Chrome, Bright, Oil Sheen, and Wave Distortion effects
Added new Graphics Settings window for resolution, filtering, shadows, effects, and world display options
Added support for 20+ new maps including Arkania, Nixie Lake, Kubera Mine, Atlans Abyss, and Deep Dungeon
Minimap now supports mouse wheel zoom with improved visibility and widescreen support
Added smooth camera zoom transitions
UI
Added extended inventory system with two unlockable expansions (64 additional slots), supporting gem combination, right-click use, equipment, stacking, and ground dropping
Added close button to the extended inventory window
Item stack counts now displayed on item names (e.g.
Potion x10) in bags and on the groundAdded monster spawn points to minimap with server-synchronized NPC, portal, and spawn locations
Improved damage number display with comma separators
Added configurable bottom UI scaling with 1440p/4K resolution support
Increased chat message limit from 90 to 256 characters
Added server-configurable item movement permissions - admins can now control which items can be dropped, sold, traded, stored, or listed in personal shops
Security
Added DLL integrity verification at startup using SHA-256 hashes to prevent tampering and DLL hijacking
Added anti-speedhack protection detecting malformed packets and disconnecting suspicious clients
Switched auto-update delivery to HTTPS
Bug Fixes
Fixed castle siege gates and structures to work correctly during battle castle events, allowing defense team to properly target and defend them
Fixed client crash and items not transferring to extended inventory if it had not been opened previously
Fixed MuHelper item pickup to correctly match item names including level, skill, luck, and option suffixes with case-insensitive searching
Fixed incorrect stat requirements display for non-equippable items such as scrolls, orbs, and consumables
Fixed MuHelper start validation for Elf class to require party buff support when no attack skills are configured
Fixed MuHelper buff casting failures when no enemies were nearby and skill resets during class changes
Fixed combination system to correctly count stacked items by full stack size instead of treating each stack as a single item
Fixed attack and skill timing calculations to prevent negative delays and ensure balanced combat pacing
Fixed picked item getting stuck when character dies and improved Blood Castle event compatibility
Fixed ring equipment validation to allow different types of special rings to be equipped together
Fixed item drop distance clamped to 7 units from character position
Fixed weapon requirements for Mana Rays and Spiral Slash skills
Fixed incorrect item set option data caused by invalid array access
Fixed MuHelper to only target monsters and players
Added level 50 requirement for pet durability recovery
Reliability
Jewel of Harmony option data is now received from the server, allowing server-side configuration without requiring client BMD file changes
Server-synchronized gate and portal data now supports dynamic portal configuration
Castle Siege skills can now be used in all maps when enabled via server configuration
MuHelper now auto-consumes mana potions and prevents wasted casts from insufficient mana or AG
GameServer
Performance
Gate data is now cached and compressed at startup, significantly reducing server load and improving connection times under high player counts
Visual & Rendering
Fixed Multi-Shot skill causing duplicate visual effects on both sides instead of only on the correct target
Fixed set item data synchronization to ensure set bonuses display correctly on clients
UI
Added minimap NPC, portal, and monster spawn location sync to client minimaps
Event timer descriptions now support up to 1024 characters (previously 256)
Security
Added server-side anti-cheat to detect and disconnect players using speed hacks or bypassing skill requirements
Fixed item drop distance validation to prevent coordinate exploit, clamped to within 7 units of player position
Bug Fixes
Fixed Castle Siege gates to properly block movement when closed, allow destruction during sieges, and display correct visual state to all players
Fixed Sign of Lord registration to use stack count instead of durability
Fixed a critical logic bug that could cause the wrong items to be deleted during guild mark registration
Fixed player buffs persisting when entering event instances (Blood Castle, Chaos Castle, Devil Square, Illusion Temple, Imperial Guardian)
Fixed item drop generation producing incorrect items when processing ItemDrop.xml data
Fixed client notifications for experience display and master level updates not being sent correctly
Fixed teleport skills being incorrectly processed as attack skills
Fixed dying or logging out causing incorrect HP saving and preventing proper character switching
Fixed attack speed and skill timing formula to use reciprocal scaling for more balanced progression
Fixed Jewel of Harmony option validation bug causing incorrect early returns when adding harmony options
Fixed chaos mix success rate calculation to correctly identify the first item level from the recipe
Fixed non-equippable items incorrectly showing class requirements in item descriptions
Fixed anti-speedhack false positives for legitimate players spinning in place
Fixed Dark Horse range bonus not applying to attacks and skills
Fixed validation to prevent luck option being applied to incompatible items
Fixed lucky item mix handling in ChaosBox and enabled lucky items to be moved into ChaosBox
Fixed money overflow by increasing money values from 32-bit to 64-bit, preventing crashes with large Zen amounts
Fixed item bags incorrectly adding skill options to items that do not support them
Reliability
MuHelper minimum level requirement is now configurable via server settings instead of being hardcoded
Zen values now support 64-bit integers, preventing overflow on high-zen servers
Jewels Bank withdrawals now automatically fill existing partial stacks in inventory
Item bags now support dropping stackable items with configurable quantities
Chaos mix failures for 380 options now preserve the equipment item instead of losing it
Extended inventory expansion system now properly saves state to database with user notifications on unlock
Chat message limit increased to 256 characters across all chat types
DataServer
Demo Server Launch
The demo server is live - create your account, grab the launcher, and jump in.
This is an early build, so bugs are expected and honestly welcomed. If something feels off, breaks, or just doesn't seem right - drop a report in our Discord. Every bug you catch helps us make this better.
Got an idea for a feature or improvement? We have a suggestions channel in Discord for exactly that.
And for those of you putting in the time to test and report - we see you. Beta testers will be eligible for rewards and discounts when official licenses go live, based on contribution. We'll share the details on how that works soon.
See you in-game.
Changelog - February
Did some play testing, finding and squashing bugs, working on modern features MuOnline servers in 2026 require.
Client
Performance
Mount and pet animations now render smoothly at 60fps with frame interpolation.
Improved bloom post-processing shader for smoother visuals and better performance.
Spell and ability animations now use 60fps interpolation for smoother casting visuals.
Features
Party Reconnect: Party automatically saved and restored after disconnects or server restarts.
Multi-Page NPC Shops: Shops now support up to 8 pages (120 items each) with pagination controls.
Invasion HUD: Displays active invasion timers and monster counts in real-time.
Item Sell Post System: Ctrl+Click inventory items to broadcast sales to the server. Shift opens a peek window showing recent posts with item tooltips on hover.
Post-Processing Effects: FXAA anti-aliasing enabled by default. Optional Bloom and Motion Blur configurable via
ClientConfig.xml.Custom Item Visual Plugin: Server-defined item appearances including custom models, colors, glow effects, rotation/scale, custom arrow effects for bows/crossbows, tooltip descriptions, and wing display.
Detailed Stats Window now displays Attack Rate and clarified Defense Success Rate label to "Def Rate".
Bug Fixes
Fixed pet and mount visual duplication. Added single-click item movement to trade and mix inventories.
Fixed socket option names not displaying on socketed items.
Fixed summoner book equip effect appearing on wrong wrist, now follows character during movement.
Fixed Detailed Stats Panel - reorganized as Inventory sub-window with updated stat categories (actual defense, attack/magic speed, damage increases, elemental resistances, PvP stats).
Improved character and monster turning smoothness during pathfinding.
Fixed UI overlap where MuHelper, NPC dialogs, shops, storage, quests, and trade windows could stay open behind Jewels Bank or Event Timer.
Fixed item price sync with server, Crywolf event crashes, and item rendering in NPC shops.
Fixed system message box scrolling and reset panel packet collision causing message corruption.
Fixed visual jittering on rising spiral effects (e.g., level up) during movement.
Fixed Skeleton pet visual effects (eye glows, lights, flames) stuttering during movement.
Smoother fire-based map lighting (torches, candles, lanterns, bonfires) - replaced random per-frame flickering with smooth sine-wave animation across all maps.
Fixed character attachment effects (guild marks, team icons, 2D overlays) sliding out of sync during movement.
Fixed Summoner orbiting book effects (Sahamut, Neil, Lagul) stuttering while walking.
Fixed Raklion spider egg monsters potentially crashing or animating too fast due to triple-rendered copies.
Fixed lightning/thunder weapon effects (Storm Blade, etc.) appearing too intense at high FPS - now consistent regardless of framerate.
Smoother ambient creature effects - butterflies, fireflies, and crow eye glows now pulse smoothly instead of flickering.
Fixed flying creatures (bugs/fireflies) shaking vertically - now smooth wave motion.
Added safety guard against rare animation crash from corrupted or uninitialized animation data.
Improved player character rendering smoothness with interpolation between server tick positions.
Fixed all pet visual effects jittering during movement (Unicorn, Dark Spirit, Rudolf, Panda, Skeleton).
Fixed Dark Spirit level-up/level-down particle effects appearing offset while moving.
Fixed GM sign and ground effects (magic circles, aurora rings) sliding behind the character during movement.
Simplified cloth physics (capes, hair) - removed unnecessary offset calculation causing subtle wobble.
Fixed Kanturu 3rd map water splash particles spawning at wrong position during movement.
Fixed Aqua Beam flickering.
Fixed ring equipment validation.
Fixed event timer categorization.
GameServer
Features
Party Reconnect: Automatic party reconstruction when members reconnect, preventing disbandment after temporary disconnections.
Multi-Page Shops: Up to 8 pages / 960 items per NPC shop. Supports time-limited items via
Durationattribute in shop XML.Invasion Timer System: Real-time HUD with monster counts, time remaining, and location info. Automatic invasion completion when all monsters killed.
Item Sell Post System: Players broadcast items for sale to all online players. Configurable cooldown and customizable appearance.
All Events Included: Blood Castle, Castle Siege, Chaos Castle, Devil Square, Illusion Temple, Crywolf, Kanturu, Imperial Guardian, Raklion, and Invasion Manager now included in the base package.
Custom Item Visual Plugin: Configure custom item rendering via
Data/Plugins/CustomItemVisual.xmlwith automatic client synchronization.Extended Shop Currencies:
ItemValue.xmlnow supports WCoinC, WCoinP, and GoblinPoint currencies for shop purchases.Attack Rate added to detailed character stats window.
First "Playable" Build released
A lot of foundational work was done to have a stable, non crashing, visually sound - functional client & game server.
Started to restructure the "architecture" and logic of how GameServer communicates with it's components.
Client
Performance
VBO Rendering: Converted legacy immediate-mode OpenGL to modern VBO batching for terrain, UI, blur effects, joints, and BMD mesh rendering. 20-40% frame rate improvement with automatic fallback for unsupported hardware.
Chrome LOD System: Distance-based enhancement effect optimization. Close characters render full chrome, medium range caps at +9, far range skips chrome entirely. Configurable via
ClientConfig.xml.Frustum Culling Distance Cap: Configurable maximum render distance prevents drawing off-screen characters in zoomed-out views.
Particle & Sprite Free-List Allocation: Particle, sprite, effect, and joint creation converted from linear search to O(1) allocation. Major FPS improvement in monster-dense maps.
Bone Lookup Caching: Cached bone lookups eliminate repeated expensive searches for per-frame effects.
Aida Monster Optimization: Aida glow effects optimized from 19.8ms to 0.8ms per frame (23x faster). FPS with 60 monsters improved from 16.5 → 43.4.
Kalima Monster Optimization: Schriker fire particles rate-limited to tick rate, reduced particle iterations. Eliminates FPS drops in Kalima.
Ground Items Optimization: Configurable zen copy limit (80 → 30), name distance culling, and chrome skip for normal ground items. Reduced ground item rendering from ~8ms to ~2-3ms.
UI Visibility Culling: Inventory 3D rendering skipped when panel is closed. Eliminated ~6ms of wasted rendering.
Auto-Updater Caching: File verification data cached to skip redundant CRC32 calculations for unchanged files.
Visual & Rendering
Visual Interpolation System: Smooth rendering between 25Hz game logic ticks for characters, particles, effects, joints, camera, cloth/capes, damage numbers, mounts, pets, and guild emblems. Eliminates jerky movement at high frame rates.
FPS Decoupling: Render loop separated from game logic. High-FPS mouse/movement sensitivity still being fine-tuned.
Camera System: Zoom via F10/F11, terrain corner-culling fix, automatic widescreen aspect ratio compensation (16:9, 21:9). Max 3D camera FOV set to 50.
Monster HP Bars: Added lerp animation when updating. Fixed viewport shift when UI windows open.
Fixed buff glow particles rendering as black rectangles when mounted on Fenrir and moving.
Fixed Elf Triple Shot, Multi Shot, and Penetration arrows rendering at wrong positions.
Fixed monster footprint/ground effects jittering with movement interpolation.
Fixed weapon bone attachment inversion after equipping (weapons pointing downward).
Fixed GENS emblems appearing too large when camera zoomed out.
Fixed Kalima water rendering and item jitter due to interpolation.
Fixed high attack speed causing skill effects to not display (visual speed caps applied).
Fixed Icarus item interpolation jitter (wave effect now only applies to falling items).
Fixed character creation preview jitter for Elf, MG, Summoner, RF models.
Fixed Dark Lord horse skill showing Rageful Blow visual instead of Earthquake.
Fixed Summoner Eternal Wing Stick particles.
Fixed inventory item spin speed (slowed down by 50%).
Added zen comma separator for thousands.
Ground item tooltips now have padding and rounded corners.
MuHelper
Full System Port: Complete port of MuHelper from newer MU version to Season 5 codebase - hunting, buffing, healing, item pickup, money charging.
Hunting Log / DPS Meter: Real-time combat stats window (DPS, HPS, kills/s, EXP/s, total kills, session time). Auto-shows when MuHelper starts. Collapsible and draggable.
Anti-Kite: Stops chasing monsters that move outside hunting range from original position. Prevents luring exploits.
Server-Side Effect Rendering: All skill effects now render via server response for both manual and MuHelper casting. Removed inconsistent local effect workarounds.
Hunting distance default set to 8.
MuHelper continues after reconnect.
Elf can start helper without selecting skills (buffer/healer support).
Start MuHelper with Home button.
MuHelper start/stop system messages added.
Castle siege skills removed from helper assignment.
Fixed RF combo skills (Beast Uppercut, Chain Drive, Dragon Slasher) - played animation but dealt no damage.
Fixed RF buff skills (Ignore Defense, Increase Health, Increase Block) not supported.
Fixed Elf buff/recover skills showing bow attack animation instead of magic animation.
Fixed Elf bow skills casting but dealing no damage at close range.
Fixed arrow auto-equip from inventory. Helper stops gracefully when out of arrows.
Fixed Dark Lord Chaotic Diseier not playing animation or showing effects.
Fixed Power Slash not handled by MuHelper.
Fixed Multi-Shot causing 180° turn and duplicate effects.
Fixed Dragon Roar not showing ground shake or volcano effects.
Fixed Inferno/Hellfire not casting when standing still with monsters in range.
Fixed Dark Side multi-target skill not dealing damage.
Fixed Phoenix Shot applying cooldown but not executing.
Fixed wrong animation showing before correct skill animation.
Fixed PVP self-defense attacking players when disabled.
Fixed return-to-position oscillation for melee characters.
Fixed item pickup being interrupted by attack commands.
Fixed party autoheal settings being overwritten when editing.
Fixed buff recasting being inconsistent (e.g., Infinity Arrow).
Fixed pet resummoning for Elf.
Fixed 4th tab rendering.
Fixed current skill corruption due to empty buff slot.
UI
Buff Window: Timer display below each icon (compact format: 5m/30s/1h). Icons reduced from 20x28 to 16x22 pixels.
System Messages: Separated from chat into dedicated right-side overlay with 5s fade animation and scrollable history (100 messages).
Detailed Character Stats Panel: Scrollable panel showing bonus rates, damage, defense, resist, recovery, consumption, and wing/helper stats. Toggle from character panel.
Devil Square Widget: Real-time rank, points, and timer display during event.
Event Timers Window: Server-configurable event descriptions and tooltips, organized by category. Proper position reset when other windows close.
Jewel Bank UI: Full UI with auto-deposit toggle and dynamic server config.
VIP Menu: Server-configurable buy VIP interface.
System Tray Minimize: F12 to minimize to system tray with character info tooltip. Dynamic window title showing character stats.
Character Panel: Now shows regular resets, master resets, and master level. Master experience % for eligible characters (3rd class, 400+).
Extended Character Slots: Increased from 5 to 7 to support all classes per account.
Pet skills rendered on dedicated UI row.
External buttons added for detailed stats, VIP, and resets.
Repair hotkey remapped to L (fixed shop/inventory texts).
Spacebar pickup range reduced from 300 to 200 units.
Fixed disconnect popup OK button doing nothing.
Fixed selling expensive items - pressing Enter closing popup instead of confirming.
Fixed menu buttons not working after sort/render optimizations.
Fixed window title showing stale level data and missing Grand resets.
Fixed system messages firing for 3rd class before level 400.
Added MuHelper popups for different states (too low level, no skills, not allowed in map).
Bug Fixes
Fixed two-handed weapon equip conflict causing items to disappear from inventory until relog.
Fixed character deletion rejecting all passwords (was checking wrong field).
Fixed kill damage not displaying on 1-shot kills.
Fixed periodic items showing "hundreds of years" expiration on 64-bit builds.
Fixed crossbow and bolts not equippable at the same time.
Fixed Dark Raven crash on re-equip after relog and raised hand animation persisting after unequip.
Fixed Raven not appearing on raised hand for other players.
Fixed chaos box items unmovable after reconnect with internet crash.
Fixed LevelUpPoint overflow for characters with high stat points (WORD → DWORD).
Fixed effects creation/deletion leak.
Fixed attack speed sync between client and server, and auto attacks "missing" due to wrong formula.
Fixed wings and talismans.
Fixed +add options counting from level to value requirement.
Fixed various crashes: UI font deadlock at Blood Castle start, Dark Lord blur memory corruption, RenderItemName array indexing, SaveOptions overflow, pet repair parameter mismatch.
Fixed skill cooldown not checked client-side after GameDataSync port (animation played but server rejected).
Fixed Fire Slash working via MuHelper but not manually when mounted.
Fixed AOE spell effects (Flame, Twister, Inferno) broken after optimization commit.
Fixed character selection glitches (characters flying around, pushing each other, capes disappearing) - partially fixed.
Fixed potions not rendering in hotkey bar after relog.
GameServer
Features
Server-Authoritative Game Data Sync: Skills now sent from GameServer to Client at login. Eliminates need for duplicate
.bmdfiles.Monster Stat Multipliers: Configurable percentage multipliers for HP, min/max damage, defense, and magic defense. Applied at spawn time.
Monster Hit Damage Tracking: Configurable reset conditions - on death, time since last hit, and distance from spawn position. Prevents kiting exploits and damage carryover.
Advanced Money Drop System: Per-account-level money formula scaling with monster level. Configurable item bonus rate.
Attack Speed Scaling: Per-skill configurable MinDelay and AttackSpeedScale.
Item Stacking: Configured via
ItemStack.xml. Supports warehouse, shops, trade, chaos machine, item bags, jewel usage, and splitting.Jewel Bank: Full implementation with logging and dynamic config.
Persistent Chaos Box Storage: Items in chaos box survive crashes and disconnects. WAL integration for crash recovery. Retrieve mode on login if items exist.
Chaos Mix Plugin: Migrated from
ChaosMix.bmdto server-configured plugin. All mixes and rewards preserved, easily overwritable. Client displays server-provided success rate.Reset Plugin System: Clean plugin-based
/resetcommand. Configurable required level, stats reset, points-per-reset formula, max resets, and post-reset teleport.Combo Push Effect: Configurable knockback on Blade Knight combo hits via
ComboEnablePushEffect.Custom ItemOption System: Support for Level 13-15 and Ancient requirements.
Monster Spawn System: Modular map-based XML folder architecture.
Per-Map ItemOptionRate: Customize items dropped per map.
Event Timers: Server-configurable event descriptions and categories.
VIP Menu: Server-configurable purchase interface.
MuHelper Server Integration: Start/stop packets, money charging system with hourly rate multipliers.
Dev Diagnostics: Watchdog thread (2.5s hang detection), breadcrumb crash logging (64-entry circular buffer).
Commands: Added
/dropbagfor loot testing./addstr,/addagi,/addvit,/addene,/addcmdnow update client stats without relog.Jewels Bank Auto-Deposit: Automatically deposits picked-up jewels when enabled.
Increased Zen Limit: From 2 billion to 9 quintillion, removing the economic cap for high-level servers.
Full English translation of GameServer protocol messages.
Server skill enum standardization for maintainability.
GUI simplified to modern console-style interface for GS/JS/CS/DS.
Security
Skill Requirement Validation: Server now validates RequireStrength and RequireDexterity for skills (previously client-only).
Server-Side Skill Timing Anticheat: Validates cast rate with configurable formula, progressive response (log → block → disconnect), violation decay for lag tolerance.
HWID Generation & Licensing: Hardware ID enforcement system.
Fixed weapons dropping with skills on unsupported item types (7 files, 8 locations)
Bug Fixes
Fixed Excellent items not dropping (drop-rate loader had been disabled by accident).
Fixed all timed effects never expiring - monster immunity, player buffs/debuffs lasted forever (XML wildcard parsing bug affecting 9 config loaders).
Fixed Death Stab visual effects missing (attack ending before effects could render).
Fixed Power Slash visual effects missing (effect creation at wrong point in code).
Fixed Dark Side skill not dealing damage (AttackTime never incremented).
Fixed Fire Slash not working when manually cast on mount.
Fixed Dark Lord horse skill instant damage timing.
Fixed RF multi-hit skills (Killing Blow, Beast Uppercut, etc.) not displaying damage numbers when monster died on first hit.
Fixed 16-bit stat/damage communication overflow - rewritten to support values above 65k.
Fixed packet decryption ignoring calculated size.
Fixed GameServer unresponsiveness during Login/Logout/Trading (thread-unsafe logging).
Fixed QueueTimerCallback delays under load (RAII LockGuard).
Fixed 49.7-day TickCount rollover causing logic breakage.
Fixed GameServer crash on post-command.
Fixed integer overflow on high-memory systems.
Fixed distance checks for Fire Burst, Force, Slash, Spiral Slash, Fire Blast, and Crescent Moon Slash.
Fixed Summoner book skills not applying curses/effects (Shamut curse, Lagile slow, Requiem curse).
Fixed Summoner book skills ignoring attack speed.
Fixed MuHelper hunting distance bug (typo using TargetX twice instead of TargetY).
Fixed integer overflow in Zen currency and item durability calculations.
Fixed +add options counting requirement.
Fixed attack speed formula sync with client.
DataServer
Features
Jewels Bank Auto-Deposit: Persistent per-account setting for automatic jewel deposits.
Increased Zen Limit: From 2 billion to 90 quintillion to support high-level economies.
Persistent Chaos Box Storage: Per-account chaos box table with WAL sequence tracking for crash recovery.
Reliability
DSMetrics Instrumentation: Real-time monitoring - queries/sec, queue depths, slow query tracking (>100ms), daily CSV log rotation.
ODBC Connection Pooling: Thread-local SQL connections with automatic reconnection.
Transaction Wrapping: Character saves wrapped in explicit SQL transactions for atomicity.
Write-Ahead Log: Binary WAL with daily rotation and sequence tracking. Safe replay on crash recovery for character and warehouse saves.
Queue Expansion: Increased from 2,048 to 65,536 entries (32x buffer capacity).
Auto-Save Interval: Reduced from 10 minutes to 3 minutes (max data loss reduced proportionally).
Immediate Save: Triggered on item pickup, drop, trade, and chaos mix close.
Reconnection System: GameServer↔DataServer reconnection with exponential backoff (1s → 32s). Clean player disconnect on DataServer loss, automatic recovery on reconnect.
Backpressure System: At 75% queue capacity, GameServers extend save intervals. At 50%, normal saves resume. Prevents queue overflow under load.
Save Acknowledgment: Slow saves (>100ms) and failures logged for debugging.
Infrastructure
Started laying the foundation that favors the deprecation of .bmd files and allowing single point of configuration -> GameServer.
Client Reconnection: Backoff-based reconnection with fixed retry counter. Increased initial delay to 8 seconds for clean disconnect processing.
Config Encoder: Modern BMD-less client configuration updates via
ClientConfig.xml→ConfigEncoder.exe→ClientConfig.bmd.Skill Range Sync Tool: Python tool to extract Range values from client BMD and update server
Skill.txt(153 skills updated).Extended Character Slots: Database schema changes for 7 character slots (SQL migration required).
Last updated