Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions site/index.md
Original file line number Diff line number Diff line change
@@ -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/).

Expand Down Expand Up @@ -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.
2 changes: 1 addition & 1 deletion src/mcp/server.gd
Original file line number Diff line number Diff line change
Expand Up @@ -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`.
Expand Down
2 changes: 1 addition & 1 deletion src/pieces/piece_check.gd
Original file line number Diff line number Diff line change
Expand Up @@ -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", []):
Expand Down
4 changes: 2 additions & 2 deletions src/pieces/piece_library.gd
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/studio/studio.gd
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
Loading