Skip to content

Configuration

Adrian edited this page Sep 6, 2026 · 4 revisions

Main Configuration

config.conf

# ChatRegulator | by 4drian3d
# Check the function of each configuration option at
# https://github.com/4drian3d/ChatRegulator/wiki/Configuration

# Formatter Module
formatter {
    # Enable Format Module
    enabled=false
    # Set the first letter of a sentence in uppercase
    first-letter-uppercase=true
    # Adds a final dot in each sentence
    final-dot=true
    # Apply unicode normalization to each sentence
    unicode-normalize=false
    # The unicode normalization form to apply
    unicode-normalization-form=NFC
}
# CommandSpy configuration
command-spy {
    # Enable CommandSpy module
    enabled=false
    # Commands to ignore
    ignored-commands=[
        changepassword,
        register,
        login
    ]
}
# Settings on the log of alert messages in console or files
log {
    # Toggle to show in console the alert message in case of check detection
    warning-log=true
    file {
        # Sets whether this module will be activated
        enabled=false
        # Sets the format of the file in which the log will be written
        file-format="'infractions'-dd-MM-yy'.txt'"
        # Sets the log format
        log-format="[<time>] <message>"
        # Sets the time format
        time-format="HH:mm:ss"
    }
}
# Specify in which commands you want the violations to be detected
# I recommend you to put chat commands, for example: /tell
commands-checked=[
    msg,
    chat,
    emsg,
    etell,
    tell,
    reply,
    global
]
# Set the maximum time in which a user's violations will be saved after the user leaves your server
delete-users-after=60
# Set the time unit of the delete-users-after setting
# Available values: NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS
time-unit=SECONDS
# Limit the amount of users showed on autocompletion
tab-complete-limit=40

Checks

checks.conf

# ChatRegulator | by 4drian3d
# Check the function of each configuration option at
# https://github.com/4drian3d/ChatRegulator/wiki/Configuration

