Jump to content

Status of "Cheat" Mods


RangerK
 Share

Recommended Posts

What attracted me in the first place to games of this genre is strategy, macro, teamwork...

@Grapjas if you get satisfaction out of making repetitive tasks that's ok. The mechanical skill of clicky stuff for me just gets in the way of game enjoyment, I prefer having time to think when playing rather then just only learning to queue up brain tasks.

I don't know exactly what proportion of players would actually prefer game with less clicky UI, but it's surely not 0%.
Also once again with remarks on skill and leagues and whatnot, I'm considered the same when balancing a game with me disallowed to use "automation", I let you conclude what you want of that, eventually stooping to make stupid remarks on this being related to """"""""skill"""""""".

  • Like 1
  • Confused 1
Link to comment
Share on other sites

1 hour ago, Atrik said:

if you get satisfaction out of making repetitive tasks that's ok.

I mean alot of games have tasks/routine that come with the genre, but that's not what i said anyway. You still need to adapt to the game and what's happening around you and be faster than the enemy.

1 hour ago, Atrik said:

I prefer having time to think when playing rather then just only learning to queue up brain tasks.

And thats excactly the unfair advantage it gives opposed to someone who doesn't use it, dont you see that? You're being really obtuse about it tbh.

1 hour ago, Atrik said:

I don't know exactly what proportion of players would actually prefer game with less clicky UI, but it's surely not 0%.

I'm sure there are people that would love to play it. It honestly sounds like total war games are better suited for your RTS itch if all you want to do is slay but w/e.

  • Like 1
Link to comment
Share on other sites

57 minutes ago, Grapjas said:

I mean alot of games have tasks/routine that come with the genre, but that's not what i said anyway. You still need to adapt to the game and what's happening around you and be faster than the enemy.

One can only agree. Is there a screnario or build that you think the autotrainer feature doesn't allow you to adapt your production too? In my experience you have much better control, and feeling of control of your production and army composition with the suggested autotrainer overlay.

1 hour ago, Grapjas said:

And thats excactly the unfair advantage it gives opposed to someone who doesn't use it, dont you see that? You're being really obtuse about it tbh.

You probably make very informed judgement, and you seems to have stake in mp. What's your lobby account name if I might ask? Anyway you might also be one that will start replying with quick claims and insults, I might be guilty of doing it too but better I stop replying to this thread.

  • Sad 1
Link to comment
Share on other sites

It doesn't take any multiplayer or even 0ad experience to understand that automating a signification portion of the game provides an unfair advantage. I wouldn't go hounding grapjas to "verify" if his level is high enough to critique your mod, anyone of any level can do so just like anyone can see through your self-serving argumentation and your dishonest downplaying of the advantages you get from progui.

Link to comment
Share on other sites

4 hours ago, Atrik said:

Anyway you might also be one that will start replying with quick claims and insults, I might be guilty of doing it too but better I stop replying to this thread.

Yeah it's gotta be exhausting being obtuse on purpose i guess. It's wasted energy. But now some volunteers have to find a solution to make games fair, which would've happened sooner or later anyway so its not a bad thing persé.

Onto that subject, i think a "no mods" toggle for the host would be nice thats on by default. But im not sure 0ad supports loading/unloading mods on the fly yet, seeing how you need to restart the game if you download a mod. On the other hand coding while playing does live update. Haven't looked into that much yet, and if it's on the cpp side of things im not even going to lol.

Maybe a mod can be made that detects unsigned mods or shows what files people have altered.

Edited by Grapjas
  • Like 2
  • Thanks 1
Link to comment
Share on other sites

41 minutes ago, Grapjas said:

Onto that subject, i think a "no mods" toggle for the host would be nice thats on by default. But im not sure 0ad supports loading/unloading mods on the fly yet, seeing how you need to restart the game if you download a mod. On the other hand coding while playing does live update.

Unfortunately hot loading doesn't happen normally. The game only scans the mod folder once on boot, then never scans again. Even if you put in a new mod, it will not be detected by the mod selector until you restart the game. 

However, this is not an impossible problem:

1. We can always load a dummy mod which has all the dummy file placeholders, so that the engine is forced to consider all of the files there in live. Then, if we need to modify a file, we copy in and replace the dummy on the fly. To deactivate, we overwrite with dummy values. 

2. We can add engine commands to check the mod folder more often for presence of new mods and hotload files. 

45 minutes ago, Grapjas said:

Maybe a mod can be made that detects unsigned mods or shows what files people have altered.

I'm afraid this might have to go to engine level. You can't really see into other people's mod files without hacking their computer filesystem. 0AD lobby 100% trusts your own mod reporter script during game registration, which only reports the title and versions of your active mods. The exact contents of your mod folders will never be transmitted to anyone.

On top of this, people can edit this script to fool the lobby and other clients. 

 

  • Like 1
Link to comment
Share on other sites

"Controversial" mods such as ProGUI and chat hacks often leave behind unwanted signatures that expose them. Having a machine learning detector program running besides 0ad might be a solution.

For example, we can implement ffm's script as a separate live application that sends a system message whenever abnormal activity is detected. Unsolicited behaviours such as private chat between specs and players will also leave a warning in everyone's log. Reveal map and other cheat commands will result in "invalid command" being printed in logs. If too much of these occur in one game then you know somebody is messing around. 

  • Like 1
Link to comment
Share on other sites

Sadly anti-cheat solutions don't seem to work on Linux. 

Anti-cheat programs be like:  Linux user = Hacker  + cheater -> ban

Linux users would have many more games available to them if it wasn't for anti-cheat engines; they are the true roadblocks; the compatibility issue is already handled very well by WINE and PROTON. 

  • Thanks 1
Link to comment
Share on other sites

10 hours ago, Seleucids said:

I'm afraid this might have to go to engine level.

I'm pretty sure someone can recompile the game and still play with people in the lobby if all you did was disable a check. Maybe someone more knowledgeable can confirm.

10 hours ago, Seleucids said:

You can't really see into other people's mod files without hacking their computer filesystem.

A checksum can be networked, what isn't there can be made. Still leaves the problem above though. But you'd cut out a decent portion of cheaters, untill someone publishes an alternative 0ad build they can install with a simple .exe.

10 hours ago, Seleucids said:

which only reports the title and versions of your active mods

It only shows signed mods afaik. Or better said, mods downloaded through the ingame downloader, which is the same thing.

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

Wow, I'm sorry. I created my own thread about a similar topic before I realized that this thread existed. But to be fair, both threads have been meaningful, and their purposes aren't exactly the same...

I must say that anyone who is actually suggesting that an anticheat program be included with 0 A.D. is arguing that 0 A.D. should cease to be a free software project. You can say what you want about what kinds of mod checks should be implemented, but that's the facts. You can't stop people from writing code on their own computers, due to the nature of free software. Anticheat solutions inherently require obscurity to work, so there cannot be a free-as-in-freedom anticheat. And I find the idea of using Machine Learning to help cringeworthy, but I digress...

After reading this thread in full, I am starting to think that we could use a compromise. I strongly believe that the use of ProGUI, AutoCiv, and similar mods is NOT cheating, and I have my own reasons that I won't dive into here (it's mostly free-software absolutism), but I understand that some people disagree with me, so I would be open to allowing game hosts to decide for themselves what mods to allow, and perhaps a way to see what mods are active on each client, just for the sake of convenience. Nothing super invasive, since it's truly impossible to stop the secret use of mods, but it would mainly serve as a convenience option to make sure people are on the same page, and so those who don't understand the dilemma will have their clients figure it out from them, assuming they haven't modified it for themselves.

I, for one, would never discriminate based on mod usage in my games, but I am finally coming to terms with the realization that I can't convince those who take the opposite extreme.

However, I do think that there is a separate problem that the full game state is necessarily stored on every client, which makes fog-of-war cheating much easier than it should be. I do believe that it is possible to fully eliminate the risk of this kind of cheating, by redesigning the network protocol so that the game state is stored away from untrusted players, and only partially synced with the clients (again, won't go into too much detail since I have my own thread for this). I think this should be discussed separately from the argument as to the long argument of whether changing the input/output system of the game constitutes changing the game itself (I believe it doesn't). That may allow us to actually accomplish something here.

Edited by WiseKind
Minor grammar and semantics changes for clarification
  • Thanks 1
Link to comment
Share on other sites

I think that it would be helpful to allow mod policies to be determed by each host for themselves, rather than forcing a single policy on everyone, since we all know that isn't going to make everyone happy. Here's how I think this should work:

  • Using ProGUI or other tools should not be against the TOS, and should not result in a ban from the entire Wildfire Games Lobby, even if a player lied about using it but...
  • Hosts should be empowered to implement and enforce their own policies for mod usage. For example, if @real_tabasco_sauce hosts a game and finds out that someone was trying to hide the usage of ProGUI, @real_tabasco_sauce can block that player from future games, but the offending player will still be able to play with other people, such as myself.

 

 

I think that the Internet, in general, is best when people are allowed to form their separate communities with their own rules, rather than everyone being forced to agree on one policy. I think community fragmentation is a good thing, as players should be free to pursue fair and enjoyable gameplay, whatever that means for them.

 

 

The Terms of Use should be primarily about regulating offensive behavior that is unambiguously harmful, such as posting links to pornography, or harassing individuals, or trying to hack the lobby or other players. Anything further than that should be the responsibility and authority of individual hosts to determine what is allowed in their games.

 

 

I think we should stay true to the values of free software, and not include any kind of obfuscation to prevent people from modifying the game if they really want to. What I have seen above is that there are ways for people to confidently detect the usage of ProGUI or similar tools. That's great, and we should leave those players to use whatever means to see fit to enforce their rules, while people like Atrik and myself can choose not to enforce any mod policy, and focus on having a fun game regardless.

 

 

I hope that this will allow us to stop fighting over this issue and move forward with the real problems, such as revealing the map.

 

 

Edited by WiseKind
When I posted this first, the formatting was bugged and weird. I tried to fix it. Hopefully it will look better now.
Link to comment
Share on other sites

On 01/11/2024 at 2:46 PM, RangerK said:

MOVES PER SECOND - Reacting to @ffm2 's comment on page 1 of this thread.

Wouldn't it be cool if after a game, you got see a chart of people's commands per second?  That would offer interesting insight not only into skill, but it also might reveal automation.

You could publish both peak and average commands per second.

Maybe there are some other statics that would put a spotlight on automation - like barracks idle time, resource use efficiency.

It seems that making more information public is technically easier than preventing certain behaviors.

Also - some unit-idle-time statistics at the very start to reveal start scripts?

