Skip to content

Troubleshooting

Florianpal1 edited this page Aug 6, 2026 · 1 revision

Troubleshooting


Chat disappears — nobody sees anything

The Bukkit module cancels every chat event and forwards it to the proxy. If the message never comes back, one of these is true:

  • No FMessage plugin on the proxy. Install FMessageVelocity or FMessageBungee — see Installation.
  • The proxy plugin failed to start (usually the database). Check the proxy console for a stack trace; you should see FMessage enabled.
  • Version mismatch between the backend jar and the proxy jar. Keep both at the same version.
  • You installed both proxy jars. Use Velocity or BungeeCord, not both.

NoClassDefFoundError: me/clip/placeholderapi/PlaceholderAPI on a backend server

PlaceholderAPI is missing. The Bukkit module calls it on every chat message and it is not declared as a soft dependency, so it must be installed on each backend server.

The proxy cannot connect to the database

  • The URL must use the MariaDB scheme: jdbc:mariadb://host:3306/db. jdbc:mysql:// will not work — the driver class is hard-coded to org.mariadb.jdbc.Driver. This is true even against a MySQL server.
  • The schema must already exist; FMessage creates the tables, not the database.
  • The user needs CREATE TABLE on that schema the first time.
  • Check that the database accepts connections from the proxy host (bind-address, firewall, GRANT … TO 'user'@'%').

See Database.

/msg says "The player is not logged in."

The target has to be connected to the network at that moment, and the name has to match exactly (tab-completion helps). Offline messaging is not supported.

/r says "You were not talking with any player."

The /r pairing lives in memory on the proxy and is cleared on restart. Send a fresh /msg first.

/ignore <player> does nothing / says the player is offline

/ignore and /unignore resolve the target's UUID from the online proxy players, so the player must be connected when you run the command.

Also check whether they hold fmessage.cannot_ignore — those players cannot be ignored, and you get "You can't ignore this person."

A player still sees messages from someone they ignore

  • Ignores are applied on the relayed public chat and on private messages. Group messages are not filtered.
  • The proxy caches ignores; they are refreshed by the commands themselves, but a row inserted directly in SQL requires a proxy restart.

Colour codes show up as &c instead of colours

The author needs fmessage.colors (or fmessage.nick.colors for a nickname) — without it, codes typed by a player are shown literally. Codes you write in config.yml always render.

Note that only legacy &-codes work. &#ff0000 and MiniMessage tags such as <red> are not supported.

PlaceholderAPI placeholders show the wrong server / wrong player

Placeholders in chatFormat.general are resolved on the backend server of the author, before the message is relayed. Every recipient therefore sees the author's values — that is by design.

My config change had no effect

Configuration is read once at startup and there is no reload command. Restart the plugin (proxy or backend server) after editing config.yml, database.yml or a language file.

/group create says the group already exists, but /group msg says it doesn't

create, remove and the member subcommands look the group up by owner + name — you can only manage your own groups. msg and toggle look it up by name only. If two players created a group with the same name, msg and toggle resolve to whichever the database returns first.

My chat goes into a group instead of the public chat

You have an active group toggle. Run /group toggle <groupName> again to turn it off.

Staff chat is not received

fmessage.staffchat is needed both to send with /staffchat and to receive. Grant it on the backend servers to everyone who should read it.


Still stuck?

Open an issue on the tracker with:

  • the FMessage version, the proxy type and version, the backend server version
  • the relevant part of the proxy console and of the backend server console
  • your config.yml (redact the database password)

Clone this wiki locally