
Grim Anticheat
Fully async, multithreaded, predictive, open source, 3.01 reach, 1.005 timer, 0.01% speed, 99.99% antikb, "bypassable" 1.8-1.21 anticheat
Changes in this Build (since previous push)
Miscellaneous
- Add stdnum render tag - by Axionize WS2 (
67aa3a9)
- Add stdnum render tag - by Axionize WS2 (
Changes in this Build (since previous push)
Miscellaneous
- Add stdnum render tag - by Axionize WS2 (
67aa3a9)
- Add stdnum render tag - by Axionize WS2 (
Changes in this Build (since previous push)
Miscellaneous
- One template per check replaces schemas, formatters, and registration - by Axionize WS2 (
e80e3c4) - Unify flag API with V3 — flag() alerts - by Axionize WS2 (
b03f110) - Route check catalog through v2 datastore - by Axionize WS2 (
edb6c04) - Wait for verbose manifest heartbeat - by Axionize WS2 (
227cf23) - Register verbose templates explicitly - by Axionize WS2 (
f3af8e2) - Auto-register verbose templates - by Axionize WS2 (
19d74d5) - Merge remote-tracking branch 'review/codex/verbose-registration-barrier-consumer' into merge-grim-public
Conflicts:
common/src/main/java/ac/grim/grimac/checks/impl/badpackets/BadPacketsD.java
common/src/main/java/ac/grim/grimac/checks/impl/badpackets/BadPacketsE.java
common/src/main/java/ac/grim/grimac/checks/impl/badpackets/BadPacketsO.java
common/src/main/java/ac/grim/grimac/checks/impl/badpackets/BadPacketsQ.java
common/src/main/java/ac/grim/grimac/checks/impl/badpackets/BadPacketsR.java
common/src/main/java/ac/grim/grimac/checks/impl/badpackets/BadPacketsT.java
common/src/main/java/ac/grim/grimac/checks/impl/baritone/Baritone.java
common/src/main/java/ac/grim/grimac/checks/impl/breaking/MultiBreak.java
common/src/main/java/ac/grim/grimac/checks/impl/breaking/PositionBreakA.java
common/src/main/java/ac/grim/grimac/checks/impl/breaking/PositionBreakB.java
common/src/main/java/ac/grim/grimac/checks/impl/breaking/RotationBreak.java
common/src/main/java/ac/grim/grimac/checks/impl/breaking/WrongBreak.java
common/src/main/java/ac/grim/grimac/checks/impl/combat/MultiInteractB.java
common/src/main/java/ac/grim/grimac/checks/impl/combat/Reach.java
common/src/main/java/ac/grim/grimac/checks/impl/crash/CrashE.java
common/src/main/java/ac/grim/grimac/checks/impl/crash/CrashF.java
common/src/main/java/ac/grim/grimac/checks/impl/crash/CrashH.java
common/src/main/java/ac/grim/grimac/checks/impl/crash/CrashI.java
common/src/main/java/ac/grim/grimac/checks/impl/misc/Post.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderC.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderD.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderE.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderF.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderG.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderI.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderK.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderL.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderO.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderP.java
common/src/main/java/ac/grim/grimac/checks/impl/prediction/GroundSpoof.java
common/src/main/java/ac/grim/grimac/checks/impl/prediction/OffsetHandler.java
common/src/main/java/ac/grim/grimac/checks/impl/scaffolding/DuplicateRotPlace.java
common/src/main/java/ac/grim/grimac/checks/impl/timer/NegativeTimer.java
common/src/main/java/ac/grim/grimac/checks/impl/timer/TickTimer.java
common/src/main/java/ac/grim/grimac/checks/impl/velocity/ExplosionHandler.java
common/src/main/java/ac/grim/grimac/checks/impl/velocity/KnockbackHandler.java - by Axionize WS2 (
c4b295f)- One template per check replaces schemas, formatters, and registration - by Axionize WS2 (
Changes in this Build (since previous push)
Miscellaneous
- One template per check replaces schemas, formatters, and registration - by Axionize WS2 (
e80e3c4) - Unify flag API with V3 — flag() alerts - by Axionize WS2 (
b03f110) - Route check catalog through v2 datastore - by Axionize WS2 (
edb6c04) - Wait for verbose manifest heartbeat - by Axionize WS2 (
227cf23) - Register verbose templates explicitly - by Axionize WS2 (
f3af8e2) - Auto-register verbose templates - by Axionize WS2 (
19d74d5) - Merge remote-tracking branch 'review/codex/verbose-registration-barrier-consumer' into merge-grim-public
Conflicts:
common/src/main/java/ac/grim/grimac/checks/impl/badpackets/BadPacketsD.java
common/src/main/java/ac/grim/grimac/checks/impl/badpackets/BadPacketsE.java
common/src/main/java/ac/grim/grimac/checks/impl/badpackets/BadPacketsO.java
common/src/main/java/ac/grim/grimac/checks/impl/badpackets/BadPacketsQ.java
common/src/main/java/ac/grim/grimac/checks/impl/badpackets/BadPacketsR.java
common/src/main/java/ac/grim/grimac/checks/impl/badpackets/BadPacketsT.java
common/src/main/java/ac/grim/grimac/checks/impl/baritone/Baritone.java
common/src/main/java/ac/grim/grimac/checks/impl/breaking/MultiBreak.java
common/src/main/java/ac/grim/grimac/checks/impl/breaking/PositionBreakA.java
common/src/main/java/ac/grim/grimac/checks/impl/breaking/PositionBreakB.java
common/src/main/java/ac/grim/grimac/checks/impl/breaking/RotationBreak.java
common/src/main/java/ac/grim/grimac/checks/impl/breaking/WrongBreak.java
common/src/main/java/ac/grim/grimac/checks/impl/combat/MultiInteractB.java
common/src/main/java/ac/grim/grimac/checks/impl/combat/Reach.java
common/src/main/java/ac/grim/grimac/checks/impl/crash/CrashE.java
common/src/main/java/ac/grim/grimac/checks/impl/crash/CrashF.java
common/src/main/java/ac/grim/grimac/checks/impl/crash/CrashH.java
common/src/main/java/ac/grim/grimac/checks/impl/crash/CrashI.java
common/src/main/java/ac/grim/grimac/checks/impl/misc/Post.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderC.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderD.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderE.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderF.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderG.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderI.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderK.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderL.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderO.java
common/src/main/java/ac/grim/grimac/checks/impl/packetorder/PacketOrderP.java
common/src/main/java/ac/grim/grimac/checks/impl/prediction/GroundSpoof.java
common/src/main/java/ac/grim/grimac/checks/impl/prediction/OffsetHandler.java
common/src/main/java/ac/grim/grimac/checks/impl/scaffolding/DuplicateRotPlace.java
common/src/main/java/ac/grim/grimac/checks/impl/timer/NegativeTimer.java
common/src/main/java/ac/grim/grimac/checks/impl/timer/TickTimer.java
common/src/main/java/ac/grim/grimac/checks/impl/velocity/ExplosionHandler.java
common/src/main/java/ac/grim/grimac/checks/impl/velocity/KnockbackHandler.java - by Axionize WS2 (
c4b295f)- One template per check replaces schemas, formatters, and registration - by Axionize WS2 (
Changes in this Build (since previous push)
🚀 Features
- Add hover tooltips to check alerts & descriptions to every check (#2712) - by Mater (
1f1b03c)
- Add hover tooltips to check alerts & descriptions to every check (#2712) - by Mater (
Changes in this Build (since previous push)
🚀 Features
- Add hover tooltips to check alerts & descriptions to every check (#2712) - by Mater (
1f1b03c)
- Add hover tooltips to check alerts & descriptions to every check (#2712) - by Mater (
Changes in this Build (since previous push)
🐛 Fixes
- Fix precision loss while gliding
E-8 -> E-15 - by cyramek (
c83870b)Changes in this Build (since previous push)
🐛 Fixes
- Fix precision loss while gliding
E-8 -> E-15 - by cyramek (
c83870b)Changes in this Build (since previous push)
Miscellaneous
- Adopt binary verbose for BadPacketsR
Wire the public verbose registry/manifest foundation and add a binary flag path that writes ViolationEvent.verboseData. Convert BadPacketsR because its verbose payload is three simple numeric fields: elapsed player-clock ms, last transaction delta ms, and position packet count. - by Axionize WS2 (
e19cb38)- Fix verbose binary metadata nits - by Axionize WS2 (
417a212) - Convert flight checks to binary verbose - by Axionize WS2 (
deed028) - Make verboseVersion unsigned on consumer side - by Axionize WS2 (
e684ec7) - Convert reach verbose to binary f32
Store Simulation offset as f32 without flagId. Store Reach min distance through the binary verbose path while preserving the existing alert text; Hitboxes remains on text verbose for now. - by Axionize WS2 (
f63a216)- Update binary verbose precision and formatters
Use f64 for Reach and Simulation numeric payloads, add Reach entity type IDs encoded for the player's client version, and register old-string custom formatters for Reach, Simulation, and GroundSpoof.
BadPacketsR had no pre-conversion verbose string in the converted check, so it remains on the generic name=value reader. - by Axionize WS2 (
01d19bd)- Convert badpackets verbose to binary
Converted: BadPacketsA, BadPacketsD, BadPacketsE, BadPacketsF, BadPacketsG, BadPacketsH, BadPacketsL, BadPacketsO, BadPacketsP, BadPacketsQ, BadPacketsT, BadPacketsU, BadPacketsV, BadPacketsY.
Already binary, moved into package registration: BadPacketsR.
Skipped empty/no verbose: BadPacketsB, BadPacketsC, BadPacketsI, BadPacketsJ, BadPacketsK, BadPacketsM, BadPacketsN, BadPacketsS, BadPacketsW, BadPacketsX, BadPacketsZ.
badpackets2: package absent in this checkout.
Verification: ./gradlew :Grim-public:common:compileJava :Grim-public:bukkit:compileJava --console=plain - by Axionize WS2 (
e422749)- Convert breaking and crash verbose to binary
Converted breaking: AirLiquidBreak, FarBreak, FastBreak, InvalidBreak, MultiBreak, PositionBreakA, PositionBreakB, RotationBreak, WrongBreak.
Skipped breaking: NoSwingBreak (no/empty verbose).
Converted crash: CrashC, CrashD, CrashE, CrashF, CrashH, CrashI.
Skipped crash: CrashA, CrashB, CrashG (no/empty verbose). - by Axionize WS2 (
751011f)- Preserve exact flag/alert/setback semantics for binary verbose checks - by Axionize WS2 (
7ba8470) - Convert wave B verbose checks to binary
Converted:\n- scaffolding: DuplicateRotPlace, FabricatedPlace, InvalidPlaceB, MultiPlace, RotationPlace\n- multiactions: MultiActionsC, MultiActionsD, MultiActionsF, MultiActionsG\n- chat: ChatB, ChatC\n- combat: MultiInteractA, MultiInteractB\n\nSkipped:\n- scaffolding: AirLiquidPlace, FarPlace, InvalidPlaceA, PositionPlace (empty verbose)\n- multiactions: MultiActionsA, MultiActionsB, MultiActionsE (empty verbose)\n- chat: ChatA, ChatD (empty or blank verbose)\n- combat: Hitboxes, SelfInteract (empty verbose), Reach (already converted/registered) - by Axionize WS2 (
01ef829)- Convert wave C verbose to binary
Converted:
- vehicle: VehicleA, VehicleD, VehicleE, VehicleF
- velocity: KnockbackHandler/AntiKB, ExplosionHandler/AntiExplosion
- timer: NegativeTimer, TickTimer
- exploit: ExploitA, ExploitB
- sprint: SprintA
- misc: Post
- elytra: ElytraB
Skipped unchanged:
- vehicle: VehicleB, VehicleC
- velocity: VectorPrecisionConverter
- timer: Timer, TimerLimit, VehicleTimer
- sprint: SprintB, SprintC, SprintD, SprintE, SprintF, SprintG
- misc: ClientBrand, GhostBlockMitigation, TransactionOrder
- elytra: ElytraA, ElytraC, ElytraD, ElytraE, ElytraF, ElytraG, ElytraH, ElytraI - by Axionize WS2 (
5f4b923) - Convert missed verbose packages to binary
Converted: baritone/Baritone; packetorder/PacketOrderB, PacketOrderC, PacketOrderD, PacketOrderE, PacketOrderF, PacketOrderG, PacketOrderI, PacketOrderK, PacketOrderL, PacketOrderO, PacketOrderP.
Skipped: packetorder/PacketOrderA, PacketOrderH, PacketOrderJ, PacketOrderM, PacketOrderN, and PacketOrderProcessor because they only use empty/no verbose.
Build: ./gradlew :Grim-public:common:compileJava :Grim-public:bukkit:compileJava -PmavenLocalOverride=true --console=plain - by Axionize WS2 (
e7f2ed2)- Render binary verbose lazily on alerts - by Axionize WS2 (
05c6eda) - Use compact verbose encodings for object values - by Axionize (
2a5685a) - Restore BadPacketsR verbose formatter parity - by Axionize WS2 (
5eb67c3) - Merge verbose binary consumer - by Axionize WS2 (
182c82e)
Changes in this Build (since previous push)
Miscellaneous
- Adopt binary verbose for BadPacketsR
Wire the public verbose registry/manifest foundation and add a binary flag path that writes ViolationEvent.verboseData. Convert BadPacketsR because its verbose payload is three simple numeric fields: elapsed player-clock ms, last transaction delta ms, and position packet count. - by Axionize WS2 (
e19cb38)- Fix verbose binary metadata nits - by Axionize WS2 (
417a212) - Convert flight checks to binary verbose - by Axionize WS2 (
deed028) - Make verboseVersion unsigned on consumer side - by Axionize WS2 (
e684ec7) - Convert reach verbose to binary f32
Store Simulation offset as f32 without flagId. Store Reach min distance through the binary verbose path while preserving the existing alert text; Hitboxes remains on text verbose for now. - by Axionize WS2 (
f63a216)- Update binary verbose precision and formatters
Use f64 for Reach and Simulation numeric payloads, add Reach entity type IDs encoded for the player's client version, and register old-string custom formatters for Reach, Simulation, and GroundSpoof.
BadPacketsR had no pre-conversion verbose string in the converted check, so it remains on the generic name=value reader. - by Axionize WS2 (
01d19bd)- Convert badpackets verbose to binary
Converted: BadPacketsA, BadPacketsD, BadPacketsE, BadPacketsF, BadPacketsG, BadPacketsH, BadPacketsL, BadPacketsO, BadPacketsP, BadPacketsQ, BadPacketsT, BadPacketsU, BadPacketsV, BadPacketsY.
Already binary, moved into package registration: BadPacketsR.
Skipped empty/no verbose: BadPacketsB, BadPacketsC, BadPacketsI, BadPacketsJ, BadPacketsK, BadPacketsM, BadPacketsN, BadPacketsS, BadPacketsW, BadPacketsX, BadPacketsZ.
badpackets2: package absent in this checkout.
Verification: ./gradlew :Grim-public:common:compileJava :Grim-public:bukkit:compileJava --console=plain - by Axionize WS2 (
e422749)- Convert breaking and crash verbose to binary
Converted breaking: AirLiquidBreak, FarBreak, FastBreak, InvalidBreak, MultiBreak, PositionBreakA, PositionBreakB, RotationBreak, WrongBreak.
Skipped breaking: NoSwingBreak (no/empty verbose).
Converted crash: CrashC, CrashD, CrashE, CrashF, CrashH, CrashI.
Skipped crash: CrashA, CrashB, CrashG (no/empty verbose). - by Axionize WS2 (
751011f)- Preserve exact flag/alert/setback semantics for binary verbose checks - by Axionize WS2 (
7ba8470) - Convert wave B verbose checks to binary
Converted:\n- scaffolding: DuplicateRotPlace, FabricatedPlace, InvalidPlaceB, MultiPlace, RotationPlace\n- multiactions: MultiActionsC, MultiActionsD, MultiActionsF, MultiActionsG\n- chat: ChatB, ChatC\n- combat: MultiInteractA, MultiInteractB\n\nSkipped:\n- scaffolding: AirLiquidPlace, FarPlace, InvalidPlaceA, PositionPlace (empty verbose)\n- multiactions: MultiActionsA, MultiActionsB, MultiActionsE (empty verbose)\n- chat: ChatA, ChatD (empty or blank verbose)\n- combat: Hitboxes, SelfInteract (empty verbose), Reach (already converted/registered) - by Axionize WS2 (
01ef829)- Convert wave C verbose to binary
Converted:
- vehicle: VehicleA, VehicleD, VehicleE, VehicleF
- velocity: KnockbackHandler/AntiKB, ExplosionHandler/AntiExplosion
- timer: NegativeTimer, TickTimer
- exploit: ExploitA, ExploitB
- sprint: SprintA
- misc: Post
- elytra: ElytraB
Skipped unchanged:
- vehicle: VehicleB, VehicleC
- velocity: VectorPrecisionConverter
- timer: Timer, TimerLimit, VehicleTimer
- sprint: SprintB, SprintC, SprintD, SprintE, SprintF, SprintG
- misc: ClientBrand, GhostBlockMitigation, TransactionOrder
- elytra: ElytraA, ElytraC, ElytraD, ElytraE, ElytraF, ElytraG, ElytraH, ElytraI - by Axionize WS2 (
5f4b923) - Convert missed verbose packages to binary
Converted: baritone/Baritone; packetorder/PacketOrderB, PacketOrderC, PacketOrderD, PacketOrderE, PacketOrderF, PacketOrderG, PacketOrderI, PacketOrderK, PacketOrderL, PacketOrderO, PacketOrderP.
Skipped: packetorder/PacketOrderA, PacketOrderH, PacketOrderJ, PacketOrderM, PacketOrderN, and PacketOrderProcessor because they only use empty/no verbose.
Build: ./gradlew :Grim-public:common:compileJava :Grim-public:bukkit:compileJava -PmavenLocalOverride=true --console=plain - by Axionize WS2 (
e7f2ed2)- Render binary verbose lazily on alerts - by Axionize WS2 (
05c6eda) - Use compact verbose encodings for object values - by Axionize (
2a5685a) - Restore BadPacketsR verbose formatter parity - by Axionize WS2 (
5eb67c3) - Merge verbose binary consumer - by Axionize WS2 (
182c82e)
Changes in this Build (since previous push)
Miscellaneous
- Use GrimAPI 1.6.0.3 - by Axionize (
e7fedff)
- Use GrimAPI 1.6.0.3 - by Axionize (
Changes in this Build (since previous push)
Miscellaneous
- Use GrimAPI 1.6.0.3 - by Axionize (
e7fedff)
- Use GrimAPI 1.6.0.3 - by Axionize (
Changes in this Build (since previous push)
🐛 Fixes
- Fix NPE when player is riding entity that he is not in control of
idk how to reproduce it because it shouldn't happen, but I guess transaction splits between entity equipment updates happen - by cyramek (
4f747c3)Changes in this Build (since previous push)
🐛 Fixes
- Fix NPE when player is riding entity that he is not in control of
idk how to reproduce it because it shouldn't happen, but I guess transaction splits between entity equipment updates happen - by cyramek (
4f747c3)Changes in this Build (since previous push)
Miscellaneous
- Fix Fabric 1.21.11 cloud command bridge - by Axionize (
19dde8b)
- Fix Fabric 1.21.11 cloud command bridge - by Axionize (
Changes in this Build (since previous push)
Miscellaneous
- Fix Fabric 1.21.11 cloud command bridge - by Axionize (
19dde8b)
- Fix Fabric 1.21.11 cloud command bridge - by Axionize (
Changes in this Build (since previous push)
Miscellaneous
- Fix Fabric 1.21.11 cloud command bridge - by Axionize (
19dde8b)
- Fix Fabric 1.21.11 cloud command bridge - by Axionize (
Changes in this Build (since previous push)
Miscellaneous
- Use GrimAPI 1.6.0.2 - by Axionize (
6b28271)
- Use GrimAPI 1.6.0.2 - by Axionize (
Changes in this Build (since previous push)
Miscellaneous
- Use GrimAPI 1.6.0.2 - by Axionize (
6b28271)
- Use GrimAPI 1.6.0.2 - by Axionize (
Changes in this Build (since previous push)
Miscellaneous
- Handle missing datastore routes - by Axionize (
3404e9b)
- Handle missing datastore routes - by Axionize (
