This resource is now discontinued, it is time to let Soaroma rest, she got sleepy - I may revamp Soaroma one day, however its not going to be updated anytime soon. Thank you to all who supported me throughout the years, see you next time.
General
SoaromaSAC is a simple anti-cheat plugin to detect and remove cheaters from your server. SAC has an extensive amount of configurable options that allow you to customize the anti-cheat that suits your server's needs. This plugin is meant to be used in passive servers such as skyblock, survival and so on. This is not a PVP anti-cheat, since this anti-cheat is more focused on movement detection and on being performance efficient and friendly. With a total of ~67 checks, ~53 for movement, ~2 for combat, ~6 for world and ~4 for other. This anti-cheat not only focused on cheat detection but also includes moderation capabilities.
Cheats Detected
Movement
Flight A, B, C, D, E
Bunny Hop A, B
Glide A B
Fast Climb A
Fluid Walk A, B, C, D, E (Jesus)
NoFall A
Speed A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q
NoSlowDown A, B, C, D
Spider A, B
Step A
Elytra Flight A B (Using an elytra for an extended period of time without using a firework)
Irregular Startup A B
Median Speed A
BadPackets A
Combat
Reach A
Criticals A
World
Irregular Placement A (Place blocks mid-air)
Reach Break A
Reach Place A
Nuker A
Other
IrregularEventCount A B (Timer, detects >= 1.1x)
Regen x1 A
Auto Clicker A B
Experimental Checks - disabled upon default configuration
Step B
IrrMovement A B
Baritone A, B, C (May take a while to flag, depending on configuration)
GhostHand A
Xray A (Optional pre-done configuration in the discord server)
Experimental Checks - enabled upon default configuration
Semi Prediction A B
Note that checks may very well detect other cheats as well due to similar movements, there are more checks than listed above but some are not displayed due to being disabled in configuration or the check is enabled but too insensitive to be displayed on the list.
Permissions
sac.bypass {Bypass every check} OR sac.bypass.[checkname][type] {[checkname] being speed or whatever is set inside cheat-names, and the [type] being a etc, example, sac.bypass.speede}
sac.notify {Violation messages}
sac.notifykick {Notify admins when a kick occurs}
sac.reload {Reload configuration}
sac.alertCommandGet {For the command sacnotify}
sac.gui.admin
sac.kick
sac.ban
sac.gui
sac.warn
sac.mute
sac.unban
sac.freeze
sac.ping
sac.user {For sacuser}
sac.hashclear
sac.report
sac.reportRecieve {When a user types a report, players with this permission get the report}
sac.reportList
sac.display.custompayload {For /sacppicp}
sac.punish.bypass [to bypass staff commands, such as sacfreeze, sacgui, etc]
sac.replay
sac.startup.choose for /sacconfigchoose
sac.history for /sachistory
sac.sacvio for /sacvio
Commands
sacreload
sacuser <player> {Displays certain information about the player}
sacnotify <disable/enable> {Violation messages}
sacgui <player> {Punishment GUI}
sacmute <player>
sackick <player>
sacwarn <player> <reason>
sacunban <player>
sacping <player>
sacadmin
sacfreeze <player>
sachashclear
sacreport <reason> {All reports are logged inside of a file}
sacreports <number> {View X amount of recent reports}
sacppicp <player>
sacreplay <player-uuid> <dd.mm.yyyy>
sacconfigchoose [ID]
sacvio {view max recent violations in a gui}
sachistory <playername> <number> {View X amount of logs}
Features
Receive a violation every X amount of violations (Auto Disabled)
Freeze System
Punishment GUI
Automatic kicking and banning (Banning Auto Disabled)
Report System
Hex colour codes
Ping command for a target player
Enable or disable violation messages with a command
Automatic clearing violations (Auto Disabled)
All messages are customizable
Kick Logging
Violation Logging
Report Logging
Cancel actions (Auto Enabled, called 'cancelEventIfHacking' in configuration)
Severity of check flagged within violation message (low, medium, high)
Each check is configurable and can be easily changed or disabled if needed
Discord webhook integration
TPS Checker (Enable AC above a certain TPS or lower than certain TPS)
Can ignore java/bedrock players of your choosing inside config.yml
Extra Information
Here is a timings report - 60 players were online [1.16.5, version 1.0.01]
All checks listed in detected were enabled + configuration options checking for item attributes (This is a severely outdated version, and chances are it takes even less of tick now-versions)
It used 0.17% of tick, around 0.002% ~ 0.003% per player, so in short, incredibly lightweight
Code (Java):
importme.korbsti.soaromaac.api;
//Register the events as you would for a normal event //enableAPI in config has to be set to true to use the API //p.setDisabler(x) is for disabling the AC for a player x amount of ticks
@EventHandler
publicvoid onFlag
(SoaromaFlagEvent event
){ Player p
= event.
getFlaggedPlayer(); }
// This event is only fires when a player gets froze/kicked/muted/banned by an admin @EventHandler
publicvoid onPunish
(SoaromaAdminPunish event
){ String punishType
= event.
returnType(); }
// Wait a second how do I use the p.setDisabler outside of the soaroma flag event? // Well heres how // Add SoaromaSAC to your BUILD PATH // No there is no maven, so you have to add it to your build path // Oh and don't forget to add 'SoaromaSAC' to your softdepend or depend
@EventHandler
publicvoid soemRandomEventThing
(SomeRandomEvent e
){ api.
setDisabler(e.
getPlayer(),
100); // now for 100 ticks the player wont be checked for cheats at all }
@EventHandler
publicvoid soaromaAutoKick
(SoaromaAutoKick e
){
}
}
Turn 'cancelEventIfHacking' in config to false
Yes
Either make the check to be more insensitive in config or report to me in the discord server
Make sure you are using a 1.17 or 1.18 server and put the jar file inside the /plugins folder, restart the server and now the anti-cheat is enabled, there are no dependencies
Yep, but make sure to keep forward-player-ping set to true in geysers configuration
Make sure the server is 1.17 and the AC is enabled, default kick occurs at 50 violations. Also make sure you don't have the permission sac.bypass and you're in survival
Turn 'spacedViolationMessages' to true in configuration
Make sure it isn't a false, if it is not a false, report to the discord server
Turn checkServerTPS and invertTPS to true
Turn checkServerTPS to true
Set the OPS permission of sac.bypass to false, it is recommended you use LuckPerms
Go into config and enable it
I have no idea, thats up to you
Nein
Yes
In short: no
Increase these numbers in config by 1 or 2
inAirJumpUntilHackingA: 4.0
inAirUpwardUntilHackingB: 11.0
As not many people know how to configure the checks and first impressions are important so, I disabled the checks that were more or less iffy
If you found a bypass, report it to the discord server and cause me many hours of pain to patch the bypass
You need to have the permission sac.notify, with a permissions plugin to handle permissions
flight (E), noSlowDown (C) and nuker (A) will never false due to the circumstances these are made to detect
Read startup messages
You are met with startup messages from the plugin, follow them
Code (YAML):
You will be prompted with a message in-game when using this anti-cheat, it will instruct you on how to get it
Pre-configured configs are in the plugin itself using the command /saconfigchoose, as you will be prompted with a message in-game. You can adjust any config to your own liking,
this AC is heavily based on per-server-customization
You may upload this resource on other websites without my permission if you desire, you do not need to credit me
Disclaimers
This plugin may not be compatible with other plugins that alter player movement or actions too much, by default this anti-cheat is suited towards vanilla player movement only. For example, if you want this to be compatible with mcMMO, variable changes would have to occur - for more information about that there is a FAQ channel in discord. Players are given grace for a certain amount of time upon teleporting and logging in for a few seconds to prevent false flags from occurring. I won't say this anti-cheat is perfect because it is not, bypasses, false flags and bugs may occur. If any of those occur, it would be appreciated if you told me so I can patch/fix them, but the majority of this AC is on the more stable side now.
Note if you use any plugins that break trees entirely ex. Timber or mcMMO, the variable reachBlockBreakNum in configuration has to be increased to 200.0 to stop falses occurring.
The "Recommended" & "Movement" config will NOT work on a local server, do not use the "Recommended" & "Movement" config to test the AC on a local server it is only meant for servers that are NOT locally hosted, use any other config if it is a local hosted server