For the complete documentation index, see llms.txt. This page is also available as Markdown.

Common.dat

Server identity, network endpoints, rates, PK, trade, and every core gameplay toggle

The master configuration file. Defines who this GameServer is, how it reaches the other services, and every server-wide gameplay rule. Loaded first at startup; every other .dat file layers on top.

File Location

GameServer/Data/GameServerInfo - Common.dat

All keys live under the single section [GameServerInfo]. Changes require a GameServer restart.

Default in the tables below = the value in the shipped file. If you delete a line, the server uses its own built-in value instead, and that can be different (often 0). To change a key that is not in your file, add the line yourself.

Account Level (AL0-AL3)

Many keys come in groups of four with _AL0, _AL1, _AL2, _AL3 suffixes. Each suffix maps to a VIP tier read from the account's stored AccountLevel:

Suffix
Tier
Typical use

_AL0

Free account

Baseline value

_AL1

VIP tier 1

Small bonus

_AL2

VIP tier 2

Medium bonus

_AL3

VIP tier 3

Top bonus

If VIP is disabled for the server, keep all four suffixes equal to the _AL0 value.

Server Settings

Key
Type
Range
Default
Effect

ServerName

string

<= 31 chars

GameServer

Name shown in window title and broadcast messages

ServerCode

int

0-65535

0

Unique code matching one <Server Code> entry in ConnectServer's ServerList.xml

ServerLock

0 or 1

0

1 prevents non-GM clients from connecting

GoldChannelServer

0 or 1

0

1 marks this server as a Gold channel (cosmetic label in the client)

NonPvPServer

0 or 1

0

1 disables player-vs-player damage server-wide

ServerPort

int

1-65535

55901

TCP port game clients connect to. Must match ServerList.xml

ServerVersion

string

X.XX.XX

1.04.05

Season/episode identifier sent in handshakes

ServerSerial

string

16 chars

(ships filled)

Protocol obfuscation serial. Do not change unless client ships with the matching value

ServerMaxUserNumber

int

1-1000

1000

Concurrent player cap. Values above 1000 are clamped to 1000

ServerMinLevel

int

0-MAX

0

Minimum character level allowed to log in. 0 = no limit

ServerMaxLevel

int

0-MAX

0

Maximum character level allowed to log in. 0 = no limit

ServerMinReset

int

0-MAX

0

Minimum character reset count to log in. 0 = no limit

ServerMaxReset

int

0-MAX

0

Maximum character reset count to log in. 0 = no limit

ServerMinMasterReset

int

0-MAX

0

Minimum master reset count to log in. 0 = no limit

ServerMaxMasterReset

int

0-MAX

0

Maximum master reset count to log in. 0 = no limit

LicenseKey

string

(empty)

License token for this instance. Required

EnableCastleSiege

0 or 1

1

Master switch for Castle Siege machinery. When 0, every CS-related Event.dat block is inert

GameDataOverlay

path

(empty)

Optional path to an overlay folder that shadows files in the shared Data/ root. See Data Overlays

Performance

Neither key ships in the default Common.dat. Add the line to change it. Both are read once at startup.

Key
Type
Range
Default
Effect

PerfProfiler

0 or 1

1

Built-in CPU profiler. 1 writes a summary to Perf\YYYY-MM-DD.txt once a minute. 0 = off

SendBatchWindow

int ms

0-200

50

How long the server may hold packets for one player so it can send them together. Fewer, bigger sends = less CPU and network load on busy maps. A player's own replies are never held. 0 = off (send at once). Values above 200 are clamped to 200. Any value above 0 also turns off Nagle's delay on player sockets

Connection Settings

Key
Type
Default
Effect

DataServerAddress

string

127.0.0.1

IP of DataServer

DataServerPort

int

55960

TCP port of DataServer. Must match DataServer's DataServerPort

JoinServerAddress

string

127.0.0.1

IP of JoinServer

JoinServerPort

int

55970

TCP port of JoinServer. Must match JoinServer's JoinServerPort

ConnectServerAddress

string

127.0.0.1

IP of ConnectServer

ConnectServerPort

int

55557

UDP port on ConnectServer for heartbeats. Must match ConnectServer's ConnectServerPortUDP

ConnectTimeOutPreLogin

int

300

Seconds an idle socket may sit connected without submitting credentials (login box open) before the server drops it

ConnectTimeOutLogged

int

60

Seconds a logged-in client may go without answering the server's live-client ping before it is disconnected

This GameServer's public IP must appear in DataServer's and JoinServer's AllowableIpList.txt.

Server Manager Control Settings

The control channel lets the Axiom Server Manager see this GameServer's status and logs and send it commands (notice, kick, start events, graceful shutdown). None of these keys ship in the default Common.dat. Add the lines to change them. Read once at startup.

Key
Type
Default
Effect

ControlPort

int

55990

TCP port the control channel listens on. 0 = control channel off

ControlKey

string

(empty)

Shared password the Server Manager must send. Empty = no password

ControlBind

IP

127.0.0.1

Address the control channel listens on. 127.0.0.1 = only this machine can connect. An invalid IP falls back to 127.0.0.1

ControlInstance

string

(empty)

Label shown in the Server Manager to tell several GameServers apart (for example Sub1)

Log Settings

Each flag toggles one log category. Logs are written to the GameServer working directory.

Key
Default
Logs

WriteChatLog

1

Public, whisper, party, and guild chat

WriteCommandLog

1

Every chat command use (success and denial)

WriteTradeLog

1

Trade window opens, items exchanged, zen transferred

WriteConnectLog

1

Login, logout, character enter/leave

WriteHackLog

1

Hack detections (see Hack Settings)

WriteCashShopLog

1

Cash shop purchases and gift sends

WriteChaosMixLog

1

Chaos machine attempts, outcomes, and announce broadcasts

WriteLuckySpinLog

1

Lucky Spin spins (win/lose, prize, cost, charges left) and reward deliveries — including login redelivery of wins orphaned by a crash/disconnect

WriteMarketLog

1

Market (personal store) to the Market folder: every deposit, withdraw, price change, open/close (with reason), sale, wallet collect and coin escrow step, plus every refused request as [Market][Reject][<action>] with the reason and item (index, level, serial). Also logs edge cases where an item could go missing: store rows dropped on login (LoadRowLost, with raw item bytes), auto-unlisted rows, dupe serial kicks, coin purchase timeouts and refunds. Rejects are capped at 10 lines per second per player

