sp614x / optifine

1.78k stars 419 forks source link

[Category] FastMath option makes AntiCheat false flag. #5578

Open Tecnio opened 3 years ago

Tecnio commented 3 years ago

Description of Issue

(FOR PEOPLE THAT SAY 99.99 IS UNECESSARY THATS NOT THE POINT! A GAME AFFECTING GAMEPLAY IS NOT FINE AND ANY GAMEPLAY AFFECING MODIFICATION IS AN UNFAIR ADVANTAGE AND FLAGS ANTICHEATS) Basically when I or any other player uses fast math the different sin and cos table screws up my 99.99999% horizontal velocity check as Minecraft uses the MathHelper class which optifine edits while doing and this causes a 1E-4 offset from predicted on my check and for my first attempt at a prediction engine.

I saw this module effecting a few more anticheat developers complete prediction engine as well as my prediction and velocity check. https://artemis.ac https://grim.ac

If this was fixed it would make our job very much easier, and prevent people from having an unfair advantage.

Steps to Reproduce

  1. Enable FastMath and you are flagging like crazy.

OptiFine Version

Any OptiFine version with FastMath.

Installation Method

I used the standalone installer.

F3 Debug Screenshot

Image

Prior Testing

The problem never happens without OptiFine or FastMath.

Additional Information

Well this is really not cool and making prediciton false flag please take this in consideration.

0-x-2-2 commented 3 years ago

5583

itsnebulalol commented 3 years ago

Omg omg my badly coded anticheat detects optifine 😱😱😱😱😱

Who doesn’t use fast math

Decencies commented 3 years ago

Omg omg my badly coded anticheat detects optifine 😱😱😱😱😱

Who doesn’t use fast math

beta male developers use fast math

LowSpecCorgi commented 3 years ago

-snipped-

It’s not optifine’s fault that your anticheat is bad enough to ban for extremely minimal changes to movement, that, in reality, don’t affect gameplay what-so-ever.

I can only imagine how bad your anticheat would function in terms of server and player lag.

Virtually every player using optifine uses fast math.

Not optifine’s fault that you can’t be bothered to make decent checks other then extremely tight checks at a degree of precision prone to error and doesn’t actually affect anything in game.

Islandscout commented 3 years ago

And how exactly is it the anticheat's fault for modelling the vanilla client as accurately and precisely as possible?

I can bet that everyone here claiming that such high precision causes false flags have never made an anticheat even remotely close to the level of sophistication at which some of the anticheat developers here have, nor have they actually studied the Minecraft protocol and game logic.

But perhaps it doesn't matter, because even when Optifine releases the change, I could argue that there will still be a vast number of players who will still be using fastmath simply because they won't update their game.

GladUrBad commented 3 years ago

-snipped-

It’s not optifine’s fault that your anticheat is bad enough to ban for extremely minimal changes to movement, that, in reality, don’t affect gameplay what-so-ever.

I can only imagine how bad your anticheat would function in terms of server and player lag.

Virtually every player using optifine uses fast math.

Not optifine’s fault that you can’t be bothered to make decent checks other then extremely tight checks at a degree of precision prone to error and doesn’t actually affect anything in game.

Frankly enough, fast math does actually affect the game. It directly changes rotations and movement, causing imprecisions. A scenario where this can be applied is parkour. Some jumps are only possible with fast math enabled. Furthermore, it causes imprecisions to Minecraft's reach, causing reach to go slightly above 3 blocks, where the normal reach is 3.0.

As much as I disagree with the mentality that "FastMath should be detected as a hack because it causes a slight imprecision in game movement ree!!", your reasoning makes you seem extremely naive in terms of the game.

An ability to detect what is technically an unfair advantage at that high level of precision indicates a stable check, which detects a low imprecision such as 1e-8 movement prediction offset because it has a high level of accuracy. That indicates the check is well-developed.

It does not indicate a poorly made anticheat, nor an anticheat which would fail to maintain stability in scenarios where latency and poor server performance applies. These are simply your own projections on the developer because you want to look down on them for doing something good, just to feel better about yourself.

terminalsin commented 3 years ago

-snipped-

It’s not optifine’s fault that your anticheat is bad enough to ban for extremely minimal changes to movement, that, in reality, don’t affect gameplay what-so-ever.

I can only imagine how bad your anticheat would function in terms of server and player lag.

Virtually every player using optifine uses fast math.

Not optifine’s fault that you can’t be bothered to make decent checks other then extremely tight checks at a degree of precision prone to error and doesn’t actually affect anything in game.

1E-4 is still larger than the amount of thought put into this reply. An unfair advantage is defined as "everything modifying gameplay in any shape or form which gives a different outcome than regular players". Optifine modifies gameplay, henceforth it is an unfair advantage.

