NoCheatPlus / Issues

Issues managment for the NoCheatPlus project.
13 stars 9 forks source link

Sponge #198

Open DarkArc opened 8 years ago

DarkArc commented 8 years ago

This is an inquery/feature request for Sponge support.

I'm curious as to plans for potential Sponge support, if any, and how others might be able to assist in adding Sponge support.

asofold commented 8 years ago

All in all NCP is taking much time, and it's needed for the basics of a server i could have (had), so it's hard to imagine how to do 'more' without contribution in the first place.

Now for Sponge, the short version is similar to:

Thinking of contribution, there of course are other things to consider, like how to organize code / workarounds / classes of checks (deterministic envelope, pretty hard heuristics, experimental heuristics, detecting specific cheat implementations via pattern matching or machine learning ...), documentation/modeling/management etc. It's a wide area and i'd certainly be open to discussion. For me it's just important that the thing provides the mostly deterministic and at least near-decent base protection, while keeping false positives at bay - this means we're dealing with latency effects in rather deterministic ways, so what i have in mind won't be too simple, plugins focused around 'simple' approaches keep popping up anyway, virtually with every new dev trying something with anti cheating, and most don't cover enough ground and/or they drop it rather sooner than later. On the other hand the system is meant to allow replacing checks even at runtime, so there can always be 'very classic' or 'very simple' implementations for checks e.g. for starters. With more people contributing it'll also be thinkable to patch up faster, by just adding a detection for a specific implementation of a cheat/client, but that can't be the main focus, as that will just be bypassed the next day, even if it raises the ban count.

The typical plans for NCP (partly long term) are mentioned here:

Beware these are largely redundant and contain an arbitrary amount of random gibberish.

asofold commented 8 years ago

For the question on how to support...

the first task would be to provide a common infrastructure, so both sides profit. It's probably slightly early to just rush in, as some stuff in NCP is going to be changed to something that could later be common.

Typical common infrastructure:

Ambitious could be to attempt to do the moving checks first:

Another approach would be to just exchange knowledge/experience, so someone else builds something for sponge, with occasional exchange.

Perhaps i'll evaluate on further abstraction on moving checks at some point, so one could try a prototype without any registries at some point, with reasonable effort. (Edit: This is also interesting for recording + testability)

EnderStar commented 7 years ago

what about meanwhile porting the easy things like thunder sounds, hiting yourself, and other checks that wont affect mods? thanks!

asofold commented 7 years ago

There needs to be some common infrastructure, so the essential check code is the same for both mods. Otherwise it'll be maintaining two much different plugins for the same thing.

The idea is to just implement new data/access poroviders for most, otherwise it's not feasible for me to do.

Janmm14 commented 7 years ago

@EnderStar Hitting yourself is blocked by newer minecraft servers themself and sponge should add an internal check for that too if that did not happen already.

theboomer commented 7 years ago

Given that you have an idea on how to make crossplatform systems in order to be possibly feasible, have you been able to give any further time to investigating the approach?

Sponge is much more mature now than it was a year ago, big gaps filled in now, drawing more attention for being put to use for purposes other than pixelmon servers. And an hour looking with a client like Wurst just makes my spine melt - yes, so much of it being client-side only or nearly indistinguishable from a piece of tape on a mouse button or keyboard or a persistant responsive player, not much can be done, but so many others that scream out for a way for Sponge users to be alerted --- no tool was ever perfect, nor could be, but with clever and thoughtful feedback-based tuning, it was always reassuring that NCP and orebfuscator were going to annoy most 'hackers' enough to chase away, and those who persisted would be lighting up the mod chat and logs with a variety of different noises that drew attention quickly. While a lot of these tool hacks have very very specific vector and 12-decimal fractional parts that can't be produced in game any other way and even ONE occurance of such hit in a player move event or such, and a zero-tolerance catch can be easy to code for them, it is that statistical-like 'lets give them enough rope to hang themselves if its real' approach to allow for rare false positives to fade out that NCP brings to the table that gives the power to the admins.
My experience is that only a handful of cheats need to be caught/suspected, as folks armed with 100+ tools will seldom restrict themselves to 1 or 2 undetectable ones, and try to push their limits a bit, especially flying , waterwalking, xray, chestfinding, and various types of kill auras as a safety net on even just a non-pvp, PVE survival server. A bit of noise raised out of suspicion from ncp, and then its often easy to watch invisibly as the player performs a series of acrobatic moves that are clearly hacks but not registerable, or watch them zero in on underground spaces and planted chests uncannily, or kill a mob spawned behind their back in a split second before resuming to mine.

It would be very nice to get a fraction of that back again, on Sponge, to pick up on a fraction of it to at least draw attention to those to watch...

I hope you are going to be able to manefest your thoughts to make this a possibility eventually. Positive energy being directed your way..

Janmm14 commented 7 years ago

With the last build of NCP being more than two months ago I assume there is not even enough time to manage ncp for craftbukkit/spigot and I guess only little internals might have changed with cross-server-support in mind, so it would still take a huge amount of work to get ncp onto sponge.

asofold commented 6 years ago

@Janmm14 Very likely.

On the other hand the roadmap hasn't really changed, so on the very long run it becomes more probable rather. Currently i'll also work towards making it easier to contribute towards NCP rather than implementing new complex concepts, because it's not going to help the open source variant to patch up something that's non-critical or that other plugins do, if we can make it easier to distribute extra jars with experimental checks ourselves, and get more code-wise contribution incoming. And there is some overlap with working towards support of other server mods, partly planned, partly in focus.

So the primary focus is to make it easier to add/alter/exchange stuff, which is pretty much in line with working towards being independent from the underlying mod. Of course the independent core won't make the checks run on another mod, but it'll make it possible to transform the most important ones one by one, while the core is already enabling on another mod.