Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
gmcp:start [2023/05/22 00:39] – More content. paradoxgmcp:start [2024/04/26 23:19] (current) – Add link to speakers page lytol
Line 16: Line 16:
 | Char | Character information |  | Char | Character information | 
 | Room | Room information |  | Room | Room information | 
-| Comm.Channel | Channel information ((Disables in-game channel echo when enabled.)) +| Comm.Channel | Channel information | 
 | Guild | Guild specific information ((Enabled automatically for all GMCP clients.)) | | Guild | Guild specific information ((Enabled automatically for all GMCP clients.)) |
  
 ==== Supported Messages by Module ==== ==== Supported Messages by Module ====
  
-=== Char ===+Messages marked as type "Full" will always send each data filed. Messages marked as type "Delta" will only send the fields that have changed since the last time the message was sent.
  
-TODO+=== Char.Name === 
 + 
 +^ Message Name      ^ Sent When  ^ Type ^ Notes ^ 
 +|''Char.Name'' | Login only | Full | Useful for triggers to load per-character or per-guild settings. | 
 + 
 +^Data Field ^ Description ^ Example ^ 
 +| ''name'' | Character name (all lowercase) | ''"sneak"''
 +| ''fullname'' | Character title | ''"Sneak The Shadow Melder"''
 +| ''guild'' | Character guild | See note below. | 
 + 
 +The guild field will be one of the following values (**case sensitive!**((yes, the inconsistency is annoying))): none, Atreid, Fremen, ixian, Gesserit, Harkonnen, Matres, Warrior, Speakers, Sardaurkar, Gesserit. 
 + 
 +=== Char.Vitals === 
 + 
 +^ Message Name      ^ Sent When  ^ Type ^ Notes ^ 
 +|''Char.Vitals'' | At login, on change | Delta | Good for making health gauges, etc. | 
 + 
 +^Data Field ^ Description ^ Example ^ 
 +| ''hp'' | Current hit points | ''123''
 +| ''maxhp'' | Maximum((hp may be higher than normal maxhp if you are above 100% HP in-game))  hit points | ''200''
 +| ''sp''((named sp instead of cp to match common GMCP usage)) | Current concentration points (CP).  | ''100''
 +| ''maxsp''((named maxsp instead of maxcp to match common GMCP usage)) | Maximum((sp may be higher than normal maxsp if you are above 100% CP in-game)) concentration points | ''150''
 +| ''string'' | A string description of the vitals information. | ''"H:123/200 M:100/150"''
 + 
 +=== Char.Stats === 
 + 
 +^ Message Name      ^ Sent When  ^ Type ^ Notes ^ 
 +|''Char.Stats'' | At login, on change | Delta | Base stats **without** modifiers. | 
 + 
 +^Data Field ^ Description ^ Example ^ 
 +| ''str'' | Base Strength points | ''10''
 +| ''con'' | Base Constitution points | ''12''
 +| ''int'' | Base Intelligence points | ''8''
 +| ''wis'' | Base wisdom points | ''9''
 +| ''dex'' | Base dexterity points | ''15''
 +| ''qui'' | Base quickness points | ''17''
 + 
 +=== Char.MaxStats === 
 + 
 +^ Message Name      ^ Sent When  ^ Type ^ Notes ^ 
 +|''Char.MaxStats'' | At login, on change | Delta | Effective stats **with** modifiers. | 
 + 
 +^Data Field ^ Description ^ Example ^ 
 +| ''maxstr'' | Total Strength points | ''15''
 +| ''maxcon'' | Total Constitution points | ''13''
 +| ''maxint'' | Total Intelligence points | ''10''
 +| ''maxwis'' | Total wisdom points | ''10''
 +| ''maxdex'' | Total dexterity points | ''17''
 +| ''maxqui'' | Total quickness points | ''19''
 + 
 +=== Char.Status and Char.StatusVars === 
 + 
 +^ Message Name      ^ Sent When  ^ Type ^ Notes ^ 
 +|''Char.Status'' | At login, on change | Delta | Misc character status values. | 
 +| ''Char.StatusVars'' | At login, on change | Delta | Descriptive labels for each of the fields in ''Char.Status''
 + 
 +^Data Field ^ Description ^ 
 +| ''level'' | Your player level | 
 +| ''money'' | Solaris your player is carrying | 
 +| ''bankmoney'' | Solaris your player has in the bank | 
 +| ''short'' | Your player's short description | 
 +| ''guild'' | Your player's guild name (or none). | 
 +| ''subguild'' | Your player's subguild (or none). | 
 +| ''xp'' | Your player's current exp. | 
 +| ''maxxp'' | Your player's current exp cap. | 
 +| ''wimpy'' | Your player's set wimpy percentage value. | 
 +| ''wimpy_dir'' | Your player's set preferred wimpy direction (or none). | 
 +| ''aim'' | Your player's set preferred aim location. | 
 +| ''quest_points'' | The number of quest points your player has. | 
 +| ''kills'' | Your total number of kills | 
 +| ''deaths'' | Your total number of deaths | 
 +| ''explorer_rating'' | Your explorer rating. | 
 +| ''pk'' | Whether or not you're pk (1 or 0). | 
 +| ''inn'' | Whether o not you have an inn rented (1 or 0). | 
 +| ''global_exp_bonus'' | The global exp bonus, if any (floating point number) | 
 +| ''guild_exp_bonus'' | The exp bonus for your guild, if any (floating point number) | 
 +| ''explorer_exp_bonus'' | Your personal explorer rating exp bonus, if any (floating point number) | 
 +| ''personal_exp_bonus'' | Your personal exp bonus, if any (floating point number) | 
 +| ''total_exp_bonus'' | Your total exp bonus including all of the bonuses mentioned above (floating point number) |
  
 === Room === === Room ===
  
-TODO+^ Message Name      ^ Sent When  ^ Type ^ Notes ^ 
 +|''Room.Info'' | At login, whenever you move | Full | Useful for mapping. |
  
-=== Comm.Channel ===+^Data Field ^ Description ^ Example ^ 
 +| ''num'' | Room number((For reasons, Dune uses a hash string and not a number))Uniquely identifies the room. | ''"40ee12ff7ef7bcfc0f6b87fd4e6c6448"''
 +| "name" | Short description of the room | "Arrakeen Shuttle Landing Port" | 
 +| ''area'' | Lower-case name of the planet((In the future we may send more specific area names)) you're on. | ''"arrakis"'' |  
 +| ''environment'' | Whether you're indoors or outdoors. | ''"indoors"''
 +| ''exits'' | A table/dictionary mapping from exit name to room ID((remember, it's a hash)) | See below. |
  
-TODO+Example room info: 
 +<code javascript> 
 +
 +  "name": "Arrakeen Shuttle Landing Port", 
 +  "area": "arrakis", 
 +  "num": "40ee12ff7ef7bcfc0f6b87fd4e6c6448" 
 +  "environment": "outdoors", 
 +  "exits":
 +    "east": "baa2786919e34132d5096695e744a145", 
 +    "west": "8ccbdd326a1db11dfd21a38f950c8aa8", 
 +    "north": "22c354ced799589b3c0fd31ba457d854", 
 +    "south": "44bded38d46d812602e63a0267c9fa7e" 
 +  }, 
 +
 +</code> 
 + 
 +**Note**: A few select areas that are highly custom may be missing exit information. This is a known issue and will hopefully be addressed in the future. The majority of areas will send correct GMCP data. 
 + 
 + 
 +=== Comm.Channel.List === 
 + 
 +^ Message Name      ^ Sent When  ^ Type ^ Notes ^ 
 +|''Comm.Channel.List'' | At login | Full | Useful for setting up channel capture. | 
 + 
 +^Data Field ^ Description ^ 
 +| ''command'' | Command to use to speak on the channel. | 
 +| ''enabled'' | Whether the channel is on/off (0 or 1). | 
 +| ''channel'' | Name of the channel. | 
 +| ''name'' | Name of the channel. |  
 + 
 +Channel list information is sent only at login, and as an array. Each each array value is a dict with the data fields listed above.  
 + 
 +Example: 
 +<code javascript> 
 +
 +  { 
 +    "command": "chat", 
 +    "enabled": 1, 
 +    "channel": "chat", 
 +    "name": "chat" 
 +  }, 
 +  { 
 +    "command": "discord", 
 +    "enabled": 0, 
 +    "channel": "discord", 
 +    "name": "discord" 
 +  }, 
 +  { 
 +    "command": "newbie", 
 +    "enabled": 1, 
 +    "channel": "newbie", 
 +    "name": "newbie" 
 +  } 
 +
 +</code> 
 + 
 +=== Comm.Channel.Text === 
 + 
 +^ Message Name      ^ Sent When  ^ Type ^ Notes ^ 
 +|''Comm.Channel.Text'' | On channel message | Full | Capture these messages for channel capture. | 
 + 
 +^Data Field ^ Description ^ 
 +| ''text'' | Channel message text (includes speaker) | 
 +| ''channel'' | Name of the channel the message was sent on. | 
 +| ''talker'' | Name of the person that spoke. | 
 +| ''channel_ansi'' | Name of the channel (with ANSI colours). |  
 + 
 +Example: 
 +<code javascript> 
 +
 +  "text": "Paradox : yeee\n", 
 +  "channel_ansi": "\u001b[1m[\u001b[0m\u001b[31mchat\u001b[0m\u001b[1m]\u001b[0m", 
 +  "talker": "Paradox", 
 +  "channel": "chat" 
 +
 +</code> 
 + 
 +By default channel messages will be sent both in-game and over GMCP for clients that opt-in to the ''Comm.Channel'' module. If you want channel messages to be sent **only** over GMCP, then ''set gmcp_chans on'' in-game. To restore the original behaviour: ''unset gmcp_chans''. If you use this setting make sure you have a GMCP channel capture trigger configured or you won't see any channel messages!!!
  
 === Guild === === Guild ===
  
-TODO+Guild data varies widely by guild. See each page for more information. 
 +  * [[atreides|House Atreides]] 
 +  * [[gesserit|Bene Gesserit]] 
 +  * [[tleilax|Bene Tleilax]] 
 +  * [[warriors|Bene Gesserit Warriors]] 
 +  * [[fremen|Fremen]] 
 +  * [[harkonnen|House Harkonnen]] 
 +  * [[matres|Honored Matres]] 
 +  * [[sardaukar|Imperial Sardaukar]] 
 +  * [[img|Ixian Machine Guild]] 
 +  * [[speakers|Fish Speakers]] 
  
 ===== Client Setup ===== ===== Client Setup =====