Skip to content

FAQ

Module permissions are granted to operators by default. Give your player group at least cobaltstaff.reports.report, cobaltstaff.reports.view-my-reports and cobaltstaff.tickets.create, plus cobaltstaff.warnings.view-my-warnings and cobaltstaff.mutes.view-my-mutes to view their sanctions. See the per-rank example.

A command “does not exist” for a staff member

Section titled “A command “does not exist” for a staff member”

A command is hidden from anyone without its permission: the client shows it as unknown. Check the permission listed in Commands, or in commands/<module>.yml if you changed it.

Another plugin already uses /ban, /mute or /vanish

Section titled “Another plugin already uses /ban, /mute or /vanish”

By default (commands.override-existing: true), CobaltStaff replaces same-name commands, including other plugins’ aliases. To give priority to another plugin, set the option to false, or rename or disable the command in commands/<module>.yml, then restart the server.

A moderator cannot sanction another staff member

Section titled “A moderator cannot sanction another staff member”

That is the staff hierarchy: you can only target a player of a strictly lower rank. Check the ranks list in config.yml and each rank’s cobaltstaff.rank.<rank> permissions.

“Your maximum duration is…” is displayed

Section titled ““Your maximum duration is…” is displayed”

The staff member hit their duration limit (cobaltstaff.bans.tempban.limit.<duration>, cobaltstaff.mutes.tempmute.limit.<duration>…) or the default-limits one. See Limits and cooldowns.

They are private-use characters meant for a resource pack. Provide the glyphs in your pack, or remove them from the language files. See Messages and languages.

Some texts are in French even with language: en

Section titled “Some texts are in French even with language: en”

Language files exist in both languages, but ban screen templates (bans/*.txt) and configuration texts (report types, /sanction motives, command usages) are bundled in French. Translate them directly in those files.

Keeping the tab line in PLAYER vanish requires the packetevents plugin. Without it, this vanish type removes the line too.

With notifications.staff-mode-only: true (default), report, sanction and alert notifications are only received in staff mode. For alerts, you also need the cobaltstaff.alerts.<type> permission and an active subscription (/alerts).

Keep the LiteBans configuration in place, then run /cobaltstaff import litebans. Bans, mutes, kicks, warns and the name and IP history are imported. The command can be re-run without creating duplicates. See Import and migration.

No. CobaltStaff uses a local SQLite database (data.db, WAL mode), bundled with Paper. All queries run on a dedicated thread and hot state is kept in memory: the server thread never waits for the database.

Does the plugin work on a network (BungeeCord, Velocity)?

Section titled “Does the plugin work on a network (BungeeCord, Velocity)?”

CobaltStaff is designed for a single server: sanctions, reports and states are not synchronised between several servers. The server name (server-name) is only kept in the history.

What happens if the server stops while a staff member is in staff mode?

Section titled “What happens if the server stops while a staff member is in staff mode?”

Their inventory and state are saved in the database as soon as they enter staff mode. With staff-mode.restore-on-shutdown: true, they are restored on shutdown; after a crash, they are restored on reconnect.

With freeze.keep-on-relog: true, they are frozen again on reconnect. You can also run automatic commands on their logout (freeze.logout-commands), for example a ban.

Every staff action is written to the audit log: /cobaltstaff audit for the whole server, /cobaltstaff audit <player> for one player (permission cobaltstaff.audit).