Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stop element sync on demand #3245

Open
1 task done
haron4igg opened this issue Nov 18, 2023 · 10 comments
Open
1 task done

Stop element sync on demand #3245

haron4igg opened this issue Nov 18, 2023 · 10 comments
Labels
enhancement New feature or request

Comments

@haron4igg
Copy link

Is your feature request related to a problem? Please describe.

In respond to total disaster with WH/ESP cheating this days,
i think there is actually a solution, which will cure this issue for competitive servers for like 80% of cheat use-cases.

Describe the solution you'd like

If it would be possible to pause player/vehicle/ped synchronization for particular players on demand - we would actually prevent
cheat-makers and cheaters from knowing 'long-distance' situation in game world.

There would be no-way for cheat-makers to bypass it since client will have limited data.

lets say we have method:
setPositionSyncEnabled(emement, forPlayer, state)

So for server side, we may write a script, that for every 100-300 ms, enables sync of elements that are in range of N meters to player and removes position sync for elements that are offside of this range.

If server disables sync of some element, this element should become 'non-streamable' for client. or at least hidden to some technical dimension / or sent to some outside of map location, until sync is re-enabled.

Describe alternatives you've considered

No response

Additional context

No response

Security Policy

  • I have read and understood the Security Policy and this issue is not about a cheat or security vulnerability.
@haron4igg haron4igg added the enhancement New feature or request label Nov 18, 2023
@Zangomangu
Copy link
Contributor

This is achievable using dimensions

@haron4igg
Copy link
Author

haron4igg commented Nov 19, 2023

This is achievable using dimensions

2 of most used cheats that i know bypassing dimensions already.

@CrosRoad95
Copy link
Contributor

setPositionSyncEnabled(emement, forPlayer, state)

this function sounds like most dumbest thing i have ever seen. I know that recently cheaters count increased but solutions like your should never be accepted.

When i have been working on bullet physics, my idea was to use it in deathmatch server so server know what player sees and what should be synced, that way you won't ever know even enemy rotation if he is outside eye sight

@haron4igg
Copy link
Author

setPositionSyncEnabled(emement, forPlayer, state)

this function sounds like most dumbest thing i have ever seen. I know that recently cheaters count increased but solutions like your should never be accepted.

When i have been working on bullet physics, my idea was to use it in deathmatch server so server know what player sees and what should be synced, that way you won't ever know even enemy rotation if he is outside eye sight

Its just a tool which you may or may not to use depends on situation. For me its not improtant if player knows what is rotation/position of enemy in 1000 meters, but it is crucial that cheater is not aware of gameplay situation in 1000 meters.

In my server - cheaters using ESP to observe where 'big fights' are happens, or observe if some lonely player visiting some 'profitable' location. so they can come there and get 'easy profits'. This is what i'm trying to stop, and i can do nothing with this using current toolset.

On other hand - so far i have banlist of 140 players only for this year, who been caught using known cheats, using features which i'm able to detect. I can't imagine how much more people using this undetectable ESP, but at the end i'm having numerous of complains and people stopping play just because they don't feel confident that we can handle this issue.

@haron4igg
Copy link
Author

haron4igg commented Nov 19, 2023

At the moment few admins of similar project as mine, (me as well) having solution, to 'hide' player/vehicle from render so cheats are being confused and not able to render it. This is literraly the same idea as 'setPositionSyncEnabled' - but it's client-side solution and could be easly bypased in any time by cheat-devs.
And this was the last thing with current tool-set we were able to oppose them...

@ffsPLASMA
Copy link

ffsPLASMA commented Nov 19, 2023

This is achievable using dimensions

Working with dimensions on a large or specific way is either annoying or impossible.
Disabling sync of one element for a specific player or group of players could be very useful.

something like that I have in mind:

syncElement(element, player/table, bSync)

  • element: the element to sync or not sync
  • a player element or a table of player elements to sync to
  • bool to let it sync or not

@Zangomangu
Copy link
Contributor

From haron's description it sounds like he needs a cutoff based on distance.

So we could have an opt-in setting to disable sync updates over a certain distance between players
One solution could be to allow disabling lightsync entirely (gotta investigate to see if this is feasible)

@haron4igg
Copy link
Author

haron4igg commented Nov 19, 2023

From haron's description it sounds like he needs a cutoff based on distance.

So we could have an opt-in setting to disable sync updates over a certain distance between players One solution could be to allow disabling lightsync entirely (gotta investigate to see if this is feasible)

I prefer still to choose who should receive updates, and who not.
For example - team-mates should be able to see each other, or car-owners should see their cars on GPS/Map at any distance.

As of my understanding of light-sync, this should be already feaseble, because current light-sync evaluates distances for each player individually. And my proposal just needs one more extra flag on each syncable element, to filter it out for particular player.

@Zangomangu
Copy link
Contributor

Those are some good examples

My concern with a scripting function like this is that it gets mismanaged by scripters

There have been many reports from server owners claiming an issue with MTA when it's their own bad scripting allowing clients to abuse their server. So it's hard to see these people making proper use of a function like this.

But considering that anti-cheat is the job of server owners there should also be the necessary tools available. So overall i'm in favor of adding a function like this, as I don't see an alternative to countering ESP cheats

@Dutchman101
Copy link
Member

I don't agree with the concerns, and i support implementing this suggestion, good idea.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants