**Language / Langue :** [[fr:yaml:actions|FR]] | **EN** ====== Custom Actions (YAML) ====== Custom actions add free-form commands. On web/desktop, the player types the verb directly. On Discord, they use the action command. ===== Declaration ===== Local actions live in a room's ''actions:'' block. Global actions live at root level in ''global_actions:'' and are available everywhere. actions: - verb: examine target: chest if: ~ text_ok: "An old wooden chest. It looks locked." text_ko: "Nothing interesting here." - verb: open target: chest if: "key" do: - "gold.+.50" - object: key to: inventory remove: true text_ok: "You open the chest! +50 gold." text_ko: "The chest is locked. You need a key." ===== target: all ===== With ''target: all'', any typed target is accepted: global_actions: - verb: go target: all if: ~ do: "t_action_cible_ok_t" text_ko: "Unknown destination: t_action_cible_t." ^ Variable ^ Value ^ | ''t_action_cible_t'' | Raw target typed by the player. | | ''t_action_cible_ok_t'' | Last valid target. | ===== Same Verb and Target ===== Several actions with the same ''verb'' and ''target'' are tested in order. The first true condition wins. ===== Action Alias ===== actions: - verb: inspect target: still alias: still if: ~ text_ok: "The central still waits for ingredients." The player can type ''still'' instead of ''inspect still''. ===== Action Button ===== actions: - verb: use target: potion button: "Use the potion" visible-if: "potion" disabled-if: "v_hp_v >= v_hpmax_v" if: "potion" do: - object: potion to: inventory remove: true - "hp.+.5" text_ok: "You drink the potion. +5 HP!" text_ko: "You do not have a potion."