Repository navigation
Schema set: RPG & storytelling (full set) #70
CheMiguel23
started this conversation in
Schemas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
The complete set of 11 schemas for text-based RPGs and interactive storytelling: characters, locations, quests, factions, artifacts, inventory, currency, skills, time and transportation. MemoryMesh itself ships only two simplified examples (
npcandlocation); this is the full version.What you can say to Claude
Tools you get
Each schema creates three tools:
add_…,update_…anddelete_….add_artifactname,description,type,rarity,effectsowned_by, relatedQuests →associated_with, relatedLocations →found_atadd_currencyname,owner,quantityowned_byadd_factionname,type,descriptionled_byadd_inventoryname,owner,itemsowned_byadd_locationname,type,description,statuscontains, relatedCharacters →present_in, relatedQuests →takes_place_in, relatedArtifacts →located_atadd_npcname,role,status,currentLocation,descriptionlocated_in, origin →originates_fromadd_player_charactername,age,gender,occupation,statusadd_questname,description,status,objectives,rewardsadd_skillsname,ownerpossessesadd_temporalname(added automatically)add_transportationname,description,owner,typeowned_bySetup
Create a folder for this set, for example
rpg-schemas, anywhere on your computer.Save each file below into that folder, keeping the file names.
Point MemoryMesh at the folder with the
MEMORYMESH_SCHEMAS_DIRenvironment variable in your Claude Desktop config:On macOS use normal paths, e.g.
"/Users/you/rpg-schemas". SettingMEMORYMESH_MEMORY_FILEtoo is optional; it keeps this set's data separate from your other memories.Fully quit and restart Claude Desktop.
Using your own folder keeps these schemas safe from updates and keeps the built-in examples out of your tool list. (You can also drop the files into
dist/data/schemasinstead.)Tips
"required": truefrom any field you'd rather keep optional.The 11 schema files
artifact.schema.json{ "name": "add_artifact", "description": "Add a new artifact or unique item to the knowledge graph", "properties": { "name": { "type": "string", "description": "The artifact's name", "required": true }, "description": { "type": "string", "description": "A detailed description of the artifact", "required": true }, "type": { "type": "string", "description": "The artifact's type", "required": true }, "rarity": { "type": "string", "description": "The rarity of the artifact", "required": true }, "effects": { "type": "array", "description": "The artifact's effects or abilities", "required": true }, "origin": { "type": "string", "description": "The artifact's origin or history", "required": false }, "value": { "type": "string", "description": "The monetary or intrinsic value of the artifact", "required": false }, "relatedCharacters": { "type": "array", "description": "Characters associated with the artifact", "required": false, "relationship": { "edgeType": "owned_by", "description": "Artifact owners" } }, "relatedQuests": { "type": "array", "description": "Quests involving the artifact", "required": false, "relationship": { "edgeType": "associated_with", "description": "Artifact-related quests" } }, "relatedLocations": { "type": "array", "description": "Locations associated with the artifact", "required": false, "relationship": { "edgeType": "found_at", "description": "Artifact locations" } } }, "additionalProperties": true }currency.schema.json{ "name": "add_currency", "description": "Represents a type of currency in the game world.", "properties": { "name": { "type": "string", "description": "The name of the currency.", "required": true }, "description": { "type": "string", "description": "A brief description of the currency.", "required": false }, "owner": { "type": "string", "description": "The entity or character that owns this currency.", "required": true, "relationship": { "edgeType": "owned_by", "description": "The relationship between the currency and its owner." } }, "quantity": { "type": "string", "description": "The amount of this currency owned.", "required": true } }, "additionalProperties": true }faction.schema.json{ "name": "add_faction", "description": "A faction or organization operating within the game world.", "properties": { "name": { "type": "string", "description": "The name of the faction or organization.", "required": true }, "type": { "type": "string", "description": "The type of the faction.", "required": true }, "description": { "type": "string", "description": "A detailed description of the faction.", "required": true }, "goals": { "type": "array", "description": "The main objectives or goals of the faction.", "required": false }, "leader": { "type": "string", "description": "The leader of the faction.", "required": false, "relationship": { "edgeType": "led_by", "description": "The entity leading this faction." } } }, "additionalProperties": true }inventory.schema.json{ "name": "add_inventory", "description": "A collection of items or equipment belonging to a character, entity, or location.", "properties": { "name": { "type": "string", "description": "[Entity]_inventory.", "required": true }, "owner": { "type": "string", "description": "The owner of this inventory.", "required": true, "relationship": { "edgeType": "owned_by", "description": "The entity that owns this inventory." } }, "items": { "type": "array", "description": "List of items in the inventory.", "required": true } }, "additionalProperties": true }location.schema.json{ "name": "add_location", "description": "Add a new location to the knowledge graph", "properties": { "name": { "type": "string", "description": "Location's name", "required": true }, "type": { "type": "string", "description": "Type of location", "required": true }, "description": { "type": "string", "description": "Detailed description of the location", "required": true }, "status": { "type": "string", "description": "Current state of the location", "required": true }, "parentLocation": { "type": "string", "description": "The parent location this location belongs to", "required": false }, "atmosphere": { "type": "string", "description": "The general feel/mood of the location", "required": false }, "accessibility": { "type": "string", "description": "How characters can enter/exit the location", "required": false }, "size": { "type": "string", "description": "The size or scale of the location", "required": false }, "dangerLevel": { "type": "string", "description": "The level of danger present in the location", "required": false }, "notableFeatures": { "type": "array", "description": "Distinct characteristics of the location", "required": false }, "subLocations": { "type": "array", "description": "Locations contained within this location", "required": false, "relationship": { "edgeType": "contains", "description": "Locations contained within this location" } }, "relatedCharacters": { "type": "array", "description": "Characters present in or associated with this location", "required": false, "relationship": { "edgeType": "present_in", "description": "Characters associated with the location" } }, "relatedQuests": { "type": "array", "description": "Quests associated with this location", "required": false, "relationship": { "edgeType": "takes_place_in", "description": "Quests associated with the location" } }, "relatedArtifacts": { "type": "array", "description": "Artifacts found or stored at this location", "required": false, "relationship": { "edgeType": "located_at", "description": "Artifacts associated with the location" } } }, "additionalProperties": true }npc.schema.json{ "name": "add_npc", "description": "Add a new Non-Player Character (NPC) to the knowledge graph", "properties": { "name": { "type": "string", "description": "NPC's name", "required": true }, "role": { "type": "string", "description": "NPC's role or occupation", "required": true }, "status": { "type": "string", "description": "NPC's current status", "required": true }, "currentLocation": { "type": "string", "description": "The current location of the NPC", "required": true, "relationship": { "edgeType": "located_in", "description": "The current location of the NPC" } }, "description": { "type": "string", "description": "A detailed description of the NPC", "required": true }, "gender": { "type": "string", "description": "NPC's gender", "required": false }, "race": { "type": "string", "description": "NPC's race", "required": false }, "background": { "type": "string", "description": "The background story of the NPC", "required": false }, "secret": { "type": "string", "description": "A hidden detail about the NPC", "required": false }, "origin": { "type": "string", "description": "The origin or home location of the NPC", "required": false, "relationship": { "edgeType": "originates_from", "description": "The origin location of the NPC" } }, "traits": { "type": "array", "description": "Unique traits or characteristics of the NPC", "required": false }, "abilities": { "type": "array", "description": "Specific skills or powers the NPC possesses", "required": false }, "importance": { "type": "string", "description": "The importance of the NPC in the story or world", "required": false }, "reputation": { "type": "string", "description": "How the NPC is perceived by others", "required": false }, "money": { "type": "string", "description": "Currency or wealth the NPC holds", "required": false }, "alignment": { "type": "string", "description": "The ethical or moral alignment of the NPC", "required": false }, "motivation": { "type": "string", "description": "The driving purpose or goals of the NPC", "required": false } }, "additionalProperties": true }player_character.schema.json{ "name": "add_player_character", "description": "Add a new Player Character to the knowledge graph", "properties": { "name": { "type": "string", "description": "Player character's name", "required": true }, "age": { "type": "string", "description": "Player character's age", "required": true }, "gender": { "type": "string", "description": "Player character's gender", "required": true }, "occupation": { "type": "string", "description": "Player character's occupation", "required": true }, "status": { "type": "string", "description": "Player character's current status", "required": true }, "race": { "type": "string", "description": "Player character's race", "required": false }, "description": { "type": "string", "description": "A detailed description of the player character", "required": false }, "background": { "type": "string", "description": "The background story of the player character", "required": false }, "equipment": { "type": "array", "description": "List of equipment items associated with the player character", "required": false } }, "additionalProperties": true }quest.schema.json{ "name": "add_quest", "description": "Add a new Quest to the knowledge graph", "properties": { "name": { "type": "string", "description": "Quest's name", "required": true }, "description": { "type": "string", "description": "Detailed description of the quest", "required": true }, "status": { "type": "string", "description": "Current status of the quest", "required": true, "enum": [ "Active", "Completed", "Failed" ] }, "objectives": { "type": "array", "description": "List of objectives to complete the quest", "required": true, "items": { "type": "string" } }, "rewards": { "type": "array", "description": "List of rewards for completing the quest", "required": true, "items": { "type": "string" } }, "relatedCharacters": { "type": "array", "description": "List of player characters assigned to the quest", "required": false, "items": { "type": "string" } }, "relatedNPCs": { "type": "array", "description": "List of NPCs involved in the quest", "required": false, "items": { "type": "string" } }, "relatedLocations": { "type": "array", "description": "List of locations associated with the quest", "required": false, "items": { "type": "string" } } }, "additionalProperties": true }skills.schema.json{ "name": "add_skills", "description": "Defines list of skills or abilities a character can possess.", "properties": { "name": { "type": "string", "description": "[Entity]_abilities", "required": true }, "owner": { "type": "string", "description": "The entity or character that owns these skills.", "required": true, "relationship": { "edgeType": "possesses", "description": "The relationship between the skill and its owner." } } }, "additionalProperties": true }temporal.schema.json{ "name": "add_temporal", "description": "Represents a specific point in time and its associated environmental conditions.", "properties": { "time": { "type": "string", "description": "The specific time.", "required": false }, "day": { "type": "string", "description": "The current day.", "required": false }, "year": { "type": "string", "description": "The current year or point in the timeline.", "required": false }, "weather": { "type": "string", "description": "The current weather or environmental conditions.", "required": false } }, "additionalProperties": true }transportation.schema.json{ "name": "add_transportation", "description": "Represents a transportation owned or used by a character or entity.", "properties": { "name": { "type": "string", "description": "The name of the vehicle.", "required": true }, "description": { "type": "string", "description": "A brief description of the vehicle.", "required": true }, "owner": { "type": "string", "description": "The entity or character that owns this vehicle.", "required": true, "relationship": { "edgeType": "owned_by", "description": "The relationship between the vehicle and its owner." } }, "type": { "type": "string", "description": "The type or class of the vehicle (e.g., car, spaceship, boat, horse).", "required": true } }, "additionalProperties": true }All reactions