Tecnio commented 3 years ago

I agree with @GladUrBad and @terminalsin here, what they are saying is completely right. I hope this issue gets taken into consideration again.

Janmm14 commented 3 years ago

Optifine will not change. Just accept is as 99.999% vanilla, but not 100%.

If you don't want to code with fastmath accounting mind, create a little fastmath detector and kick them.

MisterCheezeCake commented 3 years ago

-snipped-

It’s not optifine’s fault that your anticheat is bad enough to ban for extremely minimal changes to movement, that, in reality, don’t affect gameplay what-so-ever.

I can only imagine how bad your anticheat would function in terms of server and player lag.

Virtually every player using optifine uses fast math.

Not optifine’s fault that you can’t be bothered to make decent checks other then extremely tight checks at a degree of precision prone to error and doesn’t actually affect anything in game.

Optifine is modifying vanilla behavior. Most servers have rules against modifying vanilla movement behavior. Sever developers should not have to account for a modification changing vanilla behavior. While in some cases it would not affect anything, it introduces a degree of uncertainty about competitive integrity which is something servers cannot have. As others have pointed out, it makes possible hits and jumps otherwise not possible.

terminalsin commented 3 years ago

Optifine will not change. Just accept is as 99.999% vanilla, but not 100%.

If you don't want to code with fastmath accounting mind, create a little fastmath detector and kick them.

With all due respect, I don’t recall you being anywhere near to being on the optifine team. Please feel free to correct me if I’m wrong. If such is not the case, I don’t see how you could impose your own opinion as a statement. As for your mathematics, we’d be looking at a 0.0001 offset per move. Taking into account NMS runs these calculations too, it would theoretically be possible to gain up to 0.1 blocks of continuous offset after 1000 ticks, eg 20 seconds. It’s important to take into consideration how such a “small” offset in truth holds a much more significant importance in the grand scheme of things.

MWHunter commented 3 years ago

We do have a fastmath detector that can kick players: https://www.spigotmc.org/resources/antifastmath.91568/

We just would rather have vanilla movement so the anticheat devs are here, in this issue.

The real issue is that let's say an anticheat is accurate to 1e-8 on average, which isn't far off from the truth. Optifine reduces this to 1e-4. This creates a requirement for 1,000x greater lenience, which is huge over a long period of time. Why should a plugin that detects non-vanilla behavior, an anticheat, have to adapt to a mod that does non-vanilla behavior?

There is a reason why fastmath is banned in speedrunning, it's not vanilla behavior and should be removed.

steviebeenz commented 3 years ago

Optifine is modifying vanilla behavior. Most servers have rules against modifying vanilla movement behavior. Sever developers should not have to account for a modification changing vanilla behavior. While in some cases it would not affect anything, it introduces a degree of uncertainty about competitive integrity which is something servers cannot have. As others have pointed out, it makes possible hits and jumps otherwise not possible.

Janmm14 commented 3 years ago

Optifine is modifying vanilla behavior. Most servers have rules against modifying vanilla movement behavior. Sever developers should not have to account for a modification changing vanilla behavior. While in some cases it would not affect anything, it introduces a degree of uncertainty about competitive integrity which is something servers cannot have. As others have pointed out, it makes possible hits and jumps otherwise not possible.

Mr copypasta pls move elsewhere. Youre another perfect example of the toxic anticheat developer community.

Getting Optifine to change is useless. Clearly the developer has seen this after a couple months of activity, had his good laugh at it and went on doing serious stuff.

a) There are tons of people not updating Optifine, an update will not help you in any way. b) You could just detect it and tell the user to turn it off

terminalsin commented 3 years ago

Optifine is modifying vanilla behavior. Most servers have rules against modifying vanilla movement behavior. Sever developers should not have to account for a modification changing vanilla behavior. While in some cases it would not affect anything, it introduces a degree of uncertainty about competitive integrity which is something servers cannot have. As others have pointed out, it makes possible hits and jumps otherwise not possible.

Mr copypasta pls move elsewhere. Youre another perfect example of the toxic anticheat developer community.

Getting Optifine to change is useless. Clearly the developer has seen this after a couple months of activity, had his good laugh at it and went on doing serious stuff.

a) There are tons of people not updating Optifine, an update will not help you in any way. b) You could just detect it and tell the user to turn it off

Once again, you’re the one getting upset, not the other way around. It seems you’re taking this thread slightly too personally. I’d advise, for the sake of your image and your reputation, to try more productive approaches in the future.

Tecnio commented 3 years ago

