Punishments

SporeCore has a new punishments feature, an advanced system for banning, warning, kicking, and muting players. It includes logging to ensure all actions are tracked and to prevent staff abuse.


Settings

This feature is enabled by default. To disable it, open config.yml and set features.punishments to false.

When enabled, the server will load punishments and create a punishments.yml file with all the settings for this feature. At the top, you’ll find 5 general settings:

settings:
  requireReason: true
  selfPunish: false
  permBypass: sporecore.punishments.bypass
  notifyTry: true
  viewPunisherPermission: sporecore.punishments.viewpunisher

Alt Accounts

SporeCore has an advanced alt account system to prevent users from evading punishments. Currently, it only supports bans.

  • If autoBan is set to true in the config, alt accounts of banned players will be blocked from joining.

  • You can check alt accounts with /alts <player> or /alts deep <player>.

Difference between /alts and /alts deep:

  • /alts checks accounts that share the current IP. Using a VPN may hide alt accounts.

  • /alts deep checks all past IPs stored for a player, showing accounts they’ve joined with previously.

Note: /alts deep is not automatically checked because it isn’t 100% reliable. Some tools (like ExitLag) may show multiple players sharing an IP, which could create false bans on large servers.

When someone tries to join with an alt account, the server can send a try message to all online staff. Check the config for more details.


Messages

All punishment messages are customizable. You can modify messages for:

  • Permanent punishments: kick, ban, mute, warn

  • Temporary punishments: tempBan, tempMute, tempWarn

Placeholders you can use:

  • %reason% → Punishment reason

  • %punisher% → Staff member who issued the punishment

  • %date% → Date of the punishment

  • %id% → Punishment ID

  • %time% → Time left for temporary punishments

  • %alt% → The punished alt account (only for evasion messages)

Example messages (in punishments.yml):


Logs

Logs track staff actions and help prevent abuse. You can toggle logging in punishments.yml.

Placeholders for logs:

  • %user% → Staff member who punished or removed punishment

  • %action% → Type of punishment (e.g., Temp-Ban, Kick)

  • %target% → Player who got punished

  • %reason% → Reason for punishment

  • %time% → Time for temporary punishments

You can also log try messages when a player tries to join or talk while punished.

Example log config:


Reasons

You can define punishment reasons in categories, which automatically set punishment types and durations based on offenses.

Example:

You can add multiple categories and offenses for chat abuse, spamming, and more.


Removal Reasons

You can also configure removal reasons to help staff use commands more easily:

These are optional suggestions and staff don’t have to follow them.


Punishing Players

Use /punish <player> <reason> to automatically punish a player using the configured reasons.

You can also use:

  • /mute, /tempmute, /warn, /tempwarn, /ban, /tempban, /kick

Temporary punishments:

  • You can provide a custom time, or use the time from the config if the reason matches.

Permissions:

  • Restrict staff to certain punishments using permissions.

  • Example: Give a helper only sporecore.punishments.punish and sporecore.punishments.warn. They can warn, but not ban.


History

Check punishment history with /history (your own) or /history <player> (others).

Permissions:

  • sporecore.punishments.history → View your own history

  • sporecore.punishments.history.others → View others’ history

The history menu shows all punishments, including active ones. Staff with sporecore.punishments.viewpunisher can see who punished which player.

Last updated