WriteGameDataSyncLog

0

GameDataSync block sends, chunk progress, completion / failure per player. Ships disabled - these lines are high-volume on a busy server. Set to 1 only when diagnosing a client/server data-sync mismatch

WriteItemBagLog

1

Item bag entries that point at an item not in Item.xml (skipped while loading the bag), plus GM make-item, make-set and drop commands refused for the same reason. Written to the ItemBag log folder

WritePacketRejectLog

0

Client packets the server refused (unknown opcode or subcode, wrong packet size). Written to the ActionReject log folder

WriteMovementRejectLog

0

Silent movement rejects and corrections (teleport range, forged path, gate mismatch, snap-back from a blocked tile). Written to the ActionReject log folder

WriteSkillRejectLog

0

Skill casts and attacks the server refused (out of range, in safe zone, not enough mana/AG, wrong weapon, skill not learned). Written to the ActionReject log folder. Not in the shipped file - add the line to turn it on

WriteItemRejectLog

0

Item actions the server refused (equip requirement not met, wrong slot, trade refusals). Written to the ActionReject log folder. Not in the shipped file - add the line to turn it on

Set to 0 to suppress that category. Logs rotate daily.

The four Write*RejectLog keys share one ActionReject log folder. Each line has a CATEGORY= tag, the account and the character. To stop one cheater from filling the disk, each player gets at most 5 lines per second per category; the rest are counted in one SUPPRESSED= line. Turn these on when a player reports "my action did nothing" and you need to see why.

Hack Settings

Server-side validators run on the potion use and movement paths. Not all of them disconnect - see the Action column.

Key
Type
Default
Action on trigger
Effect

CheckAutoPotionHack

0 or 1

1

Silently reject the potion (no disconnect, no hack log)

Prevents potion spam by enforcing a minimum gap between consumes.

CheckAutoPotionHackTolerance

int ms

250

-

Minimum gap between potion consumes. A use within this window is ignored.

MoveSpeedGuardMode

0-3

2

See below

Movement speed guard. 0 = off, 1 = log-only ([MoveSpeed] lines, move still applied), 2 = refuse the move and snap the player back to the server position, 3 = as 2 plus disconnect at the 5th refused move within a rolling 60-second window.

MoveSpeedGuardTolerance

int %

35

-

Extra leniency over the character's own walk speed. 35 = a player may cover 1.35x the distance his walk speed allows.

MoveSpeedGuardSlack

int tiles

3

-

Extra distance always allowed on top of that (network lag, the client being a tile or two ahead of the server).

How the movement speed guard works. The server remembers where each player was over the last few seconds. A move is refused when it would put the player farther from any of those spots than he can walk in that time, at his own speed (walk or run, wings, mounts), plus Tolerance and Slack. Teleports, warps, knockbacks and respawns are taken into account. Violations are written to the hack log (WriteHackLog), tagged [MoveSpeed].

Independent of the mode, the server never accepts a position on a blocked tile or one that cannot be reached by walking from where the player is.

Rollout: legitimate play should produce no [MoveSpeed] lines. If players with an unusual speed source (custom items, buffs) trigger them, raise MoveSpeedGuardTolerance, or set mode 1 while you look into it.

Attack-speed protection is always on and not exposed in Common.dat:

  • MaxAttackSpeed caps the server-side attack speed used in all delay math, and AttackSpeedOvercap sets how far item and buff bonuses may push past that cap (see the Skill Timing / Attack Speed section below). Both values are sent to the client along with the rest of the timing config, so a change takes effect for a player on their next login rather than instantly.

  • The skill timing validator recomputes a per-cast minimum delay from BaseSkillDelay, SpeedGrowthFactor, and MinSkillDelay, scaled per-skill via Data/Plugins/Characters/SkillTweaks.xml.

  • Casts arriving faster than the computed minimum (with 20% tolerance) are blocked and logged as [SkillTiming]. 20 violations in a row disconnect the player.

Common Settings

Key
Type
Default
Effect

MaxItemOption

int 0-15

7

Cap on item option bonus (+0 to +15). Most legacy clients expect 7; raising it requires a compatible client

JewelryLevelEnable

0 or 1

1

1 = elemental rings and pendants keep the item level they roll from every source (drops, item bags, chaos mix, shops, GM create, saved items), and Jewel of Bless / Jewel of Soul work on them. 0 forces every elemental ring and pendant to +0 on all of those paths and makes both jewels refuse them, which disables elemental resistance entirely

JewelryLevelMax

int 0-15

7

Highest level an elemental ring or pendant may reach, applied on every creation path. It also lowers the Jewel of Bless (+6) and Jewel of Soul (+9) ceilings when set below them

MaxIpConnection

int 0-N

10

Concurrent game connections allowed from one source IP. Distinct from ConnectServer's cap of the same name

MaxPacketsPerSecond

int 0-100000

250

Packets one game connection may send per second. A short burst of up to 4 seconds' worth is allowed, so a lag spike does not trip it. Over the limit the connection is closed and a line is written to the Hack log. A normal client sends about 15-45 per second while hunting and up to about 140 with the heaviest skills. 0 = no limit

PersonalCodeCheck

0 or 1

0

Require a personal passcode (second password) on character entry

SetItemAcceptHarmonySwitch

0 or 1

0

1 allows Jewel of Harmony bonuses on set items

MainChecksum

int

0

Optional client main-binary checksum demanded at handshake. 0 disables the check; non-zero values force every client to report this exact checksum

JewelSocketPentagram

0 or 1

0

1 allows Jewel of Socket to apply on Pentagram items

KeepBonusBelowItemReq

0 or 1

0

1 keeps an equipped item's bonuses applied even after the character no longer meets its requirements (for example after a reset drops their level/stats). First equip still enforces level, strength, dexterity, vitality, energy, and leadership; once equipped, the item keeps applying its bonuses. The class requirement is always enforced. The value is sent to the client at login so its stat panel and the ancient set option list keep the same items the server applies. 0 = an item whose requirements are no longer met stops granting bonuses (default)

KeepSkillBelowLearnReq

0 or 1

0

