Included with Purchase
Plugin Download
Instant access to the plugin file (.dll)
Future Updates
All updates and fixes at no extra cost
Developer Support
Help through our forum and Discord
Optional: Source Code
Add-on in cart for an additional fee
Readme

Moderation

Moderation plugin with features like bans, kicks, warns & more.

Credits

  • Sun Beam and Soer for mutes update.

Commands

  • /ban <player> [reason] [duration] – Bans specified player for duration with reason.
  • /unban <player> – Removes specified player latest ban.
  • /bans [player] – Displays a list of all or player bans.
  • /mute <player> [reason] [duration] – Mutes specified player for duration with reason.
  • /unmute <player> – Removes specified player latest mute.
  • /mutes [player] – Displays a list of all or player mutes.
  • /kick <player> [reason] – Kicks specified player for reason.
  • /warn <player> [reason] – Warns specified player for reason.
  • /checkowner – Check's the owner of barricade/structure/locked vehicle.
  • /playerinfo <player> – Displays player name, country and bans, kicks, warns count.
  • /glitch – Teleports you to suspected glitch barricade or structure.

Configuration

<?xml version="1.0" encoding="utf-8"?>
<ModerationConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Commands>
    <MessageColor>grey</MessageColor>
    <ShouldRequireReason>true</ShouldRequireReason>
    <ShouldBroadcastBan>true</ShouldBroadcastBan>
    <ShouldBroadcastUnban>true</ShouldBroadcastUnban>
    <UseHwidBans>true</UseHwidBans>
    <UseIPBans>false</UseIPBans>
  </Commands>
  <Database>
    <MySQLAddress>127.0.0.1</MySQLAddress>
    <MySQLUsername>root</MySQLUsername>
    <MySQLPassword>password123</MySQLPassword>
    <MySQLDatabase>unturned</MySQLDatabase>
    <MySQLDatabasePort>3306</MySQLDatabasePort>
    <PlayersTableName>Players</PlayersTableName>
    <BansTableName>Bans</BansTableName>
    <MutesTableName>Mutes</MutesTableName>
    <PunishmentsTableName>Punishments</PunishmentsTableName>
    <EnableGameThreadWarnings>true</EnableGameThreadWarnings>
  </Database>
  <PlayerService>
    <ShouldSaveCountry>true</ShouldSaveCountry>
  </PlayerService>
  <UnbanService>
    <IsEnabled>false</IsEnabled>
    <RefreshTimeSeconds>30</RefreshTimeSeconds>
  </UnbanService>
  <MuteService>
    <CacheTimeSeconds>30</CacheTimeSeconds>
    <EnableUnmuteWebhooks>true</EnableUnmuteWebhooks>
    <UnmuteRefreshTimeSeconds>30</UnmuteRefreshTimeSeconds>
  </MuteService>
  <DiscordService>
    <UseWebhooks>true</UseWebhooks>
    <ServerFooterEnabled>false</ServerFooterEnabled>
    <Webhooks>
      <DiscordWebhook WebhookType="Ban" WebhookUrl="" WebhookColor="ff0000" Inline="false">
        <MessageFormat>Name: {name}, SteamID: {steamid}, Punisher: {punisher}, Duration: {duration}, Reason: {reason}</MessageFormat>
      </DiscordWebhook>
      <DiscordWebhook WebhookType="Kick" WebhookUrl="" WebhookColor="f06c00" Inline="false">
        <MessageFormat>Name: {name}, SteamID: {steamid}, Punisher: {punisher}, Reason: {reason}</MessageFormat>
      </DiscordWebhook>
      <DiscordWebhook WebhookType="Warn" WebhookUrl="" WebhookColor="ffff00" Inline="false">
        <MessageFormat>Name: {name}, SteamID: {steamid}, Punisher: {punisher}, Reason: {reason}</MessageFormat>
      </DiscordWebhook>
      <DiscordWebhook WebhookType="Unban" WebhookUrl="" WebhookColor="00ff33" Inline="false">
        <MessageFormat>Name: {name}, SteamID: {steamid}, Unbanner: {punisher}</MessageFormat>
      </DiscordWebhook>
      <DiscordWebhook WebhookType="Spy" WebhookUrl="" WebhookColor="00ff33" Inline="false">
        <MessageFormat>{punisher} spied {name} [{steamid}] on {servername}!</MessageFormat>
      </DiscordWebhook>
      <DiscordWebhook WebhookType="Mute" WebhookUrl="" WebhookColor="ff0000" Inline="false">
        <MessageFormat>Name: {name}, SteamID: {steamid}, Punisher: {punisher}, Duration: {duration}, Reason: {reason}</MessageFormat>
      </DiscordWebhook>
      <DiscordWebhook WebhookType="Unmute" WebhookUrl="" WebhookColor="00ff33" Inline="false">
        <MessageFormat>Name: {name}, SteamID: {steamid}, Unmuter: {punisher}</MessageFormat>
      </DiscordWebhook>
    </Webhooks>
  </DiscordService>
  <CooldownService>
    <Cooldowns>
      <CooldownKey Key="spy" Cooldown="10" />
    </Cooldowns>
  </CooldownService>