Optifine is modifying vanilla behavior. Most servers have rules against modifying vanilla movement behavior. Sever developers should not have to account for a modification changing vanilla behavior. While in some cases it would not affect anything, it introduces a degree of uncertainty about competitive integrity which is something servers cannot have. As others have pointed out, it makes possible hits and jumps otherwise not possible.

Mr copypasta pls move elsewhere. Youre another perfect example of the toxic anticheat developer community.

Getting Optifine to change is useless. Clearly the developer has seen this after a couple months of activity, had his good laugh at it and went on doing serious stuff.

a) There are tons of people not updating Optifine, an update will not help you in any way.

b) You could just detect it and tell the user to turn it off

Ah classic! Insulting the opposite side and trying to show you are the superior side by calling the other guy toxic which he is not.

Oreoezi commented 3 years ago

Y'all treating this thread like a group chat chill 💀💀💀

NikV2 commented 3 years ago

Hello, i recently brute forced interpolation within my reach check, And fast math is false flagging my 3.00000000000000000000000000000000000000000000000000000000000001

Reach check, Please fix.

Edited the spam - Kai

LowSpecCorgi commented 3 years ago

I swear some of the developers on this thread are, frankly, pathetic.

What the hell are you doing with such a specific velocity check, you should be checking for reach or whatever at a specific enough degree that it catches a cheater actually impacting the game, or anything really.

You go on about, 'oh no this will make my check 100x less accurate!!!', you frankly don't need to be checking to a degree of 0.0000001, that makes no sense, it will not catch more cheaters by making it slightly less precise, no, it will prevent more people getting false banned due to a stupidly accurate velocity check.

Good to know I won't be using "The Ultimate Anticheat Solution", that can't even account for one of the most used mods on the planet.

MisterCheezeCake commented 3 years ago

Hello, i recently brute forced interpolation within my reach check, And fast math is false flagging my 3.000000000000000000000000000000000000000...............0000000000000000000000000000001

Reach check, Please fix.

Please refrain from spamming in GitHub issues in the future. If you need to communicate a large string, please use a pastebin or a gist.

Tecnio commented 3 years ago

I swear some of the developers on this thread are, frankly, pathetic.

What the hell are you doing with such a specific velocity check, you should be checking for reach or whatever at a specific enough degree that it catches a cheater actually impacting the game, or anything really.

You go on about, 'oh no this will make my check 100x less accurate!!!', you frankly don't need to be checking to a degree of 0.0000001, that makes no sense, it will not catch more cheaters by making it slightly less precise, no, it will prevent more people getting false banned due to a stupidly accurate velocity check.

Good to know I won't be using "The Ultimate Anticheat Solution", that can't even account for one of the most used mods on the planet.

I am getting pissed at the fact that how ignorant and dumb stuff people are saying at this point. I can flag 3.01 reach I already figured out the other stuff. The point is not the velocity check here, it FLAGGING in the first place is an issue it should not flag in the first place. Any game play affecting thing should be punished for and a popular mod allowing modifications to the game is not okay. We are not talking about some 5 yr old bad mc mod that no one uses, this is OptiFine everyone uses it and it being flaggable by an anticheat is NOT okay.

I am telling again, it should not flag in the first place.

KaiAF commented 3 years ago

If this issue is going to continue have arguments or just spam, I am going to lock the issue.

Tecnio commented 3 years ago

I apologize but people are refusing a fact here which makes no sense. This is a game any modification that affects gameplay other than visuals are an unfair advantage, a popular mod affecting the game is not okay.

KaiAF commented 3 years ago

Would it be better if I just lock the conversation so that the actual point of the issue can be easily seen?

GladUrBad commented 3 years ago

In the end, it's better for anti-cheat developers to simply allow FastMath to not be detected, or account for it by detecting usage of the FastMath table through the movement.

Even if Optifine were to remove FastMath, you will still have players who will not update and still use FastMath.

On top of this, other clients such as Badlion have implemented their own sin tables different from FastMath and Vanilla in the past.

FastMath is simply an extremely slight game movement modification, it does create a very very minor advantage, that should not be detected.

Sacrificing your movement detection precision from 1e-12 to 1e-3 is not going to affect anything in the long run. Sacrificing your 3.0e-12 reach check for one that detects 3.01 reach is not going to affect anything.

Regardless of FastMath being a very very slight advantage, you cannot even propose the idea that is is unfair, as there are already millions of players using it.

FastMath is too widespread. You must account for it.

hollmanovec commented 3 years ago

Would it be better if I just lock the conversation so that the actual point of the issue can be easily seen?

Yeah, I think it would. People only repeat themselves by this point.

MWHunter commented 3 years ago

You go on about, 'oh no this will make my check 100x less accurate!!!', you frankly don't need to be checking to a degree of 0.0000001, that makes no sense, it will not catch more cheaters by making it slightly less precise, no, it will prevent more people getting false banned due to a stupidly accurate velocity check.

