Fabric 1.20.1 · Client-side Mod · OpenAI-Compatible API
Shape Shifter's Compass is a client-side mod that brings a large language model into Minecraft. It exists as a "dedicated assistant" for Shape Shifter's Curse and its addon — it can read your inventory, equipment, trinkets, crafting grid, current form and skill cooldowns, search the built-in SSC/SSCA knowledge base to answer questions about form evolution, Lunar Marrow Ring, whitelist and other mechanics, and (when cheats are enabled) help you execute commands, locate structures, and give items. It also uses the same algorithm as AppleSkin to precisely calculate a food's hunger and saturation, telling you whether "feeding a Gold Carrot to your Familiar actually does anything".
Author: MangZai-120 · License: MIT · Environment: Client-side only
get_food_info / get_inventory / get_equipment all include a food's hunger value, saturation restore (hunger × saturation coefficient × 2), whether it's edible right now, and status effects; with Apoli installed, the current form's modify_food modifier is applied.knowledge/core/); extend by simply dropping .md files into the directory.mods/ (requires Fabric API; Trinkets and SSC/SSCA are soft dependencies — install them to unlock the corresponding tools).The default hotkey is K (key.ssc_compass.open, rebindable in Controls). If K is intercepted while a container screen (inventory / crafting table) is open, a physical key edge-detection fallback brings up the window overlaid on the original screen.
The AI auto-invokes the following tools as needed (function calling). Read-only tools are available by default; cheat tools require cheats to be enabled in settings and OP permission (cheatEnabled && hasPermissionLevel(2), server-side enforced, client cannot tamper), and are strictly validated at the tool level — they cannot be bypassed via prompt. All tools operate only on the player's own data.
| Tool | Category | Description |
|---|---|---|
get_inventory |
Read-only | 36-slot inventory items and counts; food items include AppleSkin-style values |
get_equipment |
Read-only | Equipment (helmet/chestplate/leggings/boots) + off-hand; main & off-hand food items include values |
get_crafting_grid |
Read-only | Current crafting grid (2×2 / 3×3) layout and result; requires the corresponding screen to be open |
query_recipe |
Read-only | Query registered recipes by item ID / Chinese or English name (first 5) |
get_trinkets |
Read-only | Trinkets accessory slots (requires Trinkets installed) |
get_form_status |
Read-only | Current SSC form + all Apoli resources (CD/mana/energy; requires SSC) |
query_knowledge |
Read-only | Search the built-in SSC/SSCA knowledge base (forms/evolution/mechanics/commands) |
get_player_status |
Read-only | Health/hunger/saturation/armor/XP/coordinates/dimension/status effects/attributes |
web_search |
Read-only · Async | Web search (web / Minecraft Wiki / Wikipedia) |
get_seed |
Read-only | World seed (read directly in single-player; on a server, prompts /seed) |
list_mods |
Read-only | List loaded mods' id / name / version |
get_food_info |
Read-only | Precise values for any food (AppleSkin's algorithm; applies form modifier when Apoli is present) |
locate_structure |
🔒Cheat · Async | Locate the nearest structure or biome |
run_command |
🔒Cheat · Async | Execute Minecraft commands on the whitelist (dangerous commands like op/stop/ban are always rejected) |
set_player_data |
🔒Cheat · Async | Modify max health / full heal / full hunger / set XP level |
Command feedback from cheat tools is suppressed by
ChatHudMixin— written only to the backend log, not shown in the player's chat; the/locatecoordinate feedback is first parsed byLocateToolbefore being swallowed.
Config file: config/ssc_compass.json, or press ⚙ in-game to open the ConfigScreen for visual editing (apiKey is masked with * while rendering; the cheat toggle is visible to OP only).
AI Connection: provider / baseUrl / apiKey / model / temperature(0.7) / maxTokens(1024) / maxHistory(20)
HUD Layout: hudBallX/Y(-1 = right side/center by default) / hudBoxX/Y(4,4) / hudBoxWidth(160) / hudBoxHeight(112) / hudVisible(true) / hudBgAlpha(128) / hudFontPct(75) / chatFontPct(100)
Other: cheatEnabled(false) — whether cheat commands are enabled (only OP can toggle in the UI)
| Vendor | baseUrl | Candidate Models |
|---|---|---|
| OpenAI | api.openai.com/v1 |
gpt-5.4 / gpt-5.5-mini |
| z.ai (GLM) | api.z.ai/api/paas/v4 |
glm-5 / glm-5.1 |
| DeepSeek (recommended) | api.deepseek.com |
deepseek-v4-flash / deepseek-v4-pro |
| Moonshot (Kimi) | api.moonshot.cn/v1 |
kimi-k2.6 / kimi-k3 |
| OpenRouter | openrouter.ai/api/v1 |
claude-sonnet-4.6 / gpt-5.2 / deepseek-chat |
| OpenCode Zen | opencode.ai/zen/v1 |
glm-5.2 / kimi-k2.6 / deepseek-v4-flash |
| Custom | custom | custom |
Any OpenAI-compatible endpoint can be connected (just fill in baseUrl + apiKey + model).
DeepSeek V4 Flash is recommended.
Compass's system prompt is deeply customized for SSC/SSCA, with key rules:
list_mods to confirm.web_search and declares the source.get_food_info (live registry data) — never answers from memory; for saturation-immune forms (Familiar-Fox series), it switches to Compressed Energy Potions instead of normal food./shape_shifter_curse set_form @s <formId> (no animation) or transform_to_form (with animation); the formId carries a namespace and must be looked up in the knowledge base for the exact name.The knowledge base lives in assets/ssc_compass/knowledge/core/ — plain Markdown files, split into entries by ## second-level headings. Existing files: overview.md / forms.md / commands.md. To extend, simply add .md files to that directory; restart and they'll be searchable by query_knowledge.
| Mixin | Purpose |
|---|---|
ChatHudMixin |
Intercepts ChatHud.addMessage, swallows feedback within the command-feedback suppression window (first fed to LocateTool to ensure coordinate parsing) |
HandledScreenAccessor |
Exposes HandledScreen's x/y/backgroundWidth (for layout positioning) |
MIT. Source: https://github.com/MangZai-120/Shape-Shifter-s-Compass
✦ Compass · Your Personal Shape Shifter's Curse Guide ✦