</ModerationConfiguration>

Translations

<?xml version="1.0" encoding="utf-8"?>
<Translations xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Translation Id="BanBroadcast" Value="{0} was banned by {1} for {2} for {3}!" />
  <Translation Id="BanMessage" Value="[BAN] Reason: {0} Time Left: {1}" />
  <Translation Id="BansLimit" Value="You can't view the list of all bans in-game, specify player or use console" />
  <Translation Id="BansLine" Value="BanID: {0} SteamName: {1} SteamID: {2} PunisherName: {3} PunisherId: {4}" />
  <Translation Id="BansNone" Value="There is no bans" />
  <Translation Id="UnbanBroadcast" Value="{0} was unbanned!" />
  <Translation Id="UnbanExpired" Value="{0} ban expired!" />
  <Translation Id="UnbanFail" Value="{0} doesn't have any active ban." />
  <Translation Id="KickAnnouncement" Value="{0} was kicked by {1} for {2}" />
  <Translation Id="WarnAnnouncement" Value="{0} was warned by {1} for {2}" />
  <Translation Id="CheckownerFail" Value="You are not looking at any barricade, structure or locked vehicle." />
  <Translation Id="CheckownerOwnerName" Value="The owner of this {0} is {1} (banned: {2})" />
  <Translation Id="CheckownerOwnerSteamId" Value="Steam ID: {0}" />
  <Translation Id="CheckownerLastActive" Value="{0} was last active on {1}" />
  <Translation Id="RequireReason" Value="You must specify a reason!" />
  <Translation Id="PlayerInfoMessage" Value="{0} from {1} has {2} bans, {3} kicks &amp; {4} warns" />
  <Translation Id="NoGlitches" Value="Could not find any suspected glitch object on the map." />
  <Translation Id="GlitchMessage" Value="You have been teleported to suspected glitch object!" />
  <Translation Id="Permanent" Value="permanent" />
  <Translation Id="PlayerNotFound" Value="Player not found!" />
  <Translation Id="KickInvalid" Value="You must specify target player!" />
  <Translation Id="WarnInvalid" Value="You must specify target player!" />
  <Translation Id="BanInvalid" Value="Ban format: /ban &lt;player&gt; [reason] [duration]" />
  <Translation Id="UnbanNotBanned" Value="{0} doesnt have any active bans!" />
  <Translation Id="UnbanInvalid" Value="You must specify player steamID!" />
  <Translation Id="PlayerInfoInvalid" Value="You must specify target player!" />
  <Translation Id="HWIDBanDisabled" Value="HWID bans are disabled" />
  <Translation Id="IPBanDisabled" Value="IP bans are disabled" />
  <Translation Id="ReasonUnspecified" Value="Unspecified" />
  <Translation Id="SpyNoPermission" Value="You don't have permission to spy" />
  <Translation Id="SpyFail" Value="Spy format: /spy &lt;player&gt;" />
  <Translation Id="SpySuccess" Value="Successfully spied {0}!" />
  <Translation Id="SpyCooldown" Value="You have to wait {0} before you can spy again" />
  <Translation Id="MuteAnnouncement" Value="{0} was muted by {1} for {2} for {3}!" />
  <Translation Id="MuteMessage" Value="You are muted for {0} for {1}" />
  <Translation Id="MutesLimit" Value="You can't view the list of all mutes in-game, specify player or use console" />
  <Translation Id="MutesNone" Value="There are no mutes" />
  <Translation Id="MutesLine" Value="MuteID: {0} SteamName: {1} SteamID: {2} PunisherName: {3} PunisherId: {4}" />
  <Translation Id="MuteInvalid" Value="Mute format: /mute &lt;player&gt; [reason] [duration]" />
  <Translation Id="UnmuteInvalid" Value="You must specify player name or steamID!" />
  <Translation Id="UnmuteNotMuted" Value="{0} doesnt have any active mutes!" />
  <Translation Id="UnmuteAnnouncement" Value="{0} was unmuted!" />
  <Translation Id="UnmuteExpired" Value="{0} mute expired!" />
</Translations>