Imagine a dice game where you have to roll six dice, and if you get all the same type, you lose. Then imagine a developer reduced the amount of dice to three without changing the rules. This would mean you are 136x more likely to lose, (1,000 reduction in precision).

Then imagine if the developer that changed the amount of dice to 3 proceeded to point out that a legit player can also lose the game, so the game should be more lenient.

This is an analogy of what is happening here. Yes, the checks shouldn't be this strict. But fastmath makes it much more likely for the player to lose the game and get falsely banned, as usual 10,000x loss in precision up to a 10,000,000,000x maximum precision loss is just staggering.

Islandscout commented 3 years ago

LowSpecCorgi, again, why is it bad for an anticheat to be modelling the vanilla client as precisely and as accurately as possible? If an anticheat is modelling a client down to the exact movements and actions, then it is doing its job. Who are you to be telling us how accurate and precise anticheats should be?

Have you ever made an anticheat before? If you don't know how to write a 3.01 reach check with 99% consistency and with absolutely no false positives, then you aren't in the league with some of the anticheat developers here.

So where is the limit when reach is a significant advantage? 3.1? 3.2? 3.5? 4.0? Anything above 3 is already illegal. If you can reliably detect down to 3.01, why is that a problem? You would be catching cheaters faster because more of their illegal hits would be detected, statistically speaking. Your logic is ass backwards. Your logic is like saying "Why the hell are you detecting aimbot in csgo? You should only be detecting it when it gives a significant advantage."

You think that because an anticheat is more precise, it gets less accurate, or vice versa. Your problem is that you know absolutely jack how anticheats work, yet you're spewing out your opinions and trying to establish them as fact. You shouldn't even be talking because what you say has nothing to contribute with the issue in hand.

Tecnio commented 3 years ago

I swear some of the developers on this thread are, frankly, pathetic.

What the hell are you doing with such a specific velocity check, you should be checking for reach or whatever at a specific enough degree that it catches a cheater actually impacting the game, or anything really.

You go on about, 'oh no this will make my check 100x less accurate!!!', you frankly don't need to be checking to a degree of 0.0000001, that makes no sense, it will not catch more cheaters by making it slightly less precise, no, it will prevent more people getting false banned due to a stupidly accurate velocity check.

Good to know I won't be using "The Ultimate Anticheat Solution", that can't even account for one of the most used mods on the planet.

Islandscout is correct on this one, more accuracy doesn't mean more false bans that logic is completely off. You have absolutely no idea what you are talking about you are just going off a thought from your mind being this is too accurate and that's why it will cause false bans, no just straight up no. My system or any other competent developers system in here is based off 100% game logic, accounts for every possible scenario and without any modification to the game it will never cause any kind of false flags or bans.

Even if the check doesn't account for certain scenarios and these specific scenarios are not exempted, the user will get false banned regardless of the threshold unless it's stupidly high which in that case the check is not usable anyways and will not flag anything.

Janmm14 commented 3 years ago

@Islandscout

  1. What about calming down a little?
  2. As many already pointed out, getting Optifine to change will not fix the problem, because of the existing older versions.
  3. Why you don't just detect it and ask the user to turn it off?
  4. Why is there a need for Optifine to remove an optimization for older CPUs with smaller caches? Other options should be considered first - and they're given here many times already.
  5. 3.01 reach is 0.3% more than what vanilla allows, that is pretty much nothing. Taking the movement speed of a sprinting player according to minecraft wiki (5.6 blocks/s), a player with a ping ~1.7ms lower/higher (depending on the relative direction the enemy runs) could achieve the same benefit, if the client main tick lines up, which is an even higher gamble portion in minecraft pvp. If this difference is so much based on internet latency and client tick gambling, I don't see the reason to make a check that specific. Ping can very easily differ more than 2ms every couple seconds.
  6. Therefore if - for some reason - you don't want to tell the players to disable optifine fastmath, you'll have to slightly higher your thresholds.
  7. Please read 2. and 3. again and argue against those easy things to implement, before you only argue against 5
Tecnio commented 3 years ago

