diff --git a/site/index.md b/site/index.md index a26c795..5617aae 100644 --- a/site/index.md +++ b/site/index.md @@ -1,6 +1,6 @@ # Set up Agent Guild: Studio -Agent Guild: Studio makes characters and companions for Agent Guild, from a model file or by recoloring one of a world's own looks. It runs on Windows 10 or 11 (64-bit) or macOS 13 or later, and works for you with no window. +Agent Guild: Studio makes characters and companions for Agent Guild, from a model file or by recoloring one of a world's own looks. They work in a Yard, in Agent Guild: World and in Grove Companion, and can be changed in each. It runs on Windows 10 or 11 (64-bit) or macOS 13 or later, and works for you with no window. Agent Guild itself: [agentguild.oddessentials.ai/agents](https://agentguild.oddessentials.ai/agents/). Environments for Agent Guild Yards: [oddessentials.github.io/agent-guild-builders](https://oddessentials.github.io/agent-guild-builders/). @@ -182,6 +182,6 @@ Follow step 4 above. Run Mac step 2 again with the same folder. The connection, the downloaded art and the person's pieces are kept. Then start a new session, so the Studio tools load again. -## Use a character in Agent Guild: Companions +## Use a character in Grove Companion -A character Studio makes can also be the person's desktop spirit in Agent Guild: Companions. Follow its own steps at [oddessentials.github.io/agent-guild-companions](https://oddessentials.github.io/agent-guild-companions/), with the folder `list_pieces` gives for the character. +A character Studio makes can also be the person's desktop spirit in Grove Companion. Follow its own steps at [oddessentials.github.io/agent-guild-companions](https://oddessentials.github.io/agent-guild-companions/), with the folder `list_pieces` gives for the character. diff --git a/src/mcp/server.gd b/src/mcp/server.gd index 8307ddf..88c16f9 100644 --- a/src/mcp/server.gd +++ b/src/mcp/server.gd @@ -12,7 +12,7 @@ const INVALID_REQUEST := -32600 const METHOD_NOT_FOUND := -32601 const INVALID_PARAMS := -32602 const UNSUPPORTED_VERSION := -32022 -const INSTRUCTIONS := "Agent Guild: Studio makes characters and companions for Agent Guild from a model file, or by recoloring one of a world's own looks. It works without a window. +const INSTRUCTIONS := "Agent Guild: Studio makes characters and companions for Agent Guild from a model file, or by recoloring one of a world's own looks. They work in a Yard, in Agent Guild: World and in Grove Companion, and can be changed in each. It works without a window. Start with list_slots: a piece is made for one slot, a world's crew such as guild/anthropic, or a world's companions such as guild/companion. make_character takes one model (.glb, .gltf or .vrm); make_companions takes one model or four; recolor_look starts from a world's own look. Each can change the piece's colors, writes a piece folder at `to` and checks it. A world's art downloads the first time it is needed, which can take a while. When Studio can't be sure of a model's bones, make_character says which, and you call it again with `bones`. diff --git a/src/pieces/piece_check.gd b/src/pieces/piece_check.gd index 8d26430..405d9f0 100644 --- a/src/pieces/piece_check.gd +++ b/src/pieces/piece_check.gd @@ -102,7 +102,7 @@ static func _headers(path: String, kind: String, files: Array) -> String: if not studio: for ext in gltf.get("extensionsRequired", []): if not ext in EXTENSIONS: - return "it needs the glTF extension %s, which Agent Guild: World does not support" % ext + return "it needs the glTF extension %s, which Agent Guild does not support" % ext var beside := [0] var held: Array[PackedByteArray] = [] for buffer in gltf.get("buffers", []): diff --git a/src/pieces/piece_library.gd b/src/pieces/piece_library.gd index 54e72bd..d49fde6 100644 --- a/src/pieces/piece_library.gd +++ b/src/pieces/piece_library.gd @@ -233,9 +233,9 @@ static func check_folder(folder: String) -> Dictionary: if not manifest.get("kind") in FILES: return { "reason": "its piece.json does not say character or companion" } if not YardModel.WORLDS.has(manifest.get("world", "")): - return { "reason": "its piece.json names no world of Agent Guild: World" } + return { "reason": "its piece.json names no Agent Guild world" } if manifest.kind == "character" and not manifest.get("crew", "") in YardModel.PROVIDER_ORDER: - return { "reason": "its piece.json names no crew of Agent Guild: World" } + return { "reason": "its piece.json names no Agent Guild crew" } if manifest.has("title") and (not manifest.title is String or manifest.title.length() > 128): return { "reason": "its title is not text of up to 128 characters" } var allowed: Array = FILES[manifest.kind] + ["piece.json"] + PREVIEWS diff --git a/src/studio/studio.gd b/src/studio/studio.gd index 54bfd64..899834d 100644 --- a/src/studio/studio.gd +++ b/src/studio/studio.gd @@ -27,7 +27,7 @@ static func slot(text: String) -> Dictionary: if parts[1] == "companion": return { "world": parts[0], "kind": "companion", "crew": "" } if not parts[1] in YardModel.PROVIDER_ORDER: - return { "reason": "%s is not a crew of Agent Guild: World" % parts[1] } + return { "reason": "%s is not an Agent Guild crew" % parts[1] } return { "world": parts[0], "kind": "character", "crew": parts[1] } ## The slot's default model, as the game shows it, outside the tree.