Table of Contents

Characters / Starting Locations (0xA9)

Moongate Packet Classes

  • CharactersStartingLocationsPacket (Outgoing, Variable, length -1) from src/Moongate.Network.Packets/Outgoing/Login/CharactersStartingLocationsPacket.cs

Current Moongate Behavior

Moongate currently has packet classes for this opcode.

Packet Build

Type Field
BYTE[1] cmd
BYTE[2] packet length
BYTE[1] number of characters (slots 5, 6 or 7)

loop characters (5, 6 or 7):

Type Field
BYTE[30] character name
BYTE[30] character password

endloop(characters)

Type Field
BYTE[1] number of starting locations (cities)

IF Client Version >= 7.0.13.0

loop # of cities:

Type Field
BYTE[1] locationIndex (0-based)
BYTE[32] city name(general name)
BYTE[32] area of city or town
BYTE[4] City X Coordinate
BYTE[4] City Y Coordinate
BYTE[4] City Z Coordinate
BYTE[4] CIty Map ( Probably Map ID same as in mul files have to make sure )
BYTE[4] Cliloc Description
BYTE[4] Always 0

endloop(# of cities)

ELSE

loop # of cities:

Type Field
BYTE[1] locationIndex (0-based)
BYTE[31] city name(general name)
BYTE[31] area of city or town

endloop(# of cities)

Type Field
BYTE[4] Flags (see notes)

IF SA ENCHANCED CLIENT

Type Field
BYTE[2] Last Character Slot ( for highlight )

Subcommand Build

N/A

Notes

Flags list: | Name | Value | | --- | --- | | 0x01 | unknown | | 0x02 | send config/req logout (IGR?, overwrite configuration button?) | | 0x04 | single character (siege - limit 1 character/account) | | 0x08 | enable npcpopup/context menus | | 0x10 | limit character slots? | | 0x20 | enable common AOS features (tooltip thing/fight system book, but not AOS monsters/map/skills, necromancer/paladin classes) | | 0x40 | 6th character slot | | 0x80 | samurai and ninja classes | | 0x100 | elven race | | 0x200 | KR support flag1 ? | | 0x400 | send UO3D client type (client will send 0xE1 packet) | | 0x800 | unknown | | 0x1000 | 7th character slot, only 2D client | | 0x2000 | unknown (SA?) | | 0x4000 | new movement packets 0xF0 -> 0xF2 | | 0x8000 | unlock new felucca areas | Flags can be combined as literals to view. Such as to have NPC Popup Menus AND Common AOS Features, send as 0x28, not 0x8 plus 0x20 form.

Another example: elven race, samurai classes and AOS will be 0x1A0.

0x8000 flag is used for unlocking new Felucca factions areas, note that you have to use "_x" versions of map/statics if you want to move through new areas.

Since 7.0.13.0 City Name and Building Name have length of 32 chars, also added city x,y,z,map,cliloc description and BYTE[4] always 0 to city structure.