Troubleshooting
This page covers issues with the Tea engine itself. Issues specific to a particular game belong in that game's own troubleshooting page.
TeaCore fails to start with UnsatisfiedLinkError on SQLite
You're on a platform SQLite-JDBC doesn't ship a native library for. Switch to MySQL in config.yml or use a supported OS/architecture (most Linux + glibc, Windows, macOS x64/arm64 variants work out of the box). The SQLite native library is intentionally left unrelocated inside the shadow jar, so it loads the correct per-arch binary.
Lobby commands (/play, /tea lobby) report "Unknown command" or do nothing
Lobby features are gated by lobby.enabled in plugins/TeaCore/config.yml. On a server where it's false (the default), the lobby UI is intentionally inert: signs aren't bound, /play queries the network instead of acting locally, and lobby-spawn enforcement is off. Set lobby.enabled: true on the hub server and restart (or /tea lobby reload) to turn the lobby UI on.
If TeaCore itself failed to enable, the plugin will be unloaded and every command - lobby and arena alike - disappears. Scroll up in the log for the TeaCore error and address that first.
/play <game> fails with "Unknown game name"
The named game isn't registered on this server. In a split lobby/arena deployment, the lobby sees games via the coordination backend - check that network.mode is set to bungeecord or multi-server and that the arena server is heartbeating (look for Coordination: redis and arena entries in SMEMBERS tea:arenas:index). In a single-server setup, install the game's jar (and any of its own dependencies) on the same server.
Arena allocates but players fall into the void
The schematic isn't being pasted. Check:
- WorldEdit or FastAsyncWorldEdit is installed and enabled.
- The map has a schematic -
/tea map info <game> <map>should show a schematic path. - The schematic file actually exists at
plugins/TeaCore/maps/schems/<mapId>.schem.
Players stand around forever and the match never starts
The map might not have enough participant spawns for the player count, or the lifecycle timers haven't elapsed. As a quick fix, run /tea arena start <arenaId> to collapse the current phase timer. /tea arena list shows each arena's current state and player count.
Chat leaks across arenas
Your ChatRouter isn't running or a third-party plugin is calling Bukkit.broadcast directly. Make sure no plugin replaces or cancels AsyncPlayerChatEvent before TeaCore's handler. Other plugins that broadcast match-state messages should use MatchBroadcaster from TeaCore rather than Bukkit.broadcast.
"Missing translation: core.xxx" (or lobby.xxx, or a game's prefix) in chat
New translation keys were added in a plugin update but your on-disk lang file was missing them. This should resolve automatically since each plugin merges jar defaults with your disk overrides on enable; if it doesn't, delete plugins/<PluginName>/lang/*.yml and restart - they'll be re-extracted from the jar with all current keys.
Map authoring: "Schematic paste failed"
The edit world exists but the saved schematic can't be pasted. Causes:
- The schematic file was manually deleted from
plugins/TeaCore/maps/schems/. - The schematic was saved with a different Minecraft version that introduced incompatible block IDs. Re-run
/tea map createand build fresh, or replace the.schemwith one compatible with the current server version. - WorldEdit isn't loaded.
Redis connection refused
Check redis: in config.yml matches your actual Redis host/port, and that Redis allows connections from the Tea servers (including password if requirepass is set). In bungeecord/multi-server mode with Redis unavailable, TeaCore falls back to in-memory coordination and logs a SEVERE warning - your cross-server features will silently degrade.