The config file wasn't changed.
Changelog v0.17.5:
- hotfix for NoClassDefFoundError on some Spigot versions
- suppressed NullPointerException console spam caused by a library and print a single warning instead
The config file wasn't changed (except for a typo in the comments).
Changelog v0.17.4:
- fixed speed false flags on Bedrock when jumping under a low ceiling
- fixed packet spoof false flags on Bedrock when jumping under a low ceiling
- fixed Bedrock Tickrate false positives when teleporting
- fixed Reach false positives caused by increase entity interaction range attribute
- fixed Bedrock boat movement false positives because of a Geyser bug where the boat hovers above ground
- fixed a typo in the default config ("Read" -> "Reach")
The config file wasn't changed.
Changelog v0.17.3:
- fixed ArrayIndexOutOfBounds and NoSuchElement exception console errors
- fixed reach false positives
The config file wasn't changed.
Changelog v0.17.2:
- fixed packet errors when Themis can't load due to an invalid config file
- fix sporadic NullPointerException when handling EntityDamageByEntityEvent events
- improved compatibility with double-jump plugins for Bedrock players
The config file was not changed.
Changelog v0.17.1:
- hotfix for a bug that completely disabled Themis when using the min-tps feature
The config file was not changed.
Starting from this version, you no longer need ProtocolLib to run Themis. This is because Themis migrated to PacketEvents. You also don't need to install PacketEvents, because it is included in the Themis jar (which is why the size has increased). In theory you should notice no difference, but internally this is a fairly large change, so I suspect there will be some bugs that I haven't caught yet. If you notice any, please let me know on Discord.
Changelog v0.17.0:
- migrated from ProtocolLib to PacketEvents, removed dependency on ProtocolLib
- fixed Bedrock false positives when landing with an Elytra and when using fireworks with an Elytra
- fixed Fly false positives when towering up on 1.21.3 and 1.21.4
- fixed false positives when checks are repeatedly enabled and disabled because of max-ping / min-tps settings
- fixed Fly false positives on Bedrock on top of bubble columns
- fixed Bedrock detection using client brand (not recommended, use Floodgate if at all possible)
- improved compatibility with double-jump plugins
- fixed speed false positives when walking over ice interleaved with other blocks
The config file was not changed.
Changelog v0.16.1:
- fixed boat movement false positives for passengers when the other passenger leaves
- fixed a memory leak
- fixed a compatibility issue with plugins modifying velocity
This update finally brings support for Minecraft 1.21. I'm sorry it took me so long, I'll try to update more quickly for the next Minecraft versions. There's also a decently long list of other bugfixes, which hopefully makes the long wait a bit more worthwhile.
The config file wasn't changed.
Changelog v0.16.0:
- 1.21 support
- fixed reach false flag when hitting item frames on Bedrock
- fixed elytra fly false flags when jumping while standing still
- fixed elytra fly false flags when landing on Bedrock
- fixed fly false flags while on top of bubble columns
- fixed some general reach false flags
- fixed speed false flags when getting knockback while in water
- changed flight violation score calculation to improve detection speed of high jump
- fixed tickrate false positives when quickly entering and leaving vehicles
- fixed boat movement false positives when on ice and at negative y coordinates
The config file wasn't changed.
Changelog v0.15.3:
- fixed speed false positives when running across the edge of ice
- fixed flight false positives when jumping on the edge of slime blocks
- fixed speed false positives when hitting entities while sprinting
- fixed speed false positives when beginning to move with slowness
- fixed boat movement false positives when going over a mix of ice and water
- added getTps() and getPing(player) functions to the API, note that getPing might return null if no ping was measured yet
The config file wasn't changed.
Changelog v0.15.2:
- added a mechanism to prevent long teleports when flagging
- fixed speed false positives when having depth strider enchantments on armor other than boots
- fixed BoatMovement false positives when entering a Boat that already has an entity in it
- fixed Reach false positives when hitting fireballs
- fixed "Can't read players locale, you will be unable to automatically detect players language." error on Paper
- updated all dependencies
The config file wasn't changed.
Changelog v0.15.1:
- fixed vehicle related false positives that were introduced in the last update
The config file wasn't changed.
Changelog v0.15.0:
- Minecraft 1.20 support
- fixed false flags when dismounting minecarts and horses
- fixed "Plugin 'Themis' is creating timing" warning in console
- made the tickrate check more lenient to reduce false positives
- updated all dependencies
The config file wasn't changed.
Changelog v0.14.6:
- fixed a NoSuchMethodException on some old 1.17 Spigot builds
The config file wasn't changed.
Changelog v0.14.5:
- fixed PacketSpoof false positives when walking on powdered snow with leather boots
- attempt to fix a NullPointerException and Elytra Flight false positives caused by a plugin conflict
The config file wasn't changed.
Changelog v0.14.4:
- fixed ElytraFlight false positives when landing
- fixed ElytraFlight false positives when launching rockets a short distance above the ground
- fixed Bedrock ElytraFlight false positives when flying straight up in the air
- fixed Bedrock ElytraFlight false positives when flying against a wall
- fixed Bedrock ElytraFlight false positives when in creative mode
- significantly optimized performance of tracking Piston movementss
- some other general performance optimizations
The config file wasn't changed.
Changelog v0.14.3:
- fixed a NullPointerException for QuickShop and likely other plugins that spawn fake entities
The optimizations in the last update didn't have the effect I expected under real world conditions. To fix this, I rewrote a significant part of the check and moved part of the code to the packet level. This time it was tested on a server with >50 players online, and this time the performance really is significantly improved.
Note however that this uses a specific ProtocolLib function that was made much faster about half a year ago, which means you should use a somewhat recent dev version or you will have worse performance.
The config file wasn't changed.
Changelog v0.14.2:
- rewrote part of the Reach check to fix performance issues
The config file wasn't changed
Changelog v0.14.1:
- significantly optimized the Reach check performance
- fixed a Reach false positive when using Thorns enchantments
- fixed a Fly false positive when swimming in a water tower that is flowing away
This update adds the first combat check: Reach. It detects when a player is hitting someone too far away and blocks the hits. I don't know when I'll add more combat checks, my focus will probably stay on movement checks. However this check alone will already go a long way in blocking the most blatant combat hacks (if you've ever fought a player with Reach hacks, you'll know what I mean).
The config file was slightly changed, a section for the new Reach check was added.
Changelog v0.14.0:
- added a Reach check
- fixed a PacketSpoof false positive when bridging on Bedrock
- fixed a PacketSpoof false positive when walking on lily pads on Bedrock
- performance optimizations
The config file wasn't changed
Changelog v0.13.0:
- added 1.19 support
- fixed the elytra fly check
- updated all dependencies
- minor cleanup and performance optimizations
The config file wasn't changed
Changelog v0.12.2:
- fixed a Boat false positive when sliding on ice close to a wall
- fixed a Bedrock elytra false positive when stopping to fly in creative with an elytra on
- fixed a Bedrock speed false positive when starting to move on ice after standing still
The config file wasn't changed.
Changelog v0.12.1:
- fixed elytra fly false positives when using riptide while gliding
- fixed elytra fly false positives when gliding straight up
- fixed a bug in the elytra fly check that caused some other seemingly random false positives
- fixed packet spoof false positives when jumping on blocks that are placed but instantly removed because of world protection plugins
- fixed bedrock fly false positives when jumping on snow
- fixed bedrock boat movement false positives when being millions of blocks away from spawn where movement becomes inaccurate
The config file was changed. A new bedrock-only setting for only checking bedrock players was added and the new boat_movement check was added.
Also the themis.update permission was renamed to themis.technical because it will also show other technical information in the future, like when something is misconfigured.
Changelog v0.12.0:
- added BoatMovement check which can detect boat fly and speed
- added bedrock-only config option which makes it easy to only check bedrock players and ignore java players
- Themis will now accept incomplete config files and just print warnings to the console and use defaults, except for the actions section which is more complicated, I want to rework that part another time
- renamed themis.update to themis.technical, in the future I want to add other technical information like when something is misconfigured to that permission, however themis.update will still work as an alias
- added a ActionEvent to the API which gets called whenever Themis runs an action
- made some other improvements to the API jar (nothing breaking)
- fixed a speed false positive when being pushed by entities
The config file wasn't changed.
Changelog v0.11.2:
- fixed packet spoof false positives when walking on powdered snow with leather boots
- fixed bedrock fly false positives when jumping up soul sand, dirt paths and possibly other blocks
- fixed a rare console error
The config file wasn't changed.
When updating to 1.18 I made a mistake that completely broke Themis on some Minecraft forks/versions, this should fix this. Sorry for the inconvenience. If there are still issues please contact me.
The config file wasn't changed
If you want to support my work on Themis, please consider donating on
https://www.patreon.com/themis_anti_cheat
Changelog v.0.11.0:
- added 1.18 support
- updated dependencies
The config file wasn't changed.
If you want to support my work on Themis, please consider donating on
https://www.patreon.com/themis_anti_cheat
Changelog v0.10.1:
- fixed elytra flight false positives when boosting with rockets that have duration > 0
- fixed elytra flight false positives when in water
- fixed another rare type of elytra flight false positives
- fixed a potential timer bypass
- made Themis update the setback position while gliding, also simplified the setback system to prevent problems when hacking is allowed (e.g. anarchy servers)
The config file was slightly changed, an elytra_flight section for the new check was added.
The changelog isn't long but this is a big release nonetheless. I finally added a check for Elytra flight which has been requested many times in the past. As with all new checks, it likely still has false positives, if you encounter any, please report them on Discord. I postponed some of the other features I had planned (including the config option for using the Geyser brand for Bedrock detection) because the Elytra check took me longer than expected and I didn't want to delay the Timer fix.
If you want to support my work on Themis, please consider donating on
https://www.patreon.com/themis_anti_cheat
Changelog v0.10.0:
- add Elytra flight check
- fixed Tickrate/Timer false positives when right clicking items
Title says it all, no config change, you can skip this update if you don't use the Geyser brand detection
The config file wasn't changed.
Important: If you're using
ViaBackwards, you need version 4.0.2 for the new ping measurements to work correctly. This version is not officially released yet, until it is you can download it from the official GitHub
here (click on artifact at the bottom and extract the jar you need from the zip file).
I also decided to open a Patreon page, in case you want to support the development of Themis you can do that
here (however Themis will stay completely free).
Changelog v0.9.2:
- improved the timer check, it should start flagging about 5x as quickly now
- made ping measurements more accurate
- added Bedrock detection via client brand as an alternative to Floodgate, can be enabled by adding -Dthemis.geyserbranddetection to the JVM arguments, this will be moved into the config in the next update, so keep that in mind
- fixed fly false positives when jumping through powdered snow
- fixed fly false positives when throwing snowballs or eggs
- fixed timer false positives when throwing snowballs or eggs
- a significant amount of refactoring to make the code cleaner and easier to maintain
- fixed an issue in the update checker that would cause it to not show updates 0.10.0 and later
The config file wasn't changed.
I had my last exam from this semester yesterday so I can finally start working on Themis again
This is a small update but with some important fixes that I wanted to get out quickly, but don't worry, more and bigger updates will come soon!
Changelog v0.9.1:
- fixed lag/crashes due packet spammers
- fixed "not implemented for temporary players" exception
- fixed Bedrock false positives at large coordinates
- fixed a rare console error after reloading while players are online
This update adds support to 1.17, however due to changes in NMS and a change in ProtocolLib, it would've been fairly difficult for me to keep 1.16 support, so I removed it, I expect most 1.16 servers will update to 1.17 soon anyways. If your server is still on 1.16 you can just stay on 0.8.2 for now, for now it's basically identical to 0.9.0 anyways.
Changelog v0.9.0:
- added 1.17 support
- removed 1.16 support
- updated Themis to Java 16 since it's required to run Minecraft 1.17 anyways
- fixed a rare bug that only happened when Viaversion is installed, that caused Themis to sometimes tp people to spawn
The config file wasn't changed.
Changelog v0.8.2:
- support for PlaceholderAPI placeholders in the notify command
- fixed a fly/glide bypass
- fixed a step bypass
- fixed /themis help not working
- changed how the packetspeed violation score is calculated to hopefully decrease the score for false positives because of lag
- fixed a rare fly false positive when jumping on slimes at a specific height
- attempted to fix a really weird bug where some weird condition (probably a conflict with another plugin) causes Themis to tp players back to spawn instead of dragging them back normally
The config file wasn't changed
This version mainly focused on making the API usable. I'll add proper documentation Themis' plugin page soon. Also the API is still really minimal because I want to make sure to only add stuff that is needed (especially since you should never remove features from an API once they're added), if you're missing anything just join the Discord and suggest it!
Changelog v0.8.1:
- added NotificationEvent which is sent when /themis notify is used and a ThemisApi class which currently only has a static getViolationScore(Player, ThemisCheckType) method
- fixed an issue that caused an optimization I introduced in the last update to not work
- fixed packet spoof false positives for Bedrock players when teleporting or respawning
- fixed vertical movement false positives for Bedrock players when sliding down honey
The config file was changed, I added the max-ping and min-tps settings. You can copy them here and add them to your default section to update your config:
Code (Text):
# Until which maximum ping should Themis check players? Themis will not check player who have a higher ping than this.
# Warning: Hacked clients can fake a high ping, use this setting with caution!
# Set to -1.0 to always check
max-ping: -1.0
# Until which minimum TPS should Themis perform checks? Themis will not check any players when the server's TPS are blow this value
# Set to -1.0 to always check
min-tps: -1.0
I'm pretty happy with the current state of Themis, all of its checks seem to be in a very good place with fairly few false positives. In this update I focused on optimising the performance, and on adding various smaller features that I had planned for a while. Since my next semester starts next week the frequency of updates will decrease, but I should still be fairly active (at least for the first few weeks).
Changelog v0.8.0:
- various optimizations including caching the config and some permissions, I think it should reduce processing time by about 30% but that's just a guesstimate, I'll update the performance section on the plugin page in the next days with real world numbers
- added max-ping and min-tps settings to the config
- added themis.silent and themis.silent.[checkName] permissions which is similar to the bypass permission, except it'll only prevent blocking but still make Themis check players and execute actions
- added a themis notifications command that allows players to toggle notifications (uses themis.notifications permission, no reason for a new one)
- added the client brand to the /themis info command (of course no hack client will send their real brand there, but I still think it's a cool feature that might be useful sometimes, e.g. it should allow you to check if someone is using something like fabric or optifine)
- fixed a fly false positive when jumping on grass paths as a Bedrock player
- fixed a fly false positive when jump boost expired on a lagging player
- added descriptions to all the commands (can for example be seen when using /themis help)
- some refactoring and code cleanup
The config file wasn't changed
Changelog v0.7.1:
- made Themis compatible with Floodgate 2.0 (of course it's still compatible with 1.0 too, Themis will figure out which one is available and automatically use the correct one)
- some more changes to the fly check to fix some potential bypasses
- fixed a packet spoof false positive when standing on a block that is being mined
- fixed a packet spoof false positive when standing in an exploding creeper
- fixed a packet spoof false positive when standing on an extracting piston
- fixed an illegal packets false positive on bedrock when using an elytra
- fixed a NullPointerException on ViolationEvent
The config file was changed, but you can simply copy this at the end of your config file to update it:
Code (Text):
# This checks for some impossible packets
# Ingame name: Illegal Packets
# Hacks that can trigger this: Fly (e.g. in Aristois or Inertia), ...
illegal_packets: {}
Changelog v0.7.0:
- added an illegal packets check which can detect some impossible packets, e.g. it can instantly detect when Aristois enables fly, even before the player starts moving, I plan to expand this check in the future
- significantly refactored the fly check, added more java/bedrock specific code for better accuracy, also fixed some bedrock fly false positives
- fixed some bedrock packet spoof false positives
- added a /themis info command with the themis.command.info permission which shows violations and other information about a player
- added /themis help command with the themis.command.help permission (default: true)
- fixed command error messages caused by missing files
- fixed packet spoof false positives when standing on upwards facing extracting/retracting pistons
- fixed a fly false positive when moving out of a cobweb
The config file wasn't changed
Changelog v0.6.3:
- fixed a bug where it was possible to use Jesus hacks on one block deep water
- improved the packet spoof detection, e.g. detecting nofall hacks faster
- fixed lots of speed false positives by making horizontal velocity handling a little bit more lenient
- changed the description of the packet_spoof check from "Illegal Packets" to "Spoofed Packets" (because I might want to use "Illegal Packets" for something else in the future)
The default config file wasn't changed.
I'm sorry about the double update, I forgot to add the themis.update permission to the plugin.yml in 0.6.1.
Changelog v0.6.2:
- added the themis.update permission to the plugin.yml
The default config file was changed!
There are two important changes in this update:
- I changed the themis.command.info permission to themis.command.base
- the empty check sections in the config now need {} to mark an empty section, otherwise there will be a warning in the console
Changelog v0.6.1:
- renamed themis.command.info to themis.command.base because I might want to use the info permission for another command in the future
- added an update checker which will notify everyone with the themis.update permission when a new update is detected
- Themis will now check that each of the sections has a (possibly empty) config section and print a warning if that's not the case
- Themis will now ignore detections for the first few seconds after a user joins since there's often lag until the client has loaded everything and fully caught up
- added the ping and tps placeholders to the comments in the default config, changed some of the formatting in the config comments
- some minor code refactoring/cleanup
Changelog v0.6.0:
- added ping and tps placeholders for the notify command, added them to the default config
- fixed a bug that made Themis ignore the execution-threshold setting for actions and always set it to 0.0
- added permissions to bypass individual checks, themis.bypass.[check_name]
- added separate code for handling ladders on Java and Bedrock since they have different speeds (previously I just used the higher Bedrock speed for both)
- log a warning if Floodgate isn't found
- made Themis check all config values on startup and config reload, so that if there's an issue it fails right away instead of potentially a lot later when that config value is needed for the first time
- updated dependencies