Tags
Creators
Details
2.3.74-00dbb86-b99
Compatibility
Changes
Changes in this Build (since previous push)
Miscellaneous
- Fix teleportAsync detection for old paper and MC versions where method did not exist - by Axionize (
7885555) - 26.1 support (#2553)
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)
- Load optional workspace.gradle.kts if present - by Axionize WS1 (
6c3ccb4) - Migrate internal firings to GrimAPI 1.3 channel API (#2612) - by Axionize (
3664f4d) - FastBreak false positive on Vault block (#2610) - by Tyler (
794e120) - Fire GrimPlayerSetbackEvent alongside GrimTeleportEvent - by Axionize WS2 (
a86dedf) - Bump packetevents to 6953c38 (upstream 2.12.2 merge + obfuscation-safe nbt scan) - by Axionize WS1 (
7499d10) - Pass fluid count in our custom chunk reader - by cyramek (
66b3334) - Update DynamicConnecting.java (#2617)
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)
- VersionUtil uses providers.exec for git (config-cache compat) - by Axionize (
62b2268) - Anchor N:M intervals at N (#2661) - by Axionize (
5fa803e) - Fire N:M on boundary crossings, not on every flag at the boundary - by Axionize (
36675eb) - Per-command incident cursor (nextBoundary + executedOnce) - by Axionize (
fb4ad7a) - Preserve legacy one-shot command semantics - by Axionize (
20d68c1) - Bump grim-api to 1.5.0.0 - by Axionize (
25d10f4) - Use routed backend check catalog - by Axionize (
29316a7) - Repair legacy history check ids - by Axionize (
70223cd) - Use MySQL reconnecting API build - by Axionize (
ff214a4) - Run check-id repair asynchronously - by Axionize (
e32d091) - Small cleanup - by ManInMyVan (
fdaf096) - Skip onUserLogin when PacketUser is null - by Axionize (
2af658c) - Backport V3-side parity adds (against 2.0) (#2678) - by Axionize (
9b1aa1a) - Bump PE: fix Issue #2670 - by Axionize (
6252fe6) - Allow not having
client-brand.ignored-clientsin config - by ManInMyVan (60d3ecf) - Mark utility classes as @UtilityClass - by ManInMyVan (
fd9e91d) - Make WriteLog$Entry a record - by ManInMyVan (
d501dfe) - Bump PE: fix #2681 - by ManInMyVan (
43db51d) - Make player.stuckSpeedMultiplier a Vector3d
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
- Remove leftover comments from testing
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)
- Rewrite how input is handled between versions (#2700)
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)
♻️ Refactoring
- Nest variants as :fabric:{shared,intermediary,official} - by Axionize (
dde41ad)
🐛 Fixes
- 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)
- Fix 1.21.11 spigot support - by ManInMyVan (
7d823f5) - Fix swim hops while riding an entity that can float on water - by cyramek (
ce86075) - Fix 1.21.11 trigonometry (#2644)
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)
- Fix compensatedCamera with respawn packets - by ManInMyVan (
7a7e07f) - Fix recent vialegacy update causing falses - by ManInMyVan (
c156c00) - Fix precision loss while swimming in a flowing fluid (#2668)
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)
- Fix swim hops with geysers - by cyramek (
eba3cb8) - Fix client velocity being affected by collisions
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)
🚀 Features
- Add Fabric piston event support (#2619) - by aquip (
75cc402) - Refresh permissions from LuckPerms updates - by Axionize (
b3a7496) - Add hover tooltips to check alerts & descriptions to every check (#2712) - by Mater (
1f1b03c) - Make render hovers configurable - by Axionize (
0aa2e2b)
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:yeJMtJfW:GuA4nQtq"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:yeJMtJfW:GuA4nQtq"
}