@Islandscout

  1. What about calming down a little?
  2. As many already pointed out, getting Optifine to change will not fix the problem, because of the existing older versions.
  3. Why you don't just detect it and ask the user to turn it off?
  4. Why is there a need for Optifine to remove an optimization for older CPUs with smaller caches?
  5. 3.01 reach is 0.3% more than what vanilla allows, that is pretty much nothing. Taking the movement speed of a sprinting player according to minecraft wiki (5.6 blocks/s), a player with a ping ~1.7ms lower/higher (depending on the relative direction the enemy runs) could achieve the same benefit, if the client main tick lines up, which is an even higher gamble portion in minecraft pvp. If this difference is so much based on internet latency and client tick gambling, I don't see the reason to make a check that specific. Ping can very easily differ more than 2ms every couple seconds.
  6. Therefore if - for some reason - you don't want to tell the players to disable optifine fastmath, you'll have to slightly higher your thresholds.
  7. Please read 2. and 3. again and argue against those easy things to implement, before you only argue against 5
  1. Waiting for the majority to migrate, forcing the users to update.

  2. Then what is the point the anticheat still has to brute force this possibility and has to take a large performance hit as the iterations double and for antichetas with a lot of iterations this is an immense loss. Basically exponents lol 2^2 = 4 2^3 = 8 2^4 = 16 2^5 = 32 2^6 = 64 2^7 = 128. You get the point every time we add 1 more possibility to our predictions it increases by a lot and enough of these is enough to make it unusable.

  3. And as @Islandscout said before you do not get to decide if 0.3% is a big difference or not. The game might be affected by other factors but it's a part of the game whilst what you are saying is clearly not lol.

Islandscout commented 3 years ago

@Janmm14 I'm not arguing against 2 and 3. Why are you telling me this? Tell this to everyone else.

As for 5, you're missing the point. I don't know why you mention velocity and ping; those things are irrelevant with these 3.01 reach checks. These checks are designed such that ping is irrelevant.

Yes, you can appear to reach further relative to others depending on your ping and opponent's relative velocity. Everyone who has been playing PvP for some time knows this. This occurs because hit detection is mostly client-sided. On your screen, you're only supposed to hit no further than 3 blocks. It becomes a problem when you modify your game to increase your range. That's what these 3.01 checks are designed to look for. It doesn't matter if your opponent cant tell whether you're cheating, the point is you're still cheating, which can make the difference between losing and winning a match. If someone is using 3.2 reach, more of their illegal hits will be detected on 3.01 detection vs. 3.1 detection, statistically speaking; so yes, this high precision does matter to aid in ratting out cheaters faster and more efficiently. Its a way for servers to say that they're serious about cheating. It's possible and feasible, so why not do it?

Besides, this whole 3.01 reach discussion is irrelevant to this issue and I only used it as an example against LowSpecCorgi's argument that high precision and accuracy is pointless.

Whitelisted1 commented 3 years ago

If this issue is going to continue have arguments or just spam, I am going to lock the issue.

I think it would be for the best that this issue was locked, at this point it's just arguing and not actual troubleshooting

MWHunter commented 3 years ago

Here is a fresh video showing that fast math does actually matter and does consistently flag anticheats. I turned my anticheat on debug mode with yellow being warnings that the player isn't following vanilla movement: https://www.youtube.com/watch?v=h2Yp6bNOJKY

Tecnio commented 3 years ago

https://streamable.com/qs8apm

I got a bit old one but still its proof.

Janmm14 commented 3 years ago

@Islandscout

  1. What about calming down a little?
  2. As many already pointed out, getting Optifine to change will not fix the problem, because of the existing older versions.
  3. Why you don't just detect it and ask the user to turn it off?
  4. Why is there a need for Optifine to remove an optimization for older CPUs with smaller caches?
  5. 3.01 reach is 0.3% more than what vanilla allows, that is pretty much nothing. Taking the movement speed of a sprinting player according to minecraft wiki (5.6 blocks/s), a player with a ping ~1.7ms lower/higher (depending on the relative direction the enemy runs) could achieve the same benefit, if the client main tick lines up, which is an even higher gamble portion in minecraft pvp. If this difference is so much based on internet latency and client tick gambling, I don't see the reason to make a check that specific. Ping can very easily differ more than 2ms every couple seconds.
  6. Therefore if - for some reason - you don't want to tell the players to disable optifine fastmath, you'll have to slightly higher your thresholds.
  7. Please read 2. and 3. again and argue against those easy things to implement, before you only argue against 5
1. Waiting for the majority to migrate, forcing the users to update.

2. Then what is the point the anticheat still has to brute force this possibility and has to take a large performance hit as the iterations double and for antichetas with a lot of iterations this is an immense loss.
   Basically exponents lol 2^2 = 4  2^3 = 8  2^4 = 16 2^5 = 32 2^6 = 64 2^7 = 128. You get the point every time we add 1 more possibility to our predictions it increases by a lot and enough of these is enough to make it unusable.

3. And as @Islandscout said before you do not get to decide if 0.3% is a big difference or not. The game might be affected by other factors but it's a part of the game whilst what you are saying is clearly not lol.
  1. Forcing upgrades requires you to detect fastmath as well
  2. Just attempt only with fastmath if if fails otherwise. Won't give you any performance hit. I think this is already mentioned in this discussion.
  3. Pls read below.