On 01/11/2024 at 2:53 PM, Stan` said:

You can see some stats like that on https://replay-pallas.wildfiregames.ovh/

Maybe with the help of @Dizaka we could add such graphs.

I would be against implementing a summary statistic that shows the input rate of all players over time.

I personally hold the opinion that this input rate is not a crucial part of a player's performance. Concentration and multitasking are important in any RTS, but this is different from how fast you can input commands, and is not something one can easily measure with a number.

The reason I think this is because of the 0 A.D. Vision page that discusses potential "snares" that can make the game worse, and one of them is "Fastest click wins". It says the winner should be determined by strategy and intelligence, not APM.

I think adding this statistic would make it seem like an official idea that clicking faster makes you a better player, which is contrary to the stated design goals of the project. In reality it's being able to keep track of everything, which is completely different and can't be easily measured in the same way. I think this would give new players a wrong idea of what it really takes to be good at the game.

Please don't add this feature. It would be okay as a mod, but I wouldn't use it.

Edited by WiseKind
Added a paragraph to make it not seem like I'm arguing purely based on an opinion
Link to comment
Share on other sites

  • 2 months later...

I’ve used a few cheat mods in private games just for fun with friends, and while some can break the game, others just make things a bit more interesting. If you're looking into aimbots for testing or gameplay tweaks in other titles, see this here —I found some of the info there useful for comparing features.

 

Edited by Tureseco
Link to comment
Share on other sites

1 hour ago, Tureseco said:

I tried using the mod with the latest alpha, but it throws errors on launch. Might need some updates to match the current version’s changes in structure or commands.

Which mod? Do you mean the oddity detector? That one should work with 0.27.0 and 0.27.1 in my tests. What is the error?

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

After a large increase in cheat accusations between players and Geriatrix's monologue of claims, I think it's necessary for me to debunk the possibility of cheating in A27. I will reference the source code in every one of my statements so that you can peer review what I write and make further studies. 

 

1. Seeing enemy chat and spec chat. 

This is not possible anymore because all chat messages are sent to only the intended recipients by an engine function. The Engine.SendNetworkChat()  function is defined at Line 237 of https://gitea.wildfiregames.com/0ad/0ad/src/branch/main/source/network/scripting/JSInterface_Network.cpp

If you attempt to edit this file, the most you can do is send all of your messages to everyone, but those who use the official release will still be sending messages to the right targets, then you just make a fool of yourself. 

In A26 and earlier versions, the messages are sent to all players, then the GUI (defined in public mod) selectively displays these messages on the screen. Therefore someone can make a mod which removes the selection process to reveal all chat messages.  

 

2. Revealing the map

If you attempt to reveal the map by injecting commands into the console or using some kind of mod, you will get a message saying "Changing the perspective with cheats disabled is prohibited" . See lines 92-95 of https://gitea.wildfiregames.com/0ad/0ad/src/branch/main/source/ps/scripting/JSInterface_Game.cpp   Therefore the reveal map cheat is gone from a mod level.

Theoretically, one could edit the engine code to allow this function to be called, then recompile into a different version without causing OOS. However, this is beyond the level of most players. Furthermore, even if you call this function successfully, you will be put into a different player identity and you will not be able to control your own units and buildings. The advantage of the temporary vision is diminished by the need for extra apm and being afk for a bit. Oddity detector will likely pick you up and you might also have an OOS. 

 

3. Seeing enemy stats

This may be possible by changing some code in public/gui/ to display information about your enemy in the summary screen but I am not sure about this. One could theoretically edit the Javascript code of a mod with stat panels e.g. autociv, BoonGUI, ModernGUI to reveal enemy stats. However, actually doing it is non-trivial (not a 1-liner change) and most players don't even know where to start. @Atrik could we solidify our mod code to make hacks less easy?

 

4. Excessive automation

It has been demonstrated by ProGUI and Quickstart that automation of commands is possible. Therefore it is theoretically possible to make a mod which does all of the micro tasks for you, or completely take over your eco. The core technology is the function Engine.SendNetworkCommand() which issues a command. This function is normally called after interpreting an user input, but one can also spam call it in GUI code. This is where @ffm2's oddity detector comes in handy: if somebody sends too many commands in a short time, they are automating things. You can also inject commands in via RL interface.

However, what's the point ? You play 0ad because you enjoy playing the game and the action. If you automate everything that much, you might as well just stay spec behind some pro player who is actually playing and imagine that you are him.

 

5. Market exploit - yes this is still going on and we might ban this building / ask spectators to monitor abuse.  

 

6. Biased spectators - some players have a pro friend who is watching and giving advice to them in global chat or voice chat on another platform. Some might make a smurf account which joins as spec to see the game. But this is much of a social issue not a technical issue. 

  • Like 1
Link to comment
Share on other sites

I spectated a few games today and the market exploit was in 50% of them used. The state is quite bad imo. Maybe everyone is eager to try their new trick.

1 hour ago, Seleucids said:

could we solidify our mod code to make hacks less easy?

I don't see how atm. besides mod signing.

Link to comment
Share on other sites

50 minutes ago, Deicide4u said:

This is why we need more single player content. 

Unfortunately singleplayer is free cheat. Cheat codes are enabled by default, when you are under attack by the AI, all you need to do is gift from the gods + open developer overlay and win

 

42 minutes ago, ffm2 said:

spectated a few games today and the market exploit was in 50% of them used. The state is quite bad imo. Maybe everyone is eager to try their new trick.

Possibly people are just curious / giddy with this new discovery earlier today. But by later this evening, in the TGs hosted by Chocapoca and Akentas, nobody even bothered to build a market and the thing was forgotten

 

44 minutes ago, ffm2 said:

I don't see how atm. besides mod signing.

My plan would be to introduce some counter-intuitive names for variables and waffle a lot of irrelevant nonsense in the source code of Autociv to make it harder to pinpoint the important lines. 

Link to comment
Share on other sites

8 hours ago, Seleucids said:

My plan would be to introduce some counter-intuitive names for variables and waffle a lot of irrelevant nonsense in the source code of Autociv to make it harder to pinpoint the important lines. 

This would be a violation of autociv's license.

And for good reasons, as explained here: https://www.gnu.org/philosophy/free-sw.html

Link to comment
Share on other sites

9 hours ago, Deicide4u said:

This is why we need more single player content.

I dont really think cheating in mp is the reason we need more sp content, but we would definitely profit from more sp content. That being said, there are some great minds already at work to make it happen afaik, so be patient :P

Link to comment
Share on other sites

9 hours ago, Seleucids said:

Unfortunately singleplayer is free cheat. Cheat codes are enabled by default

Yeah, but it's only your choice to use them or not. Not so in a MP game with cheaters.

47 minutes ago, TheCJ said:

I dont really think cheating in mp is the reason we need more sp content

My reasoning was that, with more SP content, players will have more choice and not be affected by the cheating MP scene as much.

Link to comment
Share on other sites

3 hours ago, Mentula said:

his would be a violation of autociv's license

I don't understand, what is in violation of the license? 

  • At no point did the license mention restrictions on the names of variables and quality of code
  • By introducing waffles and misleading variable names, I'm not denying the user access to anything. I'm just presenting a more messy version of the the product. With enough patience, the user can still understand which variable is which. The source code is freely available as always. 
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...