# Regular regex module
regex {
    # Enable violation checking in chat and commands
    enabled=true
    # Sets the form of warning
    # Available options: TITLE, ACTIONBAR, MESSAGE
    warning-type=MESSAGE
    # Sets the control format
    # Available options: BLOCK, REPLACE
    control-type=BLOCK
    # Commands to be executed in the regular regex module
    commands {
        # Enable submodule
        execute-commands=false
        # Violations required to execute the command
        violations-required=2
        # Commands to execute
        commands-to-execute=[
            "mute <player> 1m You have been muted",
            "example command"
        ]
    }
}
# Flood Module
flood {
    # Enable flood check in the chat
    enabled=true
    # Sets the form of warning
    # Available options: TITLE, ACTIONBAR, MESSAGE
    warning-type=MESSAGE
    # Sets the control format
    # Available options: BLOCK, REPLACE
    control-type=BLOCK
    # Sets the maximum limit of repeated characters or words for a message not to be considered as flood
    limit=5
    # Commands to be executed in the flood module
    commands {
        # Enable submodule
        execute-commands=false
        # Violations required to execute the command
        violations-required=2
        # Commands to execute
        commands-to-execute=[
            "mute <player> 1m You have been muted",
            "example command"
        ]
    }
}
# Spam Module
spam {
    # Enable the spam module
    enabled=true
    # Sets the form of warning
    # Available options: TITLE, ACTIONBAR, MESSAGE
    warning-type=MESSAGE
    # The number of similar commands or chats messages sent by a player to consider as spam
    similar-string-count=5
    # Commands to be executed in the cooldown module
    commands {
        # Enable submodule
        execute-commands=false
        # Violations required to execute the command
        violations-required=2
        # Commands to execute
        commands-to-execute=[
            "mute <player> 1m You have been muted",
            "example command"
        ]
    }
    # Normalization configuration for the spam module
    normalization {
        # Enable normalization of the string to check
        enabled=true
        # The unicode normalization form to apply
        unicode-normalization-form=NFC
    }
}
# Cooldown Module
cooldown {
    # Enables the cooldown submodule
    enabled=true
    # Set the time limit between each message
    limit=2500
    # Time Unit of the cooldown limit
    # Available values: NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS
    unit=MILLISECONDS
    # Sets the form of warning
    # Available options: TITLE, ACTIONBAR, MESSAGE
    warning-type=MESSAGE
    # Commands to be executed in the cooldown module
    commands {
        # Enable submodule
        execute-commands=false
        # Violations required to execute the command
        violations-required=2
        # Commands to execute
        commands-to-execute=[
            "mute <player> 1m You have been muted",
            "example command"
        ]
    }
}
# Command blacklist module
command-blacklist {
    # Enables command blocking
    enabled=true
    # Sets the form of warning
    # Available options: TITLE, ACTIONBAR, MESSAGE
    warning-type=MESSAGE
    # Commands to be executed in the command blacklist module
    commands {
        # Enable submodule
        execute-commands=false
        # Violations required to execute the command
        violations-required=2
        # Commands to execute
        commands-to-execute=[
            "mute <player> 1m You have been muted",
            "example command"
        ]
    }
}
# Unicode Module
unicode {
    # Enable the unicode module
    enabled=true
    # Sets the form of warning
    # Available options: TITLE, ACTIONBAR, MESSAGE
    warning-type=MESSAGE
    # Commands to be executed in the unicode module
    commands {
        # Enable submodule
        execute-commands=false
        # Violations required to execute the command
        violations-required=2
        # Commands to execute
        commands-to-execute=[
            "mute <player> 1m You have been muted",
            "example command"
        ]
    }
    # Additional characters to check
    additional-chars {
        # Enables extra character check
        enabled=false
        # Sets the additional characters to check
        chars=[
            ç
        ]
        # Sets the control format
        # Available options: BLOCK, REPLACE
        control-type=BLOCK
        # Sets character checking mode
        # Modes Available:
        # BLACKLIST: Deny characters that are within the configured characters
        # WHITELIST: Only allow characters that are within the configured characters
        mode=BLACKLIST
    }
    # Additional unicode blocks to check
    additional-blocks {
        # Enables extra unicode block check
        enabled=false
        # Sets the additional unicode blocks to check
        blocks=[
            "PRIVATE_USE_AREA"
        ]
        # Sets the control format
        # Available options: BLOCK, REPLACE
        control-type=BLOCK
        # Sets unicode block checking mode
        # Modes Available:
        # BLACKLIST: Deny characters that are within one of the configured unicode blocks
        # WHITELIST: Only allow characters that are within one of the configured unicode blocks
        mode=BLACKLIST
    }
    # Additional unicode scripts to check
    additional-scripts {
        # Enables extra unicode script check
        enabled=false
        # Sets the additional unicode scripts to check
        scripts=[
            UNKNOWN
        ]
        # Sets the control format
        # Available options: BLOCK, REPLACE
        control-type=BLOCK
        # Sets unicode script checking mode
        # Modes Available:
        # BLACKLIST: Deny characters that are within one of the configured unicode scripts
        # WHITELIST: Only allow characters that are within one of the configured unicode scripts
        mode=BLACKLIST
    }
}
# Caps Module
caps {
    # Enable the Caps limit Module
    enabled=true
    # Sets the control format
    # Available options: BLOCK, REPLACE
    # Note that in the latest versions of Velocity, the REPLACE mode may NOT work
    control-type=BLOCK
    # Sets the form of warning
    # Available options: TITLE, ACTIONBAR, MESSAGE
    warning-type=MESSAGE
    # Select caps detection algorithm
    # AMOUNT
    # |- In case the provided string has a specific amount of capital letters,
    #    it will be detected
    # PERCENTAGE
    # |- In case the provided string has a higher percentage of capital letters than specified,
    #    it will be detected
    algorithm=AMOUNT
    # Sets the uppercase limit in a sentence according to the selected detection algorithm
    limit=5
    # Commands to be executed in the caps module
    commands {
        # Enable submodule
        execute-commands=false
        # Violations required to execute the command
        violations-required=2
        # Commands to execute
        commands-to-execute=[
            "mute <player> 1m You have been muted",
            "example command"
        ]
    }
}
# Syntax blocker configuration
syntax {
    # Commands to be executed in the syntax module
    commands {
        # Enable submodule
        execute-commands=false
        # Violations required to execute the command
        violations-required=2
        # Commands to execute
        commands-to-execute=[
            "mute <player> 1m You have been muted",
            "example command"
        ]
    }
    # Enable the Syntax blocker Module
    enabled=true
    # Sets the form of warning
    # Available options: TITLE, ACTIONBAR, MESSAGE
    warning-type=MESSAGE
    # Allowed syntax command executions
    allowed-commands=[
        luckperms
    ]
}

Messages

messages.hocon

# ChatRegulator | by 4drian3d
# To modify the plugin messages and to use the plugin in general
# I recommend that you have a basic knowledge of MiniMessage
# Guide: https://docs.adventure.kyori.net/minimessage.html#format
# Spanish Guide: https://gist.github.com/4drian3d/9ccce0ca1774285e38becb09b73728f3

# Configuration of command blacklist module messages
command-blacklist {
    # Message to be sent to the offender
    # Depending on your warning-type section settings, it will be sent as Title, Actionbar or Message
    # In case you use the Title mode, put a ; to delimit the title and the subtitle
    warning="<red>You cannot use this command"
    # Message to be sent to staff with chatregulator.notifications permission
    alert="<red>The player <aqua><player></aqua> <red>has executed blocked commands | String: <string>"
    # Statistics Reset Confirmation Message
    reset="<red>The commands infraction count for <player> was reset"
}
# Configuration of regex violation module messages
regex {
    # Message to be sent to the offender
    # Depending on your warning-type section settings, it will be sent as Title, Actionbar or Message
    # In case you use the Title mode, put a ; to delimit the title and the subtitle
    warning="<red>You can't use this kind of words"
    # Message to be sent to staff with chatregulator.notifications permission
    alert="<red>The player <aqua><player></aqua> <red>has said forbidden words | String: <string>"
    # Statistics Reset Confirmation Message
    reset="<red>The regex infraction count for <player> has been reset"
}
# Configuration of flood module messages
flood {
    # Message to be sent to the offender
    # Depending on your warning-type section settings, it will be sent as Title, Actionbar or Message
    # In case you use the Title mode, put a ; to delimit the title and the subtitle
    warning="<red>You are not allowed to flood the chat"
    # Message to be sent to staff with chatregulator.notifications permission
    alert="<red>The player <aqua><player></aqua> <red>has make flood | String: <string>"
    # Statistics Reset Confirmation Message
    reset="<red>The flood infraction count for <player> has been reset"
}
# Configuration of spam module messages
spam {
    # Message to be sent to the offender
    # Depending on your warning-type section settings, it will be sent as Title, Actionbar or Message
    # In case you use the Title mode, put a ; to delimit the title and the subtitle
    warning="<red>You are not allowed to spam messages in the chat."
    # Message to be sent to staff with chatregulator.notifications permission
    alert="<red>The player <aqua><player></aqua> <red>was spamming the chat | String: <string>"
    # Statistics Reset Confirmation Message
    reset="<red>The spam infraction count for <player> has been reset"
}
# Configuration of cooldown module messages
cooldown {
    # Message to be sent to the offender
    # Depending on your warning-type section settings, it will be sent as Title, Actionbar or Message
    # In case you use the Title mode, put a ; to delimit the title and the subtitle
    warning="<red>You are not allowed to spam messages in the chat"
    # Message to be sent to staff with chatregulator.notifications permission
    alert="<red>The player <aqua><player></aqua> <red>writing too fast | String: <string>"
    # Statistics Reset Confirmation Message
    reset="<red>The cooldown infraction count for <player> has been reset"
}
# Configuration of unicode module messages
unicode {
    # Message to be sent to the offender
    # Depending on your warning-type section settings, it will be sent as Title, Actionbar or Message
    # In case you use the Title mode, put a ; to delimit the title and the subtitle
    warning="<red>You are not allowed to use unknown characters in chat."
    # Message to be sent to staff with chatregulator.notifications permission
    alert="<red>The player <aqua><player></aqua> <red>was using unauthorized unicode symbols | String: <string>"
    # Statistics Reset Confirmation Message
    reset="<red>The unicode infraction count for <player> has been reset"
}
# Configuration of caps module messages
caps {
    # Message to be sent to the offender
    # Depending on your warning-type section settings, it will be sent as Title, Actionbar or Message
    # In case you use the Title mode, put a ; to delimit the title and the subtitle
    warning="<red>You are not allowed to use so many capitalized characters in the chat"
    # Message to be sent to staff with chatregulator.notifications permission
    alert="<red>The player <aqua><player></aqua> <red>was using many capital letters | String: <string>"
    # Statistics Reset Confirmation Message
    reset="<red>The caps infraction count for <player> has been reset"
}
# Configuration of syntax blocker module messages
syntax {
    # Message to be sent to the offender
    # Depending on your warning-type section settings, it will be sent as Title, Actionbar or Message
    # In case you use the Title mode, put a ; to delimit the title and the subtitle
    warning="<red>You are not allowed to use this type of commands"
    # Message to be sent to staff with chatregulator.notifications permission
    alert="<red>The player <aqua><player></aqua> <red>was using commands with invalid syntax | String: <string>"
    # Statistics Reset Confirmation Message
    reset="<red>The syntax violation count for <player> was reset"
}
# Configuration of the messages of the /chatr clear command
clear-chat {
    # Confirmation of global chat cleanup
    global="<gradient:#67B26F:#4ca2cd>ChatRegulator</gradient> <aqua>The chat has been cleaned up"
    # Confirmation of chat cleanup on a server
    server="<gradient:#67B26F:#4ca2cd>ChatRegulator</gradient> <aqua>The chat of the server <white><server></white> has been cleared"
    # Message to send if a server was not found
    server-not-fount="<gradient:#67B26F:#4ca2cd>ChatRegulator</gradient> <aqua>The <white><server></white> server was not found"
    # Confirmation of chat clearing for a user
    player="<gradient:#67B26F:#4ca2cd>ChatRegulator</gradient> <aqua>The chat of the player <white><player></white> has been cleared"
}
# Configuration of the messages of the command spy module
command-spy {
    # Message to send
    message="<gradient:red:yellow>CommandSpy</gradient> <white>| <aqua><player> <white>| <gray><command>"
}
# General Messages
general {
    # Violation statistics message
    # This message will appear when using the "/chatregulator stats" command
    # Available Placeholders: <flood>, <spam>, <cooldown>, <regex>, <command>, <unicode>, <caps>, <syntax>
    stats=[
        "<#3B4371>|-- <gradient:#67B26F:#4ca2cd>ChatRegulator</gradient> -------| ",
        "<#3B4371>| <red>General Stats</red>",
        "<#3B4371>| <aqua>Regex Infractions:</aqua> <white><regex></white>",
        "<#3B4371>| <aqua>Flood Infractions:</aqua> <white><flood></white>",
        "<#3B4371>| <aqua>Spam Infractions:</aqua> <white><spam></white>",
        "<#3B4371>| <aqua>Cooldown Infractions:</aqua> <white><cooldown></white>",
        "<#3B4371>| <aqua>Caps Infractions:</aqua> <white><caps></white>",
        "<#3B4371>| <aqua>Unicode Infractions:</aqua> <white><unicode></white>",
        "<#3B4371>| <aqua>Command Infractions:</aqua> <white><blocked_command></white>",
        "<#3B4371>| <aqua>Syntax Infractions:</aqua> <white><syntax></white>",
        "<#3B4371>|------------------------|"
    ]
    # Player statistics message
    # This message will appear when using the command "/chatregulator player <someplayer>"
    # Available Placeholders: <player>, <flood>, <spam>, <cooldown>, <regex>, <unicode>, <caps>, <syntax>
    player=[
        "<#3B4371>|-- <gradient:#67B26F:#4ca2cd>ChatRegulator</gradient> -------| ",
        "<#3B4371>| <gold><player></gold> <red>Stats</red>",
        "<#3B4371>| <aqua>Regex Infractions:</aqua> <white><regex></white>",
        "<#3B4371>| <aqua>Flood Infractions:</aqua> <white><flood></white>",
        "<#3B4371>| <aqua>Spam Infractions:</aqua> <white><spam></white>",
        "<#3B4371>| <aqua>Cooldown Infractions:</aqua> <white><cooldown></white>",
        "<#3B4371>| <aqua>Unicode Infractions:</aqua> <white><unicode></white>",
        "<#3B4371>| <aqua>Caps Infractions:</aqua> <white><caps></white>",
        "<#3B4371>| <aqua>Command Infractions:</aqua> <white><blocked_command></white>",
        "<#3B4371>| <aqua>Syntax Infractions:</aqua> <white><syntax></white>",
        "<#3B4371>|------------------------|"
    ]
    # Message to appear if no arguments are specified in the main command
    info="<gradient:#67B26F:#4ca2cd>ChatRegulator</gradient> <aqua>by</aqua> <gradient:green:gold>4drian3d"
    # Message to send when resetting all infractions of a player
    all-reset="<red>The infractions count for <player> was reset"
    # Message to be sent when no argument is entered in a subcommand requiring argument
    without-argument="<gradient:#67B26F:#4ca2cd>ChatRegulator</gradient> <white>No argument provided</white>"
    # Message to send on not finding the specified user
    player-not-found="<gradient:#67B26F:#4ca2cd>ChatRegulator</gradient> <white>The player <aqua><player></aqua> has not joined the server yet</white>"
    # Message to send when reloading the plugin configuration
    reload-message="<gradient:#67B26F:#4ca2cd>ChatRegulator</gradient> <aqua>Reloading Configuration"
    # Suggestion format to send on '/chatr reset' command
    player-suggestion-format="Reset <player> infractions"
}

Clone this wiki locally