@Janmm14 I'm not arguing against 2 and 3. Why are you telling me this? Tell this to everyone else.

As for 5, you're missing the point. I don't know why you mention velocity and ping; those things are irrelevant with these 3.01 reach checks. These checks are designed such that ping is irrelevant.

Yes, you can appear to reach further relative to others depending on your ping and opponent's relative velocity. Everyone who has been playing PvP for some time knows this. This occurs because hit detection is mostly client-sided. On your screen, you're only supposed to hit no further than 3 blocks. It becomes a problem when you modify your game to increase your range. That's what these 3.01 checks are designed to look for. It doesn't matter if your opponent cant tell whether you're cheating, the point is you're still cheating, which can make the difference between losing and winning a match. If someone is using 3.2 reach, more of their illegal hits will be detected on 3.01 detection vs. 3.1 detection, statistically speaking; so yes, this high precision does matter to aid in ratting out cheaters faster and more efficiently. Its a way for servers to say that they're serious about cheating. It's possible and feasible, so why not do it?

Besides, this whole 3.01 reach discussion is irrelevant to this issue and I only used it as an example against LowSpecCorgi's argument that high precision and accuracy is pointless.

I know myself how the accurate reach detection works and that ping is not a factor in that. I was just saying that if you don't look at it from a purely technical point, but take the overall view that just a 2ms technical internet latency can give you the same benefits of a 3.01 reach cheat, you're missing the irrelevance of that cheat. For sure one could just code a client which fakes higher latency in the right moments to gain reach.

Islandscout commented 3 years ago

@Janmm14 While it's true that a 2ms network jitter could give you the same advantages as a 3.01 reach mod, a 2ms network jitter could also give you the same disadvantages as a 2.99 reach mod. (Consider the scenario where your opponent is running towards you: your opponent is closer than they appear.) What's important is that the legitimate player has no control over this. This is no reason to reduce the accuracy of the check. Just because you can't tell whether someone is cheating doesn't justify lowering the accuracy of the check. If I'd lost a csgo comp game by 1 round because the last standing opponent toggled on anti-recoil at the very last fire fight, I probably wouldn't notice. If I would have found out about it later, then yeah, I would be pretty upset. The cheat is still a cheat, it is not irrelevant, no matter how small of an advantage it gives.

I couldn't have put it any better than what MisterCheezeCake said:

Optifine is modifying vanilla behavior. Most servers have rules against modifying vanilla movement behavior. Sever developers should not have to account for a modification changing vanilla behavior. While in some cases it would not affect anything, it introduces a degree of uncertainty about competitive integrity which is something servers cannot have. As others have pointed out, it makes possible hits and jumps otherwise not possible.

While I am all for the best precision and accuracy in anticheats as possible (I have been passionate about my belief in competitive integrity throughout this thread), I have not given my stance on what Optifine should do. What I do know is that a lot of people use Optifine, so a large number of people may be using the fastmath feature. If everyone accepts fastmath as a legitimate feature, then in a sense, using it wouldn't be considered cheating (think of Syndrome from The Incredibles when he said "...when everyone's super, no one will be"). I don't think pushing an update to remove fastmath will fix the problem since a significant number of users may still be using old versions for whatever reason. Ultimately this appears to be an unfortunate situation with no clear solution.

MWHunter commented 3 years ago

Only real solution is removing it before 1.18 so all 1.18 clients are clean from fastmath. It's too late to save 1.17 and below clients from fastmath.

Tecnio commented 3 years ago

Define is correct half of the community uses the latest versions of Minecraft and if half of them got rid of it that would be a huge amount as Minecraft is a big game.

Milo123459 commented 2 years ago

From my understanding, FastMath no longer increases performance nor speed. I get SP worked ages on this but if it is false flagging AC's, why is it still implemented? If they know well that FastMath is causing AC's to false flag, and knows that FastMath doesn't impact performance, why is it not removed?

In a new version of OptiFine, fast math could be removed for all versions OptiFine supports. This'd just mean the AC would false flag for people who didn't update OptiFine, and people use Clients that automatically stay up to date.

Sorry if this is considered spam, but it's just my thoughts.

MWHunter commented 2 years ago

Any updates on this? Optifine is flagging my reach check because occasionally a fastmath player can hit from 3.00025 block away, which a vanilla client can't do.

Additionally, since there's two revisions of fastmath, it can never be fully patched without performance issues. Additionally, fully patching fastmath allows for cheats to switch between these tables based on whichever ones gives an extra 0.0001 block/tick of movement, which adds up over large distances.

I'm going to add a warning for fastmath users about how they can be falsely banned by using this table. Please remove fastmath.

