-
Notifications
You must be signed in to change notification settings - Fork 0
Settings
All of Blockpal's options are changed in the in-game panel. As of 3.4.0
there are no per-setting commands (/ai settings, /ai token, /ai listen,
/ai active, /ai commands were removed) — everything lives in the panel, which
writes to config/blockpal/config.json.
Operator-only. Server-wide settings are admin-gated (
adminPermissionLevel, default 2 = ops). The owner of a singleplayer/LAN world always counts as an admin (3.16.1) — even with cheats off — so you can always configure your own world. Players can always change their own model and key (see Per-Player Keys & Models). See also Security.
/ai panel (or /ai menu), or — unless disabled — sneak-right-click your assistant.
Every Blockpal screen has a shared tab bar at the top to move between the panels:
| Tab | Who | What's there |
|---|---|---|
| Settings | admins | The five sub-tabs below (names, AI, behaviour, combat, developer) |
| Admin | ops | Server controls + stats — see Admin Menu |
| My Settings | everyone | Your own model and API key |
| Sub-tab | What's here |
|---|---|
| Identity | Name, skin, Open skins folder button, Default personality |
| Behavior | Chat listening, active analysis, sneak-to-open-menu, allow custom personalities, allow possession mode, allow agent voice, thinking style, send pictures to the AI, live on its own, creative-mode warning, do things by hand, human-like pauses, eyesight (picture size + view distance + script time limit), Growth village sizes, follow distance, guard radius, performance preset |
| AI & API | The one AI connection, MCP server settings + Open setup guide button, API provider preset, API URL, model, token, temperature, max tokens, and the endpoints for Ollama, the Player2 app and the free service |
| Combat | Allow commands, permission level, flee health |
| Developer | Action tick delay, task watchdog timeout, flee health (high-risk — see Developer Menu) |
- Each setting has a hover tooltip explaining it.
- Edits are held in a draft and captured on each tab switch, so moving between tabs doesn't lose changes.
Personality: the Identity tab sets the default personality for newly summoned bots, and the Behavior tab has an Allow custom personalities toggle. Each player changes their own bot's personality with
/ai personality <id>//ai personality custom <text>or the My Settings screen (/ai mymenu). See Personalities.
- Save / Apply / Cancel bar is pinned at the bottom; Esc auto-saves.
- The token field stays blank when one is set — leave it blank to keep the current token, or type a new one to replace it.
-
Password-style masking (3.17.2) — the token box shows dots (•••) by default
and is read-only until you press the Show key toggle beneath it, which
switches it to an editable plaintext box for typing/pasting your key; toggle
it off again to re-mask (what you typed is kept, just hidden — no need to
retype it). This only ever affects text you're actively entering — an
already-saved key is still never sent back to the menu at all (see API token
security below). The same masking + Show key toggle is on the personal key
box in My Settings (
/ai mymenu).
The AI & API tab starts with a single AI connection picker, and that is the whole answer to "what is thinking for my bots":
| Connection | What it means |
|---|---|
| MCP server | An AI app you already use (Claude, ChatGPT, Grok, Gemini) connects to your world and drives the bot. No key stored in the game — see MCP server |
| My own API key | An OpenAI-compatible key + model you type in below |
| Player2 app | The free Player2 app, or its cloud with a PLAYER2_KEY
|
| Local Ollama / LM Studio | Your own model on your own machine — no key, no internet |
| Free keyless service | A small free internet model. Works out of the box, rate-limited |
| No AI | Companions still eat, fight and survive — they just don't think with a model |
Choosing one turns the others off. Before 3.25.0 a key, Player2, Ollama and the free service could all be "enabled" at once and a hidden priority order decided which answered — so nobody could tell which AI was really running, or which one was being billed. Now there's one setting and one answer. A live line under the picker names it outright: "▶ Bots will use: …".
By command: /ai connection shows it, /ai connection set <mcp|key|player2|ollama|free|off>
changes it (ops). Setting a shared key with /ai admin token also switches the connection
to My own API key, since that's obviously what you meant.
Existing servers are migrated: whatever your old settings would have resolved to becomes your connection, so nothing changes on upgrade.
On Settings → Behavior:
| Setting | Default | Effect |
|---|---|---|
| Thinking style | Look and write code | The bot looks at the world, gets a picture of what its eyes see, and writes a script that presses its keys. Switch to Classic action plan (JSON) for the pre-3.25 planner |
| Send pictures to the AI | on | Off = the written scene only — cheaper, and needed for models that can't see images |
| Live on its own | on | Keep-alive reflexes that need no AI at all: eat, escape water/fire, unstick, walk back to you |
| Warn me in creative mode | on | Companions never teleport, so a flying owner leaves one behind |
And under Its eyesight on the same tab: picture width, picture height, how far it can see, and the script time limit. Bigger pictures are sharper but cost one ray cast per pixel each time the bot looks, so the sliders are capped at sensible values.
Full explanation and the scripting language: Vision & Code.
Settings that previously existed only in config.json or behind an /ai admin command
have visual controls: the vision size and range, the script time limit, do things by
hand and human-like pauses, the Growth village population numbers, and the endpoint
boxes for the Player2 app and the free keyless service. The /ai admin … text commands
still work and remain the way to configure from a Bedrock or vanilla client with no GUI.
The three list settings — the allowed-model list, the bring-your-own-key exemption
list, and the Ollama model pool — are still managed with commands
(/ai admin models|keylist|ollama models add|remove|list), since they're add/remove
lists rather than single values.
Settings → AI & API → Local AI on this machine. Blockpal downloads a model (under 3 GB) and runs it on your graphics card — the keyless option, replacing the old free internet service.
| Setting | Default | What it does |
|---|---|---|
localModelId |
qwen3b |
Which model to run |
localAutoStart |
on | Start it with the server, once downloaded |
localContext |
4096 | Context window in tokens |
localGpuLayers |
-1 | Layers on the GPU; -1 lets llama.cpp decide |
localPort |
8081 | Loopback port; never exposed off the machine |
Consent is not a setting. The panel changes every value above but cannot agree to a download — a settings packet claiming consent is ignored. Agreeing happens at the
/ai local setupprompt that shows you the size. See Local AI on your GPU.
On Settings → Behavior:
| Setting | Default | What it does |
|---|---|---|
reactionSpeed |
fast |
One setting for every pause the mod adds — step delay, head-turn rate, how often it re-thinks, vision rate, script budget. instant / fast / human. |
combatSkill |
skilled |
basic (walk in and swing), skilled (range, circling, shield, disengage), expert (crits, bow). |
allowPvp |
off | May a companion fight a player at all. Even on, provoked-only and never the owner or anyone trusted. |
actionTickDelay still exists on the Developer tab but is now a floor: raise it
above 2 deliberately and it is honoured, otherwise reactionSpeed decides.
See Speed & Combat.
Also on Settings → Behavior. pvtEnabled, pvtAutoRecord, pvtConfidence,
pvtHiddenSize, pvtEpochs, pvtLearningRate, pvtMaxFrames. Recording is opt-in
per player and never enabled by a setting — see
PVT — learning by watching.
The Thinking style cycler gains a third option, "Act on what it learned by
watching" (aiLogicMode = pvt).
Blockpal talks to any OpenAI-compatible chat-completions endpoint, so switching "which AI you use" is really just swapping the API URL and a matching model. The AI provider cycler at the top of the AI & API tab does both in one click:
| Provider | Endpoint | Default model | Key |
|---|---|---|---|
| HuggingFace | router.huggingface.co/v1/chat/completions |
mistralai/Mistral-7B-Instruct-v0.2 |
your HF token |
| ChatGPT (OpenAI) | api.openai.com/v1/chat/completions |
gpt-4o-mini |
ships with a public demo key |
| Claude (Anthropic) | api.anthropic.com/v1/chat/completions |
claude-3-5-sonnet-20241022 |
your Anthropic key |
| Gemini (Google) | generativelanguage.googleapis.com/v1beta/openai/chat/completions |
gemini-2.0-flash |
your Google API key |
| Grok (xAI) | api.x.ai/v1/chat/completions |
grok-2-latest |
your xAI key |
- Picking a provider fills the API URL and Model boxes for you. For ChatGPT
it also reveals and pre-fills a public demo key so it isn't blank the first time
(that key is probably rate-limited or dead — replace it with your own OpenAI key via
Show key or
/ai mykey <key>for real use). - Every other provider needs your own API key for that service — set it in the
token box (press Show key first) or with
/ai admin token <key>//ai mykey <key>. - If the API URL matches none of the presets the cycler reads Custom — you can still point at any other OpenAI-compatible endpoint (a local Ollama/LM Studio, OpenRouter, …) by editing the URL by hand.
-
Bedrock / vanilla / no GUI:
/ai admin provider <name>where<name>ishuggingface,chatgpt,claude,geminiorgrok(bare/ai admin providerlists them and shows the current one).
Blockpal works with no API key at all: when no key resolves for a request (no shared server key, no personal key), it automatically falls back to a free, keyless OpenAI-compatible service (Pollinations) so the companion can plan and act out of the box. HuggingFace stays the configured default — the moment a token is set it always wins, and the free service is only ever the no-key fallback.
- Free AI fallback toggle (AI & API tab, default on): turn it off to make a real key strictly required again — with it off and no key, the AI can't run.
-
freeApiUrl/freeModelinconfig.jsonpoint the fallback anywhere else (e.g. a local keyless Ollama) — there are deliberately no GUI fields for these. - The free service is a shared public endpoint: expect it to be slower and lower quality than a keyed model, and don't send anything sensitive through it.
- The AI & API tab's status line tells you which mode you're in ("bots run on the free built-in AI" vs "API key saved").
Ops change these right in the Admin tab — click a toggle or a level cycler, no commands needed:
| Option | Meaning |
|---|---|
| Allow commands | Let bots run /setblock, /fill, /give, etc. |
| Command perm level | Permission tier (0–4) for those commands (2 = command-block) |
| Admin level | Op tier (0–4) needed to change settings / use the admin panel. Default 2 |
| Max bots | Most bots allowed on the server at once (0 = unlimited). Default 8 |
| Require own API key | Players must bring their own key (except the whitelist) |
| Players may pick model | Allow players to choose their bot's model |
| Allow possession mode | Let players hand their character to their companion (/ai possess) — see Possession Mode
|
The two lists — the allowed models and the own-key whitelist — are managed
with /ai admin models … and /ai admin keylist … (see
Per-Player Keys & Models).
The token is never shown back, never logged, and stored obfuscated in
config.json (hfTokenObf) rather than as plain text. For the strongest protection,
set it via the BLOCKPAL_API_TOKEN environment variable instead — then it's used but
never written to disk. On a vanilla-client server with no GUI, this env var (or
hand-editing config.json) is how you set the shared key. Full details in
Security.
Settings live in config/blockpal/config.json. The file carries a configVersion
stamp:
- Missing or corrupt → regenerated from defaults (and a fresh install kicks off the first-run tutorial).
- From an older mod version → newly-added fields are filled with their intended defaults (not Java's false/0), while existing values like your API key are preserved.
So your API key carries across mod updates, and a deleted file just comes back as defaults.
Schema v12 (3.25.0) added the exclusive aiConnection, the MCP server settings
(mcpPort, mcpAllowRemote, mcpRequireToken, mcpTokenObf), the vision/code brain
(aiLogicMode, visionEnabled, visionWidth, visionHeight, visionRange,
scriptMaxTicks), survivalBrain and creativeModeWarning. Upgrading servers keep the
provider they were already using. allowBotTeleport appears in the file as false and
is deliberately not editable — companions never teleport.
Saves are crash-safe (3.17.0). The config is serialized fully in memory, written
to a temp file, and atomically moved over config.json, so a crash, full disk or
antivirus interruption can never leave a half-written settings file. The previous
good file is kept alongside as config.json.prev for hand recovery, and a
transient write failure (e.g. a virus scanner briefly locking the file) is retried
automatically. Failures are never silent — the in-game save message shows the real
config path and turns red if the write failed.
Blockpal — a Minecraft Fabric AI companion mod · default companion Ethan · Report an issue · MIT License
Start here
Using the mod
- Commands
- Talking to Your Assistant
- Client-Side Assistant
- Possession Mode
- Voice
- Settings
- Performance Presets
- Custom Skins
- Personalities
- Trust & Per-Bot Management
- Running Commands
- AI Actions
- Vision & Code
- PVT — learning by watching
- Speed & Combat
- Bedrock (Geyser)
- Bedrock Add-On (single-player)
Multiplayer & games
AI providers
- MCP server (Claude/ChatGPT/Grok/Gemini)
- Local AI on your GPU
- Local & Player2 AI
- Per-Player Keys & Models
Admin & safety
Reference