setage/docs.toml

80 lines
No EOL
3.7 KiB
TOML

[metadata] # Required.
title = "title of the game"
description = "description of the game" # optional
min_version = "v0.4.0" # optional, highly recommended, minimum version of setage to play this manifest, "v" at the beginning is optional.
[metadata.credits] # Optional but highly recommended.
author = "who made the manifest for the game"
contributors = [] # optional list of strings.
year = "when it was made"
version = "" # optional version string
license = "license for this manifest"
[scenario] # Required.
start = "id" # room where the player starts. any valid room id.
intro = "intro to the game"
prompt = "> " # optional, default shown.
playtested = false # optional, default. displays a warning if this is set to false.
[scenario.endings.1] # Required.
trigger = "item" # one of "item", "room" ("interactable" in future releases).
target = "id of the trigger" # which item, room (or interactable) should trigger the win.
title = "title of the ending" # optional.
message = "message when this ending is triggered"
exit = false # optional, default; exit the game after triggering?
[items] # Required.
item.examine = "message when the `item` is examined" # `item` can be any item id.
item.hidden = false # optional, default.
[recipes.recipeid] # Optional
ingredients = ["itemid1", "itemid2", ...] # Required
# --
result_id = "itemid" # Required
result_text = "shorttext of the result item" # Required
# OR
result_ids = ["id1", "id2", ...] # Required
result_texts = ["text1", "text2", ...] # Required; short texts of the items
# --
text = "message when items get combined with this recipe" # Optional; default = "> You combined items."
lock = "" # Optional; one of: item, room, interactable
lock_target = "id" # Optional; of the lock above
[rooms.id] # Required, id can be any other room id.
description = "description of the room as it appears in the listing of exits from other rooms"
examine = "description of the room when you examine it"
go = "message when you `go` to this room"
[rooms.id.items] # Optional.
item = "description" # item can be any valid id. description is a short description as it appears in the room listing.
[rooms.id.interactables.id] # Optional. Any valid id.
name = "name of the interactable" # appears in the room listing.
type = "bare" # optional, default; options: "bare", "item check", "item take", "inputimes = "one" # optional, default; options: "one", "change", "remove", "many".
check = "id" # Required if type is not "bare", id of the item or input to check for.
prompt = "> " # Optional, for type `input` and `exact input`, prompt for the input.
hidden = false # optional, default.
action = "add exit" # any of "add exit", "add exits", "add item", "add items", "reveal interactable".
target_room = "id" # any valid room id; changes will be made to that room.
target_exit.name = "id" # Required if action is "add exit"; name of the exit as it appears in the room listing & id of the room it points to.
# Required if action is "add items"; pick one of the following two:
target_exits = [ # list of inline tables.
{name = "id"}, # similar to a regular exit decl.
]
target_exits.name = "id" # another way to do that.
target_item = {"id" = "description"} # Required if action is "add item"; any valid item id & short description as it appears in the room listing.
# Required if action is "add items"; pick one of the following two:
target_items = [ # list of inline tables.
{id = "description"}, # similar to a regular item decl.
]
target_items.id = "description" # another way to do that.
message_failed = "> I don't seem to be able to do anything with that..." # Optional, default, message if the interaction fails
message = "message after the interactable is activated" # Required.
[rooms.id.exits] # Technically optional.
direction = "id" # direction as it appears in the listing.