Table of Contents

Generic AOS Commands (0xD7)

Moongate Packet Classes

  • QuestGumpRequestPacket (Incoming, Variable, length -1) from src/Moongate.Network.Packets/Incoming/QuestGumpRequestPacket.cs

Current Moongate Behavior

Moongate currently has a dedicated packet class for the 0xD7 encoded-command envelope. Quest journal requests are the encoded subcommand 0x32 with a single trailing payload byte 0x07.

Packet Build

Type Field
BYTE[1] Command
BYTE[2] Length
BYTE[4] Player Serial
BYTE[2] SubCommand to Follow

Subcommand Build

SubCommand 0x02: Backup

Type Field
BYTE[1] 07

SubCommand 0x03: Restore

Type Field
BYTE[1] 07

SubCommand 0x04: Commit

Type Field
BYTE[1] 07

SubCommand 0x05: DeleteItem

Type Field
BYTE[1] unknown (0)
BYTE[2] unknown (0)
BYTE[2] item graphic
BYTE[1] unknown (0)
BYTE[4] X Pos
BYTE[1] unknown (0)
BYTE[4] Y Pos
BYTE[1] unknown (0)
BYTE[4] z Pos (7)
BYTE[1] terminator (0x07)

SubCommand 0x06: AddItem

Type Field
BYTE[1] unknown (0)
BYTE[2] unknown (0)
BYTE[2] itemGraphic
BYTE[1] unknown (0)
BYTE[4] XPos
BYTE[1] unknown (0)
BYTE[4] YPos
BYTE[1] terminator (0x07)

SubCommand 0x0C: Exit House Tool

Type Field
BYTE[1] unknwon (0x07)

SubCommand 0x0D: Change Stairs

Type Field
BYTE[1] unknown (0x00)
BYTE[1] unknown (0x00)
BYTE[1] unknown (0x00)
BYTE[2] multiid
BYTE[1] unknown (0x00)
BYTE[2] X Position (Relative to center of house)
BYTE[1] unknown (0x00)
BYTE[2] Y Position (Relative to center of house)
BYTE[1] unknown (0x00)

SubCommand 0x0E: Synch Button

Type Field
BYTE[1] Unknown (0x07)

SubCommand 0x10: Clear Button

Type Field
BYTE[1] Unknown (0x07)

SubCommand 0x12: ChangeFloor

Type Field
BYTE[4] unknown (0)
BYTE[1] Floor#
BYTE[1] terminator (0x07)

SubCommand 0x1A: Revert Button

Type Field
BYTE[1] Unknown (0x07)

SubCommand 0x19: Combat Book Abilities

Type Field
BYTE[4] 00 00 00 00 = Unknown. Always like this in all my testing
BYTE[1] The ability "number" used
BYTE[1] 0A

SubCommand 0x28: Guild Button

Type Field
BYTE[1] Unknown (0x07)

SubCommand 0x32: Quest Button / Quest Journal Request

Type Field
BYTE[1] Unknown (0x07)

Notes

Submitted information. untested and unverified.

Subcommand 0x02: This is sent when the client pushed the Backup button in the customization screen. Unsure what it triggers on the server since house building is totally handled client side until submitted.

SubCommand 0x03: Sent when client pushes the Restore button in the customization menu. Will need testing to see exact purpose of 2 and 3 subs. Possible the server could request current "layout" that is not yet commited to save the design without commiting to be later restored with this command.

SubCommand 0x04: Sent when client pushes the Commit Button.

SubCommand 0x05: Sent when client chooses to destroy items.

SubCommand 0x06: Sent when client Chooses to add items.

SubCommand 0x0C: Sent when client pushes the Exit Button.

SubCommand 0x0D: Sent when client adds stairs to the multi in edit mode.

SubCommand 0x0E: Sent when client pushes the Synch Button.

SubCommand 0x10: Sent when client pushes the Clear Button.

SubCommand 0x12: Sent when client pushes the Change Floor Buttons.

SubCommand 0x1A: Sent when client pushes the Revert Button.

SubCommand 0x19: Sent when client pushes the icones from the combat book.

The server uses an 0xBF Subcommand 0x21 Packet to cancel the red color of

icons, and reset the status of them on client.

Valid Ability Numbers:

  • 0x00 = Cancel Ability Attempt 0x01 = Armor Ignore

0x02 = Bleed Attack

0x03 = Concusion Blow

0x04 = Crushing Blow

0x05 = Disarm

0x06 = Dismount

0x07 = Double Strike

0x08 = Infecting

0x09 = Mortal Strike

0x0A = Moving Shot

0x0B = Paralyzing Blow

0x0C = Shadow Strike

0x0D = Whirlwind Attack

0x0E = Riding Swipe

0x0F = Frenzied Whirlwind

0x10 = Block

0x11 = Defense Mastery

0x12 = Nerve Strike

0x13 = Talon Strike

0x14 = Feint

0x15 = Dual Wield

0x16 = Double shot

0x17 = Armor Peirce

0x18 = Bladeweave

0x19 = Force Arrow

0x1A = Lightning Arrow

0x1B = Psychic Attack

0x1C = Serpent Arrow

0x1D = Force of Nature

SubCommand 0x28: Sent when client pushes the Guild Button on the paperdoll.

SubCommand 0x32: Sent when client pushes the Quest Button on the paperdoll.