The question was raised earlier on a clan, and the current GMCP doc is rather outdated, so I figured I'd take a stab at documenting it a bit. Please note that this is completely unofficial, and may contain inaccuracies, but if an error is found I'll gladly edit and update this guide. Further, this guide will only document the messages themselves, and not how to get GMCP working (since that is client dependent). I'll list the messages alphabetically (so Char.Afflictions.Add first, and Room.Wrongdir last) to make it a bit easier to find what you're looking for.
- Char.Afflictions.Add
- Contains the following values:
- name: The short name of the affliction (i.e. "paralysis")
- cure: The method of curing (i.e. "eat puritydust")
- desc: A description of what the affliction does (i.e. "Paralysis will freeze the muscles in your body, making many actions impossible until it is cured.")
- This one fires whenever you get an affliction. Note, however, that if you get hit by an unknown affliction, this does not fire, and it only fires on overhauled afflictions.
- Char.Afflictions.List
- Contains a list of afflictions. The values of each affliction mirrors the values above.
- This one fires whenever you use DIAG or FIRSTAID or similar, and it only contains overhauled afflictions. It is also sent once on login.
- Char.Afflictions.Remove
- Contains a single value with the affliction removed.
- This will fire whenever an affliction is removed. Note that this only fires if it is an overhauled affliction.
- Char.Defences.Add
- Contains the following values:
- name: The short name of the defence (i.e. "waterwalk")
- desc: A description of what the defence does (i.e. "Water walking allows you to travel across water without the need for swimming.")
- This one fires whenever you put up a new defence. Note that this only fires on overhauled defences.
- Char.Defences.List
- Contains a list of defences. The values of each affliction mirrors the values above.
- This one fires whenever you check DEF. Note that the only defences contained in the list are overhauled defences. It is also sent once on login.
- Char.Defences.Remove
- Contains a single value with the defence removed.
- This one fires whenever a defence is removed from you. Note that it only fires on overhauled defences.
- Char.Items.Add
- Contains the following values:
- location: Where the item is added. Most commonly "room" or "inv", but can also have other values (such as containers).
- item: A dataset with the following values:
- id: The numerical ID of the item (as seen on II etc)
- name: The short appearance of the item (i.e. "a wafer of purity dust")
- icon: What kind of item it is (I only noticed it while writing this, but among the values are "commodity", "fiend", "pet", "container" and "lamp". I'll see if I can get more item types)
- attrib: The attributes of an item. This has never been explained fully, but these are the best guesses I've seen so far:
- e: Edible
- g: Groupable
- t: Takeable (i.e. not fixed in the room)
- m: Mobile
- c: Container
- This fires whenever an item is added to the room
- Char.Items.List
- Contains the following values:
- location: Where the items are. Most commonly "room" or "inv", but can also have other values (such as containers).
- items: A list of items. The structure and values mirror that of the item dataset mentioned above.
- This one fires in various ways:
- A list of items in the room is sent every time you LOOK or QL in a room. If you move around, this is done automatically, but it doesn't happen if you follow someone.
- A list of items in your inventory is sent in response to you sending Char.Items.Inv to the server.
- A list of items in a container is sent in response to you sending Char.Items.Contents <ID> to the server.
- Char.Items.Remove
- Contains the exact same values as Char.Items.Add.
- This is sent whenever an item is removed. When transferring items from one place to another (getting, dropping, putting) first a Char.Items.Remove is sent, followed by a Char.Items.Add.
- Char.Items.Update
- Contains the exact same values as Char.Items.Add.
- This is sent whenever an item is changed. Most often, this happens when groups are manipulated (splitting, combining, etc).
- Char.Name
- Contains the following values:
- name: The name of your character.
- fullname: Includes titles and family name.
- This is sent on login. It is NOT sent when titles are changed.
- Char.Skills.Groups
- Contains a list of the following values:
- name: The name of the skill (i.e. "Combat")
- rank: The rank (i.e. "Expert")
- This is sent in response to you sending Char.Skills.Get to the server.
- Char.Skills.List
- Contains the following values:
- group: The skill in question (i.e. "aethercraft")
- list: A list containing the skill names.
- descs: A list containing the skill descriptions.
- The list and descs are matched. Thus, the first entry in descs is a description of the first entry in list, and so on.
- This is sent in response to you sending Char.Skills.Get with a "group" value (i.e. Char.Skills.Get { "group": "aethercraft"} )
- Char.Skills.Info
- Contains the following values:
- group: The skill in question (i.e. "aethercraft")
- skill: The individual ability (i.e. "targeting")
- info: The AB entry. Newlines are sent as \n
- This is sent in response to you sending Char.Skills.Info with a "group" and a "name" value (i.e. Char.Skills.Get { "group": "aethercraft", "name": "targeting" } )
- Char.Status
- Contains the following values:
- fullname: Your full name, including titles and family name.
- level: The name of your level (i.e. "Demigod")
- xprank: Your numerical ranking, or "unranked" if you're not yet ranked. Contains an ending, i.e. "100th".
- explorerrank: Your explorer ranking in text, i.e. "a Cosmic Wayfarer"
- race: Your race. Demigod counts as a race. Uncertain how it deals with racehats.
- age: Your age. If your age has been adjusted, this shows your adjusted age.
- guild: Your guild and guild title (i.e. "Shadowdancers (within Mother Night's Entourage)")
- city: Your org and org title (i.e. "Glomdoring (Shadow Warden)")
- order: Presumably the same as above, but I'm not in an order. Contains "none" if you're not in an Order.
- family: Your family name.
- gold: How much gold you have on you, including containers.
- bank: How much gold you have in banks.
- unread_msgs: How many messages you have that are unread.
- unread_news: How many news articles you have that are unread.
- gender: Your gender.
- This is sent on login, and a subset is sent whenever a value changes (so when you pick up some gold, you get Char.Status with only a "gold" value)
- Char.StatusVars
- Contains the values above, with a short descriptor (in most cases simply a capitalised version).
- This is sent on login.
- Char.Vitals
- Contains the following values:
- hp: Your current health
- maxhp: Your maximum health
- mp: Your current mana
- maxmp: Your maximum mana
- ego: Your current ego
- maxego: Your maximum ego
- pow: Your current power
- maxpow: Your maximum power (always 10, presumably)
- reserves: Your current reserves
- ep: Your current ndurance
- maxep: Your maximum endurance
- wp: Your current willpower
- maxwp: Your maximum willpower
- essence: Your current essence (if you're a demigod)
- nl: Progress to the next level (if you're not a demigod)
- awp: Your current aetherwill
- maxawp: Your maximum aetherwill
- esteem: Your current esteem
- karma: Your current karma
- blind: If you're blind or not
- deaf: If you're deaf or not
- prone: If you're prone or not
- kafe: If you've got the kafe defence or not
- momentum: Your current momentum
- beastbal: If your beast has balance
- mount: What you're mounted on
- equilibrium: If you've got equilibrium
- balance: If you've got balance
- head: If you've got balance on your head
- left_arm: If you've got balance on your left arm
- right_arm: If you've got balance on your right arm
- right_leg: If you've got balance on your right leg
- left_leg: If you've got balance on your left leg
- psisub: If you've got balance on the sub channel (if you have the channel locked, -1)
- psisuper: If you've got balance on the super channel (if you have the channel locked, -1)
- psiid: If you've got balance on the id channel (if you have the channel locked, -1)
- modulebal: A new addition, presumably if you've got balance on an aethership module, or -1 if not locked in
- string: A string representation of some of the above abilities. It follows the same syntax as the old ATCP channel, so presumably there for backwards compability
- charstats: A list of strings with representations of some of the above values (for the moment, reserves, karma and esteem)
- This is sent on every prompt. If you're blacked out, the appropriate values are set to 0 (health, mana, ego etc)
- Comm.Channel.Text
- Contains the following values:
- channel: The channel in question (i.e. "market")
- talker: The name of the speaker
- text: What is said, including colour codes
- This is sent whenever something is said on a channel.
- Comm.Channel.Start
- Contains a single value with the short name of the channel (i.e. "market")
- This is sent whenever something is said on a channel, right before the text is sent.
- Comm.Channel.End
- Contains a single value with the short name of the channel (i.e. "market")
- This is sent whenever something is said on a channel, right after the text is sent.
- Comm.Channel.List
- Contains a list of the following values:
- name: The short name of the channel
- caption: The longer name of the channel
- command: How to speak on the channel
- This is sent on login. It is also sent when your channel list changes, i.e. when joining or leaving clans etc.
- Comm.Channel.Players
- Contains a list of the following values:
- name: The name of the player
- channels: A list of what channels you share. If no channels are shared, this is omitted.
- This is sent in response to you sending Comm.Channel.Players to the server.
- The list of players include those off-plane if you share orgs, but it seems not to if you share a clan. Otherwise, it only lists those on Prime without a gem.
- Core.Goodbye
- Contains a single string with a logout message (generally "Farewell, adventurer.").
- Only sent on logout, or if you're disconnected by the server.
- Core.Ping
- Sent in response to you sending Core.Ping to the server. No values.
- IRE.Misc.Achievement
- Contains the following values:
- name: The name of the value changed (i.e. "TotalCreaturesKilled")
- value: The new value
- This is sent when those values are changed. I'm not aware of a way to get a full list of achievement values.
- IRE.Misc.RemindVote
- IRE.Rift.Change
- Contains the following values:
- name: The name of the rift item changing (i.e. "yarrow")
- amount: The new amount
- desc: A description of the item (i.e. "normal: a yarrow sprig"). Other than normal, I've confirmed "liquid", but presumably there's also types for flesh, tarot cards etc.
- This is sent whenever the rift changes.
- IRE.Rift.List
- Contains a list with the values mentioned above.
- This is sent in response to you sending IRE.Rift.Request to the server.
- Room.AddPlayer
- Contains the following values:
- name: The name of the player
- fullname: Includes titles and family name
- This is sent whenever someone visible enters the room. If you're shrouded, you're not announced this way.
- Room.Info
- Contains the following values:
- num: The ID of the room
- name: The name of the room
- desc: The verbose description of the room
- area: The area the room is in
- environment: The environment of the room (this ignores, IIRC, illusory terrain, unlike Survey)
- coords: The coordinates of the room
- map: The URL of the map of the area
- details: A list of strings with room flags (i.e. "the Prime Material Plane", "indoors", etc)
- exits: A dataset containing the directions of the exits mapped to the room IDs of the next room (i.e. "u": "1337")
- This is sent whenever you enter a room.
- Room.Players
- Contains a list with the following values:
- name: The name of the player
- fullname: Includes titles and family name
- This is sent whenever you enter a room or look in a room. It only lists players you can actually see; if you don't have thirdeye, you won't see shrouded players here either.
- Room.RemovePlayer
- Contains the name of the player who just left the room.
- This is sent whenever someone leaves the room. As with the rest, this only shows players that you see leaving. If they are shrouded, this won't fire.
- Room.WrongDir
- Contains a single value with the direction.
- This is sent whenever you fail to move rooms due to there not being an exit in that direction.
If there's anything here you want to add, or have questions about, etc. just post below!
Comments
Estarra the Eternal says, "Give Shevat the floor please."
EDIT: Hmm. It seems there's some difference... Need to dig into this. Might be that the API only excludes people with gems. Interesting...
EDIT EDIT: Yep, seems so. I got Avurekhos (in a manse) via the API, but don't get him through GMCP. Bug? Feature? Only @Ieptix might know...
I think you're a bit confused on what the intention here is, he's not looking at his inventory, he's looking at the items in a room to see if there is essence to grab. You're right in how you need to check an inventory, because inv list isn't updated a lot.
Unless you meant that the HP value of it doesn't change until other things do. I never tested that, I guess.