The skill counterpart of KeepBonusBelowItemReq. 1 keeps a learned skill castable after the character no longer meets its stat requirements (again, typical after a reset). Learning the skill still enforces every Require* column in Skill.txt. 0 = the requirements are re-checked on every cast and the skill fails while they are unmet (default)

Elemental jewelry levels

JewelryLevelEnable and JewelryLevelMax control the level an elemental ring or pendant may carry. That level is what makes the item's resistance do anything: the resistance granted is the item's *Res value multiplied by its level, so a +0 ring grants nothing no matter how its *Res columns are set in Item.xml.

Resistance translates into a chance to nullify the matching elemental effect:

Item level
Nullify chance

+0

0%

+1

50%

+2

67%

+3

75%

+4

80%

+5

83%

+6

86%

+7

88%

Only the ten elemental rings and pendants are affected. On Wizard's Ring, the starter rings, transformation rings, pets and wings, item level selects a variant rather than acting as a plus, so these keys leave them alone.

Movement / Warp Level Requirements

Key
Type
Default
Effect

SpecialClassMoveLevelDiscount

0 or 1

1

1 = vanilla: Magic Gladiator, Dark Lord and Rage Fighter need only two-thirds of a gate's or teleport's MinLevel on every map except Swamp of Calmness. 0 = all classes pay the full level requirement

The per-destination level requirements themselves live in Gate.txt and Move.txt; this key only decides whether the three special classes get a discount on them.

This value is sent to the client, which uses it to grey out warp destinations the character cannot reach. Players who are already logged in keep the old behaviour in their warp list until they reconnect.

PC Point Currency

Monster Settings

Key
Type
Default
Effect

MonsterLifeRate

int %

100

Global HP multiplier applied after all other monster modifiers

Health Bar

Key
Default
Effect

MonsterHealthBarSwitch

1

1 shows monster HP bars to clients

UserHealthBarSwitch

1

1 shows player HP bars to clients

PK Settings

Key
Type
Default
Effect

NonPK

0 or 1

0

1 disables all PK kills from counting toward outlaw status

PKLimitFree

0 or 1

0

1 removes the per-day PK count cap

PKDownTime1

seconds

3600

Cooldown between second-tier and first-tier PK level

PKDownTime2

seconds

3600

Cooldown between first-tier PK level and clear

PKDisableShop

0 or 1

0

1 blocks PK characters from opening personal shops

PKDisableTrade

0 or 1

0

1 blocks PK characters from trading

Trade Settings

Key
Default
Effect

TradeSwitch

1

Master toggle for player-to-player trade

Personal Shop Settings

Key
Default
Effect

PersonalShopSwitch

1

Master toggle for personal shops

Duel Settings

Key
Type
Default
Effect

DuelSwitch

0 or 1

1

Master toggle for duel arena

DuelArenaAnnounceSwitch

0 or 1

1

Broadcasts duel results to the server

DuelArenaDisableRestoreHP

0 or 1

0

1 prevents HP restore during duel

DuelArenaDisableRestoreSD

0 or 1

0

1 prevents SD restore during duel

DuelMaxScore

int

10

Score needed to win a duel

DuelBet

int zen

0

Mandatory bet amount. 0 = free duels

Guild Settings

Key
Type
Default
Effect

GuildDeleteSwitch

0 or 1

1

Allow guild deletion

GuildCreateMinLevel

int

100

Minimum character level to create a guild

GuildInsertMaxUser1

int

40

Base guild member cap

GuildInsertMaxUser2

int

80

Expanded guild member cap after guild level-up

GuildAllianceMinUser

int

1

Minimum members required to form or join an alliance

GuildAllianceMaxCount

int

5

Maximum guilds in an alliance

GuildOwnerDestroyLimit

0 or 1

1

1 lets the owner disband even with members present

Elf Buffer Settings

Controls Elf Soldier buff caps and formula constants. Four-tier keys apply per-account-level (see Account Level).

Key group
Default
Effect

ElfBufferMaxLevel_AL0-3

1000 / 220 / 220 / 220

Character level cap below which Elf buff still applies

ElfBufferMaxReset_AL0-3

10000 each

Reset cap below which Elf buff still applies

ElfBufferDamageConstA

50

Damage buff linear term

ElfBufferDamageConstB

5

Damage buff quadratic term

ElfBufferDefenseConstA

45

Defense buff linear term

ElfBufferDefenseConstB

3

Defense buff quadratic term

Experience Settings

All rates are per-mille (out of 1000). 1000 = 1x, 2000 = 2x. Each group has four _AL0-3 keys.

Key group
Default
Effect

AddExperienceRate_AL0-3

100000

Base XP multiplier for normal kills. 100000 equals 100x the baseline. Large values simulate high-rate servers

AddMasterExperienceRate_AL0-3

100000

Master XP multiplier

MinMasterExperienceMonsterLevel_AL0-3

95

Monster level below which no master XP is granted

AddEventExperienceRate_AL0-3

1000

XP multiplier inside event maps (Blood Castle, Devil Square, etc.)

AddQuestExperienceRate_AL0-3

1000

XP multiplier for quest kills

OffAttackExperienceRate_AL0-3

1000

Replaces AddExperienceRate (not stacked on it) for normal-level characters while Off Attack is active. Missing key = same as AddExperienceRate for that tier (older builds used 0, so offline characters got no XP)

OffAttackMasterExperienceRate_AL0-3

100000

Replaces AddMasterExperienceRate for master-level characters while Off Attack is active. Missing key = same as AddMasterExperienceRate

Experience rates stack multiplicatively with MonsterLifeMultiplier and level-difference penalties. High-rate servers typically set AddExperienceRate very high and leave the others at 1000.

Monster Kill EXP Formula

The base EXP a monster gives before any rate above is applied. Defaults equal the vanilla formula, so leaving them alone changes nothing.

Key
Default
Effect

ExpBaseOffset

25

Base = (MonsterLevel + offset) x MonsterLevel / divisor

ExpBaseDivisor

3

See above. Minimum 1

ExpLevelGapFree

10

How many levels a player may be above the monster before the penalty starts. Past that, base x (MonsterLevel + gap) / PlayerLevel. Master characters use Level + MasterLevel

ExpHighLevelBonusFrom

65

Monsters at this level or above give a bonus

ExpHighLevelBonusDivisor

4

