
Spartan AntiCheat for Bedrock 4.0.4.0
Spartan AntiCheat for Bedrock
Phase 506
May 4, 2023
Phase 506 - Better KillAura, Criticals, Anti Knockback & Blink Hack Detections
- Enhanced the KillAura check with new and existing improved detections.
- Rewrote the Criticals damage detection to support players but also balanced its learning process.
- Enhanced the IrregularMovements hop & jump detections with more accurate calculations.
- Enhanced the MorePackets blink detection with better detection speeds.
- Provided extra stability to the learning process of the Velocity check.
- Updates will now contain what truly matters instead of roughly all changes made.
Phase 505.7
May 4, 2023
Phase 505
Apr 24, 2023
Phase 505 - Rewritten False Positive & Legitimate/Hacker/Suspected Player Identifications
- Previously Spartan would take averages of all player violations, divide them by the days of data, and check who was ahead the average to consider them a hacker. This has several critical problems however, such as:
1. Averages do not account for the plugin version, which has an impact on the stability over a timespan.
2. Averages do not account for individual detections, which react differently per gameplay, etc.
3. Averages do not account for individual days, which can have vastly different data depending on the circumstances.
You get the point, Spartan is moving away from averages which create a black/white picture and will implement more advanced mathematics in order to get more variety and more precision at the same time.
- The False Positive identification algorithm has been rewritten to offer more accurate results but also better and faster stability.
- The Performance Optimizer feature has been incorporated into the Player Profile object as the whole profiling system has also been rewritten.
- Removed the Performance Optimizer settings.yml option as it will no longer cause players to bypass and thus won’t be of any benefit to configure.
- Removed a lot of unnecessary objects, enums & classes and replaced them with more organized code.
- The Information Analysis object has been incorporated into the Player Violation object to allow it to be warmed up and as a result take less resources from the CPU.
- The Cloud customer-support command feature will no longer send the messages.yml configuration as there’s no use for it.
- The Research Engine sub-cache will now be refreshed when its responsible thread is not currently being used to prevent overloading it and calculating unnecessarily.
- Adjusted the False Positive Detection to be slightly more lenient, especially with non-hacker players by using universal variables.
- Adjusted the False Positive Detection to take the memory it needs to avoid unnecessary iterations.
- Restored the mention of false positives in the detection notifications as originally supposed.
- Slightly improved the punishment algorithm by checking if a player had significant evidence in the past.
- Restored some of the description functionalities in the Manage Checks inventory menu.
- Removed the identification of problematic detections as it wasn’t being used to its full potential.
- Balanced the KillAura raytrace detection in regard to how close an entity should be to block the path of the hit.
- Slightly improved the Linear Regression math algorithm with better use of lists.
- Several of Spartan’s threads have been adjusted to run on the main thread if the thread is not free to avoid delaying important interactions.
- Rewritten all identifier handlers as objects and incorporated them into the Spartan Player object.
- Slightly rebalanced the Fishing Hook handler with replacement of barely efficient used methods.
- Slightly rebalanced the Game Mode handler with more conditions to consider before reaching an outcome.
- The FastClicks frequency and pattern detections will now be influenced by the clicks-per-second limit slightly if raised above the default.
- Slightly organized the Player info inventory menu to have a consistency with its item description.
- The config.yml/checks.yml configuration will now load significantly previously relative to when it’s used to help alleviate potential exceptions.
- Decreased the amount of threads the plugin uses by incorporating the ground & move utilities in the Spartan Player object.
- Increased the accuracy of the feedback of the punishment algorithm in regards to punishment cancellation via code.
- Added a new settings.yml option for toggling the Developer API:Important.enable_developer_api
- The Player Info inventory menu will now introduce a back item instead of close for those who use it in conjunction with the Spartan inventory menu.
- The anti-cheat will now use more the calculated Cancel Violation instead of the default one for more accurate results.
- Removed several parts of the Player Profile objects that were not contributing to significant parts of the code.
- The Cloud sub-feature Punished Players will now trust data from bedrock players.
- A lot of systematic limitations related to bedrock players have been removed due to the checks having improved.
- Rewritten important parts of the Maximum Checked Players and Detection Tick features to optimize performance more.
- Replaced several on-ground methods with the on-ground counter method of the Spartan Player object.
- Significantly improved the way the reporting system forms check relations when a player is reported.
- Noticeably improved the Config utilities by spreading the cache to each message for faster replacement.
- Removed complex replacing of syntax as it is no longer in use by any possible user.
Phase 504.3
Apr 17, 2023
Phase 504.3 - HotFix Update
Corrected an issue in the Player Velocity object that prevented some data collection, updating is more than recommended to help enrich the functionality of the Velocity check.
Phase 504
Apr 16, 2023
Phase 504 - Check Upgrades & The Big Return of Asynchronous Detections
- When a check runs, multiple detections execute per player, which can sometimes have consequences in performance. From this update and on, Spartan will allocate a single reusable thread to run detections asynchronously. This thread will run only when it’s not busy with another detection and when the circumstances allow for it, otherwise the detection will revert to run synchronously. For example, when we run a detection asynchronously and the check has preventions enabled, we risk moving the prevention to the next server tick, which will allow the hack module to work for a bit and cause potential damages to one’s server, so Spartan will first make sure there’s enough time in the current server tick to ensure the prevention also runs before the server updates itself. Additionally, Spartan will respect the time left in the server tick by running asynchronously only what’s necessary such as mathematical calculations instead of trivial code such as checking the configuration or cache to see if a detection is enabled or buffered enough, of which code has already run previously as this algorithm has been placed methodically in the code for the possible maximum potential. Lastly, this algorithm will only target heavy and frequent detections such as the ones implemented in movement checks.
- Optimized the Spartan Player object in regards to its calculations related to the world border.
- Optimized the ImpossibleInventory & NoSlowdown checks and rebalanced their detections and performance.
- Improved the Spartan inventory menu with a more accurate statistics description.
- Detections will now be toggleable in certain versions of Spartan.
- The Velocity check will now support checking damage from entities but also more situations with players.
- Did some maintenance in the Player utilities as it caused some checks to misperform.
- The NoFall ratio detection will now start checking from the 3 fallen blocks instead of 4 but still be more lenient.
- Slightly improved the speed of the punishment algorithm by using regex instead of ordinary strings.
- Compatibilities will now refresh in memory when any plugin is loaded or unloaded, thus not having a problem when a plugin loads later.
- The IrregularMovements step detection will now apply more lenient downwards limits when a player was not recently falling.
- Completely rewritten the Speed sprint detection with the same but improved design.
- The KillAura raytrace detection will now start raytracing from the entity’s width and after.
- The punishment algorithm will no longer blame the first-party plugins when canceled as that’s not a plausible scenario.
- The punishment algorithm will now offer possible dependent plugins when canceled as a way to ease search.
- The Spartan’s inventory menu AntiCheat Updates item will no longer be considered clickable as it isn’t.
- The KillAura sensitivity abstract detection is far too sensitive and will only occur with suspected players and identified hackers.
- The KillAura sensitivity minimum detection has had its buffer separated but also increased in hopes of providing better stability.
- The ban system will now insert the actual name of the punisher and not its object name, causing varchar issues to the database as a result.
- The ban system will now distribute its keys using a list so less inconsistencies are created over time when modifying the code.
- Restored the functionality of the unban command as it seemed to not perform as expected for some users.
- The XRay detection has been rebalanced with faster and better calculations, and earlier signs in the inventory menus in the form of items.
- The KillAura pattern detection will now require more observations to make correlation assumptions, and the required correlation has increased for all its sub-detections.
- The KillAura pattern detection will now require the entity to be a player or monster and to not be blocked by a blocked behind.
- The Cloud feature Customer Support will now send less logs when used as a way to help prevent time waste when studying such information.
- The IrregularMovements climb detection will now apply different limits when climbing scaffolding blocks.
- Decreased the amount of threads the plugin uses by bringing processes to the main thread in an optimized manner.
- Suspicion Notifications will now run regardless of the Spartan inventory menu’s refresh rate.
- The Spartan inventory menu will now refresh only when it needs to instead periodically.
- The Explosion handler will now combine multiple events to calculate the players surrounding the location, which will dramatically decrease the amount of iterations and calculations needed.
- The KillAura and HitReach checks will no longer check wide entities as they seem to be problematic.
- Implemented a Ground utilities patch for miscalculations in the player’s remaining height position.
- Warnings, reports & kicks will no longer have any chance of being identified as violations.
- Did some maintenance to the Floor handler to make it more universal and accurate.
- Corrected a rare command-tab null pointer console error.
- The Item Attributes compatibility will now be enabled by default.
- The verification connection will now be processed asynchronously.
- The NoSlowdown bow shots detection will now be more lenient.
Phase 503
Apr 11, 2023
Phase 503 - Rewritten KillAura Check Completion (Phase Five)
- Implemented a new KillAura sensitivity sub-detection that checks how abstract the player’s sensitivity is.
- The KillAura existing sensitivity detection will now be more lenient by decreasing violation points when not found to be hacking.
- Implemented several mathematical improvements to the Player Opponent object that automatically improve the KillAura distance detection.
- The KillAura rotations detection will no longer require stored pitch information to run and will be more lenient with wider entities.
- The KillAura direction and aim detections will now require 5x times less directional distance to function.
- Implemented a new KillAura detection named response that counts the ticks a player had at a close angle to an entity before hitting.
- Implemented a new KillAura detection named strafe that compares the directional distance of a player.
- Implemented a new KillAura detection named pattern (originally perspective) that uses linear algebra to compare one’s movement with predictions of that.
- The KillAura movement & rotations detections will now be more lenient to protect against instabilities.
- Further organized the code the KillAura check calls to run its movement-based detections.
- Generally polished remaining KillAura detections from the description to the mathematics as we get closer to the completed rewrite of this check.
- Implemented a new IrregularMovements liquids sub-detection named consistency.
- Adjusted the way the IrregularMovements step detection calculates its limit to have more accuracy.
- Restored the functionality of some of the raw commands.
- The Research Engine will now recalculate cache in different scenarios and in a more efficient order.
- False Positives will now be canceled by correct violations made by suspected & hackers to provide a balance.
- The FastPlace check will no longer check air blocks as it doesn’t need to and can cause incompatibilities.
- The Cancel Violation feature will now apply more appropriate limits based on a check’s problematic detections.
- The Awareness Notifications feature will now optionally notify when there is any problem with the punishment algorithm.
- Adjusted the code of the BlockReach check to run faster while forcing it to adopt greater limits when flying.
- Greatly improved the movement identification method of the Spartan Player object to include damage.
- Made some adjustments to the Spartan inventory menu so it’s more proper.
- Test servers will now calculate evidence based on live but not historical information.
- The Testing identification handler will now return more information to easier point out potential errors.
- The IrregularMovements will now be more lenient when the player was recently legitimately flying.
- The IrregularMovements check will now be more lenient with the hop detection.
- Improved the block material list of the Block utilities.
- Rewritten parts of the GhostHand check to work faster and more accurately.
- Rewritten and simplified the Block Break handler with new accurate utilities that account a broader situation of the player.
- The plugin will now calculate radians to degrees with higher precision.
- The Information Analysis algorithm will now be faster at identifying the positions of numbers & decimals.
- The Ground utilities will now consider all the bounding boxes of the snow block.
Phase 502
Apr 2, 2023
Phase 502 - Rewritten KillAura Check (Phase Four) & Crazy Optimisations
- Rewritten the KillAura analysis detection with a new algebra-based design.
- Rewritten the KillAura move-accuracy detection as Movement with a new logic-based design.
- Improved the Rotations, Sensitivity & Direction KillAura detections using combat buffering.
- Implemented more situations where the combat-based buffer of a player keeps running.
- Extended the functionality of the KillAura time detection to check consistency.
- The anti-cheat will now store its data in memory per check which will dramatically decrease unnecessary iterations but also CPU usage by requiring less hashing of keys.
- The Cache system will no longer clear data against a list and know automatically where important information is stored.
- The Cache system will now be able to clear data in the main thread without impacting performance and forcing single-threaded checks to be thread-friendly unnecessarily.
- The plugin will now use 2 less threads and rapidly move a lot of data in the main thread and save performance wasted to unnecessary concurrency checks on the main thread.
- The Ground utilities will now cache the block heights to decrease unnecessary logical comparisons.
- The Ground utilities now offers more diverse and progressive location calculation if a player rides an entity.
- The EntityMove check should now perform better when calculating the properties of a vehicle’s location.
- Added support for Folia, although keep in mind this is experimental and can end up being problematic. (Take backups)
- The Information Analysis object will now take data directly from the memory and not the storage of the server.
- Improved the stability of the IrregularMovements hop detection in regards to its jumping checks.
- The Speed check will now once again slightly increase its limit if found to be unstable.
- Further completed the KillAura direction detection with a buffered sub-detection.
- Updated the EcoEnchants compatibility class after being notified by its developer.
- Implemented a basic auto-totem detection via the ImpossibleInventory check.
- Adjusted the Spartan inventory menu to contain more and grammatically correct information.
- Improved the Combat Processing handler by calculating the max of the recently cached variables.
- Removed the Developer API method “warnPlayer” as it wasn’t used or consistent with other offerings of the API.
- Brought the {punisher} placeholder/syntax to the Kick & Warn commands to be consistent with the rest.
- Implemented a new method in Combat utilities to near precisely calculate the ticks per hit for more appropriate buffering.
- The Click Data object will now calculate cps and other click information on multiple circumstances for more accuracy and consistency.
- Movement checks will now create less strings & numbers and check less variables as a way to optimize performance.
- The customer-support command can now be run without providing a description and will send more organized information compared to previously.
- Improved the Research Engine handler’s method that’s responsible for identifying detection information for memory storage.
- Moved the calculation of directional locations entirely on the Spartan Location object.
Phase 501
Mar 27, 2023
Phase 501 - Rewritten KillAura Check (Phase Three)
- Rewritten the KillAura “modulo”, “yaw”, “pitch” & “stability” detections as part of a new simpler and more efficient detection named “sensitivity”.
- The proxy-command has been optimized by having fewer iterations of a loop.
- The spectate feature will now remove the player on its own instead of relying on third-party handlers aggressively.
- Part of the FastPlace check will now function even when block placing is disabled.
- Enabling individual-only notifications will disable suspicion notifications as they are unnecessary.
- Improved the limits of several bedrock detections so they run more in par with java detections.
- Improved the stability of the Killaura rotations and direction detections.
- Set a limit to the max supported entities for the KillAura raytrace detection.
- The Player Info inventory menu will now show information regardless of the player’s evidence state.
- Improved the cache of the Spartan Location object to be more universal.
Phase 500
Mar 22, 2023
Phase 500 - Rewritten KillAura Check (Phase Two) & New FastBreak detections
- Completely rewritten the KillAura Aimbot detection with the new utilities and a pattern-based code design.
- Completely rewritten the KillAura rotations detection with new utilities and a historical-based code design.
- Dramatically improved the KillAura distance detection with more lenient but organized requirements.
- Implemented a new FastBreak detection named indirected-surroundings-per-second which studies blocks broken that are not close to the previous block.
- Delayed the Punishment Discord webhook slightly so other Discord webhooks can take its place if configured.
- The inventory menu of Spartan will now have its own entire thread so loading times are low.
- The staff player counters will refresh at least every minute instead of always when opening the menu.
- Increased the precision of the Movement utilities jump movement.
- Improved the decimal precision of the IrregularMovements hop detection.
- The Combat utilities will now use trigonometry instead of ray-tracing to accurately predict the location of a hit.
- The Math utilities have now been renamed to Algebra utilities and have received new methods.
- Created a new type of utilities named Trigonometry to help organize certain important equations.
- The KillAura check will no longer run when a player is gliding with an elytra.
- Implemented a new messages.yml option named “notifications_modified” for when changing the notification frequency.
- The Block utilities will now use the block breaking time calculator to understand whether a block is sensitive in newer versions.
- The difference between yaw and pitch will now be calculated entirely using trigonometry.
- Stopped using weak hashmaps for detections as they didn’t save nearly enough memory but caused minor inconsistencies.
- Checks will now clear their cache more properly by updating existing cache instead of removing it all together.
- Implemented a new “untested” command meant to be used to execute BungeeCord commands. (/spartan proxy-command <command>)
Phase 499.1
Mar 14, 2023
Phase 499 - HotFix #1
The customer-support command will now included more needed information for the resolution of a user-reported problem.
Phase 499
Mar 13, 2023
Phase 499
Mar 13, 2023
Phase 499 - Weekly Plugin Maintenance
- Improved the documentation of the inventory menus.
- Introduced new methods to handle different connections in the Cloud feature.
- Implemented a new punishment webhook which lists the commands executed.
- The Spartan inventory menu’s max pages were limited to 999 instead of practically unlimited.
- The messages.yml configuration now has the configuration syntax {prefix} for mass plugin name replacement.
- Files will no longer be synchronized when just created to avoid manipulating important options to their defaults.
- The way responsible for calculating the min height of the world has been made a mass used method.
- The IrregularMovements will now treat bedrock players more properly in terms of accuracy.
- The Cloud feature customer-support command will now be more precise with the information it sends.
Phase 498
Mar 5, 2023
Phase 498 - Rewritten FastClicks Check
- Completely rewritten the FastClicks check as the previous one was great but did not meat certain expectations.
- Completely rewritten the Cps Counter handler as an object and renamed it to Click Data.
- The identification of jump movement has been adjusted for bedrock players.
- The Explosion protection will now properly calculate the time it needs to function.
- Reworked the Trident handler to be more universal and cross compatible.
- Certain parts of the FastPlace & MorePackets will disable when the server has competitive CPS.
- The Research Engine will now be able to cache for much longer so more data can be accounted for.
- The Suspicion-based algorithms such as punishments will now work even when the Research Engine is caching.
- Renamed the description of the Compatibilities item to not be so confusing.
- The KillAura time detection will no longer check in specific hit time delays.
- The KillAura raytrace detection will no longer check bedrock players due to their abstract line of sight.
- The HitReach check will no longer run its longer detection on bedrock players.
- The Customer Support command will now include configuration values when executed.
- Violation category will now appear as “unlikely” when a false positive has taken place.
- The configuration system will now accept text as logic, integers & decimals if typed correctly.
- Completely rewritten the way Spartan calculates CPS for more accuracy and new detections.
- Increased the near max falling motion of the IrregularMovements step detection as a way to improve stability.
- Added more information to the KillAura raytrace detection for more knowledge for the development.
- Optimized the punishment algorithm by forcing it to recalculate less information and in more needed circumstances.
- Adjusted the positioning of the Information Analysis object so the detection of a check is found successfully.
- The Research Engine will now longer attempt to calculate evidence for players who have been offline for long.
- Improved the accuracy of the IrregularMovements ground-up detection to match the possible expectations of some.
- Greatly optimized the way Spartan handles its violations in its cache for faster performance and less memory usage.
Phase 2
Mar 4, 2023