Skip to content

Instantly share code, notes, and snippets.

@konsolas
Last active July 2, 2021 14:35
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save konsolas/1ed816ed91996eab7262d95386c1bfa0 to your computer and use it in GitHub Desktop.
Save konsolas/1ed816ed91996eab7262d95386c1bfa0 to your computer and use it in GitHub Desktop.
AAC5 configuration file
## AAC Configuration File (Generated by AAC ~VERSION)
#
# How AAC works:
# AAC's detection pipeline has three main stages: checks, database, and analysis
# - Checks analyse player behaviour and record any interesting data available.
# Some checks are additionally able to block cheats from being used. This is called mitigation.
# - The database stores a record of aggregate information generated by all enabled checks for every player.
# Old entries are automatically cleared when the server restarts.
# - AAC periodically analyses each player's database entries, generating an overall risk score and a report.
# If the generated risk score is greater than a configured threshold (see `yellow_score`, `red_score`), an alert
# is shown. The detailed report can be viewed by clicking the alert, or by running /aac status <player>.
#
# AAC takes many factors into account when generating its reports. These can be viewed, weighted, or disabled in
# the `features` section of this file. Metadata about each feature can be viewed by hovering over the output in
# /aac status <player>.
#
# You can ask AAC to immediately generate a report for any player with /aac check <player>, and you can clear all
# stored data for a player with /aac reset <player>. A list of all online players can be seen with /aac status.
# Any colour coded player name sent in chat by AAC can be clicked for a detailed report.
#
# Silent mode:
# Normally, AAC prevents certain cheats from working on your server, such as fly and nofall. If you do not want
# AAC to block cheats at all, you can set the `mitigate` option in every check to `false`. In addition, if you do
# not want to block nofall, you can set the `block_nofall` option to `false` in the move check.
#
# You will still receive alerts from checks with mitigation disabled. If you want to disable a check entirely, you
# can set the `enabled` option to false.
#
# If you want to exempt any particular player from AAC entirely, you can use the /aac exempt <player> command.
# This command persists through reboots and even between servers, if they are connected to the same database.
#
# Localisation:
# By default, AAC never sends any messages to players. AAC's alerts include only the offending player's name and
# hence do not need to be localised either. However, you may wish to translate the output of /aac status <player>
# to make it easier for moderators to understand.
# The text used for these is available in the `features` section of this configuration file.
#
# In this configuration file, all length units are blocks and all time units are seconds
# If MySQL is not enabled, AAC will use an SQLite database at sqlite_target
sqlite_target: "plugins/AAC5/database.db"
# Alternatively, enable MySQL support here. AAC uses the table prefix "aac_"
mysql:
enabled: false
host: "localhost"
port: 3306
database: "aac" # You may wish to use "dbname?useSSL=false" for local MySQL databases.
username: ""
password: ""
# AAC supports cross server alerts through BungeeCord.
# AAC must be installed on every server on the network, and all instances must be connected to the same database.
# Do NOT enable this option if you are not using BungeeCord, or detections will be sent directly to players.
bungeecord: false
# Configure the different checks in AAC - modular components that try to detect certain categories of cheating
checks:
# The delays check detects players that perform various actions faster than is normally possible
delays:
enabled: true
# delays.vl represents an estimate of the total time advantage that a player has gained by cheating
vl:
mitigate: true
threshold: 1.0
max: 1.0
decay: 0.01
# Enable or disable delays checking for the following situations
fast_break: true
fast_place: true
fast_use: true
fast_bow: true
regen: true
fast_sneak: true
fast_release: true
break_delay: true
# The move check detects a wide range of modifications relating to movement, including timer, nofall and velocity.
move:
enabled: true
# move.vl represents an estimate of the total extra distance a player has travelled by cheating
vl:
mitigate: true
threshold: 1.0
max: 1.0
decay: 0.01
# move.timer represents an estimate of the total time advantage a player has gained by cheating
timer:
mitigate: true
threshold: 1.0
max: 1.0
decay: 0.01
# Phasing causes a player's vl to be increased more than normal violations
# This should be set to a value >= vl.threshold to always block phase attempts
phase_vl: 1.0
# AAC can transparently block nofall by replacing ground calculations from the client with its own calculations
block_nofall: true
# AAC will wait at most this long for a player to respond to velocity sent by the server
max_vel_time: 1.0
# This is how long AAC will remember piston extensions for
piston_wait_time: 1.0
# Enable/disable checking for noslowdown (sneak). Minor performance penalty if disabled
check_sneak: true
# Enable/disable checking for noslowdown (item use). Minor performance penalty if disabled
check_item_use: true
# Enable/disable movement checking for players with allow flight enabled.
check_flying: false
# These are thresholds that AAC uses in special cases where precise checking isn't possible
flowing_speed: 0.2
bubble_column_speed: 1.8
bumping_speed: 0.1
elytra_rocket_speed: 2.0
riptide_speed: 4.2
boat_hitbox_tolerance: 0.8
shulker_hitbox_tolerance: 0.6
elytra_landing_tolerance: 0.5
# The aimbot check detects aim modifications used to gain an advantage in combat, including aimassists and killauras.
aimbot:
enabled: true
check_sensitivity: true
check_mouse_delta: true
check_head_snap: true
check_pitch_spread: true
check_zero_point: true
# The autoclicker check detects abnormal or irregular attack patterns characteristic of autoclickers and killauras.
autoclicker:
enabled: true
check_tick_delay: true
check_noswing: true
check_timing: true
sample_size: 20
# The hitbox check verifies that players look at the entities they hit, and that those entities are in range.
hitbox:
enabled: true
# hitbox.vl represents an estimate of the total extra distance a player has reached by cheating
vl:
mitigate: true
threshold: 0.5
max: 1.0
decay: 0.01
lag_compensation_ticks: 20
hit_queue_size: 4
check_blocks: true
# The interact check looks for players performing impossible or abnormal interactions with the world.
interact:
enabled: true
# AAC will accept interactions as long as the player is aiming close to their target block
# This is the max angle that AAC will accept (in radians)
max_angle_diff: 1.0
# AAC will not check interactions with these materials
exempt: []
# interact.vl increases by 1 for each invalid interaction that is detected
vl:
mitigate: true
threshold: 1.0
max: 1.0
decay: 0.01
# The misc check looks for certain accurate indicators of cheating
misc:
enabled: true
invalid_pitch: true
player_abilities: true
rotation_rate: true
# Using the features above, AAC will periodically analyse players on the server and generate a risk score.
# Analysis results can be accessed for all players at once with '/aac status', or detailed reports can be generated
# for individual players with /aac status <player> [players...]
analysis:
# AAC analyses one player at a time, e.g. if your server has 50 players, they will each be analysed every 50 * period
# seconds. You can force AAC to analyse any particular player at any time with /aac check <player> [players...]
period: 1.0
# How far back should AAC look when analysing a player?
history: 1
history_time_unit: DAYS # https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html
# Should AAC automatically clear database entries older than 'history' when the server starts?
clear_stale_entries: true
# At what score should a player's username be coloured yellow in /aac status?
yellow_score: 100
# At what score should a player's username be coloured red in /aac status?
red_score: 200
# You can sort checks into your own categories here to automatically execute commands for them.
# Multiple features can be matched with * wildcards. The '-' prefix excludes matching patterns from the group.
# The command list for the highest entry with a key <= report score is executed in order.
# Without PlaceholderAPI, you can use the %player_name% placeholder.
# Otherwise, you can additionally use any PlaceholderAPI placeholder that you have installed.
actions:
global:
delay: 10.0
features:
- aac_*
thresholds:
300:
- "aac status %player_name%"
- "aac reset %player_name%"
- "kick %player_name% actions.global"
combat:
delay: 5.0
features:
- aac_aimbot_*
- aac_aimassist_*
- aac_clk_*
- aac_hitbox_*
thresholds:
200:
- "aac status %player_name%"
- "aac reset %player_name%"
- "kick %player_name% actions.combat"
misc:
delay: 5.0
features:
- aac_misc_*
thresholds:
100:
- "aac status %player_name%"
- "aac reset %player_name%"
- "kick %player_name% actions.misc"
movement:
delay: 5.0
features:
- aac_move_*
- aac_delays_sneak
- aac_delays_release
- -aac_move_timer
thresholds:
200:
- "aac status %player_name%"
- "aac reset %player_name%"
- "kick %player_name% actions.movement"
interact:
delay: 5.0
features:
- aac_interact_*
thresholds:
200:
- "aac status %player_name%"
- "aac reset %player_name%"
- "kick %player_name% actions.interact"
delays:
delay: 5.0
features:
- aac_delays_*
thresholds:
200:
- "aac status %player_name%"
- "aac reset %player_name%"
- "kick %player_name% actions.delays"
# AAC compiles data from all of its checks and uses it to generate a set of weighted features for each player
# Each feature accepts certain placeholders. A list of valid placeholders can be found by hovering over each feature's
# tooltip. You can set the weight of any feature to 0 to disable it.
features:
aac_delays_break:
weight: 1.0
format: "Blocks are broken by the player faster than is normally possible"
aac_delays_place:
weight: 1.0
format: "Blocks are placed by the player faster than is normally possible"
aac_delays_consume:
weight: 1.0
format: "Items are consumed by the player faster than is normally possible"
aac_delays_bow:
weight: 1.0
format: "The player is drawing their bow faster than is normally possible"
aac_delays_regen:
weight: 1.0
format: "The player is regenerating health faster than is normally possible"
aac_delays_sneak:
weight: 1.0
format: "The player is toggling sneak faster than is normally possible"
aac_delays_release:
weight: 1.0
format: "The player is releasing their held item faster than is normally possible"
aac_delays_breakdelay:
weight: 1.0
format: "The delay between the player's block break actions is shorter than is normally possible"
aac_move_nofall:
weight: 1.0
format: "The player is trying to avoid fall damage"
aac_move_vel:
weight: 1.0
format: "The player ignores velocity sent by the server"
aac_move_elytra:
weight: 1.0
format: "The player has moved {rate} blocks/min incorrectly with the elytra"
aac_move_vehicle:
weight: 1.0
format: "The player has frequently moved incorrectly in a vehicle"
aac_move_water:
weight: 1.0
format: "The player has moved {rate} blocks/min incorrectly in water"
aac_move_lava:
weight: 1.0
format: "The player has moved {rate} blocks/min incorrectly in lava"
aac_move_noslow:
weight: 1.0
format: "The player has frequently ignored sneak/item slowdowns"
aac_move_generic:
weight: 1.0
format: "The player has moved {rate} blocks/min incorrectly"
aac_move_timer:
weight: 1.0
format: "The player is trying to speed up time"
aac_move_inf:
weight: 1.0
format: "The player is sending invalid movement packets"
aac_aimbot_spread:
weight: 1.0
format: "The player's pitch has varied in an unusual way during combat"
aac_aimbot_sync:
weight: 1.0
format: "The player's horizontal and vertical aiming patterns are out of sync"
aac_aimbot_horz:
weight: 1.0
format: "The player has exhibited yaw patterns characteristic of aimbot"
aac_aimbot_vert:
weight: 1.0
format: "The player has exhibited pitch patterns characteristic of aimbot"
aac_aimbot_snap:
weight: 1.0
format: "The player performs abnormal head snaps during combat"
aac_aimbot_zero:
weight: 1.0
format: "The player's aiming patterns change when they enter combat"
aac_aimassist_horz:
weight: 1.0
format: "The player has exhibited yaw patterns characteristic of aimassist"
aac_aimassist_vert:
weight: 1.0
format: "The player has exhibited pitch patterns characteristic of aimassist"
aac_clk_noswing:
weight: 1.0
format: "The player doesn't swing their arm while attacking"
aac_clk_tick_align:
weight: 1.0
format: "The player's arm animations are aligned with tick boundaries"
aac_clk_timing:
weight: 1.0
format: "The player's attack packet timings are characteristic of killaura"
aac_clk_cps:
weight: 1.0
format: "The player clicks at an average of {mean} cps during combat"
aac_clk_var:
weight: 1.0
format: "The player's delay between successive clicks has a variance of {mean}"
aac_hitbox_multi:
weight: 1.0
format: "The player has attacked extra times in a single tick"
aac_hitbox_miss:
weight: 1.0
format: "The player attacks entities without looking at them"
aac_hitbox_walls:
weight: 1.0
format: "The player attacks entities through solid walls"
aac_hitbox_reach:
weight: 1.0
format: "The player attacks {value} blocks further than normal"
aac_interact_generic:
weight: 1.0
format: "The player interacts suspiciously with blocks"
aac_interact_break:
weight: 1.0
format: "The player breaks blocks out of their line of sight"
aac_interact_place:
weight: 1.0
format: "The player places blocks out of their line of sight"
aac_misc_abilities:
weight: 1.0
format: "The player has sent invalid player ability packets"
aac_misc_pitch:
weight: 1.0
format: "The player has sent invalid rotation pitch packets"
aac_misc_rotation:
weight: 1.0
format: "The player is rotating too quickly"
aac_new_user:
weight: 1.0
format: "The player recently joined for the first time"
aac_new_addr:
weight: 1.0
format: "The player recently joined from a new ip address"
aac_info_move:
weight: 1.0
format: "Insufficient data to analyse the player's movement"
aac_info_combat:
weight: 1.0
format: "Insufficient data to analyse the player's combat"
aac_info_interact:
weight: 1.0
format: "Insufficient data to analyse the player's interactions"
# AAC will run the following commands from the CONSOLE before teleporting a staff member to a player
pre_spectate:
# - "aac sudo %player_name% vanish on" # /aac sudo <player> <command> executes <command> as <player>
- "gamemode spectator %player_name%"
# AAC will run the following commands from the CONSOLE after teleporting a staff member back
post_spectate:
# - "aac sudo %player_name% vanish off"
- "gamemode survival %player_name%"
# Can be any valid minecraft colour code, e.g. a corresponds to green
aac_prefix_colour: a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment