"Phrases"
{
	"announcement.detected"	"detected {detection} on {player}{outcome}"
	"announcement.outcome.punishment_sent"	" and sent the punishment."
	"announcement.outcome.whitelisted"	", but they are whitelisted."
	"announcement.outcome.punishment_disabled"	", but punishment is disabled."
	"announcement.outcome.identity_unavailable"	", but their identity is not ready yet."
	"announcement.outcome.already_punished"	" and the punishment was already sent."
	"announcement.outcome.command_too_long"	", but the punishment command is too long."
	"announcement.outcome.command_service_unavailable"	", but the server command service is unavailable."
	"announcement.outcome.network_unstable"	", but no punishment was sent because their connection was unstable."
	"announcement.test"	"This is a test. No player was detected or punished."

	"evidence.aimbot.snap_return"	"CS2AC found {incidents} damaging shots where the aim jumped during the shot and immediately returned. The latest jump was {snap} degrees."
	"evidence.aimbot.convergence"	"CS2AC found {incidents} damaging shots where the aim moved onto the enemy in one sudden step. On the latest shot, the aim moved {snap} degrees and its distance from the enemy fell from {before} to {after} degrees."
	"evidence.aimbot.smooth"	"CS2AC found {incidents} damaging shots where the aim followed an unusually clean curve onto the enemy. On the latest shot, the aim moved {snap} degrees and its distance from the enemy fell from {before} to {after} degrees."
	"evidence.aimlock"	"CS2AC found {incidents} separate periods of near-perfect enemy tracking. During the latest two-second period, the aim stayed inside the enemy's body width for {precise} of {samples} checks while the enemy moved far enough across the player's view. The enemy moved {movement} degrees across the view; {required} degrees was required at that distance."
	"evidence.silentaim"	"The bullet landed {deviation} degrees away from the player's visible aim. The weapon's current inaccuracy and spread allowed {allowance} degrees, leaving {excess} degrees unexplained. {weight} The rolling score reached {score}/{threshold}."
	"evidence.silentaim.weight.blatant"	"The unexplained angle was over 22.5 degrees, so the shot started at 4 points."
	"evidence.silentaim.weight.airborne"	"The player was airborne, so the shot started at 3 points."
	"evidence.silentaim.weight.grounded"	"The player was on the ground, so the shot started at 2 points."
	"evidence.silentaim.weight.headshot"	"A headshot added 1 point."
	"evidence.silentaim.weight.wallbang"	"A wallbang added 2 points."
	"evidence.silentaim.weight.smoke"	"A shot through smoke added 2 points."
	"evidence.silentaim.weight.noscope"	"A no-scope added 1 point."
	"evidence.inhuman_accuracy"	"CS2AC counted {attempts} shots fired while the crosshair was already inside a player-sized area around an enemy at least {distance} game units away. {hits} dealt damage ({accuracy}% accuracy); {required}% was required."
	"evidence.irregular_behavior"	"The player repeatedly attempted airborne shots or sniper shots without scoping. {successes} of {attempts} attempts became kills ({accuracy}% success), bringing the score to {score}/{threshold}."
	"evidence.triggerbot"	"The player repeatedly fired almost immediately after the crosshair first touched an enemy. Across {shots} damaging shots, {one_tick} were fired within one game update, {two_tick} within two updates, and {normal} took three or more updates, bringing the score to {score}/{threshold}. The latest shot took {latest_ticks} updates, dealt {damage} damage to the enemy's {hitgroup}, and happened while {context}; the target was player slot {target}."

	"evidence.antiaim"	"The final piece of evidence was {reason}. It added {points} points, bringing the combined AntiAim score to {score}/{threshold}."
	"evidence.antiaim.m_yaw"	"The player's m_yaw value was {value} at the time."
	"evidence.antiaim.reason.spin"	"continuous spinning at a speed and consistency associated with AntiAim"
	"evidence.antiaim.reason.jitter"	"the same rapid view-angle jitter repeating continuously"
	"evidence.antiaim.reason.attack_return"	"a shot where the aim changed by at least 30 degrees for one command and immediately returned"
	"evidence.antiaim.reason.inconsistent_command"	"view-angle data that a normal client should not send"
	"evidence.antiaim.reason.history_mismatch"	"two view angles in the same command repeatedly disagreeing by at least 120 degrees"
	"evidence.antiaim.reason.invalid_angles"	"a pitch or roll angle outside the normal CS2 range"
	"evidence.dll_injection.one"	"The player's game was listening for {count} event associated with injected cheats: {events}. This detector checks visible event subscriptions only; it does not scan the player's memory or prove every possible DLL injection."
	"evidence.dll_injection.many"	"The player's game was listening for {count} events associated with injected cheats: {events}. This detector checks visible event subscriptions only; it does not scan the player's memory or prove every possible DLL injection."
	"evidence.doubletap.one_tick"	"The same gun fired twice within 1 server tick on {pairs} separate occasions. That is faster than the weapon's normal firing cycle allows."
	"evidence.doubletap.zero_ticks"	"The same gun fired twice within the same server tick on {pairs} separate occasions. That is faster than the weapon's normal firing cycle allows."
	"evidence.doubletap.network_unstable"	"The same gun fired twice almost at once on {pairs} separate occasions. The latest pair was {ticks} server ticks apart."
	"evidence.network_check"	"The five-second network check was not stable enough for punishment. It measured {ping} ms ping, {jitter} ms jitter, {incoming_loss}/{outgoing_loss}% incoming/outgoing loss, {incoming_choke}/{outgoing_choke}% incoming/outgoing choke, {gaps} command gaps, and {unavailable} unavailable samples."
	"evidence.namechanger"	"The player changed their visible name {changes} times within one minute."

	"evidence.autostrafe.optimizer"	"The player's airborne turns repeatedly followed the same machine-perfect acceleration pattern. The rolling match score reached {score}%."
	"evidence.autostrafe.jumps"	"Of the latest {evaluated} valid jumps, {suspicious} showed air-strafing speed or efficiency patterns associated with automation ({ratio}%)."
	"evidence.bhop.perfect_chain"	"The player made {perfect} frame-perfect bunny hops in one uninterrupted chain, out of {landings} checked landings."
	"evidence.bhop.repeated_pattern"	"The player repeated the same short jump-button pattern on {repeated} of {patterns} completed landings. The common pattern used {inputs} jump presses around each landing, while the overall average was {average}."
	"evidence.hyperscroll"	"Across {patterns} completed landings, the player sent an average of {average} jump presses around each landing. Of {landings} checked landings, {perfect} were frame-perfect ({ratio}%)."
	"evidence.nulls"	"While airborne, the player repeatedly switched between opposite {axis} inputs with machine-perfect timing. The timing score reached {score}; {required} was required at the measured frame rate. The median delay between releasing one key and pressing the other was {gap} ms, with {overlaps} overlapping switches at {fps} FPS."
	"evidence.nulls.axis.forward_backward"	"forward/backward"
	"evidence.nulls.axis.left_right"	"left/right"

	"evidence.invalid_input"	"Within {seconds} seconds, {commands} commands changed movement buttons without sending the timing records that should explain those changes."
	"evidence.subtick_spam"	"Within {seconds} seconds, {commands} commands packed repeated movement changes and view-angle changes into the exact same moment."
	"evidence.desubticking"	"The player repeatedly sent movement inputs with their normal between-tick timing removed. Of {commands} checked movement commands, {zero} had their timing set to zero ({ratio}%)."
	"evidence.invalid_cvar.invalid_number"	"The client returned an invalid number for {cvar}."
	"evidence.invalid_cvar.above_maximum"	"{cvar} is {value}, but the maximum allowed value is {maximum}."
	"evidence.invalid_cvar.outside_range"	"{cvar} is {value}, but it must be between {minimum} and {maximum}."
	"evidence.invalid_cvar.must_equal"	"{cvar} is {value}, but it must be {expected}."
	"evidence.invalid_cvar.fps_max"	"fps_max is {value}, but it must be at least 64 or 0 for unlimited."
	"evidence.invalid_cvar.sv_cheats"	"sv_cheats is enabled or invalid on the client while it is disabled on the server."
	"evidence.invalid_cvar.enabled_without_cheats"	"{cvar} is enabled on the client despite sv_cheats being disabled on the server."
	"evidence.invalid_cvar.disabled_without_cheats"	"{cvar} is disabled on the client despite sv_cheats being disabled on the server."

	"webhook.field.player"	"Player"
	"webhook.field.steamid64"	"STEAMID64"
	"webhook.field.detection"	"Detection"
	"webhook.field.evidence"	"Evidence"
	"webhook.field.punishment"	"Punishment"
	"webhook.field.map"	"Map"
	"webhook.field.address"	"Address"
	"webhook.outcome.punishment_sent"	"The configured punishment command was sent."
	"webhook.outcome.whitelisted"	"The player is whitelisted, so no punishment command was sent."
	"webhook.outcome.punishment_disabled"	"No punishment was sent because this punishment command is disabled."
	"webhook.outcome.identity_unavailable"	"No punishment was sent because the player's identity was not ready."
	"webhook.outcome.already_punished"	"The player was already punished, so no duplicate command was sent."
	"webhook.outcome.command_too_long"	"No punishment was sent because the configured command is too long."
	"webhook.outcome.command_service_unavailable"	"No punishment was sent because the server command service is unavailable."
	"webhook.outcome.network_unstable"	"No punishment was sent because the player's connection exceeded the safe network limits."
	"webhook.outcome.unavailable"	"No punishment outcome was available."
	"webhook.unknown_player"	"Unknown player"
	"webhook.unknown_detection"	"UNKNOWN"
	"webhook.unavailable"	"Unavailable"
	"webhook.steamid_unavailable"	"SteamID64 is unavailable."
	"webhook.default_evidence"	"The detector reached its configured threshold"
	"webhook.default_server_name"	"CS2 Server"
	"webhook.footer"	"Detection report"
	"webhook.test_detection"	"WEBHOOK TEST"
	"webhook.test_player"	"Webhook test"
	"webhook.test_evidence"	"This is a harmless test report. No detection or punishment was created."
}
