Warning! Grim NOW REQUIRES Java 17+. See
https://github.com/GrimAnticheat/Grim/wiki/Updating-to-Java-17 for more information.
Notably with this update comes with support for 1.21.2+ clients, where Mojang has thankfully added a new END_TICK packet. This means Grim can now be as accurate with 1.21.2+ clients as it is with 1.8 clients, particularly for reach checks. Mojang also added a PLAYER_INPUT packet, which tells us the inputs of the player. This will allow a significant performance boost.
Known issues:
- If you are using an older server version then we currently cannot listen to these to these new packets from 1.21.2+ clients due to ViaVersion blocking them.
- If you use ViaBackwards on a 1.21.2+ server, this will cause issues for older clients in vehicles. A fix for both of these issues, by bypassing ViaVersion with a PacketEvents fork, is being worked on.
Changes:
- Added support for camel simulation (SamB440)
- Added MiniMessage and PlaceHolderAPI Support (ManInMyVan)
- Use an identity hash set for synced tags (SamB440)
- Improved punishment manager performance (AoElite)
- Don't let setbacks bypass stuck speed (SamB440)
- Fixed timer `
ping-abuse-limit-threshold`, patching some timer balance abuse hacks (SamB440)
- Readded and fixed BadPacketsG (SamB440)
- Fixed riptide falses when colliding with teamed entities (Axionize)
- Fixed offground precision loss to make us consistent 1E-15 offset (SamB440)
- Added support for 1.21.3+ clients and servers (SamB440)
- Patched a Paper dupe for outdated servers (ManInMyVan)
- Fixed wrongly ported Reach changes (Cyramek)
- Use movementThreshold() instead of 0.03 where appropiate (Axionize)
- Warn servers that want extra reach accuracy that they need to add `-Dpaper.explicit-flush=true` (Axionize)
- Fixed reading world asynchronously on Folia (Rothes)
- Optimised MenuType#getMenuType (MachineBreaker)
- Use FastUtil collections where possible (MachineBreaker)
- Updated to Java 17 (SamB440)
- Fixed shields breaking causing NoSlow falses (ManInMyVan)
- Limited when 1.9+ players can increase attack slow (SamB440)
- Lava and water are now filtered out of FINISHED_DIGGING (SamB440)
- Color codes are now stripped from client brand (jonesdevelopment)
- Allowed exempting elytras in a hidden config option (ManInMyVan)
- Packets are no longer re-encoded by default (AoElite)
- Reduced Optional allocations with attribute methods (SamB440)
- Readded and fixed AimModulo360 (SamB440)
- Having `fix-1_21-placement-rotation` enabled in the ViaVersion will now print an error on startup due to incompatibility (Cyramek)
- Fix incorrect casting to float before clamping attribute values (Axionize)
- `max-transaction-time` option is now clamped between 1 and 180 to prevent issues (SamB440)
- Optimised getPossibleEyeHeights (Axionize)
- Added MultiInteract checks (ManInMyVan)
- NegativeTimer can now be configured to setback (ManInMyVan)
- Added MultiPlace check (ManInMyVan)
- Reworked all collision boxes and hitboxes to improve performance and fix falses (Axionize)
- Added Japanese translation (K-Lqrs)
- Fixed a FastBreak false when mining vines with a sword (ManInMyVan)
- Fixed some falses with BadPacketsX & Z (ManInMyVan)
Warning: Grim will soon require Java 17+. See https://github.com/GrimAnticheat/Grim/wiki/Updating-to-Java-17 for more information.
- Fixed falses with striders in recent Minecraft versions (attribute desync, off ground speed, speed outside of lava)
- Added HELD_ITEM_CHANGE packets to post check (ManInMyVan)
- Fixed supporting block being wrong in certain cases such as when on fences (Cyramek)
- Fixed fence hitbox (Cyramek)
- Fixed a respawn issue with gravity and powder snow
- Fixed horse jumping with 1.20.5- clients on 1.20.5+ servers
- Specific checks can now be exempted with the permission "grim.exempt.<check name>" (ManInMyVan)
- Beds are no longer considered bouncy below 1.12 (ManInMyVan)
- Fixed a false with tridents at 1 durability
- Disabled Baritone check as it is currently broken
- Fixed error with server tag syncing when older clients are able to join the server
- Patched more NoSlow bypasses (ManInMyVan)
- Embed title can now be modified in discord config (ManInMyVan)
- Added Turkish translation (kayeradev)
- Updated Chinese translation (Dg32z)
- Updated Portuguese translation (gNewl)
Warning: Grim will soon require Java 17+. See
https://github.com/GrimAnticheat/Grim/wiki/Updating-to-Java-17 for more information.
- Added support for 1.21 servers
- Fixed speed bypass when colliding with entities
- Added support for servers sending custom climbable block types in block tags
- Fixed axolotl and armadillo dimensions
- max-ping-firework-boost can now be disabled with -1
- Disabled no swing check for 1.8 clients on modern servers due to ViaVersion falses
- Fixed PositionPlace falses with walls (ManInMyVan)
- Fixed falses with weaving potion effect (ManInMyVan)
- Patched various NoSlow bypasses (ManInMyVan)
- Added new InvalidPlace and NoSlow checks (ManInMyVan)
- Made BadPacketsT no longer experimental
- Fixed 1.8 reach falses
- Fixed falses with heavy core collision
- Fixed BadPacketsU flagging with understacked items (ManInMyVan)
- Depth Strider and Aqua Affinity are now checked on all armour pieces (Pugzy)
- 1133 velocity patch (cattyngmd)
- Fixed Grim thinking every item is edible on 1.15+ (ManInMyVan)
- Fixed falses while block hitting and switching slots (ManInMyVan)
- Patched FastBreak bypass (ManInMyVan)
- Fixed GhostBlockMitigation loading chunks
- Added initial support for 1.21 clients and movement (Thanks to Cyramek & xEcho1337 for help with new step movement)
- Added initial support for experimental 1.21 features
- Fixed teleporting into unloaded chunks causing falses
- Fixed issue where the player's sprinting status would be desynced after a teleport
- Fix relative teleports flagging BadPacketsN
- Fixed NoSlow false when respawning
- Fixed inaccuracy in entity position tracking
- Fixed falses with plugins spamming potion effect ADD/REMOVE every tick
- Added `ignore-duplicate-packet-rotation` setting to ignore 1.17-1.20.6 duplicate packet rotations to fix multiaura bypass (ManInMyVan)
- Added support for hex colours in the message files, using the format "#FFFF00hello" (zuhaz)
- Patched a boat fly bypass
- Patched firework elytra fly abuse bypass with new setting `max-ping-firework-boost`
- Fixed slime + magma cube bounding box in 1.20.5+ (FlorianMichael)
- Added NoSlow support for items with food component (1.20.5+)
- Check spyglasses and goat horns for NoSlow (ManInMyVan)
- Allow disabling max-ping-out-of-flying (Anthony01M)
- Fixed scaling false with BadPacketsT
- Fixed < 1.13 client false with fences not connecting to farmland
- Fixed some BadPacketsZ falses (ManInMyVan)
- Fixed BadPacketsW false with ender dragon
- Fixed FarPlace and RotationPlace creative falses
- Fixed 1.7 stepping height
- Fixed more falses with entity scaling
- Added 1.20.5 support & updated PacketEvents
- Added BadPacketsY & BadPacketsZ
- Added `cancel-duplicate-packet` config option
This cancels 1.17 duplicate packets which can be abused by clients
- Various bug fixes & improvements
Thanks for all the contributors on the github!
- Updated PacketEvents
- Added BadPacketsM
- Added BadPacketsU
- Improve BadPacketsQ
- Shield fixes for 1.8
- Post entity actions now work on 1.8
Thanks for the PRs from ManInMyVan
- Updated PacketEvents
- Fix an exception with bells
- Updated PacketEvents
- Added max-ping-out-of-flying config option
- Fixed fastbreak loading chunks
(PR from SamB440)
- Updated PacketEvents
- Updated CrashH
- Performance improvements
(PR from SamB440)
- Fixed false flags with cave & void air
(PR from SamB440)
- BadPacketsL fixes
(PR from ManInMyVan)
- Removed kotlin dependencies
(PR from metabrixkt)
Updated PacketEvents & fastutil dependency
Fixed setbackvl configuration not working for Timer
Updated PacketEvents
Added CrashH
Added hitbox data for banners, buttons, fire, & various sign types
- Updated PacketEvents to fix some errors with new paper versions
- Added initial camel support, dashing not yet supported
- Small netty thread performance improvements
- Fixed a rare issue that could cause players to not be hit when using other plugins that also send transactions
- Improve look of disconnect messages
- Added a configurable threshold to limit Timer abuse (PR from SamB440)
- Added a configurable threshold to limit ghost block abuse (PR from noobi)
- BlockPlace checks now check empty places (PR from z7087)
- Updated some translation configs (PR from gNewl)
- Fixed collision data for Piglin heads (PR from booky10)
- Fixed a boat false positive (PR from UserNugget)
- Fixed 1.20.3+ inventory issues which prevented opening hoppers & caused a false flag for CrashD
- Small performance optimization
- Updated PacketEvents to fix some exceptions
Updates packetevents, caching broke the last release
Fix support for paper-1.20.4-357 and newer
This release updates PacketEvents to fix some 1.20.4 issues
2.3.47 changelog
Added BadPacketsR; detects some packet cancellers & fixes a memory leak
Added CrashF; detects & blocks a new inventory related crash exploit
Fixed brands not working for 1.20.2 clients
Fixed a lava bug
Reduced exceptions from clients sending invalid inventory packets
Removed MultiLib so it can be compiled with Java 8
Hotfix Fixed post check not working
Hotfix Fixed BadPacketsR not working for pong packets
Hotfix Fixed BadPacketsR falsing in vehicles
2.3.48 changelog:
Recoded BadPacketsR to fix false flags & to more aggressively fix previous mentioned memory leak
Improved Reach detection
Grim version is now included in debug log
2.3.49 changelog:
Updated PacketEvents to add initial support for 1.20.3/4
Fixed some BadPacketsR false positives
Fix ViaVersion cave vines replacement on < 1.17 (PR from SamB440)
Fix disconnect log message (PR from SamB440)
This update adds support for 1.20.2
This update fixes some bypasses, including:
- Sending the stupidity packet within the stupidity margin thousands of times a second
- Using explosions to launch yourself
- Some things related to knockback, with grim eating first bread
Hotfix using wrong friction value for movements when in air on a 1.20 client or every tick on pre 1.20 clients
Hotfix more missing 1.20 blocks
1.20 servers and 1.20 players are supported in this update
Block placing was not being tracked correctly - this hotfixes block placing
Added folia support
Fixed warnings on startup with 1.19.4
Updated packetevents to support experimental datapack
Fix inventory exception by TalXVI
Fix teleportation phase false by UserNugget
Fix entity type mappings on 1.19.4 by DefineOutside
Support both fix snow ViaVersion config options by MachineBreaker
Added 1.19.4 server support
Added 1.19.4 client support
Fixed offhand block placing not being tracked correctly
Fixed bounding boxes for horses being incorrect
Fixed a potential way for ghost blocks to be created on 1.8
Fixed block tracking issue when server sent block updates immediately on spawn
Fixed some packetevents exceptions
Fixed resyncing blocks on 1.8 by ruViolence
Fixed knockback applying to flying players by ruViolence
Fix piston head break speed false by c0dingnoobi
Fixed index out of bounds in inventory by MachineBreaker
Ignore dead entities for reach by MachineBreaker
This prevents a very determined player spending minutes or even hours to accidentally (or purposefully) crash the server
This release is mainly PacketEvents fixes
Prevent players from placing blocks when they have a setback
Alert for AirLiquidPlace
Avoid kicking players connected through bungeecord without ViaVersion installed and when on vehicles
Ignore exceptions through during handshaking phase of protocol
Avoid throwing an exception when -1 is sent as the gamemode in the player info packet
Avoid throwing an exception on reloads
Avoid throwing an exception when someone else removes a handler on disable or reloads
This prevents weird things from happening when changing slots
Fixed transaction pings in debug logs
Fixed exceptions when the server sent corrupt inventory packets
Allow cancelVL to be set with scaffolding checks
No longer check for scaffolding when in vehicles
Fixed an issue where sneaking uncertainties would be compounded together
This should fix some exceptions on 1.19.3 and also improve general network performance.
- fixed an issue where packet inventories would sometimes become permanently disabled causing potential issues
- fixed an issue where bows would be force released when switching slots
- fixed an issue where pistons would false flag FastBreak on some client versions
- Improved performance of deserializing entity metadata packets
- Improved memory allocations and CPU usage while sending packets
- This includes the inventory system rewrite, which attempts to lag compensate inventories and will resync inventories if grim detects that a player has created a ghost item. This rewrite also fixes some long standing issues such as how equipping depth strider or an elytra by right clicking would cause false positives. The old code was quite broken and not well tested. Around 600 lines of code was removed.
- Grim no longer shades Kotlin to patch compatibility with some kotlin plugins
- Fixed an exception with 1.19.3 explosions
- Removed BadPacketsM because it was falsing on all client versions, a player can send two slot changes in a single tick for some reason
- Fixed temporary ghost block seen by grim when right clicking furnaces with an item in hand
- Some cleanup of an old ViaBackwards hack
Merged a few pull requests:
- Updated Chinese support by DeltaLimit
- Added Russian support by i2021 and patched by UserNugget
This will be the final injector fix, just like the last two times. This fixes an issue where TCPShield players could not connect.
injector fixes! This one fixes a race condition with ProtocolLib resulting in client versions being incorrect. Like the previous time, this will be the final injector fix release.
This is a major bugfix since 1/50 players or so would just be flagged constantly due to having the wrong protocol version - if ViaVersion was in use.
Hopefully everything is stable now and I can go back to working on anything other than the injector...
This should hopefully be the last time I have fix the injector, I've fixed an issue where post tasks weren't being sent after the right packet causing BadPacketsN falses, which caused some other issues such as simulation falses. This was caused by a variable for a netty promise being overridden when a packet is sent while processing another packet.
If you are wondering why there have been so many updates lately, we recently have rewritten the injector. Whenever there's a bug with the injector, it usually is a major bug and needs to be patched. This should bring long term stability to the project through.
This also adds a NegativeTimer check so players falling slower than what is possible will be flagged. This is lenient by default as there are few places where this is an advantage, but should be able to flag exploits such as people bow boosting themselves when ticking at a tenth of their normal speed as a "fly" exploit. You can edit the config to make this much more strict.
This is yet another attempt to get the injector stable. This should fix the issue where client version was being missed. It also should fix some exceptions. No injector issues have been reported so far, so if you have issues, join the discord.
I also added support for 1.19.3, although it's experimental and not extensively tested. Please note that while this supports 1.19.3, I have not added support for the experimental datapack. Using the experimental datapack will result in undefined behavior.
2.3.25
Added support for ViaVersion 4.5.0
Rewrote practically the entire PacketEventes injector
Fixed NCP NoSlow bypass
Fixed error when a plugin sent an invalid gamemode packet
Fixed exception on pre-1.19 servers when a player flags a scaffolding check
Fixed issue where players kicked for spamming packets would be kicked AFTER the rest of the packets are done processing, now they are immediately kicked
Fixed block connection for leaves and panes on 1.8
Fixed wither skeleton hitbox for 1.8 clients
Github only: Added negative timer (needs more testing before releasing, with 1.8 clients specifically)
This drops support pre ViaVersion 4.5.0. You need ViaVersion 4.5.0 to use this version.
Hotfix 1:
Fixed exception when switching slots
Hotfix 2:
Fixed several bugs with the injector
2.3.26:
Fixed issues with commands, new version to avoid confusion and to release on spigot
Fix issue where commands sometimes wouldn't work on 1.19+
Fixed issue where pre-1.17 versions with outdated GSON would throw exceptions
Fixed issue where entering the nether on 1.12 would cause lag spikes
Fixed issue where waterlogged block breaks were not properly tracked
Fixed exception with entity metadata
Fixed noslow not working on 1.8 by AoElite
Re-enabled brigadier by Jaren
Added experimental DuplicateRotPlace by AoElite, to enable this see config.yml
Added 1.19.2 support by Retrooper
Refactored CrashE by AoElite
Fixed goat and frog reach false by AoElite
Added support for more webhook formats by AoElite
This update shades grim correctly, that is all.
[2.3.18]
Hotfixes:
- Fix BadPacketsN false on grim setback caused by the setback changes
- Only use negative teleport ID's to try to avoid any conflict with vanilla
- Use a player random for better randomness
Feature:
- Removed a check's ability to cancel or modify packets when it is not registered inside the punishments config
[2.3.19]
World border collision is now enforced
Fix issue where tick skipping after velocity packets could cause falses
Fixed issue where velocities would sometimes be thrown away
Fixed issues where velocities would sometimes not be thrown away
Partial fix to phase when the player teleports inside of a block
Fixed issue where 1.8 players would have valid hits cancelled sometimes without flagging
Fixed false with AirLiquidPlace when in creative
Fixed false with boats below y = 0
Fixed false when right clicking on iron trapdoors
Fixed false when placing blocks onto an iron trapdoor
Fixed false when placing a water bucket onto a waterlogged block
Fixed false when jumping onto newly placed farmland
Fixed false when jumping onto lecterns placed in certain directions
Fixed false when converting a candle cake to a cake
Fixed false when standing on a tnt while lighting it
Riptide is now only allowed in the rain or while in water
Fixed security issue
Added 3 new experimental crash/exploit checks, thanks АоЕlіtе:
- Invalid view distance or invalid locale (CrashE)
- Trying to send log4j chat messages or name items (ExploitA)*
- Sending invalid tab completion packets to find plugins (ExploitB)
* DO NOT RELY ON THIS FOR PROTECTION AGAINST LOG4J. UPDATE TO LATEST PAPER AND AVOID AIRPLANE 1.16.5
[2.3.20]
Fix false when breaking unbreakable blocks in creative mode
Fix false when exiting spectator mode inside of blocks
Fix false when rapidly placing a powder snow bucket beneath yourself
Fix false when rapidly changing sneaking during block placing
Fix false when placing a block or lectern on top of or beside a lectern
Predict button pressing to avoid flagging placing checks
Fix false when placing some waterloggable blocks inside of yourself
Fix false when placing amethyst buds on top of unplaceable surfaces
Fix false when placing candle cakes on top of unplaceable surfaces
Fix false when placing torches, heads, skulls, signs, and other blocks
Fix false when placing buttons or levers
Fix false when placing coral blocks and fans on unplaceable surfaces
Fix false when placing pressure plates on unplaceable surfaces
Fix false when towering with cakes
Fix false when trying to use a trapdoor as a solid false
Fix false with ExploitB on pre-1.13 clients
Fix one false when using buckets
Fix false when using buckets on waterlogged blocks
Fix false when placing sea pickle under yourself
Fix issue where explosions would sometimes be thrown away
Fix issue where velocity and explosions wouldn't be checked
Fix issue where explosions wouldn't be thrown away correction when complete
Fixed other logic issues with explosions
Removed a via flag for 1.8 servers that we no longer should be removing
Fix the config corrupting when upgrading from a specific version
Fix issue where players in lava wouldn't be setback slow enough
Fix issue where elyta setbacks were too aggressive
Fix issue where powder snow setbacks were not aggressive enough
Fixed a few more security issues, you might want to update
[2.3.21]
Add 1.19.1 support
Also check chorus fruit and suspicious stew NoSlow when the player doesn't have full hunger by AoElite
Fix ping sometimes being negative
Fix BadPacketsM falses
Fix stupidity packet flagging after teleportation
Increase pushing uncertainty to try to fix some falses
Remove code causing some things to flag GroundSpoof
Ignore packets from closed channels
Ignore y < 0 blocks from pre-1.17 clients
Kick for cancelling more than 150 packets in a second, to prevent people from crashing the server
Fix excessive trident riptide cancelling
Refactor knockback and explosions
Fix minor bypass with setbacks
Fix minor bypass with setbacks
Fix bypass of unknown severity affecting a certain thing
Fix bypass with setbacks affecting servers with plugins doing certain things
This fixes a memory leak regression in the last hotfix
Due to Via's weird injector, the previous update introduced an incompatibility with LPX. This regression has been fixed in this update.
This update fixes a exploit dealing with grim
Reported 4 hours ago, consider updating.
This should be the final hotfix... this fixes antikb flagging instead of simulation
actually fix null pointer not fixed in last update
Fixed a null pointer exception
Fix final issues with setbacks and allowing certain setbacks to override one another in weird ways that could be exploited to reduce knockback
Fixed bypasses with relative teleports, and added full relative teleport support
Fixed major bypass that has not yet been publicized, you are encouraged to update before it becomes public.
Fixed an issue where breaking a block under yourself in a protected zone could false fastbreak
Exempted 1.12 from slow falling
Exempted 1.7 player reach check against armor stands
Fixed badPacketsE false on respawn
Fixed an issue where grim would interfere with hit reg
Fixed a few bypass*
* These bypasses are not public yet, you are encouraged to update before the issues are made public.
This update represents 4 released jars on the discord, marked as stable enough to release the update on SpigotMC.
[2.3.11]
Fixed false when colliding with a shulker box horizontally
Fixed issue with sensitivity detection at low sensitivities
Fixed issue with sensitivity detection when using cinematic
Fixed issue where teleports were missed, flagging BadPacketsN
Fixed issue when mining downwards and taking knockback
Prediction flags are now cancellable using the API
Fixed false at the start of a levitation effect when standing still
Added a grim.nomodifypackets permission to avoid cancelling or correcting any packets
[2.3.12]
Added a new feature, grim logs. Prediction flags will now include a string log that can be uploaded to paste.grim.ac using
/grim log [id] or
/gl [id]
Added a new feature,
/grim verbose. All flags will be displayed to you, including the ability to upload their grim logs file.
Here is an example of a grim log, it will expire in 90 days:
https://paste.grim.ac/P5qlH
Fixed block breaking creating ghost blocks when in creative holding a sword
Fixed new 1.19 blocks places not being tracked correctly
Fixed baritone check
Grim logs are suggested to report "random" falses, or to report falses in general. Videos are helpful with grim logs too, if you can consistently reproduce the false.
[2.3.12 hotfix 1]
Fixed grim logs command when the server has more than 1 player
[2.3.12 hotfix 2]
Fix the default config
Changed logic of interval 0 to mean execute exactly once, instead of executing every single flag
Fix false with knockback, which was a regression in 2.3.9
Rewrote or removed non GPL content from grim to resolve legal issues, no checks have been removed and the only difference should be in sensitivity detection
Fixed velocity setbacks override no setback permission
Invalid movement packets will now setback and be cancelled
Added BadPacketsP - AoElite
Fixed discord timestamps - AoElite
Fixed console colors being wrong - AoElite
Fixed crasher and badpackets checks not being registered due to "command" being written in the config instead of "commands," this mistake will be automatically migrated - AoElite
Fixed didViaBreakBlockPredictions on pre-1.19 servers - scarfacered
note: this update contains breaking API changes
This fixes an issue where pre-1.14 fireworks were not seen
This fixes an issue where fastmath players could flag elytras indefinitely as grim does not expect optifine to fuck up movement by 0.02
Fixed rotation place false positive when inside the block you are placing
This adds support for 1.14.4-1.18.2 block ack packets, so you can break blocks in spawn etc. without flagging grim
This fixes an issue where floating point inprecision fast y=255 would cause scaffolding bounding boxes to be incorrect
Added new discord webhook format, thanks AOElite. Configs will automatically be migrated to this new format
Converted timed out message for not responding to transactions to a vanilla component, thanks VytskaLT
The default flagging offset for movement has been changed from 0.0001 to 0.001
The default flagging offset for knockback/explosions has been changed from 0.00001 to 0.001
These new offsets will be applied to the config automatically when upgrading, but can be reverted, although it is not recommended to do so.
- Fixed issue where 1.19 block changes sometimes didn't apply
Message #beta-jars
Fixed a false when respawning
Fixed knockback check not registering with punishments.yml by default
Fixed false when placing game master blocks (command blocks etc.)
Fixed false when placing skulls on 1.8 clients
Fixed false when using max world size setting in server.properties
Fixed false when jumping against a cactus, without holding keypresses, hitting at the apex, and skipping a movement tick
Fixed false when spamming velocity packets against a wall
Fixed false when against mangrove fences
Added full support for 1.19 block acknowledgement packets. Thanks for fixing a bunch of block desync's, mojang.
BadPacketsP has been removed due to falses
BadPacketsM will no longer apply to 1.8 players due to falses
Config changes:
Lowered knockback setback buffer by default (10 -> 3)
Migrated knockback violations to own category of checks to lower buffer
Added Baritone and FastBreak to punishments by default, as they were missing
These will not automatically migrate to your new config, if you want the changes, you either must regenerate your config or add them.
Fixed exceptions when joining occassionally
Fixed null pointers with spectate manger with exempt players
Fixed error with chest and trapped chest default block state being null
Fixed entity action post check false with 1.8 players on 1.9+ servers
Fixed anvil false edge case for 1.8 players
Fixed fast break check when mining blocks that are most efficiently designed for hoes
Fixed chest boats not being checked
Fixed false when standing on chest boats
Fixed FastBreak false when breaking mangrove related items with an axe
Merged in spectator configuration by AoElite
Merged in language.yml slight change by yanjulang
Merged in floodgate support by PureGero
I have less time and am therefore prioritizing the most major of issues, which is unfortunate due to the increased number of minor bugs being reported. Feel free to contribute bug fixes. Issues reported on github will be fixed eventually, discord is not a good place to report bugs.
Fixed FastBreak false when repeatedly start to break a block after cancelling the previous break
Fixed FastBreak creating ghost blocks
Switched GCD to a non recursive algorithm equivalent to current implementation to avoid allocations on the stack and stack overflows
Fixed vehicle teleports causing timer false flags
Fixed enabling the post reach transaction being ignored in the config
Fixed error with mangroove doors
Fixed causing an exception with ViaVersion
Fixed missing half of the world when reading chunks
Fixed errors when using custom dimensions
Join the discord to report issues... 1.19 was much more of a major update than I originally though, although servers have been running 1.19 for a few days and I've been trying to hotfix every 1.19 specific error within a day of reporting.
This fixes more exceptions while on 1.19 servers
Fixed 1.19 exception when receiving the darkness potion type
Fixed major 1.19 bug when respawning
Fixed exception when using a 1.13.2 server
The last hotfix had a merge issue so the change wasn't applied
fix 1.19 exception with poses
Fixed a false where viaversion would violate vanilla netcode for 1.8 clients, breaking FastBreak
Fixed an exception from poses on a 1.19 server
Fixed FastBreak for 1.19 servers
Fixed players on proxies being kicked when riding a vehicle
1.19 support should be stable now
1.19 support has been added
A baritone check has been added
Post check has been re-added
NoSlow now works on 1.9+ servers
FastBreak and NoBreakDelay has been added
BadPacketsO and BadPacketsP have been added as bad packets check
* note that 1.19 support hasn't been thoroughly tested but the new features seem to work fine
2.2.15 changes:
Bug fixes:
Fixed position place false when inside of blocks
Fixed a false when block clutching with scaffolding
Removed the warning for empty chunk corruption due to it not really mattering, although the server still shouldn't do that
Refactored bounce block uncertainty, with slime blocks and beds, to fix falses near slime blocks and beds
Fixed sneaking falses for 1.14.0-1.14.4 clients. Pre-1.14 and post 1.14 clients were not affected.
Bypass fixes:
Fixed ability to ignore velocity when placing a block under yourself within 0.03 blocks
Fixed ability to ignore velocity by jumping when near blocks
Fixed ability to tower by strategically setting yourself back to reduce jump height and ignoring velocity
Spamming movements, flagging reach, to interpolate faster no longer works.
Fixed ability to teleport a vehicle, and then re-enter that vehicle, as re-entering a vehicle is forced to wait 3 ticks
Fixed ability to fly with pigs and striders to fly due to some really shitty mojang netcode, thanks mojang.
Fixed ability to give vehicle control to the server when the client is still controlling the vehicle
Fixed ability to rapidly enter and exit a vehicle in order to gain large lenience
Features:
Aggressively cancel attacks when the player isn't looking at the enemy, when the user has recently flagged the stable check for not looking at the enemy
Added end crystals to reach check, to target crystalaura
2.2.15 hotfix 1 changes:
Fixed a deadlock from 2.2.15 if you attack an entity and it despawns the next tick, you should likely update if you are on 2.2.15
Added chunk compression for 1.8 servers to reduce the world tracker to around 1/4th the size
2.2.16 changes:
This jar fixes a memory leak when combining PacketEvents 2.0 with ViaVersion.
Uses bukkit to read player armor to prevent permanent desync
Fixed falses when teleporting into chunks unloaded for a player
Fixed elytra false for pre-1.18.2 clients
2.2.13 hotfix 2 (unreleased on spigot):
Reduced base memory usage by 100 MB
Reduced size of jar by 289 kb
Fixed a few more potential memory leaks
Other misc PacketEvents 2.0 improvements such as idiot proofing against all possible memory leaks.
Hotfixed pre-1.13 support
Fixed a memory leak in native memory
Fixed a memory leak in open file handles
Fixed CPU usage getting higher over time
The reach check is now high precision for 1.9+ users. It's precision increases over time with movement, so in real world scenarios where both players are constantly moving, it will match the precision of the 1.8 check.
Added a check to patch NoLook scaffolds. Scaffolds must now:
1) Be beyond the block to place the block there
2) Look at the target block
3) Follow the exact movement of vanilla while placing the block
This should, as a result, nerf scaffolding cheats
Users can no longer become stuck in limbo after ignoring a setback. This often occurs due to cheats ping spoofing or a misbehaving client. Vanilla clients were never affected by this issue.
Ignored-clients now uses regex instead of string matching, and will remove the (velocity) suffix from brands (Thanks AoElite)
Reload now runs on the event loop to avoid any race conditions
A performance leak accumulating per user over time was fixed for 1.9+ clients. 1.8 clients are not affected. 1.8 servers with 1.9+ are affected.
Punishments now supports the reload command
Reload command has been added, thanks for the PR AoElite
A check for impossible dig packets (autoblock) has been added, thanks for the PR AoElite
Grim now allows itself to be shaded by using JavaPlugin instead of GrimAC in GrimAPI, thanks for the PR Jaren
Grim will no longer call getPlayer(null) to handle forks using ConcurrentHashMap instead of HashMap
0.03 related falses when colliding against a wall for an extended amount of time have been fixed
Fishing rods no longer use hacky code to be supported, and grim no longer touches fishing rod packets or events
Fishing rod related falses have been fixed
CrashD has been created checking for NaN/Infinity positions and looks
Grim will not spam as many transactions when the player is being spammed with block changes or multi block changes
AimImpossiblePitch/AimImpossibleYaw has been removed
Performance Improvements - optimized on a spark report submitted by AoElite:
Overall, this commit will improve performance by 2-3 times of the prediction engine (0.3-0.5 ms -> 0.15 ms on my machine)
- To verify my findings, look at /grim perf before and after (please give the jvm 15 minutes to optimize) this update
Netty load has been reduced by avoiding flushing general transactions
Determining a player's sensitivity is now at least 50 times faster
Added a grim.exempt permission
Fixed a false when right clicking an iron door
(from hotfix) fixed an issue where FAWE would cause 1.8 ghost blocks in grim
Fixed an error causing player inventories to become desync'd for grim
Fixed an error caused by bashing your head against a ceiling repeatedly
Fixed a high jump bypass when standing on slime
Fixed falses when 1.8 players were strafing on slime
Removed 1.7 client sprinting code causing falses when entering/leaving flying
Fixed a null pointer exception with placing trapdoors/doors near redstone wire pre-1.13
Fixed false with knockback when the player's vehicle was despawned
Now despawn chunks and entities on world change
Fixed an false when standing on a boat when breaking it
Fixed an issue where 1.8 clients would false flag NoSlow when opening a chest while using item
Fixed a false with 1.8 rabbits
Fixed a false where grim would flag users placing blocks at high speed, causing temporary ghost blocks
Fixed an issue with timer setbacks where timer could be used for an advantage
Fixed a null pointer exception when a vehicle dies
Fixed falses with placing kelp, twisting vines, and weeping vines
Fixed a bypass where sneaking could be used to gain large amounts of uncertainty
Fixed a false when sneaking on the edge of blocks
Fixed a false when jumping near the edge of blocks
Fixed a false when taking knockback near the edge of blocks
Fixed a false when slightly stepping onto blocks
Added the checks:
AimDuplicateLook: Looking for look packets that are impossible to send
AimInvalidPitch + AimInvalidYaw: Looking for impossibly small movements resembling Killaura
AimModulo360: Identifies a flaw in Liquidbounce Aura to flag this client
If you added aim punishments, they will be cleared by this update and replaced with the default settings
This fixes one cause of grim seeing ghost water from water buckets
Fixed false from right clicking on an iron door
Fix concurrent modification exception on pistons
Fix NoFall not working
Fix false from elytra slow fall
Fix false from kelp placing
Fix NoSlow false
Added CommandExecuteEvent
Fixed a crash when using grim with MultiPaper (weird multi instance fork)
Refactored vehicle and entity code
- Grim can now track vehicles on 1.8 servers, previously grim did not see that the player was in a vehicle while on 1.8 due to a bug
- Grim can now track entity dismounts on 1.8 servers, previously this was broken but luckily the previous bug hid this bug
- Entity potion effects are now stored with entities, to support re-using entity ID's and broken plugins. This includes clearing potion effects when the player is respawned.
Refactored some 0.03 code which will have significant performance improvements due to scanning the world once rather than 5 separate times every tick
Fixed frozen ticks not being properly tracked with transactions, leading to false flagging in powder snow
Fix false when placing blocks from certain positions onto portals and end portals
Fixed a false when switching dimensions or respawning while sprinting on pre-1.14 clients
Reduce 0.03 climbing uncertainty
The NoSlow check now works on 1.8
The world border is now packet based in order to support sending packet based world borders, plus latency compensation
This is somewhat experimental due to the large internal refactoring with vehicles and entities. Report issues on github, issues on discord that can't be fixed in a few minutes tend to be forgotten about.
Fixed trapdoors being seen as climbable on 1.8 and below clients
Let glass panes connect to glass itself, for pre-1.13 client and pre-1.13 servers
Fixed donkey falses from flipping their hitbox width and height, and getting their attributes wrong
Fix position place false when clicking stairs or other blacklisted blocks from position place
Fixed riding skeleton horses underwater false
Fixed block place consumption false, such as when eating cake while you stand upon it
Fixed false when right clicking the bottom half of a door
Remove the post check temporarily while issues are being fixed
Fixed pre-1.17 server players not being registered as in creative
Re-enabled the setting packets to null optimization
Fixed the delay when entering non-living non-boat vehicles
Update PacketEvents to fix:
- WrappedBlockState was setting the block cache to air after updating a block. This broke block placing and opening doors/trapdoors on 1.13+. This fixes more than you would think and caused major issues with block placing and interaction.
- Netherite pickaxes were not tracked correctly leading to ghost blocks appearing to grim.
Chat was removed from the post checks because of version differences and pvp clients.
Fixed cross dimension teleporting false
- This fixes a indefinite desync with 1.8-1.13 sprinting cross dimension
- This fixes a minor false with 1.8-1.18 sprinting cross dimension
Fix falses caused by an order of operations mistake with block breaking
Removed plugin message from the post checks because some mods may send this packet asynchronously, which isn't vanilla but also isn't necessarily cheating.
Fixed alerts-format not activating in the config
Added [webhook] to punishments.yml, which sends a discord webhook notification when executed
Fixed enchantments such as knockback (for attack slow) and efficiency (for block breaking) not being registered on pre-1.13 servers
Fixed a bug where players would be kicked on a 1.9+ server when a player pulled another player with a fishing rod with a proxy such as bungeecord
Relocated configuralize to fix an exception when other plugins use an outdated version of this library
Replaced all post checks with a more stable single post check that uses transactions rather than packet timings
Increased the minimum number of transactions sent per tick to increase sensitivity of the post checks
Transactions are now sent on the netty threads if the end of tick option is enabled, to fix a deadlock and to not consume main thread performance
Reworked boat and hard collision colliding to fix falses with fast moving vehicles and jumping onto boats
Added a permission "grim.nosetback" to disable setbacks. This can be used as a hacky way to toggle setbacks for all players on and off.
Exempted spectators from being setbacks - other than for the timer check where it is still enabled
Added debug information on join on the netty pipeline to help debug issues
A significant memory leak has been fixed, you should update.
2.2.2 (wasn't posted to spigot):
Attempted to fix a use item desync
Re-enable an optimization for collisions to reduce the amount of blocks collided upon up by around 40% or so
Don't relocate adventure in an attempt to fix some PacketEvents issues
Don't re-encode packets to try and fix issue with players having high latency
Fixed placing blocks on top of lectern false
Updated PacketEvents to fix compatibility with NachoSpigot
2.2.3:
Fix an issue on pre-1.13 servers when right clicking near a wall on a 1.13+ client
Fix an issue where an exception would be thrown on pre-1.13 servers with vines
Fix/hack around an issue where an exception would be thrown when opening some inventories on pre-1.14
Added a fastmath handler for 1.7 fastmath
Fixed a setback issue where every flag after the first would result in a setback, this took over a week for anyone to notice
Add a config to by default kick players who haven't responded to transaction in over 2 minutes, to stop a memory leak
Hotfix a significant false with NoFall.
Riptide false when spamming click fixed
Riptide false when riptide attacking another entity (multiplying delta movement by (1, -0.2, 1) with mojang's generous detection fixed
Reworked the config system
- All current configs will be reset and renamed
- Config translation is now possible. Currently there are only configs in english
- Moved plugin messages to a separate config file
- Added the ability to execute custom commands on punishments
Reworked violations:
- Violation level is now determined based on violations in the past X amount of time
- The default amount of time is measuring the amount of violations in the past 5 minutes for the check
- This allows admins to know which check is being executed, while making other similar checks more sensitive.
- Violations are now grouped together into several categories.
Packet based setbacks
- The setbacks are now unable to override any other teleports. This makes grim setbacks very safe and prevents theoretical exploits such as cross overworld/nether exploitation.
- The setbacks are now up to 50 ms faster as grim no longer has to wait on the minecraft server's main thread
- The setbacks now resend knockbacks and explosions to the player and simulates it for them. This forces users to take knockback.
- The setbacks now send the player velocity to make the setbacks more fluid. This also gives other players the appearance that cheaters are moving legit at lower latencies.
Fixed some packet metadata errors on older server versions
Bugs with grim permissions were fixed
Fixed a spider bypass
Fixed antikb/explosion/noslow false near boats or pistons
Fixed placing things from vehicles
Fixed interpolating vehicles
Fixed scaffolding block tracking
Fixed users being able to place ghost blocks on 1.18.2 servers, caused by mojang adding a way to place ghost blocks 100% of the time on 1.18.2. Thanks, Mojang.
Fixed setbackVL = -1 not having any effect
Updated packetevents to fix various issues outdated server versions
Added some basic scaffolding checks
Increase flagging rate for 1.18.2 clients on the Reach check
Fix issue where inventory could become desync'd
Properly desync the player's powder snow attribute t follow mojang's flawed logic
Try to fix an elytra desync
Fix sprinting desync with vehicles
Exempt geyser player UUID's
Fix 1.17 stupidity packet causing post check falses
Fix 1.15+ changing window clicking packet logic causing post check false
NoSwing check has been PR'd by Lew_x as BadPacketsH
Exempted non-living entities from reach checks
Allow players to punch paintings, which aren't tracked by grim
Fix the null pointer with swapping offhand while inventory is open
Fix the null pointer with shulker entities
Fixed the null pointer with inventories
Fixed the null pointer with client versions
Added checks:
- BadPackets A, B, C, D, E, F, G
- Crash: A, B
- Disabler: A, B, C, D
- Post: A, B, C, D, E, F, G, H
If you would like to see what each of these new checks do specifically, look at the github.
Fixed 1.18.2 server support
Added support for new 1.18.2 elytra mechanics
Removed debugs
Fixed false when standing on shulker when it is opening
Fixed tasks being executed out of order causing bugs
Hotfix for an issue where setbacks could cause a player to get stuck in a limbo state
The config option to send transactions at the start of the tick will now work without the setting for the end of the tick
Attempted to fix a false on login
Replaced world resync'ing with more efficient multi block change packets
World resync'ing will now respect the built-in limit
World resync'ing now sends packets on the netty rather than main thread
Ignored NPC's for bukkit events
Fixed buggy code causing random falses, mainly on pre-1.18.2 clients
Fix reach false
Remove 0.03 mitigation for 1.18.2+ players
Remove XZ collision bug mitigation for 1.18.2+ players
Reduce transaction spam and fix potential deadlock
Fixed the reach check. I tested this check by hitting a pig automatically for 2 hours and there were no falses.
Mojang made some improvements to 1.18.2+. 0.03 mitigation for 1.18.2+ clients have been removed, as well as XZ collision bug mitigation. Mitigation for the tick skipping has been implemented for 1.18.2+ clients.
In more readable terms 1.18.2 clients have less falses and are checked better than 1.18.1- clients.
This update also reduces packet spam and should make main thread usage nearly 0.
Fixed teleport tracking able to cause desync
Attempted a fix for reach falses
Fixes a false on teleport
Fixes config violations not acting intuitively
Fixed the API not working
Added CompletePredictionEvent to the API
Fixed rare ConcurrentModificationExceptoin on debug list
Fixed issue where bounding boxes for stepping movement were not grabbed correctly
Fixed an issue at y=255 with pre-1.17 servers
Added resilience to out of bounds errors for getting blocks
Fixed issue where new chunk sections on pre-1.18 servers were not being created
Hacked around ProtocolLib + ViaVersion to stop spamming exceptions
This updates fixes a ProtocolLib incompatibility on 1.8
Improves the stability of the injector
Improves the consistency of prediction setbacks
Expands the developer API
The plugin now works with more than 1 player online without constantly falsing. Please update immediately.
This version fixes a protocollib incompatibility.
Fixed some vehicle netcode issues
Fixed the player from being setback hundreds of blocks
Fixed small horse jumping
Fixed false with boats entering water streams
Fixed some other various vehicle falses
Fixed vehicle setback at high pings due to vanilla desync
Fixed bounding box sizes of various entities
Fix out of bounds thrown by inventory tracking
Fix offhand not being tracked correctly
Made setbacks in unloaded chunks less aggressive
Made setbacks more resilient to abuse
Fixed theoretical reach disabler
Updated outdated via backwards warning
Fixed swimming with elytra
Saved performance with transaction sending
Fixed lava swim hoping with 0.03
Fixed 1000x timer from being able to crash predictions
Fixed the client's version not resolving
This update does not fix the ProtocolLib incompatibility
The plugin was recompiled with java 8 instead of with java 17.
This is a small update for servers on 1.8-1.12 to fix an exception thrown from reading an invalid piston head property
Fixed moss carpet false
Fixed exception on certain respawn packets
Fixed block placing on 1.13-1.16
Many stability improvements to vehicles.
Attempt to fix 1.8-1.12 support, although these versions aren't well tested and should be considered not supported, although reporting issues on github/discord for these versions is helpful.
Going below the minimum or maximum world height will no longer throw an out of bounds exception
Attempts to increase the stability of grimac on a 1.18 server. Note that there are still major issues on 1.8, and if you are using pre-1.17 versions, you'll run into significant issues.
Bugs fixed:
- Respawn packet throwing an out of bounds exception
- Exceptions from bukkitPlayer being null
- World height NBT code being spaghetti
- Useless mount packets causing vehicle to be null
The plugin now loads. Last version, after I bumped the version from 2.0.3 to 2.0.4, gradle refreshed the packetevents jar it was shading and included bungeecord support instead of spigot. This made grim no longer load. This is now fixed.
1.8 servers can now run grim