Skip to main content

Config files

All configuration lives under config/system/. On first read, missing files are copied from the matching default resource under resources/defaults/ in the JAR; existing files are kept. Inside the JAR the actual path of a default resource is /defaults/<file name>.

FileSidePurpose
system-agent.jsonServerAgent execution budget
system-storage.jsonServerStorage capacity
system-model.jsonServerModel endpoint
system-search.jsonServerWeb search endpoint
system-search-pricing.jsonServerWeb search billing estimate
system-semantic.jsonServerLocal semantic routing
system-advancements.jsonServerAdvancement-triggered workflows
system-speech-pricing.jsonClientSpeech billing estimate
system-client.jsonClientInterface and pinned cards
system-speech.jsonClientSpeech synthesis and narration
system-asr.jsonClientSpeech recognition

Editing and saving​

Client settings are all opened from /system settings, and are saved automatically once a change takes effect. When editing files directly, close the related screens first; the server reads the configuration on resource reload, and the client reads it on client resource reload; parameters that require rebuilding the runtime (for example the storage budget) still need a restart. ConfigInstance.set(...) marks the config dirty automatically, and saves are merged per tick; do not modify a snapshot in Java and forget to mark it.

Configuration fields mostly use lenientOptionalFieldOf: a formatting error in a single item is treated as that field being absent, and a nested object failure may also fall back to that field's default value as a whole. This does not mean invalid values have taken effect; after editing, check the log and verify the settings.

Config files, data packs and world saves​

Rewards, shop offers, lottery pools and system / module definitions go in the data pack, and card layouts go in the client resource pack. AI default modes and player authorization belong to the current world save and are managed through /system ai; player data, conversations and the database go in <world>/system/, and accumulated model usage still belongs to the world SavedData. TTS / ASR keys and speech usage stay on the client and are not aggregated by the server.