Janmm14 commented 2 years ago

Any updates on this? Optifine is flagging my reach check because occasionally a fastmath player can hit from 3.00025 block away, which a vanilla client can't do.

Additionally, since there's two revisions of fastmath, it can never be fully patched without performance issues. Additionally, fully patching fastmath allows for cheats to switch between these tables based on whichever ones gives an extra 0.0001 block/tick of movement, which adds up over large distances.

I'm going to add a warning for fastmath users about how they can be falsely banned by using this table. Please remove fastmath.

  1. Stop caring so much about 0.001 kind of problems. Fastmath will not be removed it has performance benefits for older CPUs.
  2. You can just force the user on one version of fastmath after you verified which version of fastmath the client uses. You can also force that fastmath on-off cannot be changed while the user is actively moving. This prevents abuse. Oh no after the player ran 1000 blocks he is now 1 block further than vanilla. We need to all the police and the court immediately. He is such a bad cheater!!!11!!1!!!

Use more of your time to improve your killaura heuristics instead.

GladUrBad commented 2 years ago

Any updates on this? Optifine is flagging my reach check because occasionally a fastmath player can hit from 3.00025 block away, which a vanilla client can't do. Additionally, since there's two revisions of fastmath, it can never be fully patched without performance issues. Additionally, fully patching fastmath allows for cheats to switch between these tables based on whichever ones gives an extra 0.0001 block/tick of movement, which adds up over large distances. I'm going to add a warning for fastmath users about how they can be falsely banned by using this table. Please remove fastmath.

  1. Stop caring so much about 0.001 kind of problems. Fastmath will not be removed it has performance benefits for older CPUs.
  2. You can just force the user on one version of fastmath after you verified which version of fastmath the client uses. You can also force that fastmath on-off cannot be changed while the user is actively moving. This prevents abuse. Oh no after the player ran 1000 blocks he is now 1 block further than vanilla. We need to all the police and the court immediately. He is such a bad cheater!!!11!!1!!!

Use more of your time to improve your killaura heuristics instead. 🧠n't?

MWHunter commented 2 years ago

I give up. I'm not dealing with two fastmath tables. I'm just using the old one and false banning people who use the new fast math tables.

Tecnio commented 2 years ago

Any updates on this? Optifine is flagging my reach check because occasionally a fastmath player can hit from 3.00025 block away, which a vanilla client can't do. Additionally, since there's two revisions of fastmath, it can never be fully patched without performance issues. Additionally, fully patching fastmath allows for cheats to switch between these tables based on whichever ones gives an extra 0.0001 block/tick of movement, which adds up over large distances. I'm going to add a warning for fastmath users about how they can be falsely banned by using this table. Please remove fastmath.

  1. Stop caring so much about 0.001 kind of problems. Fastmath will not be removed it has performance benefits for older CPUs.
  2. You can just force the user on one version of fastmath after you verified which version of fastmath the client uses. You can also force that fastmath on-off cannot be changed while the user is actively moving. This prevents abuse. Oh no after the player ran 1000 blocks he is now 1 block further than vanilla. We need to all the police and the court immediately. He is such a bad cheater!!!11!!1!!!

Use more of your time to improve your killaura heuristics instead.

Honestly, you are dumb I am not keeping it civil at this point, I have heard enough of your BS. Why should I focus on a check that can be falsely flagged by design (HEURISTIC) whilst I can already flag most auras with movement??? I am done with people who do not know what they are talking about and spitting bullshit. Nobody cares about the fact that you do not see it as an advantage, some people do and care not everyone thinks the same as you. Cry about it. Not everyone thinks the same as you boohoo.

Whilst I am at it lemme invalidate your claims.

  1. The first sentence is just an opinion and not everyone has it including server owners so yeah. And for the second sentence, you do not get to decide that and the performance benefit is for CPUs that cannot even run Minecraft (you can search it up and do your research on that one).

  2. Yet again this should not be our duty in the first place it's an unfair advantage that you are requesting us to purposefully allow for. Unbelievable.

MWHunter commented 2 years ago

Use more of your time to improve your killaura heuristics instead.

Heuristic? I can detect 3.0001 reach or 0.0001 bounding box expansion with 100% confidence! I can ban off one violation without worry that it was a false, because the check is impossible to false no matter how laggy, how jittery their connection is, or what version they are playing on. 0.00025 may not seem like a lot, but that one in ten thousand chance of fastmath giving an advantage is enough to be permanently banned for reach without a chance of appealing, because again, it is mathematically impossible to false.

Janmm14 commented 2 years ago

You do not get to decide that a mod should remove an option. It is a discussion here.

