This project is a fork of GrimAC implementing substantial performance improvements and superiour reach, block placement, and interact checks. If you would like a bugfix or enhancement and cannot sponsor the work, pull requests are welcome.
GrimAC is an open source Minecraft anticheat designed for 1.21.5 and supports 1.8-1.21.5. It can run on 1.8-1.21.5 and fully supports players connecting through ViaVersion on 1.7-1.21.x no matter the native server version. Geyser players are fully exempt.
Grim's API allows you to integrate Grim into your own plugins. For more information, check out the API's GitHub repository here.
Here are the main cores that make Grim stand out against other anticheats
Unknown
Unknown
Terms for using, modifying and redistributing this product.
27.06.2026 · Modrinth
7885555)only bukkit platform for now - by Cyramek (a9b91e7)
- Bump PE for 26.1.2 support - by Axionize (f36f870)
- Implement fluid count tracker - by cyramek (f9fdfa7)
- Always use main hand for attack packets - by cyramek (61e9e69)
- Don't pass null clientVersion so chunk will use...
Screenshots and images from the original Modrinth page.
The project author has not added a gallery on Modrinth.
Published versions and original Modrinth files.
27.06.2026 · 1 115 downloads
7885555)only bukkit platform for now - by Cyramek (a9b91e7)
- Bump PE for 26.1.2 support - by Axionize (f36f870)
- Implement fluid count tracker - by cyramek (f9fdfa7)
- Always use main hand for attack packets - by cyramek (61e9e69)
- Don't pass null clientVersion so chunk will use server version for mapping's lookup
broken after recent packetevents update that overriden #set method in Chunk_v1_18 - by cyramek (8dc657a)
- Fix some falses regarding camel sprinting (#2462)
Fix camel sprinting falses
Forgot about camel husks
Obey code style
Fix respawns
Obey code style (for real this time)
Fix SprintG false with camels
Move camel sprinting state to VehicleData - by LaserSlime (d55f1b7)
6c3ccb4)3664f4d)794e120)a86dedf)7499d10)66b3334)Fixes issues on 1.8.9 / Older versions thinking that daylight detectors connect to fences / iron bars
Related: https://github.com/GrimAnticheat/Grim/issues/1856 - by KotlinList (d81d03f)
- Bump packetevents to 22c9961 (relocateHandlers respects compress/decompress)
fixes #2552 - by Axionize WS1 (257bffe)
- Fix issues with DynamicConnecting.java with client versions (#2618)
tested with 1.8.9, 1.20.4 and ViaVersion on 1.20.4 Server and 1.8.9 Client
related issue: https://github.com/GrimAnticheat/Grim/issues/2148 - by InetAddress (5c46b0a)
- History rewrite: five backends, session-based, ring-buffer write path + universal config autoupdater (#2622) - by Axionize (578c784)
- Minor Post code cleanup - by ManInMyVan (053b090)
- Don't cancel CLOSE_WINDOW in PacketOrderK - by ManInMyVan (fbabbf2)
- Rename grim.legacy. @CheckData stable_keys to descriptive names - by Axionize WS1 (c233a60)
- Escape backslashes when emitting double-quoted scalars (#2623) - by Axionize WS1 (84bd90d)
- Fix StackOverflow on isChunkLoaded by routing through ChunkSource (#2568) - by Axionize WS2 (c88b494)
- Kick anyone who sends vv:proxy_details - by ManInMyVan* (3021287)
- Revert "kick anyone who sends vv:proxy_details"
This reverts commit 3021287391de4aee964abe5bcf6c452f72f68a7b. - by AoElite (73f63c1)
- Fixed Typo in shulker uncertainty logic (#2630) - by aquip (2508a34)
- Kick anyone who sends vv:proxy_details - by ManInMyVan (e9c918d)
- Add support for URL timeout customization and reimplement via proxy kicking - by AoElite (fd9e0f8)
- Add --name / --match / --grep regex filters to /grim history - by Axionize WS1 (d591f10)
- Bump grim-api pin to 1.3.2.0 - by Axionize WS1 (2c60aae)
- Redstone wall torch should use isLit instead of isPowered - by cyramek (21f0c3d)
- Bump grim-api to 1.3.2.1 - by Axionize WS2 (17d4d2f)
- Check cameraEntity.isSelf() in isTickingReliablyFor - by ManInMyVan (3e5afef)
- Simplify shulker opening/closing - by ManInMyVan (fc899a3)
- Min, not max - by ManInMyVan (83a6d98)
- Happy ghast scale is also clamped - by ManInMyVan (5254190)
- Remove unused import - by ManInMyVan (145f71c)
- Fall back to modrinth for changelog range when push payload missing - by Axionize WS1 (4c866d0)
- Small cleanup - by ManInMyVan (5a40a06)
- Remove unused import - by ManInMyVan (215a1e6)
- Tweak "UrlTimeout" constant for consistency - by AoElite (addabec)
- Update DiscordManager webhook regex to support canary and make timeout configurable - by AoElite (99e309f)
- Check rotations in teleports (#2268) - by ManInMyVan (717829a)
- Make name and stableKey in CheckData not optional - by ManInMyVan (65d1050)
- Only check isSprinting when rewarding in sprint checks - by ManInMyVan (c549b19)
- Use violation setback in SprintA - by ManInMyVan (6953235)
- Bump grim-api to 1.4.0.0 - by Axionize (cdd490b)
- Apply block effects for swim-hop vector (#2648)
apply block effects for swim-hop vector
adjust swim hop constants - by Cyramek (73c60d0)
62b2268)5fa803e)36675eb)fb4ad7a)20d68c1)25d10f4)29316a7)70223cd)ff214a4)e32d091)fdaf096)2af658c)9b1aa1a)6252fe6)client-brand.ignored-clients in config - by ManInMyVan (60d3ecf)fd9e91d)d501dfe)43db51d)also reduce object allocations - by ManInMyVan (8083f42)
- More object alloc reduction - by ManInMyVan (d939109)
- Mark ChatD as stable - by ManInMyVan (5869433)
- More code cleanup - by ManInMyVan (935668a)
- Mark some listeners as pre-via - by ManInMyVan (ce89791)
- Reduce memory allocation and exclude annotation processors (#2669)
ComplexCollisionBox#downCast: Reduce alloc
ReachInterpolationData#getPossibleLocationCombined: Reduce alloc
SimpleCollisionBox: Only alloc boxes when needed
SimpleCollisionBox#betweenCornersInDirection: Skip Vector3d alloc
Materials: Use IdentityHashMap backed Sets to reduce alloc (StateType#hashCode)
build.gradle.kts: Exclude annotation processor service from shadowJar
Update common/src/main/java/ac/grim/grimac/utils/collisions/datatypes/ComplexCollisionBox.java
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: Dieu info@l4b.org
Co-authored-by: Techirion 126729304+Techirion@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by NO-UUID (6152908)
- Use lombok getter for CompensatedInventory.startOfTickStack - by ManInMyVan (199b673)
- Don't box if we don't need to - by ManInMyVan (bebccfa)
- Make chat checks and BadPacketsM pre-via - by ManInMyVan (21f1534)
- Update startOfTickStack on slot change (#2683) - by ManInMyVan (8c95b21)
- Bump packetevents to 2.12.2+6dca3cc00 (fabric pre-Via listener fix) - by Axionize (09194f3)
- Fix PE hash length — CI publishes with 7-char hash - by Axionize (0b7001b)
- Use getInstance(Class) instead of get(Class) in CheckManager - by ManInMyVan (b62722b)
- Migrate more checks to pre-via - by ManInMyVan (36931a8)
- Send a transaction before adding the task to set serverOpenedInventoryThisTick - by ManInMyVan (e62d451)
- Move CheckManagerListener onPacketSend to pre-via - by ManInMyVan (17b86aa)
- Default KICK_ON_TRANSACTION_ERRORS to true - by ManInMyVan (490a02b)
- Pre-load block mappings for server version - by ManInMyVan (cd61780)
- Make PacketPlayerRespawn pre-via - by ManInMyVan (6ce529c)
- Support relative PLAYER_ROTATION packets - by ManInMyVan (6ff7f44)
- Revert "make PacketPlayerRespawn pre-via"
This reverts commit 6ce529c83de82eee53425a5b081c03115c181e04. - by ManInMyVan (48b778e)
- Load local Gradle user properties - by Axionize (9888990)
- Support Minecraft 26.X on official mappings (#2695) - by Axionize (4642c3d)
- Update PacketEvents pin - by Axionize (6b710c0)
- Backport public V2 datastore wiring - by Axionize (4de186b)
- Compensate attack range swaps for movement (#7)
Compensate attack range swaps for movement
Restrict attack range movement compensation to swaps
Keep attack range item values as floats
Fix attack_range swap reach compensation
Add Reach verbose for attack range movement - by Axionize (f61d522)
we're E-15 on average across all supported versions - by Cyramek (86785db)
- Change default server-name from "Prison" to "ChangeMe"
Replaces the leftover "Prison" placeholder used for the /grim history
header and database config with a neutral "ChangeMe" default that
prompts operators to set their own server name. - by Axionize (41b0fff)
- Handle missing datastore routes - by Axionize (3404e9b)
- Use GrimAPI 1.6.0.2 - by Axionize (6b28271)
- Fix Fabric 1.21.11 cloud command bridge - by Axionize (19dde8b)
- Use GrimAPI 1.6.0.3 - by Axionize (e7fedff)
- 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)
- Integrate structured verbose templates - by Axionize WS2 (8e39093)
- Add stdnum render tag - by Axionize WS2 (67aa3a9)
- Move SprintA to post-prediction checks - by cyramek (e37b7e3)
- Implement 26.2 - by cyramek (1d52bda)
- Merge branch '2.0' into ver/26.2 - by Cyramek (c96667c)
- Viaversion replacements and cloud commands - by cyramek (ae11730)
- Update versions in various places - by cyramek (735550d)
- Support entities boundingbox changes
this class needs to be registry'fied if they gonna change boundingboxes in every version - by cyramek (4bce83e)
- Minor fixes - by cyramek (1250a40)
- Merge 26.2 support - by Axionize WS2 (d9bade6)
- Merge 26.2 support and update PacketEvents - by Axionize WS2 (52f8721)
- Use published PacketEvents snapshot - by Axionize WS2 (c40dfad)
- Skip Fabric publish when artifact is absent - by Axionize WS2 (12449c4)
- Support for 26.2 (#2729) - by Cyramek (732b9e0)
- Support Fabric 26.2 - by Axionize WS2 (784c46d)
- Add optional client version section to bug issue template - by ManInMyVan (4d28b14)
- Add client & server version placeholders to issue templates - by ManInMyVan (cd0986b)
- Small cleanup - by ManInMyVan (f65930b)
- Backport storage ownership leases - by Axionize WS2 (79d54e3)
- Merge pull request #2760 from GrimAnticheat/codex/server-ownership-leases-2.0
Backport storage ownership leases - by Axionize (573a1d2)
- Merge upstream/2.0 into lightning - by Axionize WS2 (0c3ed12)
- Backfill Lightning combat punishments - by Axionize WS2 (00dbb86)
dde41ad)19c12b7)8861589)f81e183)3d95fea)Fix 1.9 client noslow on 1.8 servers (#2607)
fix 1.9 client noslow on 1.8 servers
fix metadata ids - by ManInMyVan (5c6de64)
7d823f5)ce86075)new trig lookup table just dropped - by Cyramek (494e9c5)
- Fix 26.1 spigot support - by ManInMyVan (7ccff01)
- Fix BadPacketsM falses - by ManInMyVan (3cd17cc)
- Fix golden dandelion in a flower pot collision - by cyramek (02f1dc3)
- Fix entity boundingbox replication regression (#2642)
fix entity boundingbox replication regression
check if tick end event exists - by Cyramek (8a3767b)
7a7e07f)c156c00)we're in E-15 now on average - by Cyramek (f3ed3b2)
- Fix 1.8 wither skeleton hitbox - by ManInMyVan (fdd734a)
- Fix #2677 - by ManInMyVan (34c41db)
- Fix precision loss in <=1.19.3 - by cyramek (635708a)
- Fix 1.21.11 clients flagging reach on 1.8 servers - by ManInMyVan (edc3987)
- Fix NPE while getting preViaPacketChecks
fix: https://github.com/GrimAnticheat/Grim/issues/2685 - by cyramek (ec08cbe)
- Fix head hitting while slow falling
gravity is calculated based on deltaMovement, not actualMovement
fix: https://github.com/GrimAnticheat/Grim/issues/2687 - by cyramek (7e1607d)
- Fix precision loss for <=1.18.1 - by cyramek (4a632c1)
- Fix input precision loss in <=1.16.5 - by cyramek (10cc198)
- Check if the block position is valid before getting it, fixes #2689 - by ManInMyVan (d34f5c1)
- Fix NPE on world change - by ManInMyVan (406d6e7)
- Fix #2693 - by ManInMyVan (d2e47fd)
- Fix packetevents commit - by ManInMyVan (5e60273)
- Exclude adventure-text-serializer-gson from minimize() - by Axionize (ac892c5)
- False in MultiActionsD while opening your inventory in a nether portal frame (#2702) - by Bram (b2b2503)
- Handle missing PacketEvents channel in UUID lookup (#9) - by Axionize (2ea1d99)
- Bind PacketContext around item encoding for Polymer 0.16+ (#2701) (#2705) - by Axionize (5f19722)
- 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)
- Fix precision loss while gliding
E-8 -> E-15 - by cyramek (c83870b)
- Fix fastbreak using outdated onGround status (#2657)
make sure that we're using latest onGround in FastBreak
things pointed out in a review - by Cyramek (ba1a930)
eba3cb8)this was the cause why slime collisions were off by E-8
this can also be the cause of many false positives that are seemingly random - by cyramek (d2727a4)
- Fix formatting issues - by cyramek (02654ce)
75cc402)b3a7496)1f1b03c)0aa2e2b)27.06.2026 · 6 249 downloads
7885555)only bukkit platform for now - by Cyramek (a9b91e7)
- Bump PE for 26.1.2 support - by Axionize (f36f870)
- Implement fluid count tracker - by cyramek (f9fdfa7)
- Always use main hand for attack packets - by cyramek (61e9e69)
- Don't pass null clientVersion so chunk will use server version for mapping's lookup
broken after recent packetevents update that overriden #set method in Chunk_v1_18 - by cyramek (8dc657a)
- Fix some falses regarding camel sprinting (#2462)
Fix camel sprinting falses
Forgot about camel husks
Obey code style
Fix respawns
Obey code style (for real this time)
Fix SprintG false with camels
Move camel sprinting state to VehicleData - by LaserSlime (d55f1b7)
6c3ccb4)3664f4d)794e120)a86dedf)7499d10)66b3334)Fixes issues on 1.8.9 / Older versions thinking that daylight detectors connect to fences / iron bars
Related: https://github.com/GrimAnticheat/Grim/issues/1856 - by KotlinList (d81d03f)
- Bump packetevents to 22c9961 (relocateHandlers respects compress/decompress)
fixes #2552 - by Axionize WS1 (257bffe)
- Fix issues with DynamicConnecting.java with client versions (#2618)
tested with 1.8.9, 1.20.4 and ViaVersion on 1.20.4 Server and 1.8.9 Client
related issue: https://github.com/GrimAnticheat/Grim/issues/2148 - by InetAddress (5c46b0a)
- History rewrite: five backends, session-based, ring-buffer write path + universal config autoupdater (#2622) - by Axionize (578c784)
- Minor Post code cleanup - by ManInMyVan (053b090)
- Don't cancel CLOSE_WINDOW in PacketOrderK - by ManInMyVan (fbabbf2)
- Rename grim.legacy. @CheckData stable_keys to descriptive names - by Axionize WS1 (c233a60)
- Escape backslashes when emitting double-quoted scalars (#2623) - by Axionize WS1 (84bd90d)
- Fix StackOverflow on isChunkLoaded by routing through ChunkSource (#2568) - by Axionize WS2 (c88b494)
- Kick anyone who sends vv:proxy_details - by ManInMyVan* (3021287)
- Revert "kick anyone who sends vv:proxy_details"
This reverts commit 3021287391de4aee964abe5bcf6c452f72f68a7b. - by AoElite (73f63c1)
- Fixed Typo in shulker uncertainty logic (#2630) - by aquip (2508a34)
- Kick anyone who sends vv:proxy_details - by ManInMyVan (e9c918d)
- Add support for URL timeout customization and reimplement via proxy kicking - by AoElite (fd9e0f8)
- Add --name / --match / --grep regex filters to /grim history - by Axionize WS1 (d591f10)
- Bump grim-api pin to 1.3.2.0 - by Axionize WS1 (2c60aae)
- Redstone wall torch should use isLit instead of isPowered - by cyramek (21f0c3d)
- Bump grim-api to 1.3.2.1 - by Axionize WS2 (17d4d2f)
- Check cameraEntity.isSelf() in isTickingReliablyFor - by ManInMyVan (3e5afef)
- Simplify shulker opening/closing - by ManInMyVan (fc899a3)
- Min, not max - by ManInMyVan (83a6d98)
- Happy ghast scale is also clamped - by ManInMyVan (5254190)
- Remove unused import - by ManInMyVan (145f71c)
- Fall back to modrinth for changelog range when push payload missing - by Axionize WS1 (4c866d0)
- Small cleanup - by ManInMyVan (5a40a06)
- Remove unused import - by ManInMyVan (215a1e6)
- Tweak "UrlTimeout" constant for consistency - by AoElite (addabec)
- Update DiscordManager webhook regex to support canary and make timeout configurable - by AoElite (99e309f)
- Check rotations in teleports (#2268) - by ManInMyVan (717829a)
- Make name and stableKey in CheckData not optional - by ManInMyVan (65d1050)
- Only check isSprinting when rewarding in sprint checks - by ManInMyVan (c549b19)
- Use violation setback in SprintA - by ManInMyVan (6953235)
- Bump grim-api to 1.4.0.0 - by Axionize (cdd490b)
- Apply block effects for swim-hop vector (#2648)
apply block effects for swim-hop vector
adjust swim hop constants - by Cyramek (73c60d0)
62b2268)5fa803e)36675eb)fb4ad7a)20d68c1)25d10f4)29316a7)70223cd)ff214a4)e32d091)fdaf096)2af658c)9b1aa1a)6252fe6)client-brand.ignored-clients in config - by ManInMyVan (60d3ecf)fd9e91d)d501dfe)43db51d)also reduce object allocations - by ManInMyVan (8083f42)
- More object alloc reduction - by ManInMyVan (d939109)
- Mark ChatD as stable - by ManInMyVan (5869433)
- More code cleanup - by ManInMyVan (935668a)
- Mark some listeners as pre-via - by ManInMyVan (ce89791)
- Reduce memory allocation and exclude annotation processors (#2669)
ComplexCollisionBox#downCast: Reduce alloc
ReachInterpolationData#getPossibleLocationCombined: Reduce alloc
SimpleCollisionBox: Only alloc boxes when needed
SimpleCollisionBox#betweenCornersInDirection: Skip Vector3d alloc
Materials: Use IdentityHashMap backed Sets to reduce alloc (StateType#hashCode)
build.gradle.kts: Exclude annotation processor service from shadowJar
Update common/src/main/java/ac/grim/grimac/utils/collisions/datatypes/ComplexCollisionBox.java
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: Dieu info@l4b.org
Co-authored-by: Techirion 126729304+Techirion@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by NO-UUID (6152908)
- Use lombok getter for CompensatedInventory.startOfTickStack - by ManInMyVan (199b673)
- Don't box if we don't need to - by ManInMyVan (bebccfa)
- Make chat checks and BadPacketsM pre-via - by ManInMyVan (21f1534)
- Update startOfTickStack on slot change (#2683) - by ManInMyVan (8c95b21)
- Bump packetevents to 2.12.2+6dca3cc00 (fabric pre-Via listener fix) - by Axionize (09194f3)
- Fix PE hash length — CI publishes with 7-char hash - by Axionize (0b7001b)
- Use getInstance(Class) instead of get(Class) in CheckManager - by ManInMyVan (b62722b)
- Migrate more checks to pre-via - by ManInMyVan (36931a8)
- Send a transaction before adding the task to set serverOpenedInventoryThisTick - by ManInMyVan (e62d451)
- Move CheckManagerListener onPacketSend to pre-via - by ManInMyVan (17b86aa)
- Default KICK_ON_TRANSACTION_ERRORS to true - by ManInMyVan (490a02b)
- Pre-load block mappings for server version - by ManInMyVan (cd61780)
- Make PacketPlayerRespawn pre-via - by ManInMyVan (6ce529c)
- Support relative PLAYER_ROTATION packets - by ManInMyVan (6ff7f44)
- Revert "make PacketPlayerRespawn pre-via"
This reverts commit 6ce529c83de82eee53425a5b081c03115c181e04. - by ManInMyVan (48b778e)
- Load local Gradle user properties - by Axionize (9888990)
- Support Minecraft 26.X on official mappings (#2695) - by Axionize (4642c3d)
- Update PacketEvents pin - by Axionize (6b710c0)
- Backport public V2 datastore wiring - by Axionize (4de186b)
- Compensate attack range swaps for movement (#7)
Compensate attack range swaps for movement
Restrict attack range movement compensation to swaps
Keep attack range item values as floats
Fix attack_range swap reach compensation
Add Reach verbose for attack range movement - by Axionize (f61d522)
we're E-15 on average across all supported versions - by Cyramek (86785db)
- Change default server-name from "Prison" to "ChangeMe"
Replaces the leftover "Prison" placeholder used for the /grim history
header and database config with a neutral "ChangeMe" default that
prompts operators to set their own server name. - by Axionize (41b0fff)
- Handle missing datastore routes - by Axionize (3404e9b)
- Use GrimAPI 1.6.0.2 - by Axionize (6b28271)
- Fix Fabric 1.21.11 cloud command bridge - by Axionize (19dde8b)
- Use GrimAPI 1.6.0.3 - by Axionize (e7fedff)
- 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)
- Integrate structured verbose templates - by Axionize WS2 (8e39093)
- Add stdnum render tag - by Axionize WS2 (67aa3a9)
- Move SprintA to post-prediction checks - by cyramek (e37b7e3)
- Implement 26.2 - by cyramek (1d52bda)
- Merge branch '2.0' into ver/26.2 - by Cyramek (c96667c)
- Viaversion replacements and cloud commands - by cyramek (ae11730)
- Update versions in various places - by cyramek (735550d)
- Support entities boundingbox changes
this class needs to be registry'fied if they gonna change boundingboxes in every version - by cyramek (4bce83e)
- Minor fixes - by cyramek (1250a40)
- Merge 26.2 support - by Axionize WS2 (d9bade6)
- Merge 26.2 support and update PacketEvents - by Axionize WS2 (52f8721)
- Use published PacketEvents snapshot - by Axionize WS2 (c40dfad)
- Skip Fabric publish when artifact is absent - by Axionize WS2 (12449c4)
- Support for 26.2 (#2729) - by Cyramek (732b9e0)
- Support Fabric 26.2 - by Axionize WS2 (784c46d)
- Add optional client version section to bug issue template - by ManInMyVan (4d28b14)
- Add client & server version placeholders to issue templates - by ManInMyVan (cd0986b)
- Small cleanup - by ManInMyVan (f65930b)
- Backport storage ownership leases - by Axionize WS2 (79d54e3)
- Merge pull request #2760 from GrimAnticheat/codex/server-ownership-leases-2.0
Backport storage ownership leases - by Axionize (573a1d2)
- Merge upstream/2.0 into lightning - by Axionize WS2 (0c3ed12)
- Backfill Lightning combat punishments - by Axionize WS2 (00dbb86)
dde41ad)19c12b7)8861589)f81e183)3d95fea)Fix 1.9 client noslow on 1.8 servers (#2607)
fix 1.9 client noslow on 1.8 servers
fix metadata ids - by ManInMyVan (5c6de64)
7d823f5)ce86075)new trig lookup table just dropped - by Cyramek (494e9c5)
- Fix 26.1 spigot support - by ManInMyVan (7ccff01)
- Fix BadPacketsM falses - by ManInMyVan (3cd17cc)
- Fix golden dandelion in a flower pot collision - by cyramek (02f1dc3)
- Fix entity boundingbox replication regression (#2642)
fix entity boundingbox replication regression
check if tick end event exists - by Cyramek (8a3767b)
7a7e07f)c156c00)we're in E-15 now on average - by Cyramek (f3ed3b2)
- Fix 1.8 wither skeleton hitbox - by ManInMyVan (fdd734a)
- Fix #2677 - by ManInMyVan (34c41db)
- Fix precision loss in <=1.19.3 - by cyramek (635708a)
- Fix 1.21.11 clients flagging reach on 1.8 servers - by ManInMyVan (edc3987)
- Fix NPE while getting preViaPacketChecks
fix: https://github.com/GrimAnticheat/Grim/issues/2685 - by cyramek (ec08cbe)
- Fix head hitting while slow falling
gravity is calculated based on deltaMovement, not actualMovement
fix: https://github.com/GrimAnticheat/Grim/issues/2687 - by cyramek (7e1607d)
- Fix precision loss for <=1.18.1 - by cyramek (4a632c1)
- Fix input precision loss in <=1.16.5 - by cyramek (10cc198)
- Check if the block position is valid before getting it, fixes #2689 - by ManInMyVan (d34f5c1)
- Fix NPE on world change - by ManInMyVan (406d6e7)
- Fix #2693 - by ManInMyVan (d2e47fd)
- Fix packetevents commit - by ManInMyVan (5e60273)
- Exclude adventure-text-serializer-gson from minimize() - by Axionize (ac892c5)
- False in MultiActionsD while opening your inventory in a nether portal frame (#2702) - by Bram (b2b2503)
- Handle missing PacketEvents channel in UUID lookup (#9) - by Axionize (2ea1d99)
- Bind PacketContext around item encoding for Polymer 0.16+ (#2701) (#2705) - by Axionize (5f19722)
- 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)
- Fix precision loss while gliding
E-8 -> E-15 - by cyramek (c83870b)
- Fix fastbreak using outdated onGround status (#2657)
make sure that we're using latest onGround in FastBreak
things pointed out in a review - by Cyramek (ba1a930)
eba3cb8)this was the cause why slime collisions were off by E-8
this can also be the cause of many false positives that are seemingly random - by cyramek (d2727a4)
- Fix formatting issues - by cyramek (02654ce)
75cc402)b3a7496)1f1b03c)0aa2e2b)26.06.2026 · 309 downloads
e17023b)429fc17)c71ef0c)0066487)Merge storage ownership leases backport using released GrimAPI 1.6.0.7. - by Axionize (0c38eaa)
26.06.2026 · 702 downloads
e17023b)429fc17)c71ef0c)0066487)Merge storage ownership leases backport using released GrimAPI 1.6.0.7. - by Axionize (0c38eaa)
26.05.2026 · 7 589 downloads
ce6e1d3)163e120)5c46021)6385460)8d7a4cc)322d256)bb143d7)2e1c79b)6a223a3)d538c59)1317ae0)4d6ac75)ca6e83d)5551ef6)41c7e41)bbab7e2)e222df8)0237f95)a2f4dc1)44900e5)sender-not-found message - by AoElite (f381805)faf2fb3)Optimize Messages (#2309)
Optimize MessageUtil.replacePlaceHolders()
Send user messages at packet level bypassing backend server for performance
Stash temporary changes
Make Grim send fast chat messages bypasses platform by default - by Axionize (90036e2)
1eae548)15e8098)26492fd)8a6863b)3f19abc)d0aafdd)79bf7e4)6e5ec33)89cf181)a82f2b8)a86bf57)9ba4052)Clear active item before updating inventory on legacy (#2317)
Apply spotless
Clear active item before updating inventory on legacy - by BT (calcastor/mame) (b69906f)
1b47e31)4f3e715)a76bf9c)Add copper golem statue, shelf collision boxes and other missing 1.21.10 stuff (#2315)
add copper golem statue
Include ViaVersion substitution
add shelves
also add copper armor
add mannequin box sizes
Add copper golem size - by AnnotationVisitor (102b584)
f8a5315)see https://fabricmc.net/2025/10/31/obfuscation.html - by ManInMyVan (b373e5f)
- Slight cleanup of fabric code - by ManInMyVan (0df77dd)
- Reorder publication of artifacts to Modrinth and update supported versions - by Axionize (bfd2bd0)
- Show size for applicable reach/hitbox flags - by ManInMyVan (6280b28)
- Don't simulate movement in unloaded chunks?
Who knows what other problems this could cause... - by SamB440 (0ba3317)
- Bump cloud to beta.13, fixes #2318 - by SamB440 (c323cf0)
- Disable PacketOrderP, fixes #2327 - by SamB440 (ea1f161)
- New translation ro.yml (#2285)
Config Romanian translation for grim ac. - by ItzBloxxy (918e657)
- Disable ExploitB "invalid page characters" check - by ManInMyVan (def2163)
- Small piston optimization - by AoElite (ba1d1db)
- Tweak GrimDump output and include some non-default alert settings - by AoElite (5c71531)
- Hopefully make installation instructions more clear
also moves it higher on the page - by ManInMyVan (b14628c)
- Make sure that we use packet-based inventory state after closing the inventory - by cyramek (a46d296)
- Update CrashC.java (#2350) - by Weigurde (6df484b)
- Bump PacketEvents version - by Axionize (9b500a2)
- Migrate workflows to tenki (#2362) - by tenki-cloud[bot] (e1bd2ed)
- Remove some unnecessary publishing paths - by AoElite (3380d7f)
- Optimise bounding box calculations - by cyramek (3f67272)
- Setback changes - by SamB440 (8ddd7f1)
- Improve bypass template - by ManInMyVan (ba91251)
- More consistent issue templates - by ManInMyVan (499bf7e)
- Fix spectate command resetting gamemode when spectating someone in another dimension (#2365)
This issue happened when using the spectate command on a player in another dimension. the spectator was set to survival mode.
When spectating a player in another dimension, you would previously get set to survival mode, this is now fixed. - by GroupXyz (3fc985c)
- Fixed Reach false positive with Happy Ghast and clients under 1.21.6 (#2352) - by Greened (e386b93)
- Bump PacketEvents version - by Axionize (2d785fd)
- Make discord webhook pattern stricter and support different api versions - by AoElite (3bf3226)
- Update lunar's brand format in all the configs - by AoElite (2d053d0)
- More setback changes - by SamB440 (4d28f85)
- Adjust canGlide logic to try to improve compatibility - by AoElite (679e869)
- Adjust isGlider logic to account for items that can't be depleted - by AoElite (acf273f)
- Revert "fix incorrect EquipmentSlot mappings in isGlider logic"
This reverts commit d96d683b14150d6e0f486a63cf1a74c417c6a84b. - by AoElite (0153ce3)
- Refactor repo logic to support mavenLocalOverride - by Axionize (965008f)
- Bump PE - by Axionize (12f6af3)
- Add initial support for 1.21.11 and update dependencies - by Axionize (97b8758)
- Fix gliders not working in offhand slot (#2397) - by iLemon (32f607b)
- Bump github actions-upload-artifact versions - by Axionize (9bd12cc)
- Make runner configurable to work around Tenki issues (#2398) - by Axionize (f772b74)
- Fix NPE when Spigot late-bind option is enabled & improve injection logic
This PR fixes a NullPointerException that occurred when the Spigot "late-bind" option was enabled on servers prior to 1.14.4.
Changes:
- Changed injection priority: The plugin now attempts to register the Paper TickEndEvent first. It only falls back to NMS reflection if the Paper API is unavailable.
- Added a null check for the server connection instance to prevent the NPE during reflection injection.
- Added specific error logging: If injection fails on legacy servers (< 1.14.4), the plugin now reflectively checks spigot.yml settings to explicitly warn the user if late-bind is the cause.
- Refactored reflection logic to use ReflectionUtils for better safety and code cleanliness. - by uRyanxD (5f02ccc)
- Bump PE - by Axionize (92d06e4)
- Build ci changes - by Axionize (9626712)
- Cache map values for performance (#2407) - by Rothes (8f0036e)
- Clean up OptifineFastMath.java a bit - by ManInMyVan (2d8def6)
- Support CAMERA packet (#2303) - by ManInMyVan (d374c2b)
- Add PlatformPlayerFactory#getOfflinePlayers() - by Axionize (ce0dad5)
- Stash work - by Axionize (90193b4)
- Fix reach regression in not flagging clients from versions 1.15 to 1.20.1 due to rot only regression - by Axionize (60b70d1)
- Merge branch 'fix/reach-infinite-expanding-hitbox' into 2.0 - by Axionize (4292e93)
- Use config history.database.port for database connection port. Fixes #2415 - by SamB440 (42b6630)
- Prevent torn reads and race condition on respawn on Fabric from reconstruction of ServerPlayerEntity - by Axionize (101473b)
- Resync on netty thread instead of trying to send packets in region thread - by Axionize (80f90e6)
- Add option to disable resyncing without API with a NoOp resync handler - by Axionize (7c68947)
- Fix Sculk Vein replacement Phase/Simulation falses & Optimize canBeReplaced logic
b79d5fd)d0b30de)98fd065)6186abc)07d2010)639490a)14573da)a2074d0)8016586)ca64aab)be35b9b)9cb4547)dbd7510)02f6a3b)Add Back Support for Legacy API (#2409)
Add back support for the legacy API temporarily
Bump API to release version - by Axionize (95e2774)
1.21.11 support (#2420)
fix horse modern/legacy jumping mechanics, camel dash cooldown tracking (#2199)
implement UseEffects component
fixes: https://github.com/GrimAnticheat/Grim/issues/2396
initial support for hitbox margin
compensableDashableEntities -> dashableEntities
implement floating in water
implement nautilus movement
todo: fix dashing, fix step
this code was dropped in:
https://github.com/GrimAnticheat/Grim/commit/1a6a8c57583ef12556241383829eb5f7dcc3595f
fix nautilus dashing
improve precision while dashing
actually fix dashing
I'm really dumb ngl, vanilla packet sequence:
1. rot packet with PLAYER look angle
2. vehicle move packet with ENTITY look angle
vehicle move packet overrides player's yaw and pitch from first rot packet
I will refactor this later
support new gliding behavior
refactor nautilus prediction engines
implement parched boundingbox
add support for fast lava gameplay attribute in fluid pushing
camels have variants now
WIP tick-based world borders
fix off ground camel dashing
thanks thisisatest8406
add onGround tracking for entities
revert tracking entity onGround
I decided that I don't care enough, camels are bugged as hell, everything desync
remove unneeded diff
fix pending jumps and camel off-ground dashing
remove outdated comment regarding nautilus jumping logic
Add support for max_reach AttackRange component
Co-authored-by: Axionize 154778082+Axionize@users.noreply.github.com - by Cyramek (bf85863)
- Unify all APIs - by Axionize (c5855fd)
- Fix support for messing legacy getGrimUser(Player player) method - by Axionize (8001f6c)
- Bump PE - by Axionize (21f6988)
- Bump API to no longer shade Player shim - by Axionize (50a25d9)
- Command API fallback handling - by Axionize (08770f0)
- Refactor Fabric to make permissions API and cloud optional dependencies - by Axionize (b9fa89c)
- Fabric 1.21.11 support for fabric-permissions-api-v0 not being included - by Axionize (075cec8)
- Update supported fabric versions - by Axionize (3659060)
- Bump PE - by Axionize (a54329a)
- Fix early init of CommandManager on Bukkit causing startup issues - by Axionize (fefe0d1)
- Rename Fabric mc1211 -> mc12111 module - by Axionize (9d1682d)
- Fix fast break false when switching tools via shulker box (#2454) - by Ayou (c043357)
- Revert this for now, until we find a better way to fix it - by cyramek (b7a719d)
- Don't let player reuse setback velocity (fixes #2445) (#2450) - by SamB440 (cd86c14)
- Rename Fabric1211PlatformServer -> Fabric12111PlatformServer - by Axionize (88cfffc)
- Refactor Resolver Lifecycle - by Axionize (35174fd)
- Evoker fangs are unhittable - by SamB440 (80afaae)
- Bump PE: Fixes Packet Ordering and mapping issues
- Previa packet mapping failing due to incorrect upstream call to getPacketVersion() instead of getClientVersion(), affects previa on all versions
- Fix Krypton + Via + Grim compat form listener relocation - by Axionize (6c49a01)
- Add method exposing int block type from CompensatedWorld (#2464)
Implement feature
Update common/src/main/java/ac/grim/grimac/utils/latency/CompensatedWorld.java
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by Cubicake (2b62148)
- Add /grim testwebhook - by ManInMyVan (327b947)
- Improve comments in Chinese configuration file (#2490)
Updated comments in zh.yml for clarity and translation. - by MatrixU5er (b65b7f0)
- Load after ZNPCsPlus - by ManInMyVan (1d0cbb7)
- Bump grim-api version - by AoElite (7be8f51)
- Update Grim API to 1.2.4.0 - by Axionize (4ca65b1)
- Fix getting hitbox for unstable scaffolding - by Axionize (f0fbc9d)
- History rewrite marker - by Axionize (7d487a4)
- Add support for attribute swapping to and from items with attack range components - by Axionize (b281a2d)
- Update translation - by tjshtqwq (c2acfae)
- Merge branch '2.0' into patch-1 - by tjshtqwq (75b5405)
- Update zh.yml - by tjshtqwq (f54ca0e)
- Clean up typos and translator notes - by Axionize (1f55742)
- Merge PR #2267 - Improved Chinese Translations - by Axionize (439477e)
- Add Polish configuration file for GrimAC (#2501)
Co-authored-by: DawixTV 92529087+DawixTV@users.noreply.github.com - by dxw1d (272a889)
- Revert "load after ZNPCsPlus"
This reverts commit 1d0cbb7078205b0b265a8ae6047bd304811ed130. - by ManInMyVan (c7983b7)
- Remove unused imports in Reach.java - by ManInMyVan (d273229)
- Fix Discord Webhook PAPI Placeholders (#2518)
Fix support for Discord markdown parsing of several edge cases
Fix PAPI name mangling
Cleanup Implementation of new Discord Webhook handling
Document exploit choice to not use volatile when technically correct to
Address all code review concerns
Cleanup unused code
Refactor packages for discord related data types - by Axionize (c356f5f)
53cf3e8)d4611f1)Closes https://github.com/GrimAnticheat/Grim/issues/2520 - by Axionize (879d566)
- Account for 1.21.2+ clients ignoring teleport packets while in vehicle (#2470)
fix: https://github.com/GrimAnticheat/Grim/issues/2463 - by Cyramek (8a0d1e2)
- Bump version to 2.3.74 - by cyramek (546abf0)
- Add support for viaversion attack range component for 1.21.11+ clients on legacy servers (#2474)
add support for https://github.com/ViaVersion/ViaVersion/pull/4733 - by Cyramek (7e8b6b6)
- Fix encoding of Polymer blocks breaking when resyncing with world, optimize allocations Fabric PlatformChunk.getBlockId(x,y,z) - by Axionize (0a1ce1d)
- Reset food level on respawn (#2528) - by SamB440 (5749463)
- Fix ghost block mitigation on floating block placement (#2530) - by RareMen (13fb273)
- Exempt spectators in 1.21.11+ from PacketOrderB (fixes #2493) - by ManInMyVan (29c0757)
- Slightly change BadPacketsP description - by ManInMyVan (539e822)
- Rename BadPacketsC to SelfInteract - by ManInMyVan (177c003)
- Set CheckManager#packetEntityReplication on init - by ManInMyVan (3055cd1)
- Make TransactionOrder verbose consistent with other checks - by ManInMyVan (68f34f2)
- Require hand to be MAIN_HAND in PacketOrderB - by ManInMyVan (598aae0)
- Check for keepsprint on 1.9 servers (#2070)
check for keepsprint on 1.9 servers
update held item in AttackCooldownHandler every time the slot is changed
fix #2389
change AttackCooldownHandler package - by ManInMyVan (e954124)
e40ec01)5f9b9dd)740f7f4)bf10e23)f0e15b0)f380fcd)9b06c86)isPacketInventoryActive was false before allowing revert - by SamB440 (6a46c35)11d572f)7d9dc86)89eedbe)77c48f4)10cb176)d1b2135)7fd7bc1)Fix PostgreSQL UUID retrieval in history command (#2575)
Fix PostgreSQL UUID retrieval in history command
Improve error handling for UUID retrieval in DatabaseUtils
Use if-else if in DatabaseUtils.getUuid - by Fussel (efd796c)
ece9f3c)b55a12c)e8dc9ae)3e07a0e)890799d)Fix MYSQL 8 support (#2534)
Fix MYSQL 8 support
Prevent double index error from sending everytime. - by Milan Ensink (35fe1f0)
1b60cb8)99dce8c)c169d9c)7885555)only bukkit platform for now - by Cyramek (a9b91e7)
- Bump PE for 26.1.2 support - by Axionize (f36f870)
- Implement fluid count tracker - by cyramek (f9fdfa7)
- Always use main hand for attack packets - by cyramek (61e9e69)
- Don't pass null clientVersion so chunk will use server version for mapping's lookup
broken after recent packetevents update that overriden #set method in Chunk_v1_18 - by cyramek (8dc657a)
- Fix some falses regarding camel sprinting (#2462)
Fix camel sprinting falses
Forgot about camel husks
Obey code style
Fix respawns
Obey code style (for real this time)
Fix SprintG false with camels
Move camel sprinting state to VehicleData - by LaserSlime (d55f1b7)
6c3ccb4)3664f4d)794e120)a86dedf)7499d10)66b3334)Fixes issues on 1.8.9 / Older versions thinking that daylight detectors connect to fences / iron bars
Related: https://github.com/GrimAnticheat/Grim/issues/1856 - by KotlinList (d81d03f)
- Bump packetevents to 22c9961 (relocateHandlers respects compress/decompress)
fixes #2552 - by Axionize WS1 (257bffe)
- Fix issues with DynamicConnecting.java with client versions (#2618)
tested with 1.8.9, 1.20.4 and ViaVersion on 1.20.4 Server and 1.8.9 Client
related issue: https://github.com/GrimAnticheat/Grim/issues/2148 - by InetAddress (5c46b0a)
- History rewrite: five backends, session-based, ring-buffer write path + universal config autoupdater (#2622) - by Axionize (578c784)
- Minor Post code cleanup - by ManInMyVan (053b090)
- Don't cancel CLOSE_WINDOW in PacketOrderK - by ManInMyVan (fbabbf2)
- Rename grim.legacy. @CheckData stable_keys to descriptive names - by Axionize WS1 (c233a60)
- Escape backslashes when emitting double-quoted scalars (#2623) - by Axionize WS1 (84bd90d)
- Fix StackOverflow on isChunkLoaded by routing through ChunkSource (#2568) - by Axionize WS2 (c88b494)
- Kick anyone who sends vv:proxy_details - by ManInMyVan* (3021287)
- Revert "kick anyone who sends vv:proxy_details"
This reverts commit 3021287391de4aee964abe5bcf6c452f72f68a7b. - by AoElite (73f63c1)
- Fixed Typo in shulker uncertainty logic (#2630) - by aquip (2508a34)
- Kick anyone who sends vv:proxy_details - by ManInMyVan (e9c918d)
- Add support for URL timeout customization and reimplement via proxy kicking - by AoElite (fd9e0f8)
- Add --name / --match / --grep regex filters to /grim history - by Axionize WS1 (d591f10)
- Bump grim-api pin to 1.3.2.0 - by Axionize WS1 (2c60aae)
- Redstone wall torch should use isLit instead of isPowered - by cyramek (21f0c3d)
- Bump grim-api to 1.3.2.1 - by Axionize WS2 (17d4d2f)
- Check cameraEntity.isSelf() in isTickingReliablyFor - by ManInMyVan (3e5afef)
- Simplify shulker opening/closing - by ManInMyVan (fc899a3)
- Min, not max - by ManInMyVan (83a6d98)
- Happy ghast scale is also clamped - by ManInMyVan (5254190)
- Remove unused import - by ManInMyVan (145f71c)
- Fall back to modrinth for changelog range when push payload missing - by Axionize WS1 (4c866d0)
- Small cleanup - by ManInMyVan (5a40a06)
- Remove unused import - by ManInMyVan (215a1e6)
- Tweak "UrlTimeout" constant for consistency - by AoElite (addabec)
- Update DiscordManager webhook regex to support canary and make timeout configurable - by AoElite (99e309f)
- Check rotations in teleports (#2268) - by ManInMyVan (717829a)
- Make name and stableKey in CheckData not optional - by ManInMyVan (65d1050)
- Only check isSprinting when rewarding in sprint checks - by ManInMyVan (c549b19)
- Use violation setback in SprintA - by ManInMyVan (6953235)
- Bump grim-api to 1.4.0.0 - by Axionize (cdd490b)
- Apply block effects for swim-hop vector (#2648)
apply block effects for swim-hop vector
adjust swim hop constants - by Cyramek (73c60d0)
62b2268)5fa803e)36675eb)fb4ad7a)20d68c1)25d10f4)29316a7)70223cd)ff214a4)e32d091)fdaf096)2af658c)9b1aa1a)6252fe6)client-brand.ignored-clients in config - by ManInMyVan (60d3ecf)fd9e91d)d501dfe)43db51d)also reduce object allocations - by ManInMyVan (8083f42)
- More object alloc reduction - by ManInMyVan (d939109)
- Mark ChatD as stable - by ManInMyVan (5869433)
- More code cleanup - by ManInMyVan (935668a)
- Mark some listeners as pre-via - by ManInMyVan (ce89791)
- Reduce memory allocation and exclude annotation processors (#2669)
ComplexCollisionBox#downCast: Reduce alloc
ReachInterpolationData#getPossibleLocationCombined: Reduce alloc
SimpleCollisionBox: Only alloc boxes when needed
SimpleCollisionBox#betweenCornersInDirection: Skip Vector3d alloc
Materials: Use IdentityHashMap backed Sets to reduce alloc (StateType#hashCode)
build.gradle.kts: Exclude annotation processor service from shadowJar
Update common/src/main/java/ac/grim/grimac/utils/collisions/datatypes/ComplexCollisionBox.java
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: Dieu info@l4b.org
Co-authored-by: Techirion 126729304+Techirion@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by NO-UUID (6152908)
- Use lombok getter for CompensatedInventory.startOfTickStack - by ManInMyVan (199b673)
- Don't box if we don't need to - by ManInMyVan (bebccfa)
- Make chat checks and BadPacketsM pre-via - by ManInMyVan (21f1534)
5f8692d)fc47c5b)0d22e34)29d28c6)0321e0b)832194a)2fa022e)we're now in 1e-15 average - by cyramek (7461aca)
- Useless player fetch (#2329) - by Szypkoo (115c329)
- Fix #2330 - by ManInMyVan (17cf067)
- World isLoaded throws method not found (#2372) - by Nils Gereke (403fd36)
- Fix null pointer when checking if bread was a setback - by AoElite (a1b4893)
- Fix incorrect EquipmentSlot mappings in isGlider logic - by AoElite (d96d683)
- Exclude Azalea from Sapling hitbox definitions - by Axionize (4a104e2)
- Bubble Column, Azalea, Bed, and Ceiling Wall Sign hit/collision boxes - by Axionize (c019566)
- Bump gradle wrapper to fix build - by Axionize (c2afc62)
- Fix NPE due to incorrect initialization order - by cyramek (9e745fd)
- Fix elytra packet abuse on 1.8 servers - by ManInMyVan (f95d877)
- Honor per-check nomodifypacket (#2477) - by runningbird2 (f118b5c)
- Fix many issues with collisions while riding nautilus/happyghast (#2460)
thanks LaserSlime and Axionize for help! - by Cyramek (302bed1)
- Fix noslow with invalid drop item packets - by ManInMyVan (48115eb)
- Fix #2563 - by ManInMyVan (cd3576b)
- Fix #1990 - by ManInMyVan (b9da63c)
- Fix #2579 - by ManInMyVan (13ad8bd)
- Fix PacketOrderC viabackwards false - by ManInMyVan (fc75e51)
- Fix bouncy blocks (#2473) - by Cyramek (19c12b7)
- Fix typo in MultiActionsC - by ManInMyVan (8861589)
- Fix page length check (#2637) - by Captain-S0L0 (f81e183)
- Fix shulker & dragon scale attrubute - by ManInMyVan (3d95fea)
- Fix 1.9 client noslow on 1.8 servers (#2607)
fix 1.9 client noslow on 1.8 servers
fix metadata ids - by ManInMyVan (5c6de64)
7d823f5)ce86075)new trig lookup table just dropped - by Cyramek (494e9c5)
- Fix 26.1 spigot support - by ManInMyVan (7ccff01)
- Fix BadPacketsM falses - by ManInMyVan (3cd17cc)
- Fix golden dandelion in a flower pot collision - by cyramek (02f1dc3)
- Fix entity boundingbox replication regression (#2642)
fix entity boundingbox replication regression
check if tick end event exists - by Cyramek (8a3767b)
7a7e07f)c156c00)we're in E-15 now on average - by Cyramek (f3ed3b2)
- Fix 1.8 wither skeleton hitbox - by ManInMyVan (fdd734a)
- Fix #2677 - by ManInMyVan (34c41db)
- Fix precision loss in <=1.19.3 - by cyramek (635708a)
- Fix 1.21.11 clients flagging reach on 1.8 servers - by ManInMyVan (edc3987)
c2c044f)bf637f5)75cc402)955b725)55da384)b6f9f86)26.05.2026 · 1 355 downloads
ce6e1d3)163e120)5c46021)6385460)8d7a4cc)322d256)bb143d7)2e1c79b)6a223a3)d538c59)1317ae0)4d6ac75)ca6e83d)5551ef6)41c7e41)bbab7e2)e222df8)0237f95)a2f4dc1)44900e5)sender-not-found message - by AoElite (f381805)faf2fb3)Optimize Messages (#2309)
Optimize MessageUtil.replacePlaceHolders()
Send user messages at packet level bypassing backend server for performance
Stash temporary changes
Make Grim send fast chat messages bypasses platform by default - by Axionize (90036e2)
1eae548)15e8098)26492fd)8a6863b)3f19abc)d0aafdd)79bf7e4)6e5ec33)89cf181)a82f2b8)a86bf57)9ba4052)Clear active item before updating inventory on legacy (#2317)
Apply spotless
Clear active item before updating inventory on legacy - by BT (calcastor/mame) (b69906f)
1b47e31)4f3e715)a76bf9c)Add copper golem statue, shelf collision boxes and other missing 1.21.10 stuff (#2315)
add copper golem statue
Include ViaVersion substitution
add shelves
also add copper armor
add mannequin box sizes
Add copper golem size - by AnnotationVisitor (102b584)
f8a5315)see https://fabricmc.net/2025/10/31/obfuscation.html - by ManInMyVan (b373e5f)
- Slight cleanup of fabric code - by ManInMyVan (0df77dd)
- Reorder publication of artifacts to Modrinth and update supported versions - by Axionize (bfd2bd0)
- Show size for applicable reach/hitbox flags - by ManInMyVan (6280b28)
- Don't simulate movement in unloaded chunks?
Who knows what other problems this could cause... - by SamB440 (0ba3317)
- Bump cloud to beta.13, fixes #2318 - by SamB440 (c323cf0)
- Disable PacketOrderP, fixes #2327 - by SamB440 (ea1f161)
- New translation ro.yml (#2285)
Config Romanian translation for grim ac. - by ItzBloxxy (918e657)
- Disable ExploitB "invalid page characters" check - by ManInMyVan (def2163)
- Small piston optimization - by AoElite (ba1d1db)
- Tweak GrimDump output and include some non-default alert settings - by AoElite (5c71531)
- Hopefully make installation instructions more clear
also moves it higher on the page - by ManInMyVan (b14628c)
- Make sure that we use packet-based inventory state after closing the inventory - by cyramek (a46d296)
- Update CrashC.java (#2350) - by Weigurde (6df484b)
- Bump PacketEvents version - by Axionize (9b500a2)
- Migrate workflows to tenki (#2362) - by tenki-cloud[bot] (e1bd2ed)
- Remove some unnecessary publishing paths - by AoElite (3380d7f)
- Optimise bounding box calculations - by cyramek (3f67272)
- Setback changes - by SamB440 (8ddd7f1)
- Improve bypass template - by ManInMyVan (ba91251)
- More consistent issue templates - by ManInMyVan (499bf7e)
- Fix spectate command resetting gamemode when spectating someone in another dimension (#2365)
This issue happened when using the spectate command on a player in another dimension. the spectator was set to survival mode.
When spectating a player in another dimension, you would previously get set to survival mode, this is now fixed. - by GroupXyz (3fc985c)
- Fixed Reach false positive with Happy Ghast and clients under 1.21.6 (#2352) - by Greened (e386b93)
- Bump PacketEvents version - by Axionize (2d785fd)
- Make discord webhook pattern stricter and support different api versions - by AoElite (3bf3226)
- Update lunar's brand format in all the configs - by AoElite (2d053d0)
- More setback changes - by SamB440 (4d28f85)
- Adjust canGlide logic to try to improve compatibility - by AoElite (679e869)
- Adjust isGlider logic to account for items that can't be depleted - by AoElite (acf273f)
- Revert "fix incorrect EquipmentSlot mappings in isGlider logic"
This reverts commit d96d683b14150d6e0f486a63cf1a74c417c6a84b. - by AoElite (0153ce3)
- Refactor repo logic to support mavenLocalOverride - by Axionize (965008f)
- Bump PE - by Axionize (12f6af3)
- Add initial support for 1.21.11 and update dependencies - by Axionize (97b8758)
- Fix gliders not working in offhand slot (#2397) - by iLemon (32f607b)
- Bump github actions-upload-artifact versions - by Axionize (9bd12cc)
- Make runner configurable to work around Tenki issues (#2398) - by Axionize (f772b74)
- Fix NPE when Spigot late-bind option is enabled & improve injection logic
This PR fixes a NullPointerException that occurred when the Spigot "late-bind" option was enabled on servers prior to 1.14.4.
Changes:
- Changed injection priority: The plugin now attempts to register the Paper TickEndEvent first. It only falls back to NMS reflection if the Paper API is unavailable.
- Added a null check for the server connection instance to prevent the NPE during reflection injection.
- Added specific error logging: If injection fails on legacy servers (< 1.14.4), the plugin now reflectively checks spigot.yml settings to explicitly warn the user if late-bind is the cause.
- Refactored reflection logic to use ReflectionUtils for better safety and code cleanliness. - by uRyanxD (5f02ccc)
- Bump PE - by Axionize (92d06e4)
- Build ci changes - by Axionize (9626712)
- Cache map values for performance (#2407) - by Rothes (8f0036e)
- Clean up OptifineFastMath.java a bit - by ManInMyVan (2d8def6)
- Support CAMERA packet (#2303) - by ManInMyVan (d374c2b)
- Add PlatformPlayerFactory#getOfflinePlayers() - by Axionize (ce0dad5)
- Stash work - by Axionize (90193b4)
- Fix reach regression in not flagging clients from versions 1.15 to 1.20.1 due to rot only regression - by Axionize (60b70d1)
- Merge branch 'fix/reach-infinite-expanding-hitbox' into 2.0 - by Axionize (4292e93)
- Use config history.database.port for database connection port. Fixes #2415 - by SamB440 (42b6630)
- Prevent torn reads and race condition on respawn on Fabric from reconstruction of ServerPlayerEntity - by Axionize (101473b)
- Resync on netty thread instead of trying to send packets in region thread - by Axionize (80f90e6)
- Add option to disable resyncing without API with a NoOp resync handler - by Axionize (7c68947)
- Fix Sculk Vein replacement Phase/Simulation falses & Optimize canBeReplaced logic
b79d5fd)d0b30de)98fd065)6186abc)07d2010)639490a)14573da)a2074d0)8016586)ca64aab)be35b9b)9cb4547)dbd7510)02f6a3b)Add Back Support for Legacy API (#2409)
Add back support for the legacy API temporarily
Bump API to release version - by Axionize (95e2774)
1.21.11 support (#2420)
fix horse modern/legacy jumping mechanics, camel dash cooldown tracking (#2199)
implement UseEffects component
fixes: https://github.com/GrimAnticheat/Grim/issues/2396
initial support for hitbox margin
compensableDashableEntities -> dashableEntities
implement floating in water
implement nautilus movement
todo: fix dashing, fix step
this code was dropped in:
https://github.com/GrimAnticheat/Grim/commit/1a6a8c57583ef12556241383829eb5f7dcc3595f
fix nautilus dashing
improve precision while dashing
actually fix dashing
I'm really dumb ngl, vanilla packet sequence:
1. rot packet with PLAYER look angle
2. vehicle move packet with ENTITY look angle
vehicle move packet overrides player's yaw and pitch from first rot packet
I will refactor this later
support new gliding behavior
refactor nautilus prediction engines
implement parched boundingbox
add support for fast lava gameplay attribute in fluid pushing
camels have variants now
WIP tick-based world borders
fix off ground camel dashing
thanks thisisatest8406
add onGround tracking for entities
revert tracking entity onGround
I decided that I don't care enough, camels are bugged as hell, everything desync
remove unneeded diff
fix pending jumps and camel off-ground dashing
remove outdated comment regarding nautilus jumping logic
Add support for max_reach AttackRange component
Co-authored-by: Axionize 154778082+Axionize@users.noreply.github.com - by Cyramek (bf85863)
- Unify all APIs - by Axionize (c5855fd)
- Fix support for messing legacy getGrimUser(Player player) method - by Axionize (8001f6c)
- Bump PE - by Axionize (21f6988)
- Bump API to no longer shade Player shim - by Axionize (50a25d9)
- Command API fallback handling - by Axionize (08770f0)
- Refactor Fabric to make permissions API and cloud optional dependencies - by Axionize (b9fa89c)
- Fabric 1.21.11 support for fabric-permissions-api-v0 not being included - by Axionize (075cec8)
- Update supported fabric versions - by Axionize (3659060)
- Bump PE - by Axionize (a54329a)
- Fix early init of CommandManager on Bukkit causing startup issues - by Axionize (fefe0d1)
- Rename Fabric mc1211 -> mc12111 module - by Axionize (9d1682d)
- Fix fast break false when switching tools via shulker box (#2454) - by Ayou (c043357)
- Revert this for now, until we find a better way to fix it - by cyramek (b7a719d)
- Don't let player reuse setback velocity (fixes #2445) (#2450) - by SamB440 (cd86c14)
- Rename Fabric1211PlatformServer -> Fabric12111PlatformServer - by Axionize (88cfffc)
- Refactor Resolver Lifecycle - by Axionize (35174fd)
- Evoker fangs are unhittable - by SamB440 (80afaae)
- Bump PE: Fixes Packet Ordering and mapping issues
- Previa packet mapping failing due to incorrect upstream call to getPacketVersion() instead of getClientVersion(), affects previa on all versions
- Fix Krypton + Via + Grim compat form listener relocation - by Axionize (6c49a01)
- Add method exposing int block type from CompensatedWorld (#2464)
Implement feature
Update common/src/main/java/ac/grim/grimac/utils/latency/CompensatedWorld.java
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by Cubicake (2b62148)
- Add /grim testwebhook - by ManInMyVan (327b947)
- Improve comments in Chinese configuration file (#2490)
Updated comments in zh.yml for clarity and translation. - by MatrixU5er (b65b7f0)
- Load after ZNPCsPlus - by ManInMyVan (1d0cbb7)
- Bump grim-api version - by AoElite (7be8f51)
- Update Grim API to 1.2.4.0 - by Axionize (4ca65b1)
- Fix getting hitbox for unstable scaffolding - by Axionize (f0fbc9d)
- History rewrite marker - by Axionize (7d487a4)
- Add support for attribute swapping to and from items with attack range components - by Axionize (b281a2d)
- Update translation - by tjshtqwq (c2acfae)
- Merge branch '2.0' into patch-1 - by tjshtqwq (75b5405)
- Update zh.yml - by tjshtqwq (f54ca0e)
- Clean up typos and translator notes - by Axionize (1f55742)
- Merge PR #2267 - Improved Chinese Translations - by Axionize (439477e)
- Add Polish configuration file for GrimAC (#2501)
Co-authored-by: DawixTV 92529087+DawixTV@users.noreply.github.com - by dxw1d (272a889)
- Revert "load after ZNPCsPlus"
This reverts commit 1d0cbb7078205b0b265a8ae6047bd304811ed130. - by ManInMyVan (c7983b7)
- Remove unused imports in Reach.java - by ManInMyVan (d273229)
- Fix Discord Webhook PAPI Placeholders (#2518)
Fix support for Discord markdown parsing of several edge cases
Fix PAPI name mangling
Cleanup Implementation of new Discord Webhook handling
Document exploit choice to not use volatile when technically correct to
Address all code review concerns
Cleanup unused code
Refactor packages for discord related data types - by Axionize (c356f5f)
53cf3e8)d4611f1)Closes https://github.com/GrimAnticheat/Grim/issues/2520 - by Axionize (879d566)
- Account for 1.21.2+ clients ignoring teleport packets while in vehicle (#2470)
fix: https://github.com/GrimAnticheat/Grim/issues/2463 - by Cyramek (8a0d1e2)
- Bump version to 2.3.74 - by cyramek (546abf0)
- Add support for viaversion attack range component for 1.21.11+ clients on legacy servers (#2474)
add support for https://github.com/ViaVersion/ViaVersion/pull/4733 - by Cyramek (7e8b6b6)
- Fix encoding of Polymer blocks breaking when resyncing with world, optimize allocations Fabric PlatformChunk.getBlockId(x,y,z) - by Axionize (0a1ce1d)
- Reset food level on respawn (#2528) - by SamB440 (5749463)
- Fix ghost block mitigation on floating block placement (#2530) - by RareMen (13fb273)
- Exempt spectators in 1.21.11+ from PacketOrderB (fixes #2493) - by ManInMyVan (29c0757)
- Slightly change BadPacketsP description - by ManInMyVan (539e822)
- Rename BadPacketsC to SelfInteract - by ManInMyVan (177c003)
- Set CheckManager#packetEntityReplication on init - by ManInMyVan (3055cd1)
- Make TransactionOrder verbose consistent with other checks - by ManInMyVan (68f34f2)
- Require hand to be MAIN_HAND in PacketOrderB - by ManInMyVan (598aae0)
- Check for keepsprint on 1.9 servers (#2070)
check for keepsprint on 1.9 servers
update held item in AttackCooldownHandler every time the slot is changed
fix #2389
change AttackCooldownHandler package - by ManInMyVan (e954124)
e40ec01)5f9b9dd)740f7f4)bf10e23)f0e15b0)f380fcd)9b06c86)isPacketInventoryActive was false before allowing revert - by SamB440 (6a46c35)11d572f)7d9dc86)89eedbe)77c48f4)10cb176)d1b2135)7fd7bc1)Fix PostgreSQL UUID retrieval in history command (#2575)
Fix PostgreSQL UUID retrieval in history command
Improve error handling for UUID retrieval in DatabaseUtils
Use if-else if in DatabaseUtils.getUuid - by Fussel (efd796c)
ece9f3c)b55a12c)e8dc9ae)3e07a0e)890799d)Fix MYSQL 8 support (#2534)
Fix MYSQL 8 support
Prevent double index error from sending everytime. - by Milan Ensink (35fe1f0)
1b60cb8)99dce8c)c169d9c)7885555)only bukkit platform for now - by Cyramek (a9b91e7)
- Bump PE for 26.1.2 support - by Axionize (f36f870)
- Implement fluid count tracker - by cyramek (f9fdfa7)
- Always use main hand for attack packets - by cyramek (61e9e69)
- Don't pass null clientVersion so chunk will use server version for mapping's lookup
broken after recent packetevents update that overriden #set method in Chunk_v1_18 - by cyramek (8dc657a)
- Fix some falses regarding camel sprinting (#2462)
Fix camel sprinting falses
Forgot about camel husks
Obey code style
Fix respawns
Obey code style (for real this time)
Fix SprintG false with camels
Move camel sprinting state to VehicleData - by LaserSlime (d55f1b7)
6c3ccb4)3664f4d)794e120)a86dedf)7499d10)66b3334)Fixes issues on 1.8.9 / Older versions thinking that daylight detectors connect to fences / iron bars
Related: https://github.com/GrimAnticheat/Grim/issues/1856 - by KotlinList (d81d03f)
- Bump packetevents to 22c9961 (relocateHandlers respects compress/decompress)
fixes #2552 - by Axionize WS1 (257bffe)
- Fix issues with DynamicConnecting.java with client versions (#2618)
tested with 1.8.9, 1.20.4 and ViaVersion on 1.20.4 Server and 1.8.9 Client
related issue: https://github.com/GrimAnticheat/Grim/issues/2148 - by InetAddress (5c46b0a)
- History rewrite: five backends, session-based, ring-buffer write path + universal config autoupdater (#2622) - by Axionize (578c784)
- Minor Post code cleanup - by ManInMyVan (053b090)
- Don't cancel CLOSE_WINDOW in PacketOrderK - by ManInMyVan (fbabbf2)
- Rename grim.legacy. @CheckData stable_keys to descriptive names - by Axionize WS1 (c233a60)
- Escape backslashes when emitting double-quoted scalars (#2623) - by Axionize WS1 (84bd90d)
- Fix StackOverflow on isChunkLoaded by routing through ChunkSource (#2568) - by Axionize WS2 (c88b494)
- Kick anyone who sends vv:proxy_details - by ManInMyVan* (3021287)
- Revert "kick anyone who sends vv:proxy_details"
This reverts commit 3021287391de4aee964abe5bcf6c452f72f68a7b. - by AoElite (73f63c1)
- Fixed Typo in shulker uncertainty logic (#2630) - by aquip (2508a34)
- Kick anyone who sends vv:proxy_details - by ManInMyVan (e9c918d)
- Add support for URL timeout customization and reimplement via proxy kicking - by AoElite (fd9e0f8)
- Add --name / --match / --grep regex filters to /grim history - by Axionize WS1 (d591f10)
- Bump grim-api pin to 1.3.2.0 - by Axionize WS1 (2c60aae)
- Redstone wall torch should use isLit instead of isPowered - by cyramek (21f0c3d)
- Bump grim-api to 1.3.2.1 - by Axionize WS2 (17d4d2f)
- Check cameraEntity.isSelf() in isTickingReliablyFor - by ManInMyVan (3e5afef)
- Simplify shulker opening/closing - by ManInMyVan (fc899a3)
- Min, not max - by ManInMyVan (83a6d98)
- Happy ghast scale is also clamped - by ManInMyVan (5254190)
- Remove unused import - by ManInMyVan (145f71c)
- Fall back to modrinth for changelog range when push payload missing - by Axionize WS1 (4c866d0)
- Small cleanup - by ManInMyVan (5a40a06)
- Remove unused import - by ManInMyVan (215a1e6)
- Tweak "UrlTimeout" constant for consistency - by AoElite (addabec)
- Update DiscordManager webhook regex to support canary and make timeout configurable - by AoElite (99e309f)
- Check rotations in teleports (#2268) - by ManInMyVan (717829a)
- Make name and stableKey in CheckData not optional - by ManInMyVan (65d1050)
- Only check isSprinting when rewarding in sprint checks - by ManInMyVan (c549b19)
- Use violation setback in SprintA - by ManInMyVan (6953235)
- Bump grim-api to 1.4.0.0 - by Axionize (cdd490b)
- Apply block effects for swim-hop vector (#2648)
apply block effects for swim-hop vector
adjust swim hop constants - by Cyramek (73c60d0)
62b2268)5fa803e)36675eb)fb4ad7a)20d68c1)25d10f4)29316a7)70223cd)ff214a4)e32d091)fdaf096)2af658c)9b1aa1a)6252fe6)client-brand.ignored-clients in config - by ManInMyVan (60d3ecf)fd9e91d)d501dfe)43db51d)also reduce object allocations - by ManInMyVan (8083f42)
- More object alloc reduction - by ManInMyVan (d939109)
- Mark ChatD as stable - by ManInMyVan (5869433)
- More code cleanup - by ManInMyVan (935668a)
- Mark some listeners as pre-via - by ManInMyVan (ce89791)
- Reduce memory allocation and exclude annotation processors (#2669)
ComplexCollisionBox#downCast: Reduce alloc
ReachInterpolationData#getPossibleLocationCombined: Reduce alloc
SimpleCollisionBox: Only alloc boxes when needed
SimpleCollisionBox#betweenCornersInDirection: Skip Vector3d alloc
Materials: Use IdentityHashMap backed Sets to reduce alloc (StateType#hashCode)
build.gradle.kts: Exclude annotation processor service from shadowJar
Update common/src/main/java/ac/grim/grimac/utils/collisions/datatypes/ComplexCollisionBox.java
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: Dieu info@l4b.org
Co-authored-by: Techirion 126729304+Techirion@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by NO-UUID (6152908)
- Use lombok getter for CompensatedInventory.startOfTickStack - by ManInMyVan (199b673)
- Don't box if we don't need to - by ManInMyVan (bebccfa)
- Make chat checks and BadPacketsM pre-via - by ManInMyVan (21f1534)
5f8692d)fc47c5b)0d22e34)29d28c6)0321e0b)832194a)2fa022e)we're now in 1e-15 average - by cyramek (7461aca)
- Useless player fetch (#2329) - by Szypkoo (115c329)
- Fix #2330 - by ManInMyVan (17cf067)
- World isLoaded throws method not found (#2372) - by Nils Gereke (403fd36)
- Fix null pointer when checking if bread was a setback - by AoElite (a1b4893)
- Fix incorrect EquipmentSlot mappings in isGlider logic - by AoElite (d96d683)
- Exclude Azalea from Sapling hitbox definitions - by Axionize (4a104e2)
- Bubble Column, Azalea, Bed, and Ceiling Wall Sign hit/collision boxes - by Axionize (c019566)
- Bump gradle wrapper to fix build - by Axionize (c2afc62)
- Fix NPE due to incorrect initialization order - by cyramek (9e745fd)
- Fix elytra packet abuse on 1.8 servers - by ManInMyVan (f95d877)
- Honor per-check nomodifypacket (#2477) - by runningbird2 (f118b5c)
- Fix many issues with collisions while riding nautilus/happyghast (#2460)
thanks LaserSlime and Axionize for help! - by Cyramek (302bed1)
- Fix noslow with invalid drop item packets - by ManInMyVan (48115eb)
- Fix #2563 - by ManInMyVan (cd3576b)
- Fix #1990 - by ManInMyVan (b9da63c)
- Fix #2579 - by ManInMyVan (13ad8bd)
- Fix PacketOrderC viabackwards false - by ManInMyVan (fc75e51)
- Fix bouncy blocks (#2473) - by Cyramek (19c12b7)
- Fix typo in MultiActionsC - by ManInMyVan (8861589)
- Fix page length check (#2637) - by Captain-S0L0 (f81e183)
- Fix shulker & dragon scale attrubute - by ManInMyVan (3d95fea)
- Fix 1.9 client noslow on 1.8 servers (#2607)
fix 1.9 client noslow on 1.8 servers
fix metadata ids - by ManInMyVan (5c6de64)
7d823f5)ce86075)new trig lookup table just dropped - by Cyramek (494e9c5)
- Fix 26.1 spigot support - by ManInMyVan (7ccff01)
- Fix BadPacketsM falses - by ManInMyVan (3cd17cc)
- Fix golden dandelion in a flower pot collision - by cyramek (02f1dc3)
- Fix entity boundingbox replication regression (#2642)
fix entity boundingbox replication regression
check if tick end event exists - by Cyramek (8a3767b)
7a7e07f)c156c00)we're in E-15 now on average - by Cyramek (f3ed3b2)
- Fix 1.8 wither skeleton hitbox - by ManInMyVan (fdd734a)
- Fix #2677 - by ManInMyVan (34c41db)
- Fix precision loss in <=1.19.3 - by cyramek (635708a)
- Fix 1.21.11 clients flagging reach on 1.8 servers - by ManInMyVan (edc3987)
c2c044f)bf637f5)75cc402)955b725)55da384)b6f9f86)15.04.2026 · 827 downloads
f0fbc9d)7d487a4)b281a2d)c2acfae)75b5405)f54ca0e)1f55742)439477e)Co-authored-by: DawixTV 92529087+DawixTV@users.noreply.github.com - by dxw1d (272a889)
- Revert "load after ZNPCsPlus"
This reverts commit 1d0cbb7078205b0b265a8ae6047bd304811ed130. - by ManInMyVan (c7983b7)
- Remove unused imports in Reach.java - by ManInMyVan (d273229)
- Fix Discord Webhook PAPI Placeholders (#2518)
Fix support for Discord markdown parsing of several edge cases
Fix PAPI name mangling
Cleanup Implementation of new Discord Webhook handling
Document exploit choice to not use volatile when technically correct to
Address all code review concerns
Cleanup unused code
Refactor packages for discord related data types - by Axionize (c356f5f)
53cf3e8)d4611f1)Closes https://github.com/GrimAnticheat/Grim/issues/2520 - by Axionize (879d566)
- Account for 1.21.2+ clients ignoring teleport packets while in vehicle (#2470)
fix: https://github.com/GrimAnticheat/Grim/issues/2463 - by Cyramek (8a0d1e2)
- Bump version to 2.3.74 - by cyramek (546abf0)
- Add support for viaversion attack range component for 1.21.11+ clients on legacy servers (#2474)
add support for https://github.com/ViaVersion/ViaVersion/pull/4733 - by Cyramek (7e8b6b6)
- Fix encoding of Polymer blocks breaking when resyncing with world, optimize allocations Fabric PlatformChunk.getBlockId(x,y,z) - by Axionize (0a1ce1d)
- Reset food level on respawn (#2528) - by SamB440 (5749463)
- Fix ghost block mitigation on floating block placement (#2530) - by RareMen (13fb273)
- Exempt spectators in 1.21.11+ from PacketOrderB (fixes #2493) - by ManInMyVan (29c0757)
- Slightly change BadPacketsP description - by ManInMyVan (539e822)
- Rename BadPacketsC to SelfInteract - by ManInMyVan (177c003)
- Set CheckManager#packetEntityReplication on init - by ManInMyVan (3055cd1)
- Make TransactionOrder verbose consistent with other checks - by ManInMyVan (68f34f2)
- Require hand to be MAIN_HAND in PacketOrderB - by ManInMyVan (598aae0)
- Check for keepsprint on 1.9 servers (#2070)
check for keepsprint on 1.9 servers
update held item in AttackCooldownHandler every time the slot is changed
fix #2389
change AttackCooldownHandler package - by ManInMyVan (e954124)
e40ec01)5f9b9dd)740f7f4)162a8d1)5efefe5)bf10e23)f0e15b0)f380fcd)9b06c86)isPacketInventoryActive was false before allowing revert - by SamB440 (6a46c35)11d572f)7d9dc86)89eedbe)77c48f4)10cb176)d1b2135)7fd7bc1)Fix PostgreSQL UUID retrieval in history command (#2575)
Fix PostgreSQL UUID retrieval in history command
Improve error handling for UUID retrieval in DatabaseUtils
Use if-else if in DatabaseUtils.getUuid - by Fussel (efd796c)
ece9f3c)b55a12c)e8dc9ae)3e07a0e)890799d)Fix MYSQL 8 support (#2534)
Fix MYSQL 8 support
Prevent double index error from sending everytime. - by Milan Ensink (35fe1f0)
1b60cb8)99dce8c)c169d9c)65815fc)thanks LaserSlime and Axionize for help! - by Cyramek (302bed1)
- Fix noslow with invalid drop item packets - by ManInMyVan (48115eb)
- Fix #2563 - by ManInMyVan (cd3576b)
- Fix #1990 - by ManInMyVan (b9da63c)
- Fix #2579 - by ManInMyVan (13ad8bd)
- Fix PacketOrderC viabackwards false - by ManInMyVan (fc75e51)
15.04.2026 · 7 358 downloads
f0fbc9d)7d487a4)b281a2d)c2acfae)75b5405)f54ca0e)1f55742)439477e)Co-authored-by: DawixTV 92529087+DawixTV@users.noreply.github.com - by dxw1d (272a889)
- Revert "load after ZNPCsPlus"
This reverts commit 1d0cbb7078205b0b265a8ae6047bd304811ed130. - by ManInMyVan (c7983b7)
- Remove unused imports in Reach.java - by ManInMyVan (d273229)
- Fix Discord Webhook PAPI Placeholders (#2518)
Fix support for Discord markdown parsing of several edge cases
Fix PAPI name mangling
Cleanup Implementation of new Discord Webhook handling
Document exploit choice to not use volatile when technically correct to
Address all code review concerns
Cleanup unused code
Refactor packages for discord related data types - by Axionize (c356f5f)
53cf3e8)d4611f1)Closes https://github.com/GrimAnticheat/Grim/issues/2520 - by Axionize (879d566)
- Account for 1.21.2+ clients ignoring teleport packets while in vehicle (#2470)
fix: https://github.com/GrimAnticheat/Grim/issues/2463 - by Cyramek (8a0d1e2)
- Bump version to 2.3.74 - by cyramek (546abf0)
- Add support for viaversion attack range component for 1.21.11+ clients on legacy servers (#2474)
add support for https://github.com/ViaVersion/ViaVersion/pull/4733 - by Cyramek (7e8b6b6)
- Fix encoding of Polymer blocks breaking when resyncing with world, optimize allocations Fabric PlatformChunk.getBlockId(x,y,z) - by Axionize (0a1ce1d)
- Reset food level on respawn (#2528) - by SamB440 (5749463)
- Fix ghost block mitigation on floating block placement (#2530) - by RareMen (13fb273)
- Exempt spectators in 1.21.11+ from PacketOrderB (fixes #2493) - by ManInMyVan (29c0757)
- Slightly change BadPacketsP description - by ManInMyVan (539e822)
- Rename BadPacketsC to SelfInteract - by ManInMyVan (177c003)
- Set CheckManager#packetEntityReplication on init - by ManInMyVan (3055cd1)
- Make TransactionOrder verbose consistent with other checks - by ManInMyVan (68f34f2)
- Require hand to be MAIN_HAND in PacketOrderB - by ManInMyVan (598aae0)
- Check for keepsprint on 1.9 servers (#2070)
check for keepsprint on 1.9 servers
update held item in AttackCooldownHandler every time the slot is changed
fix #2389
change AttackCooldownHandler package - by ManInMyVan (e954124)
e40ec01)5f9b9dd)740f7f4)162a8d1)5efefe5)bf10e23)f0e15b0)f380fcd)9b06c86)isPacketInventoryActive was false before allowing revert - by SamB440 (6a46c35)11d572f)7d9dc86)89eedbe)77c48f4)10cb176)d1b2135)7fd7bc1)Fix PostgreSQL UUID retrieval in history command (#2575)
Fix PostgreSQL UUID retrieval in history command
Improve error handling for UUID retrieval in DatabaseUtils
Use if-else if in DatabaseUtils.getUuid - by Fussel (efd796c)
ece9f3c)b55a12c)e8dc9ae)3e07a0e)890799d)Fix MYSQL 8 support (#2534)
Fix MYSQL 8 support
Prevent double index error from sending everytime. - by Milan Ensink (35fe1f0)
1b60cb8)99dce8c)c169d9c)65815fc)thanks LaserSlime and Axionize for help! - by Cyramek (302bed1)
- Fix noslow with invalid drop item packets - by ManInMyVan (48115eb)
- Fix #2563 - by ManInMyVan (cd3576b)
- Fix #1990 - by ManInMyVan (b9da63c)
- Fix #2579 - by ManInMyVan (13ad8bd)
- Fix PacketOrderC viabackwards false - by ManInMyVan (fc75e51)
26.02.2026 · 1 350 downloads
42b6630)101473b)80f90e6)7c68947)Fix Sculk Vein replacement Phase/Simulation falses & Optimize canBeReplaced logic
Added replacement logic for SCULK_VEIN (mirrors GLOW_LICHEN).
b79d5fd)d0b30de)98fd065)6186abc)07d2010)639490a)14573da)a2074d0)8016586)ca64aab)be35b9b)9cb4547)dbd7510)02f6a3b)5c17fba)Add Back Support for Legacy API (#2409)
Add back support for the legacy API temporarily
Bump API to release version - by Axionize (95e2774)
1.21.11 support (#2420)
fix horse modern/legacy jumping mechanics, camel dash cooldown tracking (#2199)
implement UseEffects component
fixes: https://github.com/GrimAnticheat/Grim/issues/2396
initial support for hitbox margin
compensableDashableEntities -> dashableEntities
implement floating in water
implement nautilus movement
todo: fix dashing, fix step
this code was dropped in:
https://github.com/GrimAnticheat/Grim/commit/1a6a8c57583ef12556241383829eb5f7dcc3595f
fix nautilus dashing
improve precision while dashing
actually fix dashing
I'm really dumb ngl, vanilla packet sequence:
1. rot packet with PLAYER look angle
2. vehicle move packet with ENTITY look angle
vehicle move packet overrides player's yaw and pitch from first rot packet
I will refactor this later
support new gliding behavior
refactor nautilus prediction engines
implement parched boundingbox
add support for fast lava gameplay attribute in fluid pushing
camels have variants now
WIP tick-based world borders
fix off ground camel dashing
thanks thisisatest8406
add onGround tracking for entities
revert tracking entity onGround
I decided that I don't care enough, camels are bugged as hell, everything desync
remove unneeded diff
fix pending jumps and camel off-ground dashing
remove outdated comment regarding nautilus jumping logic
Add support for max_reach AttackRange component
Co-authored-by: Axionize 154778082+Axionize@users.noreply.github.com - by Cyramek (bf85863)
- Unify all APIs - by Axionize (c5855fd)
- Fix support for messing legacy getGrimUser(Player player) method - by Axionize (8001f6c)
- Bump PE - by Axionize (21f6988)
- Bump API to no longer shade Player shim - by Axionize (50a25d9)
- Command API fallback handling - by Axionize (08770f0)
- Refactor Fabric to make permissions API and cloud optional dependencies - by Axionize (b9fa89c)
- Fabric 1.21.11 support for fabric-permissions-api-v0 not being included - by Axionize (075cec8)
- Update supported fabric versions - by Axionize (3659060)
- Bump PE - by Axionize (a54329a)
- Fix early init of CommandManager on Bukkit causing startup issues - by Axionize (fefe0d1)
- Rename Fabric mc1211 -> mc12111 module - by Axionize (9d1682d)
- Fix fast break false when switching tools via shulker box (#2454) - by Ayou (c043357)
- Revert this for now, until we find a better way to fix it - by cyramek (b7a719d)
- Don't let player reuse setback velocity (fixes #2445) (#2450) - by SamB440 (cd86c14)
- Rename Fabric1211PlatformServer -> Fabric12111PlatformServer - by Axionize (88cfffc)
- Refactor Resolver Lifecycle - by Axionize (35174fd)
- Evoker fangs are unhittable - by SamB440 (80afaae)
- Bump PE: Fixes Packet Ordering and mapping issues
- Previa packet mapping failing due to incorrect upstream call to getPacketVersion() instead of getClientVersion(), affects previa on all versions
- Fix Krypton + Via + Grim compat form listener relocation - by Axionize (6c49a01)
- Add method exposing int block type from CompensatedWorld (#2464)
Implement feature
Update common/src/main/java/ac/grim/grimac/utils/latency/CompensatedWorld.java
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by Cubicake (2b62148)
- Add /grim testwebhook - by ManInMyVan (327b947)
- Improve comments in Chinese configuration file (#2490)
Updated comments in zh.yml for clarity and translation. - by MatrixU5er (b65b7f0)
- Load after ZNPCsPlus - by ManInMyVan (1d0cbb7)
- Bump grim-api version - by AoElite (7be8f51)
- Update Grim API to 1.2.4.0 - by Axionize (4ca65b1)
- Merge branch '2.0' into lightning
0a6ac7a)29d28c6)f95d877)f118b5c)26.02.2026 · 9 729 downloads
42b6630)101473b)80f90e6)7c68947)Fix Sculk Vein replacement Phase/Simulation falses & Optimize canBeReplaced logic
Added replacement logic for SCULK_VEIN (mirrors GLOW_LICHEN).
b79d5fd)d0b30de)98fd065)6186abc)07d2010)639490a)14573da)a2074d0)8016586)ca64aab)be35b9b)9cb4547)dbd7510)02f6a3b)5c17fba)Add Back Support for Legacy API (#2409)
Add back support for the legacy API temporarily
Bump API to release version - by Axionize (95e2774)
1.21.11 support (#2420)
fix horse modern/legacy jumping mechanics, camel dash cooldown tracking (#2199)
implement UseEffects component
fixes: https://github.com/GrimAnticheat/Grim/issues/2396
initial support for hitbox margin
compensableDashableEntities -> dashableEntities
implement floating in water
implement nautilus movement
todo: fix dashing, fix step
this code was dropped in:
https://github.com/GrimAnticheat/Grim/commit/1a6a8c57583ef12556241383829eb5f7dcc3595f
fix nautilus dashing
improve precision while dashing
actually fix dashing
I'm really dumb ngl, vanilla packet sequence:
1. rot packet with PLAYER look angle
2. vehicle move packet with ENTITY look angle
vehicle move packet overrides player's yaw and pitch from first rot packet
I will refactor this later
support new gliding behavior
refactor nautilus prediction engines
implement parched boundingbox
add support for fast lava gameplay attribute in fluid pushing
camels have variants now
WIP tick-based world borders
fix off ground camel dashing
thanks thisisatest8406
add onGround tracking for entities
revert tracking entity onGround
I decided that I don't care enough, camels are bugged as hell, everything desync
remove unneeded diff
fix pending jumps and camel off-ground dashing
remove outdated comment regarding nautilus jumping logic
Add support for max_reach AttackRange component
Co-authored-by: Axionize 154778082+Axionize@users.noreply.github.com - by Cyramek (bf85863)
- Unify all APIs - by Axionize (c5855fd)
- Fix support for messing legacy getGrimUser(Player player) method - by Axionize (8001f6c)
- Bump PE - by Axionize (21f6988)
- Bump API to no longer shade Player shim - by Axionize (50a25d9)
- Command API fallback handling - by Axionize (08770f0)
- Refactor Fabric to make permissions API and cloud optional dependencies - by Axionize (b9fa89c)
- Fabric 1.21.11 support for fabric-permissions-api-v0 not being included - by Axionize (075cec8)
- Update supported fabric versions - by Axionize (3659060)
- Bump PE - by Axionize (a54329a)
- Fix early init of CommandManager on Bukkit causing startup issues - by Axionize (fefe0d1)
- Rename Fabric mc1211 -> mc12111 module - by Axionize (9d1682d)
- Fix fast break false when switching tools via shulker box (#2454) - by Ayou (c043357)
- Revert this for now, until we find a better way to fix it - by cyramek (b7a719d)
- Don't let player reuse setback velocity (fixes #2445) (#2450) - by SamB440 (cd86c14)
- Rename Fabric1211PlatformServer -> Fabric12111PlatformServer - by Axionize (88cfffc)
- Refactor Resolver Lifecycle - by Axionize (35174fd)
- Evoker fangs are unhittable - by SamB440 (80afaae)
- Bump PE: Fixes Packet Ordering and mapping issues
- Previa packet mapping failing due to incorrect upstream call to getPacketVersion() instead of getClientVersion(), affects previa on all versions
- Fix Krypton + Via + Grim compat form listener relocation - by Axionize (6c49a01)
- Add method exposing int block type from CompensatedWorld (#2464)
Implement feature
Update common/src/main/java/ac/grim/grimac/utils/latency/CompensatedWorld.java
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by Cubicake (2b62148)
- Add /grim testwebhook - by ManInMyVan (327b947)
- Improve comments in Chinese configuration file (#2490)
Updated comments in zh.yml for clarity and translation. - by MatrixU5er (b65b7f0)
- Load after ZNPCsPlus - by ManInMyVan (1d0cbb7)
- Bump grim-api version - by AoElite (7be8f51)
- Update Grim API to 1.2.4.0 - by Axionize (4ca65b1)
- Merge branch '2.0' into lightning
0a6ac7a)29d28c6)f95d877)f118b5c)31.12.2025 · 1 973 downloads
679e869)acf273f)This reverts commit d96d683b14150d6e0f486a63cf1a74c417c6a84b. - by AoElite (0153ce3)
- Refactor repo logic to support mavenLocalOverride - by Axionize (965008f)
- Bump PE - by Axionize (12f6af3)
- Add initial support for 1.21.11 and update dependencies - by Axionize (97b8758)
- Fix gliders not working in offhand slot (#2397) - by iLemon (32f607b)
- Bump github actions-upload-artifact versions - by Axionize (9bd12cc)
- Make runner configurable to work around Tenki issues (#2398) - by Axionize (f772b74)
- Fix NPE when Spigot late-bind option is enabled & improve injection logic
This PR fixes a NullPointerException that occurred when the Spigot "late-bind" option was enabled on servers prior to 1.14.4.
Changes:
- Changed injection priority: The plugin now attempts to register the Paper TickEndEvent first. It only falls back to NMS reflection if the Paper API is unavailable.
- Added a null check for the server connection instance to prevent the NPE during reflection injection.
- Added specific error logging: If injection fails on legacy servers (< 1.14.4), the plugin now reflectively checks spigot.yml settings to explicitly warn the user if late-bind is the cause.
- Refactored reflection logic to use ReflectionUtils for better safety and code cleanliness. - by uRyanxD (5f02ccc)
- Bump PE - by Axionize (92d06e4)
- Build ci changes - by Axionize (9626712)
- Cache map values for performance (#2407) - by Rothes (8f0036e)
- Merge remote-tracking branch 'origin/2.0' into lightning
8379457)2d8def6)d374c2b)ce0dad5)90193b4)60b70d1)4292e93)daa3bfe)d96d683)4a104e2)c019566)c2afc62)9e745fd)955b725)55da384)b6f9f86)31.12.2025 · 11 507 downloads
679e869)acf273f)This reverts commit d96d683b14150d6e0f486a63cf1a74c417c6a84b. - by AoElite (0153ce3)
- Refactor repo logic to support mavenLocalOverride - by Axionize (965008f)
- Bump PE - by Axionize (12f6af3)
- Add initial support for 1.21.11 and update dependencies - by Axionize (97b8758)
- Fix gliders not working in offhand slot (#2397) - by iLemon (32f607b)
- Bump github actions-upload-artifact versions - by Axionize (9bd12cc)
- Make runner configurable to work around Tenki issues (#2398) - by Axionize (f772b74)
- Fix NPE when Spigot late-bind option is enabled & improve injection logic
This PR fixes a NullPointerException that occurred when the Spigot "late-bind" option was enabled on servers prior to 1.14.4.
Changes:
- Changed injection priority: The plugin now attempts to register the Paper TickEndEvent first. It only falls back to NMS reflection if the Paper API is unavailable.
- Added a null check for the server connection instance to prevent the NPE during reflection injection.
- Added specific error logging: If injection fails on legacy servers (< 1.14.4), the plugin now reflectively checks spigot.yml settings to explicitly warn the user if late-bind is the cause.
- Refactored reflection logic to use ReflectionUtils for better safety and code cleanliness. - by uRyanxD (5f02ccc)
- Bump PE - by Axionize (92d06e4)
- Build ci changes - by Axionize (9626712)
- Cache map values for performance (#2407) - by Rothes (8f0036e)
- Merge remote-tracking branch 'origin/2.0' into lightning
8379457)2d8def6)d374c2b)ce0dad5)90193b4)60b70d1)4292e93)daa3bfe)d96d683)4a104e2)c019566)c2afc62)9e745fd)955b725)55da384)b6f9f86)08.11.2025 · 2 620 downloads
08.11.2025 · 8 882 downloads
02.08.2025 · 2 948 downloads
02.08.2025 · 13 587 downloads
13.07.2025 · 780 downloads
13.07.2025 · 2 883 downloads
13.07.2025 · 77 downloads
13.07.2025 · 151 downloads
07.07.2025 · 1 752 downloads
07.07.2025 · 13 069 downloads
03.07.2025 · 230 downloads
03.07.2025 · 769 downloads
01.07.2025 · 167 downloads
01.07.2025 · 645 downloads
30.06.2025 · 92 downloads
30.06.2025 · 248 downloads
30.06.2025 · 67 downloads
30.06.2025 · 196 downloads
27.05.2025 · 1 065 downloads
27.05.2025 · 3 964 downloads
26.05.2025 · 134 downloads
26.05.2025 · 380 downloads
20.05.2025 · 250 downloads
20.05.2025 · 738 downloads
15.05.2025 · 185 downloads
15.05.2025 · 557 downloads
12.05.2025 · 162 downloads
12.05.2025 · 413 downloads
09.05.2025 · 175 downloads
09.05.2025 · 393 downloads
07.05.2025 · 144 downloads
07.05.2025 · 274 downloads
07.05.2025 · 107 downloads
07.05.2025 · 259 downloads
04.05.2025 · 136 downloads
04.05.2025 · 345 downloads
03.05.2025 · 109 downloads
03.05.2025 · 283 downloads
30.04.2025 · 781 downloads
30.04.2025 · 4 157 downloads
30.04.2025 · 110 downloads
platform-independence/grim history will no longer waste resources if unused/disabled/cannot connect to database30.04.2025 · 127 downloads
platform-independence/grim history will no longer waste resources if unused/disabled/cannot connect to database23.04.2025 · 1 345 downloads
31.03.2025 · 3 244 downloads
30.03.2025 · 186 downloads
30.03.2025 · 132 downloads
THIS REQUIRE A CUSTOM PE FORK TO FIX SOME BUGS. DO NOT CONTACT ME ABOUT BLOCKS DISAPPEARING UNLESS YOU ARE USING THE LITE VERSION AND THIS PE BUILD OR NEWER IN MY PACKETEVENTS FORK
https://github.com/Axionize/packetevents/actions/runs/14158016425
29.03.2025 · 303 downloads
Massive internal changes made, please report any issues!
06.03.2025 · 2 389 downloads
02.03.2025 · 599 downloads
Fix upstream sillyness
26.02.2025 · 384 downloads
19.02.2025 · 590 downloads
12.02.2025 · 273 downloads
11.02.2025 · 196 downloads
Note: If you are using the lite version, fully fixing the falses with paintings requires merging in PRs from PacketEvents that are not in upstream yet. You can use this build of PE https://github.com/Axionize/packetevents/releases/download/temp/packetevents-spigot-2.7.1-SNAPSHOT.jar here built with this PR https://github.com/retrooper/packetevents/pull/1134.
09.02.2025 · 256 downloads
HitboxBlock improvements, add build automation and more compile-time options
- Attempt to fix a rare HitboxBlocks false
- Automatically build new releases from commits made on merge branch with GitHub Actions
- Add new build option to build jar without shading PE and automatically push releases with non-shaded PE as alternate jar which can be downloaded on a releases's page on Modrinth
05.02.2025 · 359 downloads
03.02.2025 · 144 downloads
31.01.2025 · 143 downloads
30.01.2025 · 164 downloads
/grim hitboxdebug command that sends hitbox data to clients when attacking an entity, can and will be rendered by a client side mod like https://modrinth.com/mod/lightning-debug v1.1 and newer.23.01.2025 · 384 downloads
22.01.2025 · 78 downloads
16.01.2025 · 173 downloads
05.01.2025 · 451 downloads
02.01.2025 · 110 downloads
31.12.2024 · 73 downloads
27.12.2024 · 311 downloads
25.12.2024 · 171 downloads
24.12.2024 · 77 downloads
24.12.2024 · 40 downloads
23.12.2024 · 110 downloads
21.12.2024 · 142 downloads
18.12.2024 · 100 downloads
18.12.2024 · 71 downloads
Note that these changes require manually updating or deleting your config to be fully utilized
- Added a /grim history command that shows you historical flags players have triggered
- Split Reach into 4 seperate checks
- Reach - checks if they hit from too far (known to be unfalsable)
- HitboxMiss - checks if player missed the target entity hitbox (very rarely falses)
- HitboxBlock - checks if a player hit an entity through blocks (no known falses)
- HitboxEntities - checks if a player hit an entity through another entity - (falses uncommonly)
- Improved HitboxEntities to check through entities in Vanilla's iteration order, reducing false rate significantly especially in swarms of mobs or team fights. Note that this check is disabled by default.
15.12.2024 · 103 downloads
15.12.2024 · 44 downloads
14.12.2024 · 36 downloads
Update upstream
07.12.2024 · 328 downloads
05.12.2024 · 69 downloads
05.12.2024 · 86 downloads
04.12.2024 · 48 downloads
30.11.2024 · 117 downloads
29.11.2024 · 54 downloads
29.11.2024 · 70 downloads
enable-post-packet under Reach for extra reach accuracy. You need both for maximum accuracy.29.11.2024 · 35 downloads
29.11.2024 · 30 downloads
28.11.2024 · 36 downloads
28.11.2024 · 101 downloads
grim.verbose.enable-on-join permission that automatically enables verbose on join25.11.2024 · 99 downloads
24.11.2024 · 60 downloads
24.11.2024 · 42 downloads
23.11.2024 · 49 downloads
23.11.2024 · 46 downloads
22.11.2024 · 52 downloads
22.11.2024 · 32 downloads
20.11.2024 · 50 downloads
Note that these changes have not been fully tested. Please beware and report any issues you find immediately.
- Fixed PacketOrder falses
- Fixed Inventory falses
- Optimized Hitbox/Collision Boxes for better eprofmrance
20.11.2024 · 67 downloads
17.11.2024 · 68 downloads
17.11.2024 · 58 downloads
17.11.2024 · 36 downloads
17.11.2024 · 49 downloads
17.11.2024 · 78 downloads
16.11.2024 · 81 downloads
16.11.2024 · 63 downloads
16.11.2024 · 84 downloads
16.11.2024 · 71 downloads
16.11.2024 · 57 downloads
15.11.2024 · 155 downloads
15.11.2024 · 80 downloads
15.11.2024 · 150 downloads
A temporary custom build meant to fix
- https://github.com/Axionize/LightningGrim/issues/3
- https://github.com/Axionize/LightningGrim/issues/5
Until packetevents merges new changes
04.11.2024 · 167 downloads
03.11.2024 · 91 downloads
THIS VERSION HAS NOT BEEN TESTED ON 1.8 AND MAY BREAK 1.8 SUPPORT FOR LOSP
03.11.2024 · 81 downloads
02.11.2024 · 87 downloads
27.10.2024 · 114 downloads
Update Upstream
15.10.2024 · 166 downloads
11.10.2024 · 101 downloads
Reloading rework, allows you to have per player configurations & other things, doesn't cover every option yet
Re-adds support for Java 8. Java 8 support will be kept alive for as long as possible even as upstream removes it.
08.10.2024 · 90 downloads
03.10.2024 · 214 downloads