80 lines
No EOL
3.7 KiB
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. |