This file contains all packet definitions for packets which are sent from game client to the game server.
C3HeaderWithSubCode
0E
00
Ping
12
ClientToServer
This packet is sent by the client every few seconds. It contains the current "TickCount" of the client operating system and the attack speed of the selected character.
By the original server this is used to detect speed hacks.
4
IntegerLittleEndian
TickCount
8
ShortLittleEndian
AttackSpeed
C3Header
03
ChecksumResponse
8
ClientToServer
This packet is sent by the client as a response to a request with a challenge value.
By the original server, this is used to detect a modified client.
4
IntegerLittleEndian
Checksum
C1Header
00
PublicChatMessage
ClientToServer
A player sends a public chat message.
The message is forwarded to all surrounding players, including the sender.
3
String
Character
10
13
String
Message
C1Header
02
WhisperMessage
ClientToServer
A player sends a private chat message to a specific target player.
The message is forwarded to the target player.
3
String
ReceiverName
10
13
String
Message
C3HeaderWithSubCode
F1
01
LoginLongPassword
60
ClientToServer
The player tries to log into the game.
The server is authenticating the sent login name and password. If it's correct, the state of the player is proceeding to be logged in.
4
Binary
Username
The user name, "encrypted" with Xor3.
10
14
Binary
Password
The password, "encrypted" with Xor3.
20
34
IntegerBigEndian
TickCount
38
Binary
ClientVersion
5
43
Binary
ClientSerial
16
C3HeaderWithSubCode
F1
01
LoginShortPassword
50
ClientToServer
The player tries to log into the game.
The server is authenticating the sent login name and password. If it's correct, the state of the player is proceeding to be logged in.
4
Binary
Username
The user name, "encrypted" with Xor3.
10
14
Binary
Password
The password, "encrypted" with Xor3.
10
24
IntegerBigEndian
TickCount
28
Binary
ClientVersion
5
33
Binary
ClientSerial
16
C3HeaderWithSubCode
F1
01
Login075
48
ClientToServer
The player tries to log into the game.
The server is authenticating the sent login name and password. If it's correct, the state of the player is proceeding to be logged in.
4
Binary
Username
The user name, "encrypted" with Xor3.
10
14
Binary
Password
The password, "encrypted" with Xor3.
10
24
IntegerBigEndian
TickCount
28
Binary
ClientVersion
3
31
Binary
ClientSerial
16
C3HeaderWithSubCode
F1
02
LogOut
5
ClientToServer
When the client wants to leave the game in various ways.
Depending on the LogOutType, the game server does several checks and sends a response back to the client. If the request was successful, the game client either closes the game, goes back to server or character selection.
4
Enum
LogOutType
Type
C3HeaderWithSubCode
F1
03
LogOutByCheatDetection
6
ClientToServer
When the client wants to leave the game in various ways.
Depending on the LogOutType, the game server does several checks and sends a response back to the client. If the request was successful, the game client either closes the game, goes back to server or character selection.
4
Byte
Type
4
5
Byte
Param
C1HeaderWithSubCode
F2
00
ResetCharacterPointRequest
4
ClientToServer
Unknown?
Unknown?
C3HeaderWithSubCode
3F
01
PlayerShopSetItemPrice
Player Shop - Set Item Price
9
ClientToServer
The player wants to set a price of an item which is inside his personal item shop.
The price is set for the specified item. Works only if the shop is currently closed.
4
Byte
ItemSlot
5
IntegerLittleEndian
Price
C3HeaderWithSubCode
3F
02
PlayerShopOpen
Player Shop - Open
30
ClientToServer
The player wants to open his personal item shop.
The personal item shop is opened and the surrounding players are informed about it, including the own player.
4
String
StoreName
26
C3HeaderWithSubCode
3F
03
PlayerShopClose
Player Shop - Close
4
ClientToServer
The player wants to close his personal item shop.
The personal item shop is closed and the surrounding players are informed about it, including the own player.
C3HeaderWithSubCode
3F
05
PlayerShopItemListRequest
Player Shop - Item List Request
16
ClientToServer
A player opens a shop of another player.
The list of items is sent back, if the shop of the player is currently open.
4
ShortBigEndian
PlayerId
6
String
PlayerName
10
C3HeaderWithSubCode
3F
06
PlayerShopItemBuyRequest
Player Shop - Item Buy Request
17
ClientToServer
A player wants to buy the item of another players shop.
If the buyer has enough money, the item is sold to the player. Both players will get notifications about that.
4
ShortBigEndian
PlayerId
6
String
PlayerName
10
16
Byte
ItemSlot
C3HeaderWithSubCode
3F
07
PlayerShopCloseOther
Player Shop - close other shop
16
ClientToServer
A player closes the dialog of another players shop.
The server handles that by unsubscribing the player from changes of the shop.
4
ShortBigEndian
PlayerId
6
String
PlayerName
10
C3Header
22
PickupItemRequest
5
ClientToServer
A player requests to pick up an item which is laying on the ground in the near of the players character.
If the player is allowed to pick the item up, and is the first player which tried that, it tries to add the item to the inventory. The server sends a response about the result of the request.
3
ShortBigEndian
ItemId
C1Header
22
PickupItemRequest075
5
ClientToServer
A player requests to pick up an item which is laying on the ground in the near of the players character.
If the player is allowed to pick the item up, and is the first player which tried that, it tries to add the item to the inventory. The server sends a response about the result of the request.
3
ShortBigEndian
ItemId
C3Header
23
DropItemRequest
6
ClientToServer
A player requests to drop on item of his inventory on the ground.
When the specified coordinates are valid, and the item is allowed to be dropped, it will be dropped on the ground and the surrounding players are notified.
3
Byte
TargetX
4
Byte
TargetY
5
Byte
ItemSlot
C3Header
24
ItemMoveRequest
19
ClientToServer
A player requests to move an item within or between his available item storage, such as inventory, vault, trade or chaos machine.
3
Enum
ItemStorageKind
FromStorage
4
Byte
FromSlot
5
Binary
ItemData
12
17
Enum
ItemStorageKind
ToStorage
18
Byte
ToSlot
C3Header
24
ItemMoveRequestExtended
7
ClientToServer
A player requests to move an item within or between his available item storage, such as inventory, vault, trade or chaos machine.
3
Enum
ItemStorageKind
FromStorage
4
Byte
FromSlot
5
Enum
ItemStorageKind
ToStorage
6
Byte
ToSlot
C3Header
26
ConsumeItemRequest
6
ClientToServer
A player requests to 'consume' an item. This can be a potion which recovers some kind of attribute, or a jewel to upgrade a target item.
The server tries to 'consume' the specified item and responses accordingly.
3
Byte
ItemSlot
The inventory slot index of the item which should be consumed.
4
Byte
TargetSlot
If the item has an effect on another item, e.g. upgrading it, this field contains the inventory slot index of the target item.
5
Enum
FruitUsage
FruitConsumption
Defines how the fruit is used. Only applies, if the the item is a fruit.
FruitUsage
Defines how the fruit is used. Only applies, if the the item is a fruit.
AddPoints
Adds 1~3 stat points to the character.
0
RemovePoints
Removes 1~9 stat points from the character.
1
C1Header
26
ConsumeItemRequest075
5
ClientToServer
A player requests to 'consume' an item. This can be a potion which recovers some kind of attribute, or a jewel to upgrade a target item.
The server tries to 'consume' the specified item and responses accordingly.
3
Byte
ItemSlot
The inventory slot index of the item which should be consumed.
4
Byte
TargetSlot
If the item has an effect on another item, e.g. upgrading it, this field contains the inventory slot index of the target item.
C3Header
30
TalkToNpcRequest
Talk to NPC
5
ClientToServer
A player wants to talk to an NPC.
Based on the NPC type, the server sends a response back to the game client. For example, if it's a merchant NPC, it sends back that a merchant dialog should be opened and which items are offered by this NPC.
3
ShortBigEndian
NpcId
C1Header
31
CloseNpcRequest
Close NPC
3
ClientToServer
A player closes the dialog which was opened by an interaction with a NPC.
The server updates the state of the player accordingly.
C3Header
32
BuyItemFromNpcRequest
Buy Item From NPC Request
4
ClientToServer
A player wants to buy an item from an opened NPC merchant.
If the player has enough money, the item is added to the inventory and money is removed. Corresponding messages are sent back to the game client.
3
Byte
ItemSlot
Item Slot (NPC Store)
C3Header
33
SellItemToNpcRequest
Sell Item To NPC
4
ClientToServer
A player wants to sell an item of his inventory to the opened NPC merchant.
The item is sold for money to the NPC. The item is removed from the inventory and money is added. Corresponding messages are sent back to the game client.
3
Byte
ItemSlot
Item Slot (Inventory)
C1Header
34
RepairItemRequest
5
ClientToServer
A player wants to repair an item of his inventory.
The item is repaired if the player has enough money in its inventory. A corresponding response is sent.
3
Byte
ItemSlot
Inventory item slot of the target item. If it's 0xFF, the player wants to repair all items - this is only possible with some opened NPC dialogs. Repairing the pet item slot (8) is only possible when the pet trainer npc is opened.
4
Boolean
IsSelfRepair
If the player repairs it over his inventory, it's true. However, a server should never rely on this flag and do his own checks.
C1HeaderWithSubCode
8E
02
WarpCommandRequest
Warp Command (pre-season 6)
10
ClientToServer
A player selected to warp by selecting an entry in the warp list (configured in game client files).
If the player has enough money and is allowed to enter the map, it's getting moved to there.
4
IntegerLittleEndian
CommandKey
A command key, which is generated by a 'secret' algorithm. Not considered in OpenMU.
8
ShortLittleEndian
WarpInfoIndex
The index of the entry in the warp list.
C3Header
1C
EnterGateRequest
8
ClientToServer
Usually: When the player enters an area on the game map which is configured as gate at the client data files. In the special case of wizards, this packet is also used for the teleport skill. When this is the case, GateNumber is 0 and the target coordinates are specified.
If the player is allowed to enter the "gate", it's moved to the corresponding exit gate area.
4
ShortLittleEndian
GateNumber
6
Byte
TeleportTargetX
7
Byte
TeleportTargetY
C3Header
1C
EnterGateRequest075
6
ClientToServer
Usually: When the player enters an area on the game map which is configured as gate at the client data files. In the special case of wizards, this packet is also used for the teleport skill. When this is the case, GateNumber is 0 and the target coordinates are specified.
If the player is allowed to enter the "gate", it's moved to the corresponding exit gate area.
3
Byte
GateNumber
4
Byte
TeleportTargetX
5
Byte
TeleportTargetY
C3Header
B0
TeleportTarget
7
ClientToServer
A wizard uses the 'Teleport Ally' skill to teleport a party member of his view range to a nearby coordinate.
If the target player is in the same party and in the range, it will teleported to the specified coordinates.
3
ShortLittleEndian
TargetId
5
Byte
TeleportTargetX
6
Byte
TeleportTargetY
C3HeaderWithSubCode
B1
01
ServerChangeAuthentication
69
ClientToServer
After the client connected to another server due map change.
The player spawns on the new server.
4
Binary
AccountXor3
12
16
Binary
CharacterNameXor3
12
28
IntegerLittleEndian
AuthCode1
32
IntegerLittleEndian
AuthCode2
36
IntegerLittleEndian
AuthCode3
40
IntegerLittleEndian
AuthCode4
44
IntegerLittleEndian
TickCount
48
Binary
ClientVersion
5
53
Binary
ClientSerial
16
C1HeaderWithSubCode
B2
00
CastleSiegeStatusRequest
4
ClientToServer
The player opened a castle siege npc and requests the current castle siege status information.
The server returns the status of the castle siege event.
C1HeaderWithSubCode
B2
01
CastleSiegeRegistrationRequest
4
ClientToServer
The player opened a castle siege npc to register his guild alliance.
The server returns the result of the castle siege registration.
C1HeaderWithSubCode
B2
02
CastleSiegeUnregisterRequest
5
ClientToServer
The player opened a castle siege npc to un-register his guild alliance.
The server returns the result of the castle siege un-registration.
4
Boolean
IsGivingUp
true
C1HeaderWithSubCode
B2
03
CastleSiegeRegistrationStateRequest
4
ClientToServer
The player opened a castle siege npc and requests the state about the own registration.
The server returns the state of the castle siege registration, which includes the number of submitted guild marks.
C1HeaderWithSubCode
B2
04
CastleSiegeMarkRegistration
5
ClientToServer
The player opened a castle siege npc and adds a guild mark to his guilds registration.
The server returns a response, which includes the number of submitted guild marks.
4
Byte
ItemIndex
C1HeaderWithSubCode
B2
05
CastleSiegeDefenseBuyRequest
12
ClientToServer
The player opened a castle siege npc and requests to buy a gate or statue for a specific position (index)..
The server returns a response.
4
IntegerLittleEndian
NpcNumber
8
IntegerLittleEndian
NpcIndex
C1HeaderWithSubCode
B2
06
CastleSiegeDefenseRepairRequest
12
ClientToServer
The player opened a castle siege npc and requests to repair a gate or statue at a specific position (index)..
The server returns a response.
4
IntegerLittleEndian
NpcNumber
8
IntegerLittleEndian
NpcIndex
C1HeaderWithSubCode
B2
07
CastleSiegeDefenseUpgradeRequest
20
ClientToServer
The player opened a castle siege npc and requests to upgrade a gate or statue at a specific position (index)..
The server returns a response.
4
IntegerLittleEndian
NpcNumber
8
IntegerLittleEndian
NpcIndex
12
IntegerLittleEndian
NpcUpgradeType
16
IntegerLittleEndian
NpcUpgradeValue
C1HeaderWithSubCode
B2
08
CastleSiegeTaxInfoRequest
4
ClientToServer
The guild master opened a castle siege npc to manage the castle.
The server returns the tax information.
C1HeaderWithSubCode
B2
09
CastleSiegeTaxChangeRequest
9
ClientToServer
The guild master wants to change the tax rate in the castle npc.
The server changes the tax rates accordingly.
4
Byte
TaxType
0=Undefined, 1=ChaosMachine, 2 = Normal, 3 = EntranceFeeLandOfTrials
5
IntegerBigEndian
TaxRate
C1HeaderWithSubCode
B2
10
CastleSiegeTaxMoneyWithdraw
8
ClientToServer
The guild master wants to withdraw the tax money from the castle npc.
The server moves the money into the inventory of the guild master.
4
IntegerBigEndian
Amount
C1HeaderWithSubCode
B2
12
ToggleCastleGateRequest
7
ClientToServer
The guild member of the castle owner wants to toggle the gate switch.
The castle gate is getting opened or closed.
4
Boolean
CloseState
5
ShortBigEndian
GateId
C1HeaderWithSubCode
B2
1D
CastleGuildCommand
8
ClientToServer
The guild master sent a command to his guild during the castle siege event.
The command is shown on the mini map of the guild members.
4
Byte
Team
Team Number 0 to 7.
5
Byte
PositionX
6
Byte
PositionY
7
Byte
Command
0 = Attack, 1 = Defend, 2 = Wait
C1HeaderWithSubCode
B2
1F
CastleSiegeHuntingZoneEntranceSetting
5
ClientToServer
A guild member of the castle owners wants to enter the hunting zone (e.g. Land of Trials).
The server changes the entrance setting of the hunting zone.
4
Boolean
IsPublic
C1HeaderWithSubCode
B3
01
CastleSiegeGateListRequest
4
ClientToServer
The guild master opened the castle npc and the client needs a list of all gates.
The server returns the list of gates and their status.
C1HeaderWithSubCode
B3
02
CastleSiegeStatueListRequest
4
ClientToServer
The guild master opened the castle npc and the client needs a list of all statues.
The server returns the list of statues and their status.
C1Header
B4
CastleSiegeRegisteredGuildsListRequest
3
ClientToServer
The guild master opened an npc and needs the list of registered guilds for the next siege.
The server returns the list of guilds for the next siege.
C1Header
B5
CastleOwnerListRequest
3
ClientToServer
The guild master opened an npc and needs the list of current guilds which are the castle owners.
The server returns the list of guilds which are the castle owners.
C1HeaderWithSubCode
B7
01
FireCatapultRequest
7
ClientToServer
A player wants to fire a catapult during the castle siege event.
The server fires the catapult.
4
ShortBigEndian
CatapultId
6
Byte
TargetAreaIndex
C1HeaderWithSubCode
B7
04
WeaponExplosionRequest
6
ClientToServer
After the player fired a catapult and hit another catapult.
The server damages the other catapult.
4
ShortBigEndian
CatapultId
C1HeaderWithSubCode
B9
02
GuildLogoOfCastleOwnerRequest
4
ClientToServer
The client requests the guild logo of the current castle owner guild.
The server returns the guild logo.
C1HeaderWithSubCode
B9
05
CastleSiegeHuntingZoneEnterRequest
8
ClientToServer
A guild member of the castle owners wants to enter the hunting zone (e.g. Land of Trials).
The server takes the entrance money, puts it into the tax wallet and warps the player to the hunting zone.
4
IntegerLittleEndian
Money
C1HeaderWithSubCode
BD
00
CrywolfInfoRequest
4
ClientToServer
A player enters the crywolf map.
The server returns data about the state of the crywolf map.
C1HeaderWithSubCode
BD
03
CrywolfContractRequest
6
ClientToServer
A player wants to make a contract at the crywolf statue for the crywolf event.
The server tries to enter a contract with the player and the specified statue.
4
ShortBigEndian
StatueId
C1HeaderWithSubCode
BD
09
CrywolfChaosRateBenefitRequest
4
ClientToServer
A player opens an item crafting dialog, e.g. the chaos machine.
The server returns data about the state of the benefit of the crywolf event. If it was won before, the chaos rate wents up a few percent.
C1HeaderWithSubCode
D0
03
WhiteAngelItemRequest
4
ClientToServer
?.
?.
C1HeaderWithSubCode
D0
07
EnterOnWerewolfRequest
4
ClientToServer
A player is running the quest "Infiltrate The Barracks of Balgass" (nr. 5), talking to the Werewolf npc in Crywolf.
It will warp the player to the map 'Barracks of Balgass' where the required monsters have to be killed to proceed with the quest.
C1HeaderWithSubCode
D0
08
EnterOnGatekeeperRequest
4
ClientToServer
A player is running the quest "Into the 'Darkness' Zone" (nr. 6), talking to the gatekeeper npc in 'Barracks of Balgass'.
It will warp the player to the map 'Balgass Refuge' where the required monsters have to be killed to proceed with the quest.
C1HeaderWithSubCode
D0
09
LeoHelperItemRequest
4
ClientToServer
The player talks to the npc "Leo the Helper" and requests an item.
The item will drop on the ground.
C1HeaderWithSubCode
D0
0A
MoveToDeviasBySnowmanRequest
4
ClientToServer
The player talks to the npc "Snowman" in Santa Village and requests to warp back to devias.
The player will be warped back to Devias.
C1HeaderWithSubCode
D0
10
SantaClausItemRequest
4
ClientToServer
The player talks to the npc "Santa Claus" and requests an item.
The item will drop on the ground.
C1HeaderWithSubCode
D1
00
KanturuInfoRequest
4
ClientToServer
A player talks with the kanturu entrance npc, and shows the enter dialog.
The server returns data about the state of the kanturu event map.
C1HeaderWithSubCode
D1
01
KanturuEnterRequest
4
ClientToServer
A player requests to enter the kanturu event map.
The server checks, if entrance is possible and acts accordingly.
C1HeaderWithSubCode
D1
10
RaklionStateInfoRequest
4
ClientToServer
?
?
C1HeaderWithSubCode
D2
01
CashShopPointInfoRequest
4
ClientToServer
The client needs information about how many cash shop points (WCoinC, WCoinP, GoblinPoints) are available to the player.
The server returns the cash shop points information.
C1HeaderWithSubCode
D2
02
CashShopOpenState
5
ClientToServer
The player opens or closes the cash shop dialog.
In case of opening, the server returns if the cash shop is available. If the player is in the safezone, it's not.
4
Boolean
IsClosed
C1HeaderWithSubCode
D2
03
CashShopItemBuyRequest
23
ClientToServer
The player wants to buy an item in the cash shop.
The item is bought and added to the cash shop item storage of the player.
4
IntegerLittleEndian
PackageMainIndex
8
IntegerLittleEndian
Category
12
IntegerLittleEndian
ProductMainIndex
16
ShortLittleEndian
ItemIndex
18
IntegerLittleEndian
CoinIndex
22
Byte
MileageFlag
C1HeaderWithSubCode
D2
04
CashShopItemGiftRequest
234
ClientToServer
The player wants to send a gift to another player.
The server buys the item with the credits of the player and sends it as gift to the other player.
4
IntegerLittleEndian
PackageMainIndex
8
IntegerLittleEndian
Category
12
IntegerLittleEndian
ProductMainIndex
16
ShortLittleEndian
ItemIndex
18
IntegerLittleEndian
CoinIndex
22
Byte
MileageFlag
23
String
GiftReceiverName
11
34
String
GiftText
200
C1HeaderWithSubCode
D2
05
CashShopStorageListRequest
10
ClientToServer
The player opened the cash shop dialog or used paging of the storage.
In case of opening, the server returns if the cash shop is available. If the player is in the safezone, it's not.
4
IntegerLittleEndian
PageIndex
8
Byte
InventoryType
C1HeaderWithSubCode
D2
0A
CashShopDeleteStorageItemRequest
234
ClientToServer
The player wants to delete an item of the cash shop storage.
The server removes the item from cash shop storage.
4
IntegerLittleEndian
BaseItemCode
8
IntegerLittleEndian
MainItemCode
12
Byte
ProductType
C1HeaderWithSubCode
D2
0B
CashShopStorageItemConsumeRequest
15
ClientToServer
The player wants to get or consume an item which is in the cash shop storage.
The item is applied or added to the inventory.
4
IntegerLittleEndian
BaseItemCode
8
IntegerLittleEndian
MainItemCode
12
ShortLittleEndian
ItemIndex
14
Byte
ProductType
C1HeaderWithSubCode
D2
13
CashShopEventItemListRequest
8
ClientToServer
When the player wants to see through the event item list.
The server sends a list with event items back.
4
IntegerLittleEndian
CategoryIndex
C1HeaderWithSubCode
83
00
UnlockVault
7
ClientToServer
The player wants to unlock the protected vault with a pin.
The vault lock state on the server is updated. VaultProtectionInformation is sent as response.
4
ShortLittleEndian
Pin
C1HeaderWithSubCode
83
01
SetVaultPin
27
ClientToServer
The player wants to set a new pin for the vault when it's in unlocked state.
The vault pin is set. VaultProtectionInformation is sent as response.
4
ShortLittleEndian
Pin
6
String
Password
The password of the account, which is required to set a new vault pin.
20
C1HeaderWithSubCode
83
02
RemoveVaultPin
27
ClientToServer
The player wants to remove the pin for the vault when it's in unlocked state.
The vault pin is removed. VaultProtectionInformation is sent as response.
6
String
Password
The password of the account, which is required to remove the vault pin.
20
C1Header
82
VaultClosed
3
ClientToServer
The player closed an opened vault dialog.
The state on the server is updated.
C1Header
81
VaultMoveMoneyRequest
8
ClientToServer
The player wants to move money from or to the vault storage.
The money is moved, if possible.
3
Enum
VaultMoneyMoveDirection
Direction
4
IntegerLittleEndian
Amount
VaultMoneyMoveDirection
Defines the moving direction of money between inventory and vault.
InventoryToVault
The money is moved from the inventory to the vault.
0
VaultToInventory
The money is moved from the vault to the inventory.
1
C1Header
BC
LahapJewelMixRequest
Jewel Mix (Lahap)
7
ClientToServer
When a player has the Lahap npc dialog open and wants to combine or disband jewel stacks.
If successful, the inventory is updated and the game client gets corresponding responses.
3
Enum
MixType
Operation
4
Enum
ItemType
Item
5
Enum
StackSize
MixingStackSize
6
Byte
UnmixingSourceSlot
MixType
Describes what kind of operation is requested.
Mix
The player wants to mix single jewels into a bundle.
0
Unmix
The player wants to disband a bundle into single jewels.
1
StackSize
Describes the size of a mixed stack.
Ten
A stack of 10 items.
0
Twenty
A stack of 20 items.
1
Thirty
A stack of 30 items.
2
ItemType
Describes the type of item which is mixed or unmixed.
JewelOfBless
Jewel of Bless.
0
JewelOfSoul
Jewel of Soul.
1
JewelOfLife
Jewel of Life.
2
JewelOfCreation
Jewel of Creation.
3
JewelOfGuardian
Jewel of Guardian.
4
Gemstone
The gemstone.
5
JewelOfHarmony
Jewel of Harmony.
6
JewelOfChaos
Jewel of Chaos.
7
LowerRefineStone
Lower refine stone.
8
HigherRefineStone
Higher refine stone.
9
C1Header
42
PartyListRequest
3
ClientToServer
When the player opens the party menu in the game client.
If the player is in a party, the server sends back a list with information about all players of the party.
C1Header
43
PartyPlayerKickRequest
4
ClientToServer
A party master wants to kick another player from his party, or when a player wants to kick himself from his party.
If the sending player is the party master, or the player wants to kick himself, the target player is removed from the party.
3
Byte
PlayerIndex
C1Header
40
PartyInviteRequest
5
ClientToServer
A party master wants to invite another player to his party.
If the requesting player has no party, or is the party master, a request is sent to the target player.
3
ShortBigEndian
TargetPlayerId
C1Header
41
PartyInviteResponse
6
ClientToServer
A player was invited by another player to join a party and this player sent the response back.
If the sender accepts the request, it's added to the party.
3
Boolean
Accepted
4
ShortBigEndian
RequesterId
C1Header
D4
WalkRequest
ClientToServer
A player wants to walk on the game map.
The player gets moved on the map, visible for other surrounding players.
3
Byte
SourceX
4
Byte
SourceY
5
0
Byte
StepCount
4
5
4
Byte
TargetRotation
4
6
Binary
Directions
The directions of the walking path. The target is calculated by taking the source coordinates and applying the directions to it.
C1Header
10
WalkRequest075
ClientToServer
A player wants to walk on the game map.
The player gets moved on the map, visible for other surrounding players.
3
Byte
SourceX
4
Byte
SourceY
5
0
Byte
StepCount
4
5
4
Byte
TargetRotation
4
6
Binary
Directions
The directions of the walking path. The target is calculated by taking the source coordinates and applying the directions to it.
C1Header
15
InstantMoveRequest
5
ClientToServer
It's sent when the player performs specific skills.
Usually, the player is moved instantly to the specified coordinates on the current map. In OpenMU, this request is not handled, because it allows hackers to "teleport" to any coordinates.
3
Byte
TargetX
4
Byte
TargetY
C1Header
18
AnimationRequest
5
ClientToServer
A player does any kind of animation.
The animation number and rotation is forwarded to all surrounding players.
3
Byte
Rotation
4
Byte
AnimationNumber
C1HeaderWithSubCode
F3
00
RequestCharacterList
Request Character List
5
ClientToServer
After a successful login or after the player decided to leave the game world to go back to the character selection screen.
The server sends the character list with all available characters.
4
Byte
Language
C1HeaderWithSubCode
F3
01
CreateCharacter
15
ClientToServer
The game client is at the character selection screen and the player requests to add a new character.
The server checks if the player is allowed to create the character and sends a response back.
4
String
Name
The name of the character which should be created.
10
14
2
Enum
CharacterClassNumber
Class
The character class of the character which should be created.
6
C1HeaderWithSubCode
F3
02
DeleteCharacter
24
ClientToServer
The game client is at the character selection screen and the player requests to delete an existing character.
The server checks if the player transmitted the correct security code and if the character actually exists. If all is valid, it deletes the character from the account. It then sends a response with a result code back to the game client.
4
String
Name
The name of the character which should be deleted.
10
14
String
SecurityCode
A security code (7 bytes long). Some game clients/servers also expect to transmit the account password (up to 20 bytes long) here. In OpenMU, we work with the security here, but are not limiting to a length of 7 bytes.
C1HeaderWithSubCode
F3
03
SelectCharacter
14
ClientToServer
The player selects a character to enter the game world on the character selection screen.
The player joins the game world with the specified character.
4
String
Name
The name of the character with which the player wants to join the game world
10
C1HeaderWithSubCode
F3
15
FocusCharacter
14
ClientToServer
The player focuses (clicks on it) a character with which he plans to enter the game world on the character selection screen.
The server checks if this character exists and sends a response back. If successful, the game client highlights the focused character.
4
String
Name
10
C1HeaderWithSubCode
F3
06
IncreaseCharacterStatPoint
Character - Stat Point Increase
5
ClientToServer
The player decides to add a stat point to a specific stat type, by pressing a plus-button in the character info menu.
The server checks if a level-up-point is available. If yes, it adds the point to the specified stat type. It sends a response back to the client.
4
Enum
CharacterStatAttribute
StatType
C3HeaderWithSubCode
F3
10
InventoryRequest
Character - Inventory request
4
ClientToServer
The player bought or sold an item through his personal shop.
The server sends the inventory list back to the client.
C1HeaderWithSubCode
F3
12
ClientReadyAfterMapChange
4
ClientToServer
After the server sent a map change message and the client has initialized the game map visualization.
The character is added to the internal game map and ready to interact with other entities.
C1HeaderWithSubCode
F3
30
SaveKeyConfiguration
ClientToServer
When leaving the game world with a character.
The server saves this configuration in its database.
4
Binary
Configuration
The binary data of the key configuration
C1HeaderWithSubCode
F3
52
AddMasterSkillPoint
6
ClientToServer
The player wants to add or increase the level of a specific master skill of the master skill tree.
Adds or increases the master skill level of the specified skill, if the character is allowed to do that. A response is sent back to the client.
4
ShortLittleEndian
SkillId
C1Header
11
HitRequest
7
ClientToServer
A player attacks a target without using a skill.
Damage is calculated and the target is hit, if the attack was successful. A response is sent back with the caused damage, and all surrounding players get an animation message.
3
ShortBigEndian
TargetId
5
Byte
AttackAnimation
6
Byte
LookingDirection
C3Header
19
TargetedSkill
7
ClientToServer
A player performs a skill with a target, e.g. attacking or buffing.
Damage is calculated and the target is hit, if the attack was successful. A response is sent back with the caused damage, and all surrounding players get an animation message.
3
ShortBigEndian
SkillId
5
ShortBigEndian
TargetId
C1Header
19
TargetedSkill075
6
ClientToServer
A player performs a skill with a target, e.g. attacking or buffing.
Damage is calculated and the target is hit, if the attack was successful. A response is sent back with the caused damage, and all surrounding players get an animation message.
3
Byte
SkillIndex
The index of the skill in the skill list.
4
ShortBigEndian
TargetId
C3Header
19
TargetedSkill095
6
ClientToServer
A player performs a skill with a target, e.g. attacking or buffing.
Damage is calculated and the target is hit, if the attack was successful. A response is sent back with the caused damage, and all surrounding players get an animation message.
3
Byte
SkillIndex
The index of the skill in the skill list.
4
ShortBigEndian
TargetId
C1Header
1B
MagicEffectCancelRequest
7
ClientToServer
A player cancels a specific magic effect of a skill, usually 'Infinity Arrow' and 'Wizardry Enhance'.
The effect is cancelled and an update is sent to the player and all surrounding players.
3
ShortBigEndian
SkillId
5
ShortBigEndian
PlayerId
C3Header
1E
AreaSkill
13
ClientToServer
A player is performing an skill which affects an area of the map.
It's forwarded to all surrounding players, so that the animation is visible. In the original server implementation, no damage is done yet for attack skills - there are separate hit packets.
3
ShortBigEndian
SkillId
5
Byte
TargetX
6
Byte
TargetY
7
Byte
Rotation
10
ShortBigEndian
ExtraTargetId
12
Byte
AnimationCounter
Animation counter which acts as a reference to the previously sent Area Skill Animation packet.
C3Header
DB
AreaSkillHit
ClientToServer
An area skill was performed and the client decided to hit a target.
The server is calculating the damage and applying it to the target. The attacker gets a response back with the caused damage.
3
ShortBigEndian
SkillId
5
Byte
TargetX
6
Byte
TargetY
7
Byte
HitCounter
A sequential hit counter which should prevent that hits are sent multiple times.
8
Byte
TargetCount
Number of targets which will follow in the structure.
9
Structure[]
TargetData
Targets
TargetCount
TargetData
Contains the data of the target
3
0
ShortBigEndian
TargetId
2
Byte
AnimationCounter
A sequential animation counter which acts as a reference to the previously sent Area Skill Animation packet.
C1Header
1E
AreaSkill075
7
ClientToServer
A player is performing an skill which affects an area of the map.
It's forwarded to all surrounding players, so that the animation is visible. In the original server implementation, no damage is done yet for attack skills - there are separate hit packets.
3
Byte
SkillIndex
The index of the skill in the skill list.
4
Byte
TargetX
5
Byte
TargetY
6
Byte
Rotation
C1Header
1D
AreaSkillHit075
ClientToServer
An area skill was performed and the client decided to hit one or more targets.
The server is calculating the damage and applying it to the targets. The attacker gets a response back with the caused damage.
3
Byte
SkillIndex
The index of the skill in the skill list.
4
Byte
TargetX
5
Byte
TargetY
6
Byte
TargetCount
The number of targets which are hit.
7
Structure[]
TargetData
Targets
TargetCount
TargetData
Contains the data of the target
2
0
ShortBigEndian
TargetId
C3Header
1E
AreaSkill095
7
ClientToServer
A player is performing an skill which affects an area of the map.
It's forwarded to all surrounding players, so that the animation is visible. In the original server implementation, no damage is done yet for attack skills - there are separate hit packets.
3
Byte
SkillIndex
The index of the skill in the skill list.
4
Byte
TargetX
5
Byte
TargetY
6
Byte
Rotation
C3Header
1D
AreaSkillHit095
ClientToServer
An area skill was performed and the client decided to hit one or more targets.
The server is calculating the damage and applying it to the targets. The attacker gets a response back with the caused damage.
3
Byte
SkillIndex
The index of the skill in the skill list.
4
Byte
TargetX
5
Byte
TargetY
6
Byte
Counter
7
Byte
TargetCount
The number of targets which are hit.
8
Structure[]
TargetData
Targets
TargetCount
TargetData
Contains the data of the target
2
0
ShortBigEndian
TargetId
C3Header
4A
RageAttackRequest
8
ClientToServer
A player performs a skill with a target, e.g. attacking or buffing.
Damage is calculated and the target is hit, if the attack was successful. A response is sent back with the caused damage, and all surrounding players get an animation message.
3
ShortBigEndian
SkillId
6
ShortBigEndian
TargetId
C1Header
4B
RageAttackRangeRequest
7
ClientToServer
A player (rage fighter) performs the dark side skill on a target.
The targets (up to 5) are determined and sent back to the player with the RageAttackRangeResponse.
3
ShortBigEndian
SkillId
5
ShortBigEndian
TargetId
C1Header
3D
TradeCancel
3
ClientToServer
The player wants to cancel the trade.
The trade is cancelled and the previous inventory state is restored.
C1Header
3C
TradeButtonStateChange
4
ClientToServer
The player presses the trade button.
The state change is forwarded to the trade partner. If both players press the trade button at the same time, the server will try to complete the trade by exchanging the items and money.
3
Enum
TradeButtonState
NewState
C3Header
36
TradeRequest
5
ClientToServer
The player requests to open a trade with another player.
The request is forwarded to the requested player.
3
ShortBigEndian
PlayerId
C1Header
37
TradeRequestResponse
4
ClientToServer
A requested player responded to a trade request of another player.
When the trade request was accepted, the server tries to open a new trade and sends corresponding responses to both players.
3
Boolean
TradeAccepted
C1Header
3A
SetTradeMoney
8
ClientToServer
A player requests to set an amount of money in the trade.
It's taken from the available money of the inventory. If the new money amount is lower than the amount which was set before, it's added back to the inventory. The trade partner is informed about any change.
4
IntegerLittleEndian
Amount
C1Header
C8
LetterDeleteRequest
6
ClientToServer
A player requests to delete a letter.
The letter is getting deleted.
4
ShortLittleEndian
LetterIndex
C1Header
C9
LetterListRequest
3
ClientToServer
The game client requests the current list of letters.
The server sends the list of available letters to the client.
C4Header
C5
LetterSendRequest
ClientToServer
A player wants to send a letter to another players character.
The letter is sent to the other character, if it exists and the player has the required money.
4
IntegerLittleEndian
LetterId
8
String
Receiver
10
18
String
Title
60
78
Byte
Rotation
79
Byte
Animation
80
ShortLittleEndian
MessageLength
82
String
Message
C1Header
C7
LetterReadRequest
6
ClientToServer
A player requests to read a specific letter of his letter list.
The server sends the requested letter content back to the game client.
4
ShortLittleEndian
LetterIndex
C1Header
53
Guild - Kick Player
GuildKickPlayerRequest
ClientToServer
A guild member wants to kick himself or a guild master wants to kick another player from its guild.
If the player is allowed to kick the player, it's removed from the guild. If the guild master kicks himself, the guild is disbanded. Corresponding responses are sent to all involved players.
3
String
PlayerName
10
13
String
SecurityCode
C1Header
50
GuildJoinRequest
5
ClientToServer
A player (non-guild member) requests to join a guild.
The request is forwarded to the guild master. There can only be one request at a time. If the guild master already has an open request, a corresponding response is directly sent back to the requesting player.
3
ShortBigEndian
GuildMasterPlayerId
C1Header
51
GuildJoinResponse
6
ClientToServer
A guild master responded to a previously sent request.
If the request was accepted by the guild master, the previously requesting player is added to the guild.
3
Boolean
Accepted
4
ShortBigEndian
RequesterId
C1Header
52
GuildListRequest
3
ClientToServer
A guild player opens its guild menu in the game client.
A list of all guild members and their state is sent back as response.
C1Header
55
GuildCreateRequest
44
ClientToServer
When a player wants to create a guild.
The guild is created and the player is set as the new guild master of the guild.
4
String
GuildName
8
12
Binary
GuildEmblem
32
The guild emblem in a custom bitmap format. It supports 16 colors (one transparent) per pixel and has a size of 8 * 8 pixel.
C1Header
55
GuildCreateRequest075
43
ClientToServer
When a player wants to create a guild.
The guild is created and the player is set as the new guild master of the guild.
3
String
GuildName
8
11
Binary
GuildEmblem
32
The guild emblem in a custom bitmap format. It supports 16 colors (one transparent) per pixel and has a size of 8 * 8 pixel.
C1Header
54
GuildMasterAnswer
4
ClientToServer
The player has the dialog of the guild master NPC opened and decided about its next step.
It either cancels the guild creation or proceeds with the guild creation dialog where the player can enter the guild name and symbol.
3
Boolean
ShowCreationDialog
A value whether the guild creation dialog should be shown. Otherwise, the guild creation is cancelled and the dialog was closed.
C1Header
57
CancelGuildCreation
3
ClientToServer
The player has the dialog of the guild creation dialog opened and decided against creating a guild.
It either cancels the guild creation.
C1Header
61
GuildWarResponse
4
ClientToServer
A guild master requested a guild war against another guild.
If the guild master confirms, the war is declared.
3
Boolean
Accepted
C1Header
66
GuildInfoRequest
8
ClientToServer
A player gets another player into view range which is in a guild, and the guild identifier is unknown (=not cached yet by previous requests) to him.
The server sends a response which includes the guild name and emblem.
4
IntegerLittleEndian
GuildId
C1Header
E1
GuildRoleAssignRequest
15
ClientToServer
A guild master wants to change the role of a guild member.
The server changes the role of the guild member.
3
Byte
Type
1
Unknown value between 1 and 3.
4
Enum
Role
ServerToClient.GuildMemberRole
5
String
PlayerName
10
C1Header
E2
GuildTypeChangeRequest
4
ClientToServer
A guild master wants to change the type of its guild. Didn't find any place in the client where this is sent.
The server changes the kind of the guild. We assume it's whether the guild should be the main guild of an alliance, or not. Shouldn't be handled, because this is constant for the lifetime of an alliance.
3
Byte
GuildType
0 = Common, 1 = Guard, FF = None.
C1Header
E5
GuildRelationshipChangeRequest
7
ClientToServer
A guild master sends a request to another guild master about changing the relationship between their guilds.
The server sends a response with the result.
3
Enum
RelationshipType
GuildRelationshipType
4
Enum
RequestType
GuildRequestType
5
ShortBigEndian
TargetPlayerId
C1Header
E6
GuildRelationshipChangeResponse
8
ClientToServer
A guild master answered the request to another guild master about changing the relationship between their guilds.
The server sends a response back to the requester. If the guild master agreed, it takes the necessary actions.
3
Enum
RelationshipType
GuildRelationshipType
4
Enum
RequestType
GuildRequestType
5
Boolean
Response
6
ShortBigEndian
TargetPlayerId
C1Header
E9
RequestAllianceList
3
ClientToServer
The player opens the alliance list dialog.
The server answers with the list of the guilds of the alliance.
C1HeaderWithSubCode
EB
01
RemoveAllianceGuildRequest
12
ClientToServer
An alliance guild master wants to remove a guild from the alliance.
The server removes the guild from the alliance.
4
String
GuildName
C1Header
71
PingResponse
3
ClientToServer
After the server sent a ping request.
The server knows the latency between server and client.
C3Header
34
ItemRepair
4
ClientToServer
A player wants to repair an item of his inventory, either himself or with the usage of an NPC.
If the item is damaged and repairable, the durability of the item is maximized and corresponding responses are sent back to the client.
3
Byte
InventoryItemSlot
The inventory slot of the target item. If it's 0xFF, the player requests to repair all items with the help of an NPC. If it's 8 (Pet slot), using the pet trainer NPC is mandatory, too.
C1Header
86
ChaosMachineMixRequest
5
ClientToServer
The player has the dialog of the chaos machine open and decided to mix (craft) the items which he put into the chaos machine dialog.
Based on the type of mix and it's corresponding success rate, the mix succeeds or fails. The client gets a corresponding response with the created, changed or lost items.
3
Enum
ChaosMachineMixType
MixType
The identifier which tells the server which kind of mix should be executed.
4
Byte
SocketSlot
The 0-based slot index of the socket at which a seed sphere should be mounted or removed. May only be available for the corresponding mixes, so access with care.
ChaosMachineMixType
This enum describes the possible chaos machine mix type identifiers.
ChaosWeapon
Mixes the items to a chaos weapon.
1
UpgradeItemLevelTo10
Upgrades an item to level 10.
3
UpgradeItemLevelTo11
Upgrades an item to level 11.
4
UpgradeItemLevelTo12
Upgrades an item to level 12.
22
UpgradeItemLevelTo13
Upgrades an item to level 13.
23
UpgradeItemLevelTo14
Upgrades an item to level 14.
49
UpgradeItemLevelTo15
Upgrades an item to level 15.
50
FruitCreation
Mixes the items to a fruit.
6
GemstoneRefinery
Refines a gemstone to a jewel of harmony.
41
PotionOfBless
Refines a Jewel Of Bless to a stack of potions of bless.
15
PotionOfSoul
Refines a Jewel Of Soul to a stack of potions of bless.
16
C1Header
87
CraftingDialogCloseRequest
Close Crafting Dialog
3
ClientToServer
A player closes the dialog which was opened by an interaction with the chaos machine goblin.
The server updates the state of the player accordingly.
C1Header
C0
FriendListRequest
3
ClientToServer
The client requests the current friend list.
The server sends the friend list to the client.
C1Header
C1
FriendAddRequest
13
ClientToServer
A player wants to add another players character into his friend list of the messenger.
A request is sent to the other player. If the player is currently offline, the request will be sent as soon as he is online again.
3
String
FriendName
10
C1Header
C3
FriendDelete
13
ClientToServer
A player wants to delete another players character from his friend list of the messenger.
The entry in the friend list is removed. The player is shown as offline in the other players friends list.
3
String
FriendName
10
C1Header
CA
ChatRoomCreateRequest
13
ClientToServer
A player wants to open a chat with another player of his friend list.
If both players are online, a chat room is created on the chat server. Authentication data is sent to both game clients, which will then try to connect to the chat server using this data.
3
String
FriendName
10
C1Header
C2
FriendAddResponse
14
ClientToServer
A player received a friend request from another player and responded to it.
If the player accepted, the friend is added to the players friend list and both players get subscribed about each others online status.
3
Boolean
Accepted
4
String
FriendRequesterName
10
C1Header
C4
SetFriendOnlineState
4
ClientToServer
A player wants to set himself on- or offline.
Depending on the state, the player is shown as offline or online in all friend lists of his friends.
3
Boolean
OnlineState
C1Header
CB
ChatRoomInvitationRequest
ClientToServer
19
A player wants to invite additional players from his friend list to an existing chat room.
The player additional gets authentication data sent to his game client. It then connects to the chat server and joins the chat room.
3
String
FriendName
10
13
ShortBigEndian
RoomId
15
IntegerBigEndian
RequestId
C1Header
A0
LegacyQuestStateRequest
3
ClientToServer
After the player entered the game world with a character.
The quest state is sent back as response.
C1Header
A2
LegacyQuestStateSetRequest
5
ClientToServer
The player wants to change the state of a quest, e.g. to start or to finish a quest.
Depending on the requested new state, a response is sent back.
3
Byte
QuestNumber
4
Enum
LegacyQuestState
NewState
C1Header
A7
PetCommandRequest
7
ClientToServer
The player wants to command its equipped pet (raven).
3
Enum
PetType
PetType
4
Enum
PetCommandMode
CommandMode
5
ShortBigEndian
TargetId
C1Header
A9
PetInfoRequest
6
ClientToServer
The player hovers over a pet. The client sends this request to retrieve information (level, experience) of the pet (dark raven, horse).
The server sends a PetInfoResponse.
3
Enum
PetType
Pet
4
Enum
StorageType
Storage
5
Byte
ItemSlot
C1HeaderWithSubCode
BF
00
IllusionTempleEnterRequest
6
ClientToServer
The client has the NPC dialog for the illusion temple opened, and wants to enter the event map.
The server checks if the player has the required ticket and moves the player to the event map.
4
Byte
MapNumber
5
Byte
ItemSlot
C1HeaderWithSubCode
BF
02
IllusionTempleSkillRequest
8
ClientToServer
The player is in the illusion temple event and wants to perform a special skill (210 - 213), Order of Protection, Restraint, Tracking or Weaken.
The server checks if the player is inside the event etc. and performs the skills accordingly.
4
ShortBigEndian
SkillNumber
6
Byte
TargetObjectIndex
7
Byte
Distance
C1HeaderWithSubCode
BF
05
IllusionTempleRewardRequest
4
ClientToServer
The player requests the reward of the event.
The server checks if the player is in the winning game and returns a reward, usually as item drop.
C1HeaderWithSubCode
BF
0B
LuckyCoinCountRequest
4
ClientToServer
The player has the lucky coin dialog open and requests the current count of the registered coins.
The server returns the count of the registered coins.
C1HeaderWithSubCode
BF
0C
LuckyCoinRegistrationRequest
4
ClientToServer
The player has the lucky coin dialog open and requests to register one lucky coin, which is in his inventory.
The server returns the result of the registration increases the coin count and decreases the coin durability by one.
C1HeaderWithSubCode
BF
0D
LuckyCoinExchangeRequest
8
ClientToServer
The player has the lucky coin dialog open and requests an exchange for the specified number of registered coins.
The server adds an item to the inventory of the character and sends a response with a result code.
4
IntegerLittleEndian
CoinCount
C1HeaderWithSubCode
BF
0E
DoppelgangerEnterRequest
5
ClientToServer
The player wants to enter the doppelganger event.
The server checks the event ticket and moves the player to the event map.
4
Byte
TicketItemSlot
C1HeaderWithSubCode
BF
17
EnterMarketPlaceRequest
4
ClientToServer
The player wants to enter the market place map.
The server moves the player to the market place map.
C1HeaderWithSubCode
BF
51
MuHelperStatusChangeRequest
5
ClientToServer
The client clicked on MU Helper play or pause button.
The server validates, if user can use the helper and sends the status back.
4
Boolean
PauseStatus
C2Header
AE
MuHelperSaveDataRequest
261
ClientToServer
The client want to save current MU Helper data.
The server should save supplied MU Helper data.
4
Binary
HelperData
257
C1HeaderWithSubCode
F6
0A
QuestSelectRequest
9
ClientToServer
The client opened an quest NPC dialog and selected an available quests.
If the quest is already active, it responds with the QuestProgress. If the quest is inactive, the server decides if the character can start the quest and responds with a QuestStepInfo with the StartingNumber. A character can run up to 3 concurrent quests at a time.
4
ShortLittleEndian
QuestNumber
6
ShortLittleEndian
QuestGroup
8
Byte
SelectedTextIndex
A 1-based index of the selected index in the dialog. It's 0 when no text has been selected. It's not clear yet, when we need that.
C1HeaderWithSubCode
F6
0B
QuestProceedRequest
9
ClientToServer
After the server started a quest (and sent a F60B message) the game client requests to proceed with the quest.
The quest state is set accordingly on the server. The next response seems to depend on the quest configuration. Depending on the action of the next quest state, the server will send either a quest progress message (F60C) or again a quest start message (F60B).
4
ShortLittleEndian
QuestNumber
6
ShortLittleEndian
QuestGroup
8
Enum
QuestProceedAction
ProceedAction
QuestProceedAction
Describes how to proceed with the specified quest.
Undefined
Undefined action.
0
AcceptQuest
The quest is accepted and started.
1
RefuseQuest
The quest is refused and not started.
2
C1HeaderWithSubCode
F6
0D
QuestCompletionRequest
8
ClientToServer
The game client requests to complete an active quest.
The server checks the conditions to complete the quest. If this fails, nothing happens. If all conditions are met, the reward is given to the player and the quest state is set accordingly, so that the player can select to start the next quest. Additionally, the quest completion response message (F60D) is sent to the client.
4
ShortLittleEndian
QuestNumber
6
ShortLittleEndian
QuestGroup
C1HeaderWithSubCode
F6
0F
QuestCancelRequest
8
ClientToServer
The game client requests to cancel an active quest.
The server checks if the quest is currently in progress. In this case, the quest state is reset and a response (F60F) is sent back to the client.
4
ShortLittleEndian
QuestNumber
6
ShortLittleEndian
QuestGroup
C1HeaderWithSubCode
F6
10
QuestClientActionRequest
8
ClientToServer
The game client requests to complete a client action, e.g. completing a tutorial.
The server checks if the specified quest is currently in progress. If the quest got a Condition (condition type 0x10) for this flag, the condition is flagged as fulfilled.
4
ShortLittleEndian
QuestNumber
6
ShortLittleEndian
QuestGroup
C1HeaderWithSubCode
F6
1A
ActiveQuestListRequest
4
ClientToServer
The clients requests the states of all quests, usually after entering the game.
The list of active quests is sent back (F61A) without changing any state. This list just contains all running or completed quests for each group.
C1HeaderWithSubCode
F6
1B
QuestStateRequest
8
ClientToServer
The game client requests the state of a specific active quests.
The quest state is sent back (F61B) without changing any state, if the quest is currently in progress.
4
ShortLittleEndian
QuestNumber
6
ShortLittleEndian
QuestGroup
C1HeaderWithSubCode
F6
21
EventQuestStateListRequest
4
ClientToServer
The game client requests the list of event quests, usually after entering the game.
The server may answer with a response which seems to depend if the character is member of a Gen or not. If it's not in a gen, it sends a response (F603).
C1HeaderWithSubCode
F6
30
AvailableQuestsRequest
4
ClientToServer
The client opened an quest NPC dialog and requests a list of available quests.
The list of available quests of this NPC is sent back (F60A).
C1HeaderWithSubCode
F6
31
NpcBuffRequest
4
ClientToServer
The game client requests to get a buff from the currently interacting quest npc. As far as we know, only the Elf Soldier NPC offers such a buff until a certain character level (150 or 220).
The server should check if the correct Quest NPC (e.g. Elf Soldier) dialog is opened and the player didn't reach the level limit yet. If that's both the case, it adds a defined buff (MagicEffect) to the player; Otherwise, a message is sent to the player.
C1HeaderWithSubCode
F7
01
EnterEmpireGuardianEvent
5
ClientToServer
The player wants to enter the empire guardian event due an npc dialog.
The checks if the player can enter the event, and moves it to the event, if possible.
4
Byte
ItemSlot
The item slot of the event ticket. Not used by the server.
01
C1HeaderWithSubCode
F8
01
GensJoinRequest
5
ClientToServer
The player has opened one of the gens NPCs and requests to join it.
The server checks if the player is not in a gens already and joins the player to the selected gens.
3
Enum
GensType
GensType
C1HeaderWithSubCode
F8
03
GensLeaveRequest
4
ClientToServer
The player wants to leave the current gens.
The server the player from the gens.
C1HeaderWithSubCode
F8
09
GensRewardRequest
5
ClientToServer
The game client requests to get a reward from the gens npc.
The server checks if the player has enough points to get the reward, and sends a response.
3
Enum
GensType
GensType
C1HeaderWithSubCode
F8
0B
GensRankingRequest
4
ClientToServer
The game client requests information about the current gens ranking.
The server returns the current gens rankinginformation.
C1Header
90
DevilSquareEnterRequest
5
ClientToServer
The player requests to enter the devil square through the Charon NPC.
The server checks if the player can enter the event and sends a response (Code 0x90) back to the client. If it was successful, the character gets moved to the event map.
3
Byte
SquareLevel
The level of the devil square, minus 1.
4
Byte
TicketItemInventoryIndex
The index of the ticket item in the inventory. Be aware, that the value is 12 higher than it should be - it makes no sense, but it is what it is...
C1Header
91
MiniGameOpeningStateRequest
5
ClientToServer
The player requests to get the remaining time of the currently entered event.
The remaining time is sent back to the client.
3
Enum
MiniGameType
EventType
4
Byte
EventLevel
C1Header
95
EventChipRegistrationRequest
5
ClientToServer
The player registers an event item at an NPC, usually the golden archer.
A response is sent back to the client with the current event chip count.
3
Byte
Type
4
Byte
ItemIndex
C1Header
96
MutoNumberRequest
3
ClientToServer
The player requests information about the Muto number. Unused.
A response is sent back to the client with the current Muto number.
C1Header
97
EventChipExitDialog
3
ClientToServer
The player requests to close the event chip dialog.
The event chip dialog will be closed.
C1Header
98
EventChipExchangeRequest
4
ClientToServer
The player requests to exchange the event chips to something else.
A response is sent back to the client with the exchange result.
3
Byte
Type
C3Header
99
ServerImmigrationRequest
ClientToServer
Unknown?
Unknown?
3
String
SecurityCode
C1Header
9D
LuckyNumberRequest
18
ClientToServer
The player requests to redeem a coupon code (lucky number) which is 12 alphanumeric digits long.
A response is sent back to the client with the result. An item could be rewarded to the inventory.
3
String
Serial1
4
8
String
Serial2
4
13
String
Serial3
4
C1Header
9A
BloodCastleEnterRequest
5
ClientToServer
The player requests to enter the blood castle through the Archangel Messenger NPC.
The server checks if the player can enter the event and sends a response (Code 0x9A) back to the client. If it was successful, the character gets moved to the event map.
3
Byte
CastleLevel
The level of the battle square.
4
Byte
TicketItemInventoryIndex
The index of the ticket item in the inventory. Be aware, that the value is 12 higher than it should be - it makes no sense, but it is what it is...
C1Header
9F
MiniGameEventCountRequest
4
ClientToServer
The player requests to get the entering count of the specified mini game.
The remaining time is sent back to the client. However, it's not really handled on the known server sources.
3
Enum
MiniGameType
MiniGame
C1HeaderWithSubCode
AF
01
ChaosCastleEnterRequest
6
ClientToServer
The player requests to enter the chaos castle by using the 'Armor of Guardsman' item.
The server checks if the player can enter the event and sends a response (Code 0xAF) back to the client. If it was successful, the character gets moved to the event map.
4
Byte
CastleLevel
The level of the chaos castle. Appears to always be 0.
5
Byte
TicketItemInventoryIndex
The index of the ticket item in the inventory.
C1HeaderWithSubCode
AF
02
ChaosCastlePositionSet
6
ClientToServer
The game client noticed, that the coordinates of the player is not on the ground anymore. It requests to set the specified coordinates.
The server sets the player on the new coordinates. Not handled on OpenMU.
4
Byte
PositionX
5
Byte
PositionY
C3HeaderWithSubCode
AA
01
DuelStartRequest
16
ClientToServer
The player requests to start a duel with another player.
The server sends a request to the other player.
4
ShortBigEndian
PlayerId
6
String
PlayerName
10
C3HeaderWithSubCode
AA
02
DuelStartResponse
17
ClientToServer
A player requested to start a duel with the sending player.
Depending on the response, the server starts the duel, or not.
4
Boolean
Response
5
ShortLittleEndian
PlayerId
7
String
PlayerName
10
C3HeaderWithSubCode
AA
03
DuelStopRequest
4
ClientToServer
A player requested to stop the duel.
The server stops the duel.
C3HeaderWithSubCode
AA
07
DuelChannelJoinRequest
5
ClientToServer
A player requested to join the duel as a spectator.
The server will add the player as spectator.
4
Byte
ChannelId
C3HeaderWithSubCode
AA
09
DuelChannelQuitRequest
4
ClientToServer
A player requested to quit the duel as a spectator.
The server will remove the player as spectator.
C1Header
FA
HeykelSavasiTeamSelect
4
ClientToServer
A player selects a team (Red or Blue) in the Heykel Savasi (Statue War) team selection panel.
The server assigns the player to the requested team, if possible, and updates the event state accordingly.
3
Byte
Team
1 = Red team, 2 = Blue team.
C1HeaderWithSubCode
F5
00
ChatCommandListRequest
Request chat command list
4
ClientToServer
A client which supports a user interface for chat commands requests the list of commands which are available to the player. It's usually sent after the character entered the game world.
The server sends a ChatCommandInfo for each available chat command.
TradeButtonState
The state of the trade button.
Unchecked
Trade button is not pressed. It means that the trade is not yet accepted by the trader.
0
Checked
Trade Button is pressed. It means that the trade is accepted by the trader.
1
Red
This state is only sent to the client. After some seconds the client is changing back to normal Unchecked.
2
StorageType
Describes the type of storage.
Inventory
The inventory of the player.
0
Vault
The vault of the player.
1
TradeOwn
The own trading storage.
2
TradeOther
The trading storage of the other player.
3
Crafting
The crafting storage of the player.
4
PersonalShop
The shop storage of another player.
5
NpcShop
The shop storage of an NPC (merchant).
6
InventoryPetSlot
The inventory slot of the pet. That's used when a pet leveled up.
254
PetType
Describes the type of pet.
DarkRaven
The dark raven pet.
0
DarkHorse
The dark horse pet.
1
PetCommandMode
Describes the pet command mode.
Normal
The pet is in a normal mode, where it doesn't attack.
0
AttackRandom
The pet attacks random targets.
1
AttackWithOwner
The pet attacks the same targets as the owner.
2
AttackTarget
The pet attacks a specific target until it's dead.
3
GensType
Describes the gens type.
Undefined
The undefined gens type.
0
Duprian
The Duprian gens.
1
Vanert
The Vanert gens.
2
GuildRelationshipType
Describes the relationship type between guilds.
Undefined
The undefined relationship type.
0
Alliance
The alliance relationship type.
1
Hostility
The hostility relationship type.
2
GuildRequestType
Describes the request type.
Undefined
The undefined request type.
0
Join
The join type.
1
Leave
The leave type.
2