
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
Grim Anticheat (Fabric) 2.3.74-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)