Skip to content

Instantly share code, notes, and snippets.

@AndreasHassing
Last active March 23, 2024 22:52
Show Gist options
  • Select an option

  • Save AndreasHassing/e7b483decd23b5dce85110c896897365 to your computer and use it in GitHub Desktop.

Select an option

Save AndreasHassing/e7b483decd23b5dce85110c896897365 to your computer and use it in GitHub Desktop.
Skills for Thistle Gulch, extracted from Metaterra.Managers.NarrativeManager.Skills() in thistlegulch-windows-1.45.1-beta\ThistleGulch_Data\Managed\Metaterra.dll

Extracted from Metaterra.Managers.NarrativeManager.Skills() in thistlegulch-windows-1.45.1-beta\ThistleGulch_Data\Managed\Metaterra.dll, using ILSpy.

Had to do a few substitutions with https://regex101.com to clean the data as it came as a set of CIL-friendly strings in calls to Blackboard.FromJson.

[
{
"name":"default_action",
"description":"The default action to take when no other action is specified. Characters should typically pick default when the priority is high.",
"parameters":{
"goal":"<str: goal of the movement>"
}
},
{
"name":"go_to",
"description":"Go to a location in the world",
"parameters":{
"destination":"<str: persona_guid, item_guid, or location.name to go to>",
"goal":"<str: goal of the movement>"
}
},
{
"name":"converse_with",
"description":"Walk to another character and talk to them",
"parameters":{
"persona_guid":"<str: guid of the persona to converse with. You cannot talk to yourself.>",
"topic":"<str: topic of the conversation>",
"context":"<str: lots of helpful details the conversation generator can use to generate a conversation. It only has access to the context and the topic you provide, so be very detailed.>",
"goal":"<str: goal of the conversation>"
}
},
{
"name":"wait",
"description":"Wait for a period of time while observing the world",
"parameters":{
"duration":"<int: number of minutes to wait>",
"goal":"<str: goal of the waiting>"
}
},
{
"name":"reflect",
"description":"Think about things in order to synthesize new ideas and specific plans",
"parameters":{
"focus":"<str: the focus of the reflection>",
"result:":"<str: The result of the reflection, e.g. a new plan or understanding you will remember.>",
"goal":"<str: goal of reflecting>"
}
},
{
"name":"interact",
"description":"Interact with an item in the world",
"parameters":{
"item_guid":"str: The id of the item to interact with",
"interaction":"str: The name of the interaction from the list per item.",
"goal":"<str: goal of interaction>"
}
},
{
"name":"take_to",
"description":"Take an item or person to a location in the world",
"parameters":{
"guid":"<str: persona_guid, item_guid to take to a location>",
"destination":"<str: persona_guid, item_guid, or location.name to take the item or npc to>",
"goal":"<str: goal of the take_to>"
}
},
{
"name":"exchange",
"description":"Exchange resources with another person, shop, or storage. Create new resources as needed, but they must be tangible inventory objects, not ideas or information.",
"parameters":{
"give_guid":"<str: Resource guid to give>",
"give_amount":"<int: Resource amount to give. Must be greater than 0>",
"receive_guid":"<str: Resource guid to receive>",
"receive_amount":"<int: Resource amount to receive. Must be greater than 0>",
"goal":"<str: goal of the exchange>",
"counterparty_guid":"<str: (optional) owner_guid to exchange resources with. If not specified, the closest counterparty will be used>"
}
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment