Skip to content

3.3.5 Passive Anticheat

Giacomo Pozzoni edited this page May 19, 2022 · 9 revisions

TrinityCore Passive Anticheat Module

Features

  • Passive Anticheat implemented and updated
  • Automatic Moderation options
  • False Positives Reduced Greatly
  • Reports to GM's online or Automatically takes actions thru jail\kick\ban.
  • Teleport Helpers Added in for detecting of none legal teleports
  • Actual Detections improved upon drastically
  • If you are in .GM on it should not flag you or report you.
  • Configuration reloadable via .reload conf gm cmd image

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

image

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 occasion 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)

Edge Cases (Exceedingly Rare) False Positives

[Climb Hack False Positive] truely unrealistic scenario

Being hit with knock back while facing a unrealistic swarm of enemies while in cheat god on will give a false hit for Climb Hack due to the chance of knock back being applied by more then one enemy at the same time.

[Speed Hack False Positive] was able to replicate once out of 50 scenarios

Being hit with knock back while under the aura effect of daze will trigger a single speed hack.

Apply SQLs Files

  1. Files are located in the sql folder.
  2. Apply sql/character.anticheat.sql to the trinity_characters DB.
  3. Apply sql/world.anticheat.sql to the trinity_world DB.

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. image

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 while applying a indef deserter aura to prevent queuing jailbreaks
  • .anticheat parole Recommended to be used in gm jail, teles to faction capital and rebinds hearthstone there while clearing their reports and removing indef deserter auras
  • .anticheat warn Sends player warning message that they are being monitored
  • ** anticheat handle 0/1** Zero turns off anticheat, 1 turns on anticheat. image

World Console and 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

image

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 5 being the default, u will get a message alert for every 5 violations.
#       Anticheat.AlertFrequency = 5

Anticheat.AlertFrequency = 5

#     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:    0 - (Disabled)
#                   1 - (Enabled)

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.StricterFlyHackCheck
#       Description: Checks moveflag ascending (may give false positives)
#       Default:    0 - (Disabled)
#                   1 - (Enabled)

Anticheat.StricterFlyHackCheck = 1

###################################################################################################
#     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

###################################################################################################

Target branch(es): 335

Issues addressed: Passive Anticheat Module

Tests performed: Builds and Performs as Intended

Known issues and TODO list

  • Localize

Localize Trinity_Strings

  • LOCALE_enUS = 0
  • LOCALE_koKR = 1
  • LOCALE_frFR = 2
  • LOCALE_deDE = 3
  • LOCALE_zhCN = 4
  • LOCALE_zhTW = 5
  • LOCALE_esES = 6
  • LOCALE_esMX = 7
  • LOCALE_ruRU = 8

Clone this wiki locally