GrantCoins
Referee: place coins directly into a member's purse.
Full documentation: GrantCoins. Wire type: grant_coins.
Legal session modes: battle, encounter, exploring, game_over, town, victory
JSON Schema
{
"$defs": {
"Coins": {
"description": "A fixed pile of coins: generated treasure, the contents of a chest, a pile dropped on the floor.\n\nFrozen, unlike the `CoinPurse` a character carries. This\nis what `generate_treasure` reports and what a\ndungeon feature contains until someone picks it up. Adding it to a character means adding\neach denomination to their purse.",
"properties": {
"pp": {
"default": 0,
"minimum": 0,
"title": "Pp",
"type": "integer",
"description": "Platinum pieces, worth 5 gp each."
},
"gp": {
"default": 0,
"minimum": 0,
"title": "Gp",
"type": "integer",
"description": "Gold pieces."
},
"ep": {
"default": 0,
"minimum": 0,
"title": "Ep",
"type": "integer",
"description": "Electrum pieces, worth half a gold piece each."
},
"sp": {
"default": 0,
"minimum": 0,
"title": "Sp",
"type": "integer",
"description": "Silver pieces, ten to the gold piece."
},
"cp": {
"default": 0,
"minimum": 0,
"title": "Cp",
"type": "integer",
"description": "Copper pieces, a hundred to the gold piece."
}
},
"title": "Coins",
"type": "object"
}
},
"description": "Referee: place coins directly into a member's purse.\n\nReferee commands are legal in every mode, terminal modes included.\n\nModes:\n `town`, `exploring`, `encounter`, `battle`, `game_over`, `victory`\n\nRejections:\n - `session.command.unknown_member` - `character_id` names no party member.\n\nEvents:\n `ItemAcquiredEvent` with the coin\n value, `origin` `\"grant\"`, so a reward counted out per member doesn't read as\n a haul split across the party.",
"properties": {
"command_type": {
"const": "grant_coins",
"default": "grant_coins",
"title": "Command Type",
"type": "string",
"description": "The wire discriminator. Each subclass fixes it to its own snake_case literal, like\n`\"move_party\"` or `\"open_door\"`, so you never set it yourself: constructing the subclass\ndoes. It's what `parse_command` and the\n`AnyCommand` union read to rebuild the right class\nfrom a serialized mapping, and it stays the same across releases."
},
"source": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Source",
"description": "An annotation naming the authored object (a trigger or quest id) or the game\nsystem on whose behalf the command was issued. Execution never reads it: a stamped\ncommand does exactly what the same command unstamped does. It is logged and replayed\nwith the command, so the log alone answers \"why did this happen\". Absent is `None`,\nand the empty string is not a value."
},
"character_id": {
"title": "Character Id",
"type": "string",
"description": "In an authored consequence or reward, this field takes the party selectors\n(`\"@party\"`, `\"@first\"`), expanded to literal member ids by the interpreter\nbefore issue. Issued directly, it must be a literal member id or the command\nrejects."
},
"coins": {
"$ref": "#/$defs/Coins",
"description": "The coins to add to the member's purse, by denomination. Nothing is charged and no weight\ncheck refuses the grant, so a large award can leave the member overloaded. Check the\nresulting load before you send the party on."
}
},
"required": [
"character_id",
"coins"
],
"title": "GrantCoins",
"type": "object"
}