Count each time a character jumps - most methods fail?

That would work I hadn’t tried that because it would fire if the player is freefalling but it should work if I add a second check

Yeah, detecting exploiters is a really difficult task, and the anti-cheat you put in place really does depend on the use case, I cringed myself when writing those suggestions so please do take it with a pinch of salt haha.

1 Like

Turns out you actually don’t need it because the state of a humanoid is replicated…

1 Like

Ah, well that’s perfect then. Happy to hear it is, useful to know as well. :smiley:

2 Likes

so far, I don’t spend a lot of time fighting exploiters. if they do something to break my game, I might. but if they just stop stamina or something…I don’ know. I’m not sure I let that bother me - what percentage of players are exploiters anyway?

Probably not the right approach, but that’s how I sometimes think of it.

1 Like

you could work off of keypress using context action service and detecting the following:

  1. that the input state is inputbegan
  2. the humanoid state is not jumping or falling
1 Like

No a game engine shouldn’t and usually doesn’t know that. Most game engines don’t come with default character movement. A game engine should give you the tools to figure this out, which roblox does.

Honestly just use downward raycasts on the server, it’s nearly the only thing that can be somewhat secure. An exploiter can change the state themselves, and then the server won’t even know the player is jumping, and they can abuse stamina all they like because they don’t even use it.

3 Likes

To note on this solution, this is most certainly the way to go for reliability without having to worry about it being modified by exploiters, but there will be a slight inaccuracy with what the client tells as a jump, and what the server tells as a jump.

To test this theory, implement a downwards raycast system on both the client and the server, check the magnitude is above a certain amount between your HumanoidRootPart and the raycast intersection point and see which one prints first, it should be the client. :slight_smile:

2 Likes

Of course the client will print first, the client is authorative of its own movement and sends it to the server. Delay is processing and ping.

2 Likes

We said we’d do it last Wednesday, but we had to go longboarding and stuff…so we only just got to it. :slight_smile:

This works and solves the problem.

Appreciation to those who offered a raycast solution; we will look into that when we have a minute.

Thanks PR for giving us the immediate answer that solves the issue for us. !

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.