Skip to content

3.3.5 Passive Anticheat

Giacomo Pozzoni edited this page Apr 14, 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

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

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 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) [x] Summoned a warlock's box [x] Summoned a masmorra encounter stone

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.

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

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.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 = 0

#     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
  • Currently no dedicated collumn for ignore control or teleport hack reporting, but the numbers are added to total report. Custom Messages are adjusted in trinity_string for those three anticheats. The reason being is for some damn reason we are getting unrealistic high numbers being reported in the sql if i add in another collumn or two. I have no idea why that happens.

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