Configuration
After running APVE for the first time, a default configuration will be generated in the plugins/APVE directory, and APVE will apply the messages localization according to your system's current localization.
APVE will apply the correct syntax of the punishment command in the configuration if you have installed LibertyBans, AdvancedBans or LiteBans. Otherwise, you need to write the syntax manually based on your installed punishment plugin.
Thresholds and language
Word similarity thresholds relative to any prohibited word.
If a word's similarity does not exceed any threshold below, APVE will pass it.
If a word's similarity equals or exceeds the medium threshold, APVE marks the word as SUSPICIOUS but will pass it.
If a word's similarity equals or exceeds the high threshold, APVE marks the word as MALICIOUS.
Some benign words may be similar to malicious ones. Consequently, a high threshold between 0.75 and 0.80 is strongly recommended to avoid false positives while still catching potentially malicious words.
A medium threshold between 0.55 and 0.60 is strongly recommended to avoid passing specific or typo-entered malicious words.
Language is responsible for APVE's messages localization. Available values: ru, en and auto.
If auto, APVE will apply messages localization according to your system's current localization.
APVE will apply en_US.yml localization if your system's localization does not match any of the available localizations.
language: auto
thresholds:
high: 0.78
medium: 0.57
Dictionaries
Before writing words to the dictionaries, ensure you meet the following prerequisites:
It should be written only using transliteration and the Latin alphabet (example: мразь ——> mrazb), without any symbols, numbers or spaces, in lowercase and phrased accounting for the normalizer's work.
Beware of adding slang and short words to the dictionaries, as this may cause false positives.
You can see information about normalizer work below.
insult-words:
- eblan
- mrazb
- dolboeb
# ...
Family
Family pronouns. If APVE detects a message that contains a family pronoun alongside an insult word, it will detect it as FAMILY_INSULT.
family-insult-words:
- father
- mother
- matb
# ...
If APVE detects a word that has any of the inappropriate roots below, it detects it as a violation corresponding to the root's context.
family-roots:
- roditel
- opek
- mother
# ...
bad-roots:
- eblan
- dolboeb
- huesos
# ...
Expressive Words
Responsible for allowing players to express their emotions with the words below. If a word's similarity is higher than any threshold but it is identical to an expressive word, APVE will pass it.
expressive-words:
- pizda
- pizdec
- blyatb
# ...
Advertisement
APVE detects a message as advertisement if it has any ad-words below alongside a domain.
You should write only the advertising resource, not the IP. (Example: 2b2t instead of 2b2t.org.)
Words to ad-words can be written with numbers.
ad-words:
- 10b10t
- 123c
- 1f2d
# ...
Social distribution
APVE will detect a message as SOCIAL_DIST if it has a social word alongside a domain. You should write social words the same way as ad words — no IP, only the advertising resource.
social:
- discord
- telegram
- tg
# ...
Allowed words
Responsible for avoiding false positives if a benign word has an inappropriate root or resembles a prohibited word.
APVE will pass a word if it is identical to any of the allowed-words.
allowed-words:
- corn
- mazb
- scunthorpe
# ...
adult-words:
- pornhub
- anasha
- methemfethamin
# ...
adult-roots:
- porn
- geroin
- intim
# ...
Staff insults
APVE will detect a message as STAFF_INSULT if it contains a staff title alongside any insult word.
staff-tituls:
- admin
- helper
- sozdatel
# ...
Punishments
All parameters responsible for applying actions (punishments) to violators.
Action command syntax
Commands that are dispatched according to the selected action in violation blocks. Must be configured for your punishment plugin's command syntax.
The command's arguments must be in the following order:
* "command" %player% %duration% %reason%
Otherwise, the plugin will not apply the action correctly.
punishments:
mute-command: mute %player% %duration% %reason%
ban-command: ban %player% %duration% %reason%
banip-command: banip %ip% %duration% %reason%
kick-command: kick %player% %reason%
Other
If punishments-is-enabled is false, APVE will not apply any action to the violator, regardless of warnings etc.
If auto-detect-plugin is true, APVE will automatically set the command syntax based on the installed punishment plugin.
APVE can automatically set the command syntax only for LibertyBans, AdvancedBans and LiteBans. Otherwise, you will need to configure the command syntax manually.
auto-detect-plugin: true
punishments-is-enabled: true
perm-keywords:
- permanent
- perm
- infinity
- inf
- '-1'
Responsible for setting violation severity levels. The larger the integer, the more severe the violation. Based on this, APVE will punish the violator for the most severe of all committed violations.
priority:
caps: 1
spam: 2
insult: 3
adult-content: 4
family-insult: 5
staff-insult: 6
soc-media-dist: 7
ad-dist: 8
Notifying parameters
If true, the plugin will not apply any action or warn to the violators. The plugin will only log every violation. This mode is incompatible with punishments and warns. Consequently, if you enable this mode alongside other actions, APVE's work will be aborted or limited.
audit-mode: false
If false, APVE will not send messages about player violations to the console.
console-log: false
If true, APVE will send notifications about violations in-game to players who have the apve.violation.notify permission.
notifies: true
Action blocks
Each violation type has its own configuration block. The common parameters are:
is-enabled— whether this violation type is detected at all.punishment-is-enabled— whether to apply a punishment upon violation. Requirespunishments-is-enabled: truein thepunishmentsblock.duration— punishment duration. Supports time units:s(seconds),m(minutes),h(hours),d(days).type— punishment type:mute,ban,baniporkick.blocking— if true, APVE will block the violating message from being delivered to chat.censor— if true, APVE will replace the violating word with asterisks instead of blocking the entire message. Not applicable whenblockingis true.
Warn block
Controls the warning system. Warns are issued to the violator before a punishment is applied, if warns-is-enabled is true.
warn-limit— the number of warns after which the punishment is applied.warn-limit-is-enabled— whether to apply a punishment upon reaching the warn limit.warn_reset_when_server_restarts— if true, warns are reset on server restart.temporary-warns— if true, warns expire after the period defined bywarn-reset-time.warn-reset-time— time after which warns are reset (e.g.1h).warn_reset_count— number of warns removed when the reset timer expires.warns-is-enabled— whether the warn system is enabled at all.
warns:
warn-limit: 2
warn-limit-is-enabled: true
warn_reset_when_server_restarts: true
temporary-warns: true
warn-reset-time: 1h
warn_reset_count: 2
warns-is-enabled: true
Violation blocks
insult:
is-enabled: true
punishment-is-enabled: true
duration: 30m
type: mute
blocking: true
censor: false
family-insult:
is-enabled: true
punishment-is-enabled: true
duration: 8h
type: mute
blocking: true
censor: false
ad-dist:
is-enabled: true
punishment-is-enabled: true
duration: 30d
type: banip
blocking: true
censor: false
soc-media-dist:
is-enabled: true
punishment-is-enabled: true
duration: 180m
type: ban
blocking: true
censor: false
adult-content:
is-enabled: true
punishment-is-enabled: true
type: mute
duration: 8h
blocking: true
censor: false
staff-insult:
is-enabled: true
punishment-is-enabled: true
type: mute
duration: 12h
blocking: true
censor: false
Spam block
The spam block has additional parameters:
max-similar-messages— maximum number of similar messages a player can send within a time window before the violation is triggered.time-window-seconds— the time window in seconds during which similar messages are counted.similarity-threshold— minimum similarity ratio for two messages to be considered duplicates. Range:0.0–1.0.
spam:
is-enabled: true
punishment-is-enabled: true
max-similar-messages: 3
time-window-seconds: 60
similarity-threshold: 0.9
type: mute
duration: 20m
blocking: false
Caps block
The caps block has additional parameters:
min-message-length— minimum message length in characters required for the caps check to apply. Shorter messages are ignored.min-caps-percentage— minimum percentage of uppercase characters required to trigger the violation.
caps:
is-enabled: true
punishment-is-enabled: false
min-message-length: 6
min-caps-percentage: 70
type: mute
duration: 15m
blocking: false
censor: false
Intercepted commands
A list of commands whose arguments will be scanned for violations the same way as regular chat messages. Useful for covering private messaging commands so violations are not bypassed via /msg or similar.
intercepted-commands:
- msg
- w
- tell
# ...
Blocked domains
A list of domain suffixes that APVE looks for when detecting advertisement and social distribution violations. Due to the text normalization process, domains like .gg must be written with a single character (e.g. g, not gg). Write all domains without dots.
blocked-domains:
- ru
- com
- net
# ...
Command parameters
/apve check
The command-msg.check block configures the colors used in the output of the /apve check command, which displays the analysis result for a given player message.
malicious— color code applied to words classified as MALICIOUS.suspicious— color code applied to words classified as SUSPICIOUS.none— color code applied to words that passed the check with no flags.
command-msg:
check:
status-colors:
malicious: '&c'
suspicious: '&e'
none: '&a'