ironically cares about 0.001% of cpus that actually are benefited by fastmath Every cpu benefits from it. Newer CPU's with bigger caches benefit less from it though, but they still do benefit, especially if users run many other programs in the background which also consume cpu cache space.

I don't care if you falsely ban people using optifine fastmath. Its then your problem or the problem of server owners who find out.

If server owners care that much or you as dev care that much, just tell people to turn fastmath off. That is much easier and people will do this. As I suggested before, you can run fastmath detection when normal detection fails, so its not consuming more cpu for the server. Then just lag him back excessively and tell him to disable optifine fastmath in a chat or kick message and boom, you're done. You've successfully achieved your goal of not bothering much with fastmath if you just do this. Even if optifine removes fastmath option which I highly doubt since this issue is open since so many months already, you still have to deal with older optifine versions (as I already pointed out in a previous post).

Use more of your time to improve your killaura heuristics instead.

Heuristic? I can detect 3.0001 reach or 0.0001 bounding box expansion with 100% confidence! I can ban off one violation without worry that it was a false, because the check is impossible to false no matter how laggy, how jittery their connection is, or what version they are playing on. 0.00025 may not seem like a lot, but that one in ten thousand chance of fastmath giving an advantage is enough to be permanently banned for reach without a chance of appealing, because again, it is mathematically impossible to false.

Why you talk about reach when I talk about killaura?

As you don't bother about fastmath you don't have 100% confidence. And even without fastmath, I know of possible conditions under which your check could still fail (for example due to unusual tcp fragmentation and connection hikkups causing the transaction packet to arrive a tick later than the entity move packet).

MWHunter commented 2 years ago

you can run fastmath detection when normal detection fail

This allows for bypasses in being able to switch to the trig table that gives an advantage

As I suggested before, you can run fastmath detection when normal detection fails, so its not consuming more cpu for the server.

This is more CPU consuming as total predictions would have to be tripled to account for this. Old fastmath + New fastmath + vanilla. You can't go backwards in a predictive anticheat, only forwards, which is why it couldn't be done just when the player "falses" due to fastmath.

you still have to deal with older optifine versions (as I already pointed out in a previous post)

I know, but if this was removed before 1.18, then all 1.18 players couldn't false the anticheat because fastmath

(for example due to unusual tcp fragmentation and connection hikkups causing the transaction packet to arrive a tick later than the entity move packet)

I account for this using math that remains perfect

Why you talk about reach when I talk about killaura?

A lot of killauras can be detected by good reach/hitbox checks

Tecnio commented 2 years ago

You do not get to decide that a mod should remove an option. It is a discussion here.

ironically cares about 0.001% of cpus that actually are benefited by fastmath Every cpu benefits from it. Newer CPU's with bigger caches benefit less from it though, but they still do benefit, especially if users run many other programs in the background which also consume cpu cache space.

I don't care if you falsely ban people using optifine fastmath. Its then your problem or the problem of server owners who find out.

If server owners care that much or you as dev care that much, just tell people to turn fastmath off. That is much easier and people will do this. As I suggested before, you can run fastmath detection when normal detection fails, so its not consuming more cpu for the server. Then just lag him back excessively and tell him to disable optifine fastmath in a chat or kick message and boom, you're done. You've successfully achieved your goal of not bothering much with fastmath if you just do this. Even if optifine removes fastmath option which I highly doubt since this issue is open since so many months already, you still have to deal with older optifine versions (as I already pointed out in a previous post).

Use more of your time to improve your killaura heuristics instead.

Heuristic? I can detect 3.0001 reach or 0.0001 bounding box expansion with 100% confidence! I can ban off one violation without worry that it was a false, because the check is impossible to false no matter how laggy, how jittery their connection is, or what version they are playing on. 0.00025 may not seem like a lot, but that one in ten thousand chance of fastmath giving an advantage is enough to be permanently banned for reach without a chance of appealing, because again, it is mathematically impossible to false.

Why you talk about reach when I talk about killaura?

As you don't bother about fastmath you don't have 100% confidence. And even without fastmath, I know of possible conditions under which your check could still fail (for example due to unusual tcp fragmentation and connection hikkups causing the transaction packet to arrive a tick later than the entity move packet).

You are on my issue where the point is to get this removed what the hell are you on about, the point is to get this feature removed here.

As @MWHunter said most auras can be detected by good reach checks + movement checks. As a cheater myself with a huge community around cheating I can say people do not like using aura on servers with good reach checks and velocity checks besides most auras can be flagged with the predictions we are talking about because most cheat developers are incompetent.

What you are saying is again intensive.

MWHunter commented 2 years ago

Okay, fine. At least give us the option to send a plugin message to the user that they should disable fastmath, and get a response back confirming that we successfully disabled fastmath. This lets both sides be happy.