Solo bonus = (MonsterLevel - (From - 1)) x (MonsterLevel / divisor). Minimum 1

ExpFinalRate

125

% applied to the base at the end (vanilla x1.25)

ExpPartyLowLevelSupport

200

In a party, members more than N levels below the top member count as Level + N toward the party average

ExpPartyHighLevelBonusBase

200

Party bonus for monsters at ExpHighLevelBonusFrom+ = base - PartyAverageLevel / divisor

ExpPartyHighLevelBonusDivisor

5

See above. Minimum 1

The party bonus uses the party's average level. Older builds used the killer's level for every member.

Death Penalty

Dying to a monster costs EXP. Never zen and never items. On by default.

Key
Default
Effect

DeathExpPenaltySwitch

1

0 turns the penalty off

DeathExpPenaltyMinLevel

11

Characters below this level lose nothing

DeathExpPenaltyRate

10

Per mille of the current level's EXP span lost on death. 10 = 1%

DeathExpPenaltyMasterRate

7

Same for master-level characters (0.7%)

DeathExpPenaltyPKRate1-3

30 / 40 / 50

Replaces the normal rate for PK level 4, 5 and 6 (murderer stages)

DeathExpPenaltyInDungeon

0

1 also applies the penalty inside dungeon runs

EXP never drops below the start of the current level, so nobody loses a level. No penalty for PvP deaths (killed by a player or a player's summon), event maps (Blood Castle, Devil Square, Chaos Castle, Illusion Temple, Doppelganger, Imperial Guardian, Custom Arena), or Crywolf during the battle. The player sees a notice and the new EXP arrives with the respawn.

Item Drop Settings

Key
Type
Default
Effect

ItemDropTime

seconds

30

Lifetime of dropped items on the ground before despawn

ItemDropRate_AL0-3

int out of 10000

100

Drop chance per kill, out of 10000. 100 = 1%

Money Drop Settings

Key
Type
Default
Effect

MoneyDropTime

seconds

30

Lifetime of dropped zen piles

MoneyAmountDropRate_AL0-3

int multiplier

1

Per-tier multiplier applied on top of base monster zen

Monster Stat Multipliers

All percentages. 100 = unchanged, 200 = 2x, etc.

Key
Default
Effect

MonsterLifeMultiplier

100

Scales monster HP

MonsterDamageMinMultiplier

100

Scales minimum monster damage

MonsterDamageMaxMultiplier

100

Scales maximum monster damage

MonsterDefenseMultiplier

100

Scales monster physical defense

MonsterMagicDefenseMultiplier

100

Scales monster magic defense

Monster Hit Damage Reset Settings

Controls the damage credit table, which decides who owns a monster's drop and EXP. This is not aggro — clearing it does not make a monster stop chasing.

Key
Type
Default
Effect

MonsterHitDamageResetOnDeath

0 or 1

0

1 clears damage records when the monster dies. Runs after the drop is awarded, so this is cleanup only and changes nothing in play

MonsterHitDamageResetTime

seconds

30

Seconds without a hit before a player's damage record expires

MonsterHitDamageResetDistance

steps

0

Steps from spawn point before all records clear. 0 disables the check

Monster Leash Settings

Vanilla MU has no leash. Once a monster is aggroed, ActionState.Emotion is set and the wander-radius check is skipped entirely, so the monster can be dragged across the whole map. Aggro also re-arms every time the target is re-found in view range, so a kiting player drags it indefinitely. When aggro finally lapses, the monster stands frozen wherever it stopped, because its wander targets are still measured from its spawn tile and all of them now fail.

Key
Type
Default
Effect

MonsterLeashDistance

tiles

0

Extra tiles allowed beyond the spawn's own wander radius before the monster drops aggro. 0 disables the leash (vanilla). Suggested 15

MonsterLeashReturnHome

0 or 1

1

1 walks the monster back to its spawn tile, refusing aggro the whole way. 0 drops aggro and lets it settle where it stopped, adopting that tile as its new wander home

MonsterLeashHealOnReturn

0 or 1

1

1 restores full HP/Mana and wipes damage credit once the monster gives up

Leave MonsterLeashHealOnReturn at 1: without it a player can tag a monster, drag it past the leash, and still own the drop when someone else finishes the healed monster.

If the spawn tile turns out to be unreachable (walled off, built over), the walk home is abandoned after 30 seconds and the monster resumes normal behaviour where it stands. The original spawn tile is restored on death like always.

Why the distance is relative

MonsterLeashDistance is added to the monster's own wander radius; it is not an absolute distance from spawn. That radius is the per-spawn Dis in Data/Monster/MonsterSetBase/*.xml, or 30 for invasion-spawned monsters.

Dis is wildly inconsistent across the spawn files:

Dis

Spawn entries

Where

30

4096

Kanturu, Devil Square, Vulcanus, Land of Trials, Crywolf, Elbeland, Karutan, Raklion, all event maps

10

267

Lorencia and other classic maps

05

655

most common on classic maps

07 / 03 / 1

53

scattered

00

326

NPCs and guards - never leashed

An absolute leash would have to exceed 30 to avoid firing on Dis="30" spawns during normal wandering, which would make it nearly useless on the Dis="05" spawns that make up most of the classic maps. Relative gives every spawn the same chase room: with the suggested 15, a Dis="05" spawn leashes at 20 tiles and a Dis="30" spawn at 45.

Invasions

Invasion monsters (InvasionManager) are spawned outside MonsterSetBase and get WanderRange 30, or the boss ClusterRadius when the invasion uses cluster mode. They are leashed like anything else, measured from the random tile each one spawned on. With 15 an invasion mob gives up 45 tiles from where it appeared; cluster trash gives up at ClusterRadius + 15, so a tight ClusterRadius also tightens that invasion's leash.

Not affected

These keep vanilla behaviour entirely:

  • NPCs, guards and traps (Dis="00", no wander radius)

  • Stationary monsters (MoveRange 0)

  • Summons (Attribute 100) and monster-summoned adds

  • Every monster on Blood Castle, Chaos Castle, Devil Square, Kalima, Illusion Temple, Doppelganger, Imperial Guardian and Castle Siege maps - those events need monsters to chase players anywhere on the map

The event-map exclusion is by map number, not by spawn type. Blood Castle, Chaos Castle and Devil Square monsters are ordinary MonsterSetBase entries carrying Dis="30", so nothing else would have caught them.

Advanced Money Drop Settings

Chooses how the base zen amount for a monster kill is derived. Player bonuses are applied on top of whichever base is used.

Key
Type
Default
Effect

MoneyValue_AL0-3

int

100000

Base zen per monster level: MoneyValue * MonsterLevel. Set to 0 to use the baseline formula (MonsterZen * MoneyAmountDropRate%)

Full order of operations:

MoneyDropItemBonusRate was removed. It gated the player zen bonus behind a second multiplier that only existed in the MoneyValue > 0 branch, so leaving it at its 0 default silently voided every source of "Increases Zen acquisition rate" — excellent options, item implicits and the master skill tree node alike. The player bonus now always multiplies the base, in both modes, the same way the Catch-Up bonus does. Delete the key from your GameServerInfo - Common.dat; it is no longer read.

Item Durability Settings

Percentage of baseline durability consumed. 100 = normal, 200 = items break twice as fast, 50 = half rate.

Key
Default

WeaponDurabilityRate

100

ArmorDurabilityRate

100

WingDurabilityRate

100

GuardianDurabilityRate

100

PendantDurabilityRate

100

RingDurabilityRate

100

PetDurabilityRate

100

Not used in this build: MuunDurabilityRate. Muun pets belong to a later season, so the key is never read. It is not in the shipped file and adding it does nothing.

Trade Item Block Settings

Each flag blocks a category from being traded when 1.

Key
Default
Blocks

TradeItemBlock

0

All items (master switch)

TradeItemBlockExc

0

Excellent items

TradeItemBlockSet

0

Set items

TradeItemBlockHarmony

0

Harmony-enhanced items

TradeItemBlockSell

0

Items whose sell flag is set

TradeItemBlockLucky

1

Lucky items

Level Up Settings

Key
Type
Default
Effect

MaxLevelUp

int

1

Levels granted per normal kill

MaxLevelUpEvent

int

1

Levels granted per event kill

MaxLevelUpQuest

int

1

Levels granted per quest reward

MaxStatPoint_AL0-3

int

2000000000

Stat point cap per tier

DWLevelUpPoint

int

5

Stat points per level for Dark Wizard

DKLevelUpPoint

int

5

Dark Knight

FELevelUpPoint

int

5

Fairy Elf

MGLevelUpPoint

int

7

Magic Gladiator

DLLevelUpPoint

int

7

Dark Lord

SULevelUpPoint

int

5

Summoner

RFLevelUpPoint

int

7

Rage Fighter

PlusStatPoint

int

1

Bonus points per level applied to every class

LevelUpRestoreLife

0 or 1

1

1 = HP filled to max on level up (normal and master)

LevelUpRestoreMana

0 or 1

1

1 = MP filled to max on level up

LevelUpRestoreShield

0 or 1

1

1 = SD filled to max on level up

LevelUpRestoreBP

0 or 1

1

1 = AG filled to max on level up

Create Character Settings

Controls which advanced classes can be created and the prerequisites. Each advanced class (MG, DL, SU, RF) has four keys: a master CreateType, plus per-tier CreateLevel_AL0-3, CreateReset_AL0-3, and CreateMasterReset_AL0-3.

Key
Effect

CharacterCreateSwitch

Master toggle for all character creation

<CLASS>CreateType

0 = another character on the account must meet the requirement. 1 = apply the requirement to the creating character

<CLASS>CreateLevel_AL0-3

Minimum character level

<CLASS>CreateReset_AL0-3

Minimum reset count

<CLASS>CreateMasterReset_AL0-3

Minimum master reset count

Valid class prefixes: MG, DL, SU, RF.

Shield Gauge Settings

Key
Type
Default
Effect

ShieldGaugeRate

int %

90

Baseline shield damage absorption rate

ShieldGaugeConstA

int

12

Shield formula linear term

ShieldGaugeConstB

int

15

Shield formula quadratic term

ShieldGaugeAttackRate

int

2

Shield consumption rate per attack

ShieldGaugeAttackComboMiss

0 or 1

0

1 consumes shield on combo misses too

ShieldGaugePvE

0 or 1

0

1 = SD also absorbs monster hits, using the same ShieldGaugeRate split. 0 = SD only takes player damage (vanilla)

SD only regenerates in safe zones (or with SD-recovery item options). With ShieldGaugePvE = 1, SD drains while hunting and stays low until the player uses SD potions or returns to town.

Master Skill Tree Settings

Key
Default
Effect

MasterSkillTree

0

1 enables the master skill tree

MasterSkillTreePoint

1

Skill points per master level

MasterSkillTreeMaxLevel

400

Master level cap

Gens System Settings

Faction-vs-faction contribution system.

Key
Type
Default
Effect

GensSystemSwitch

0 or 1

1

Master toggle

GensSystemGuildLock

0 or 1

0

1 locks faction per guild (all members share one faction)

GensSystemPartyLock

0 or 1

0

1 prevents parties mixing factions

GensSystemInsertMinLevel

int

50

Minimum level to join a faction

GensSystemContributionFloodTime

seconds

30

Minimum gap between contribution-earning kills

GensSystemVictimContributionDecrease

int

3

Base contribution lost per death to a rival

GensSystemKillerContributionIncrease

int

500

Base contribution gained per rival kill

GensSystemVictimMinContributionDecrease

int

1

Lower bound on victim loss

GensSystemVictimMaxContributionDecrease

int

15

Upper bound on victim loss

GensSystemKillerMinContributionIncrease

int

1

Lower bound on killer gain

GensSystemKillerMaxContributionIncrease

int

15

Upper bound on killer gain

GensSystemStartRewardDay

int

1

First day of the weekly reward window

GensSystemFinalRewardDay

int

7

Last day of the weekly reward window

Helper Settings (MuHelper)

Key
Type
Default
Effect

HelperSwitch

0 or 1

1

Master toggle for MuHelper

OffAttackSwitch

0 or 1

1

Master toggle for offline-attack. Gates both the /offattack chat command and the MuHelper Offline bridge. When 0: chat command rejected with notice, bridge rejected before transition

HelperActiveLevel

int

80

Minimum level to use MuHelper

HelperActiveDelay

minutes

5

Zen charge interval

HelperActiveMoney1

zen

20

Cost tier 1 (baseline level)

HelperActiveMoney2

zen

50

Cost tier 2

HelperActiveMoney3

zen

80

Cost tier 3

HelperActiveMoney4

zen

100

Cost tier 4

HelperActiveMoney5

zen

120

Cost tier 5 (high level)

HelperMaxLevel

int

0

Global fallback maximum combined level (Level + Master Level) allowed to run MuHelper. 0 = no maximum. Used by any map whose HelperMaxLevel is *

HelperExpRate

int %

100

Global fallback XP percentage earned while MuHelper is active. 100 = full XP, 50 = half. Used by any map whose HelperExpRate is *

OffAttackMinLevel

int

0

Minimum character level allowed to enter the /offattack chat command or MuHelper Offline bridge. 0 = no minimum. Global fallback for any map whose OffAttackMinLevel is *

OffAttackMaxLevel

int

0

Maximum combined level (Level + Master Level) allowed to use offline-attack. 0 = no maximum. Global fallback for any map whose OffAttackMaxLevel is *

HelperMaxLevel, HelperExpRate, OffAttackMinLevel, and OffAttackMaxLevel are the four server-wide fallbacks for the per-map MuHelper and Offline Mode limits. When a map in MapManager.xml sets one of these attributes to *, the value here is used for that map. See that page for the per-map overrides.

MuHelper Offline Bridge

When a player ticks the OffLine checkbox in the MuHelper window and then presses Start, the server skips the normal helper billing loop and instead transitions the character directly into the same offline-attack mode used by the /offattack chat command.

Flow:

  1. Player ticks the OffLine box and configures their primary attack skill in the MuHelper window. Closing the window saves the config to DataServer.

  2. Player presses Start on MuHelper.

  3. If the OffLine flag is set and the location allows it, the server starts custom-attack mode using the player's primary MuHelper attack skill, switches it to offline, and signals the client to fully exit the process (not just disconnect to the login screen). The character keeps attacking server-side until killed or the time limit runs out. Helper itself never runs - no Zen billing, no client-side helper logic.

  4. If the OffLine flag is set but the location does not allow offline-attack (safezone, event map, trade/duel, no skill resolved), the server emits a chat notice and the helper does not start - the player stays online and must untick the box (or move to a valid map) before pressing Start again.

  5. If the OffLine flag is not set, Start behaves normally: helper billing kicks in, client runs MuHelper.

Stop on MuHelper always behaves normally (stops helper). It is not part of the offline bridge.

On reconnect: the auto-resume entry written when offline-attack starts is force-cleared by the bridge, so when the player relaunches the client and logs back in, the offline attack stops and the character is back to a clean online state. This differs from /attack followed by /offattack chat commands - the chat-command path leaves auto-resume intact (per the existing /offattack behavior).

Restrictions inherited from /offattack:

  • Map must allow custom attack (MapManager.xml Attack flag).

  • Character must not be in safezone, trade, duel, or any event map (Chaos Castle, Doppelganger, Blood Castle, Crywolf, Illusion Temple, Deathmatch Arena, Doppelganger, Imperial Guardian).

  • Character must have at least one valid attack skill (the primary MuHelper attack skill, falling back to the class default).

What carries over from MuHelper

MuHelper config
Used in offline mode?

Primary attack skill (Skill 1 in the UI)

Yes — used as the single skill /offattack cycles

OffLine checkbox

Yes — gates whether Start triggers the bridge

Activation skills (Skill 2, Skill 3)

No — offline runs one skill only

Skill conditions (mob count, on-attack triggers)

No

Combo

No

Buff skills picked in MuHelper UI

No — see "Built-in defaults" below

Auto Heal / Drain Life thresholds

No

Hunting range, targeting mode (nearest / lowest HP)

No — picks first valid target in viewport

Long-range counter-attack, return-to-position, max seconds away

No

Pickup options (Zen, Jewels, Ancient, Excellent, Extras)

Yes - offline mode walks to and picks up ground items matching the saved pickup filters

Auto Repair

Yes - equipped items at or below 50% durability are self-repaired offline (deducts zen), throttled to a 5-second check

Pet attack mode (Dark Raven / Dark Horse)

No

Self-defense, auto-accept friend / guild

No

Auto Reset checkbox in MuHelper

No (MuHelper-side flag); the Reset System plugin AutoReset state is separate and continues to fire if the character hits the level cap, regardless of mode

Built-in defaults (what offline mode does on its own)

These run server-side regardless of MuHelper config, driven by the CustomAttack* keys. Most live in this file; the auto-potion cooldown lives in Custom.dat:

Behavior
Source / tunable

Single-skill attack on nearest viewable mob

Skill from MuHelper Skill 1; range / animation from Skill.txt

Auto HP potion below 50% Life

Inventory slots (14,3) Big -> (14,2) Middle -> (14,1) Small; cooldown CustomAttackAutoPotionDelay (Custom.dat)

Auto Mana potion below 50% Mana

Inventory slots (14,6) -> (14,5) -> (14,4); cooldown CustomAttackAutoPotionDelay (Custom.dat)

Stay within 5 tiles of start position

Auto-stops if dragged outside

Per-AccountLevel time limit

CustomAttackTime_AL0-3 in Common.dat (0 = unlimited)

Per-AccountLevel autobuff (class-hardcoded buffs)

CustomAttackAutoBuff_AL0-3; bridge passes SetBuff=0 so this is off by default in the bridge path even when configured. The /attack chat command can opt in via /attack <skill> 1

XP rate while offline

OffAttackExperienceRate_AL0-3 (normal level), OffAttackMasterExperienceRate_AL0-3 (master level). Both REPLACE the online rate, not multiply it

Stop on safezone / trade / duel

Hardcoded

The hardcoded class buffs (when autobuff is enabled by chat command, not the bridge) cycle through:

  • Elf: Infinity Arrow, Greater Defense, Greater Damage, Heal

  • DW / DK / DL / SU / RF: class-specific class buffs (Soul Barrier, Swell Life, Greater Critical Damage, Damage Reflection / Berserker, Ignore Defense / Increase Health / Increase Block)

Disabling offline mode

Gate

File

Blocks chat /offattack?

Blocks MuHelper Offline bridge?

OffAttackSwitch=0

this file

Yes

Yes

Per-map Attack flag

Yes

Yes

Per-AccountLevel Enable on /offattack

Command.xml Index 67

Yes

No — the bridge calls handlers directly, it does not go through CommandManager

CustomAttackTime_AL{N}=0

this file

No (means "no time limit")

No (same)

HelperSwitch=0

this file

No (unrelated)

Yes — bridge runs in the helper-start path; if helper is master-disabled, the Start packet is rejected before the bridge can fire

Recommended: use OffAttackSwitch=0 for a single-key global lockout - it's the only gate that blocks both entry points (chat command and MuHelper bridge) cleanly. When the bridge cannot proceed, it sends a chat notice and the helper does not fall back to online mode - the player must untick the OffLine box to start the helper online.

The OffLine checkbox is opt-in. Players who don't tick it press Start and get normal online helper as before.

Cash Shop Settings

Key
Type
Default
Effect

CashShopSwitch

0 or 1

1

Master toggle

CashShopGoblinPointDelay

minutes

0

Interval between automatic Goblin Point grants. 0 disables the timer

CashShopGoblinPointValue_AL0-3

int

0

Goblin Points granted per tick, per tier

CashShopScriptVersion* and CashShopBannerVersion* appear in the shipped template but are not read by the current GameServer build. Leave them in place for forward compatibility; changes have no effect.

Event Inventory and Mu Rummy

Party Settings

Party XP distribution for party sizes 1-5. A party never has more than 5 members.

Key
Default
Effect

PartyMaxMembers

5

Maximum slots in a party

PartyReconnectTime

300 seconds

Window to rejoin a party after disconnect. Also the window after a GameServer start in which clients may restore their parties (members must list each other, normal party map and Gens rules apply). 0 = both off

PartyGeneralExperience1-5

100 / 80 / 75 / 65 / 60

Percentage share per party size N (generic party). Keys 6-10 are no longer read

PartySpecialExperience1-5

100 / 80 / 75 / 65 / 60

Share when 3 or more different classes are in range of the kill

PartyDisablePK

0

1 prevents PK characters from joining parties

PartyExperienceDistance

0

Tiles a party member may be from the dying monster and still get a share of the experience. Straight line, same map only. 0 = vanilla 10. Does not affect party heal/buff range, which stays at 10

PartyExperienceRequireLOS

0

1 also requires a clear line of sight: a wall between the monster and the member blocks that member's share. 0 = vanilla, walls ignored

Potion Settings

Per-potion restore rates, percent of max pool.

Key
Default
Effect

ApplePotionRate

10

Apple: % of max HP restored

SmallLifePotionRate

20

Small Healing

MidleLifePotionRate

30

Medium Healing

LargeLifePotionRate

25

Large Healing

SmallManaPotionRate

20

Small Mana

MidleManaPotionRate

30

Medium Mana

LargeManaPotionRate

40

Large Mana

SmallShieldPotionRate

25

Small Shield

MidleShieldPotionRate

35

Medium Shield

LargeShieldPotionRate

45

Large Shield

SmallCompoundPotionRate1/2

10 / 5

Small Compound: HP / MP (both restored)

MidleCompoundPotionRate1/2

25 / 10

Medium Compound

LargeCompoundPotionRate1/2

45 / 20

Large Compound

EliteLifePotionRate

100

Elite Healing

EliteManaPotionRate

100

Elite Mana

EliteShieldPotionRate

65

Elite Shield

Transformation Ring Settings

Map slots 1-6 to a transformation item index. Values are item subtypes in the Miscellaneous item category.

Key
Default
Ring slot

TransformationRing1

2

Slot 1

TransformationRing2

7

Slot 2

TransformationRing3

14

Slot 3

TransformationRing4

8

Slot 4

TransformationRing5

9

Slot 5

TransformationRing6

41

Slot 6

Jewel Settings

Success rates (percent) for jewel and stone operations. Each group has four _AL0-3 keys.

Key group
Default
Effect

SoulSuccessRate_AL0-3

100

Jewel of Soul on item +level up

LifeSuccessRate_AL0-3

50

Jewel of Life on item +option

HarmonySuccessRate_AL0-3

50

Jewel of Harmony enhancement

SmeltStoneSuccessRate1_AL0-3

50

Harmony Refining Stone purification

SmeltStoneSuccessRate2_AL0-3

70

Harmony Refining Stone smelt

AddLuckSuccessRate1_AL0-3

25

Lucky option roll attempt 1

AddLuckSuccessRate2_AL0-3

20

Lucky option roll attempt 2

Fruit Settings

Stat point redistribution via fruits. _AL0-3 rate keys of -1 mean the engine uses built-in formulas.

Key
Default
Effect

FruitAddPointMin

1

Minimum stat points added per fruit

FruitAddPointMax

3

Maximum added

FruitAddPointSuccessRate_AL0-3

-1

Success rate override. -1 keeps engine default

FruitSubPointMin

1

Minimum subtracted per fruit

FruitSubPointMax

9

Maximum subtracted

FruitSubPointSuccessRate_AL0-3

-1

Subtract success rate override. -1 keeps engine default

HP Bonus System

Grants bonus HP per master reset.

Key
Default
Effect

HpBonus_AL0-3

1

HP added per master reset, per tier

HpBonus_MAX

1

Absolute cap on total bonus HP. Missing key = 0

Bonus HP = master resets x HpBonus_ALn, cut down to HpBonus_MAX. The shipped cap of 1 makes the system almost do nothing (at most +1 HP). Raise HpBonus_MAX to use it.

Die System

Chat announcements on death.

Key
Default
Effect

DieUserSwitch

1

Broadcasts when a player dies

DieMonsterSwitch

1

Broadcasts when a notable monster dies

Online User System

Key
Default
Effect

OnlineGmSwitch

1

Announces GM login/logout

OnlineUserSwitch

1

Announces player login/logout

Experience Message

Key
Default
Effect

DisableExpMessage

0

1 hides XP-per-kill messages; only level-up messages remain. Premium feature

Pushback Effects

Each flag removes the push/fall animation triggered by the named skill when 1.

Key
Default
Removes pushback from

DisableLightningEffect

1

Lightning

DisableCycloneEffect

1

Cyclone

DisableTwistEffect

1

Twisting Slash

DisableLungEffect

1

Lunge

DisableFallingEffect

1

Falling Slash

DisableUpperCutEffect

1

Uppercut

Wing Class Mix Restrictions

Per-class blocks on wing creation in the Chaos Machine.

Key
Default
Effect

DisableWingMixDL

0

1 prevents Dark Lord from mixing wings

DisableWingMixSU

0

1 prevents Summoner from mixing wings

DisableWingMixRF

0

1 prevents Rage Fighter from mixing wings

PK Event Access

Key
Default
Effect

PkCanEnterBC

0

1 allows PK characters into Blood Castle

PkCanEnterCC

0

1 allows PK into Chaos Castle

PkCanEnterDS

0

1 allows PK into Devil Square

PK Item Drop

Controls item drops from PKed characters.

Key
Type
Default
Effect

PkItemDropSwitch

0 or 1

0

Master toggle

PkItemDropEnable_AL0-3

0 or 1

1 each

Per-tier enable

PkItemDropMinLevel

int

0

Minimum character level before drops trigger

PkItemDropMaxLevel

int

15

Maximum level at which drops still trigger

PkItemDropExecellent

0 or 1

1

Include Excellent items in the drop pool

PkItemDropSocketItem

0 or 1

1

Include Socket items

PkItemDropSetItem

0 or 1

1

Include Set items

PkItemDropHarmony

0 or 1

1

Include Harmony-enhanced items

PkItemDropRate

int out of 10000

100

Drop chance per eligible item. 100 = 1%

Disconnect Online Account

Key
Default
Effect

DisconnectOnlineAccount

1

On duplicate login, kick the existing session instead of rejecting the new one

Castle Siege Skills

Key
Default
Effect

EnableCsSkillsAllMaps

1

1 enables Castle Siege skill effects outside the CS map

Combo System

Key
Default
Effect

EnableComboToAllSwitch

1

1 enables combo skills for every class

ComboEnablePushEffect

1

1 knocks back monsters on combo hits

EnableComboToAllSwitch remains the master toggle. The CustomCombo plugin (Data/Plugins/Characters/CustomCombo.xml) extends the system by defining which skills count as primary and secondary in a combo for the classes that unlock it. CustomCombo does not shadow this switch; a class with combos disabled here stays without combos regardless of plugin content.

Online Rewards

Periodic zen / coin rewards for connected players. OnlineRewardOfflineSystems = 1 extends this to offline accounts. Coin1 = WC, Coin2 = WP, Coin3 = GP.

Key
Default
Effect

OnlineRewardOfflineSystems

0

1 applies rewards even while offline

OnlineRewardCoin1Delay

60 min

Interval for Coin1

OnlineRewardCoin1Value_AL0-3

0

Amount per interval for each tier

OnlineRewardCoin2Delay

60 min

Interval for Coin2

OnlineRewardCoin2Value_AL0-3

0

Amount per interval

OnlineRewardCoin3Delay

60 min

Interval for Coin3

OnlineRewardCoin3Value_AL0-3

0

Amount per interval

Skill Timing / Attack Speed

Global attack speed formula for every skill. Server is authoritative; client display is cosmetic.

Key
Default
Effect

MaxAttackSpeed

290

Cap on the speed a character reaches from stats alone. 0 = no cap

AttackSpeedOvercap

50

How much speed items, potions and buffs may add beyond MaxAttackSpeed. Stat (agility) speed alone can never exceed MaxAttackSpeed; bonuses stack on top of it and are clamped to this value. Absolute ceiling = MaxAttackSpeed + AttackSpeedOvercap. 0 = vanilla behavior, where bonuses cannot push past the cap

BaseSkillDelay

1000

Starting delay in ms (delay at speed 0)

SpeedGrowthFactor

23

APS gain per speed point. Higher = faster scaling

MinSkillDelay

100

Minimum delay in ms. Absolute floor

At the shipped defaults, stat speed caps at 290 (130 ms delay, 7.69 casts/sec) and bonuses may carry a character to 340.

Cross-File Dependencies

Setting here
Depends on or affects

EnableCastleSiege

Every Castle Siege schedule/reward block in Event.dat is inert when 0

WriteChaosMixLog

Gates log rows produced by ChaosMix plugin recipes

WriteLuckySpinLog

Gates log rows produced by the LuckySpin plugin (Data/Plugins/LuckySpin/ wheels)

GameDataOverlay

Path of the overlay folder shadowing shared Data/ - see Data Overlays

Create Character Settings

Combines with Character.dat class availability

<CLASS>LevelUpPoint, PlusStatPoint

Feed stat growth curves in Character.dat

ServerMinReset, ServerMaxReset, ServerMinMasterReset, ServerMaxMasterReset

Cap reset limits defined per-command in Command.dat

EnableComboToAllSwitch, ComboEnablePushEffect

Combo definitions live in CustomCombo plugin; this switch is the master gate

Skill Timing block (MaxAttackSpeed, BaseSkillDelay, SpeedGrowthFactor, MinSkillDelay)

Per-skill scaling in SkillTweaks plugin

HelperSwitch, HelperActive*

Pickup whitelist in MuHelperPickup plugin

CashShopSwitch, CashShopGoblinPointDelay, CashShopGoblinPointValue_AL*

Cash shop catalog in Cash Shop

MasterSkillTree, MasterSkillTreePoint, MasterSkillTreeMaxLevel

Tree definitions in MasterSkillTree

Common Issues

  • Stuck at "Loading files..." - LicenseKey empty or invalid

  • Port in use - ServerPort conflicts with another process or a previous crashed instance

  • Duplicate "GameServer online/offline" in ConnectServer log - ServerCode matches another running GameServer

  • Players report wrong server name - ServerName mismatch with what ConnectServer's ServerList.xml advertises

  • VIP users get the same rates as free accounts - _AL1/_AL2/_AL3 keys all set to the same value as _AL0

  • Players rubber-banded or disconnected for moving too fast - check the hack log for [MoveSpeed] lines; raise MoveSpeedGuardTolerance/MoveSpeedGuardSlack, or set MoveSpeedGuardMode to 1 (log-only) while you look into it

  • Cannot create Rage Fighter - RFCreateLevel_AL* set to 250 (known bug)

  • Castle Siege schedule does nothing - EnableCastleSiege = 0

Last updated