Archived repository for WoW 4.3.4.15595. The project will be reworked for Cataclysm Classic as an official new branch of TrinityCore at https://github.com/TrinityCore/TrinityCore
GNU General Public License v2.0
239
stars
97
forks
source link
Feat: (Passive Anticheat) Update, Features, New confs. #369
Port Passive Anticheat from TC Custom Changes 335 to TCPP
Issues addressed: Fixes # : Lack of Anticheat
Tests performed: (Does it build, tested in-game, etc)
Builds (VS 2022)
Runs (Win 11 Pro)
Description:
Anticheat Passive implemented
Automatic Moderation options
False Positives Reduced Greatly
Actual Detections improved upon drastically
Reports to GM's online or Automatically takes actions thru jail\kick\ban.
Teleport Helpers Added in.
If you are in .GM on it should not flag you or report you.
Core Hook For anticheat and OnPlayerUpdate
Configuration reloadable via .reload conf gm cmd
Detections Provided:
Fly hack
Teleport Hack
Jump Hack
Speed Hack
Ignore Control (Move while rooted) Hack
Water Walk Hack
Teleport Z pane Hack
Ignore Z Axis Hack
Anti-Swim Hack
Gravity Hack
Anti Knockback Hack
No Fall Damage
BG Start Hack
Op Ack Order Hack
Understanding the Report Tables
Characters DB:
players_reports_status Table: is that logged anticheat stats for the players current active sessions.
daily_players_reports Table: is the log of the players life time anticheat stats that is logged until purged.
Know false positives \ Feature Concerns:
Ignore Control:
Excessive Latency will cause false flags, if the lag is that bad they shouldnt even be playing on the server but it was shown that was the case in CC
Ignore Z-Axis Hack:
On occaussion depending on player's build at times the player may get hit with a false positive based on if there are "potholes" in the maps\vmaps. Updating maps\vmaps ot latest will help reduce this, ensure compile and maps are at latest.
Auto Moderation Jail Feature
If offender is a DK in the DK Starter Area they will be shackled on the spot and not teleported. Its the way the core handles keeping the DK in it's zone until successifully completed.
Following will Jail Break a player out:
[x] Summoned by a GM (.sum)
Apply SQLs Files
Files are located in the sql folder.
Apply sql/AUTH_ANTICHEAT_2022_08_14_00.sql to the trinity_auth DB.
Apply sql/CHARACTERS_ANTICHEAT_2022_08_13_00.sql to the trinity_characters DB.
Apply sql/WORLD_ANTICHEAT_2022_18_13_00.sql to the trinity_world DB.
GM cmds included:
.anticheat global Informs you if anticheat is turned on
.anticheat player Tells you current auto reports
.anticheat delete PLAYERNAME Deletes reports on player from anticheat system
.anticheat purge completely clears the player_daily_reports table
.anticheat jail Sends Player to gm jail which then shackles them and hearthstone binds them to gm jail with deserter
auras being applied indef to them to prevent them from queuing a jail break
.anticheat parole Recommended to be used in gm jail, teles to faction capital and rebinds hearthstone there while clearing
their reports while clearing their deserter auras
anticheat handle 0/1 Zero turns off anticheat, 1 turns on anticheat.
World Console Logging:
Anticheat Logging\Appenders
Currently spams into its own file
If you want world console spam just use Logger.anticheat=3,Console Server Anticheat
Thanks to Smerdokryl from TC Discord
RECOMMEND CONF SETTINGS
Confs are reloadable with .reload conf
# Anti-Cheat System
#
# Anticheat.Enable
# Description: Enables or disables the Anticheat System functionality
# Default: 1 - (Enabled)
# 0 - (Disabled)
Anticheat.Enable = 1
# Anticheat.ReportsForIngameWarnings
# Description: How many reports the player must have to notify to GameMasters ingame when he generates a new report.
# Default: 70
Anticheat.ReportsForIngameWarnings = 70
# Anticheat.MaxReportsForDailyReport
# Description: How many reports must the player have to make a report that it is in DB for a day (not only during the player's session).
# Default: 70
Anticheat.MaxReportsForDailyReport = 70
# Anticheat.ReportinChat
# Description: min and max total reports to trigger gm chat message spam.
# Default: So with 70 being min and 80 being max, it will spam gm in chat 10 times.
# Anticheat.ReportinChat.Min = 70
# Anticheat.ReportinChat.Max = 80
Anticheat.ReportinChat.Min = 70
Anticheat.ReportinChat.Max = 80
# Anticheat.AlertFrequency
# Description: Once Ingame warngings and report in chat min is met, this will throttle to alert the gms every other count
# Default: So with 1 being the default, u will get a message alert for every 1 violations.
# Anticheat.AlertFrequency = 1
Anticheat.AlertFrequency = 1
# Anticheat.WriteLog
# Description: Enable writing to log when a player is detected using hacks
# Default: 0 - (Disabled)
# 1 - (Enabled)
Anticheat.WriteLog = 1
# Anticheat.Detect
# Description: It represents which detections are enabled (ClimbHack disabled by default).
# Default: 1 - (Enabled)
# 0 - (Disabled)
Anticheat.DetectFlyHack = 1
Anticheat.DetectWaterWalkHack = 1
Anticheat.DetectJumpHack = 1
Anticheat.DetectTelePlaneHack = 1
Anticheat.DetectSpeedHack = 1
Anticheat.DetectClimbHack = 1
Anticheat.DetectTelePortHack = 1
Anticheat.IgnoreControlHack = 1
Anticheat.DetectZaxisHack = 1
Anticheat.AntiSwimHack = 1
Anticheat.DetectGravityHack = 1
Anticheat.AntiKnockBack = 1
Anticheat.NoFallDamage = 1
Anticheat.DetectBGStartHack = 1
Anticheat.OpAckOrderHack = 1
# Anticheat.StricterFlyHackCheck
# Description: Checks moveflag ascending (may give false positives)
# Default: 0 - (Disabled)
# 1 - (Enabled)
Anticheat.StricterFlyHackCheck = 1
# Anticheat.StricterDetectJumpHack
# Description: Checks moveflag for advance stricter jump hacks (may give false positives)
# Default: 0 - (Disabled)
# 1 - (Enabled)
Anticheat.StricterDetectJumpHack = 1
# Anticheat.SpeedLimitTolerance
# Description: Speed Limit Tolerance allows a certain whole percentage of tolerance to speed
# hack logging and detection.
#
# Example: AnticheatMgr:: Speed-Hack (Speed Movement at 12% above allowed Server Set rate 8%.)
# will be detected since its 4 (default) and higher, but anything 3 and lower will not be flagged.
# Default: 4 - (Default)
#
Anticheat.SpeedLimitTolerance = 4
###################################################################################################
# Automatic Moderation Features
#
# Anticheat.KickPlayer
# Anticheat.ReportsForKick
#
# Description: Enables and Auto kick when reports reach threshhold
# Default: 0 - (Disabled)
# 1 - (Enabled)
# Default: 70 - (Kicks at 70 auto reports)
#
Anticheat.KickPlayer = 0
Anticheat.ReportsForKick = 70
# Anticheat.BanPlayer
# Anticheat.ReportsForBan
#
# Description: Enables and Auto ban when reports reach threshhold
# Default: 0 - (Disabled)
# 1 - (Enabled)
# Default: 70 - (Bans at 70 auto reports)
#
Anticheat.BanPlayer = 0
Anticheat.ReportsForBan = 70
# Anticheat.JailPlayer
# Anticheat.ReportsForJail
#
# Description: Enables and Auto Jail when reports reach threshhold
# Default: 0 - (Disabled)
# 1 - (Enabled)
# Default: 70 - (Jails at 70 auto reports)
#
Anticheat.JailPlayer = 0
Anticheat.ReportsForJail = 70
# Anticheat.AnnounceKick
# Anticheat.AnnounceBan
# Anticheat.AnnounceJail
# Description: Send a message to all players when a user kicked, banned, jailed.
# Default: 0 - (Disabled)
# 1 - (Enabled)
Anticheat.AnnounceKick = 0
Anticheat.AnnounceBan = 0
Anticheat.AnnounceJail = 0
# Anticheat Logging\Appenders
# Currently spams into its own file
# If you want world console spam just use Logger.anticheat=3,Console Server Anticheat
Appender.Anticheat=2,3,15,anticheat.log,a
Logger.anticheat=3,Server Anticheat
###################################################################################################
Known issues and TODO list:
[x] GM cmds are not working in game but works in console. will need assistance with that.
[x] Will need to do clean up on the world_anticheat sql as descriptions are not showing in game but shows in console.
Changes proposed:
Issues addressed: Fixes # : Lack of Anticheat
Tests performed: (Does it build, tested in-game, etc)
Description:
Detections Provided:
Understanding the Report Tables
Characters DB: players_reports_status Table: is that logged anticheat stats for the players current active sessions. daily_players_reports Table: is the log of the players life time anticheat stats that is logged until purged.
Know false positives \ Feature Concerns:
Ignore Control: Excessive Latency will cause false flags, if the lag is that bad they shouldnt even be playing on the server but it was shown that was the case in CC
Ignore Z-Axis Hack: On occaussion depending on player's build at times the player may get hit with a false positive based on if there are "potholes" in the maps\vmaps. Updating maps\vmaps ot latest will help reduce this, ensure compile and maps are at latest.
Auto Moderation Jail Feature If offender is a DK in the DK Starter Area they will be shackled on the spot and not teleported. Its the way the core handles keeping the DK in it's zone until successifully completed.
Following will Jail Break a player out: [x] Summoned by a GM (.sum)
Apply SQLs Files
GM cmds included:
World Console Logging:
Anticheat Logging\Appenders Currently spams into its own file If you want world console spam just use Logger.anticheat=3,Console Server Anticheat Thanks to Smerdokryl from TC Discord
Appender.Anticheat=2,3,15,anticheat.log,a Logger.anticheat=3,Server Anticheat
RECOMMEND CONF SETTINGS Confs are reloadable with .reload conf
Known issues and TODO list: