Jump to content

Status of "Cheat" Mods


RangerK
 Share

Recommended Posts

Sure, but the great thing about adding a few statistics to the post-game charts and tables is that you wouldn't have to watch a replay.

Suggestions:

start efficiency
commands per second (chart)
peak commands per second
intensity time - #of seconds in which there were more than, say, 3, commands per seconds
barracks idle time in first 12 minutes.

I think showing this would be great.  Thoughts?
 

  • Like 2
Link to comment
Share on other sites

9 hours ago, Stan` said:

Any text editor. @Vantha @trompetin17 might have different approaches. You should use the hotloading feature as much as possible to get the fastest feedback. Two screens might help (or windowed mode)

Yeah, that's pretty much everything there is to say. Full wysiwyg editing is not possible. But adding and modifying basic GUI elements becomes a quick process once you get the hang of it.

Let me know when you need anything in this regard.

  • Like 2
Link to comment
Share on other sites

In thinking about this, I realized that Proposal 1 would potentially have the average effect of driving ProGUI use underground. This is because ProGUI is only practically used with ignoreInCompatibilityChecks set to false, and therefore isn't practically available on mod.io. Users will likely edit that setting in mod.json, which will cause the mod to fail zip signature checks, which will cause users to either not use the mod or attempt to hide use of the mod in matches that have Proposal 1 enabled.

As a result, Proposal 1 would not actually solve the problem of other players not knowing who is using ProGUI. Proposal 1 might even make that problem worse.

Edited by Norse_Harold
Corrected "ignoreInCompatibilityChecks"
Link to comment
Share on other sites

Well yeah you always run into the issue of trying to control things causing things to escalate. Where there is a need there is usually is a way.

BUT. People who want transparency would have it with proposal 1. The rest of the users would just not use it.

Link to comment
Share on other sites

I made some script to load game data in to python to plot it as I'm more familiar with python for plotting and analysis. Also it's much nicer to view all the variables in a variable explorer like the one from spyder.

Commands per seconds or turn (0.2 s) have the disadvantage that during lag (or later in the game) a player is able to do a lot of commands in one turn.

Here is me doing 10 commands in one turn:

turn 5455 200
cmd 2 {"type":"walk","entities":[10472,7963,8997,10619,11200,10735,9713,8881,10288,10455,10152,11198,6126,10820,9851,9287,10734,10641,10289,8975,9333,9008,9220,9281,9355,9356,9451,9453,9471,9561,9562,11199,9706,9712,9734,9838,9852,10620,10745,9926,10016,10151,10153,10575,10576,10291,10454,10574,10703,10775,10819,10830],"x":368.4579772949219,"z":944.2227783203125,"queued":false,"pushFront":false}
cmd 2 {"type":"walk","entities":[10472,7963,8997,10619,11200,10735,9713,8881,10288,10455,10152,11198,6126,10820,9851,9287,10734,10641,10289,8975,9333,9008,9220,9281,9355,9356,9451,9453,9471,9561,9562,11199,9706,9712,9734,9838,9852,10620,10745,9926,10016,10151,10153,10575,10576,10291,10454,10574,10703,10775,10819,10830],"x":374.57586669921875,"z":970.2582397460938,"queued":false,"pushFront":false}
cmd 2 {"type":"attack","entities":[10472,7963,8997,10619,11200,10735,9713,8881,10288,10455,10152,11198,6126,10820,9851,9287,10734,10641,10289,8975,9333,9008,9220,9281,9355,9356,9451,9453,9471,9561,9562,11199,9706,9712,9734,9838,9852,10620,10745,9926,10016,10151,10153,10575,10576,10291,10454,10574,10703,10775,10819,10830],"target":6368,"allowCapture":true,"queued":true,"pushFront":false,"formation":"special/formations/null"}
cmd 6 {"type":"walk","entities":[11159,10853,10854,10963,10965],"x":233.2589111328125,"z":647.6427001953125,"queued":false,"pushFront":false}
cmd 6 {"type":"walk","entities":[11159,10853,10854,10963,10965],"x":289.00238037109375,"z":808.5845336914062,"queued":false,"pushFront":false}
cmd 6 {"type":"walk","entities":[11159,10853,10854,10963,10965],"x":289.2769470214844,"z":809.2060546875,"queued":false,"pushFront":false}
cmd 6 {"type":"walk","entities":[11159,10853,10854,10963,10965],"x":289.27691650390625,"z":809.2093505859375,"queued":false,"pushFront":false}
cmd 6 {"type":"walk","entities":[7228,7882,7883,8114,8943,11225,11230],"x":309.6015625,"z":795.3712158203125,"queued":false,"pushFront":false}
cmd 6 {"type":"walk","entities":[7228,7882,7883,8114,8943,11225,11230],"x":309.6015625,"z":795.3712158203125,"queued":false,"pushFront":false}
cmd 6 {"type":"walk","entities":[7228,7882,7883,8114,8943,11225,11230],"x":309.6001281738281,"z":795.1552734375,"queued":false,"pushFront":false}
cmd 6 {"type":"walk","entities":[7228,7882,7883,8114,8943,11225,11230],"x":297.7958984375,"z":817.514892578125,"queued":false,"pushFront":false}
cmd 6 {"type":"walk","entities":[7228,7882,7883,8114,8943,11225,11230],"x":297.3807067871094,"z":812.8035278320312,"queued":false,"pushFront":false}
cmd 6 {"type":"walk","entities":[7228,7882,7883,8114,8943,11225,11230],"x":297.3807067871094,"z":812.8035278320312,"queued":false,"pushFront":false}
end

Notice player 6 (me) just does actually do 2 commands with 2 unit groups as these walks are not queued.

 

If your familiar with python / matplotlib go ahead and tinker with the script and analyze some games.

Figure_1.png

 

Edited by ffm2
  • Like 3
Link to comment
Share on other sites

4 hours ago, Norse_Harold said:

In thinking about this, I realized that Proposal 1 would potentially have the average effect of driving ProGUI use underground.

Sure, but i would expect fewer players to commit to the efforts you describe here. Also the fact that such efforts are needed to play with proGUI "underground" might tip people off that its not ethical/allowed.

Link to comment
Share on other sites

4 hours ago, Norse_Harold said:

In thinking about this, I realized that Proposal 1 would potentially have the average effect of driving ProGUI use underground. This is because ProGUI is only practically used with ignoreCompatibilityChecks set to false, and therefore isn't practically available on mod.io. Users will likely edit that setting in mod.json, which will cause the mod to fail zip signature checks, which will cause users to either not use the mod or attempt to hide use of the mod in matches that have Proposal 1 enabled.

As a result, Proposal 1 would not actually solve the problem of other players not knowing who is using ProGUI. Proposal 1 might even make that problem worse.

It makes it harder for cheats to be used and it also cements the “status” of such mods. When discussions of progui usage come up, some players ask me: “if it’s so bad then why is it allowed”

If users have to hide it, it decreases visibility for new users who may be unaware of it being considered a cheat.

Users also can’t hide it for long because it’s very obvious when observing and also there are changes to the meta-gameplay that result from using progui which would arouse suspicion.

Link to comment
Share on other sites

10 minutes ago, BreakfastBurrito_007 said:

if it’s so bad then why is it allowed”

People like to be gagged by authorities, If there is no law that says so, it is okay and moral good for people.

People should learn what is morally correct and clean(fair), not wait for something to be prohibited to act accordingly. 

Link to comment
Share on other sites

9 minutes ago, real_tabasco_sauce said:

Sure, but i would expect fewer players to commit to the efforts you describe here. Also the fact that such efforts are needed to play with proGUI "underground" might tip people off that its not ethical/allowed.

This features have 50% chance to make a fart if no host use, or 50% chance to shatter even more MP if some hosts get to believe this will be some kind of functional anti-cheat.

Only 10% of regular MPs use vanilla UI; therefor in combination with new mod.io rules, it will be impossible to join a host that doesn't have the exact same mods then yourself if the option is checked. Given that most agree that the splitting due to com mod is kinda bad, now we will potentially have one for autociv, boongui, progui, godeyes, ffm_whynotifeveritgetsonmodio... Any combination of theses... Just to "make cheating a little harder".

Link to comment
Share on other sites

3 hours ago, BreakfastBurrito_007 said:

It makes it harder for cheats to be used and it also cements the “status” of such mods. When discussions of progui usage come up, some players ask me: “if it’s so bad then why is it allowed”

If users have to hide it, it decreases visibility for new users who may be unaware of it being considered a cheat.

Yes, I thought of this, as well. However, ProGUI use is already occurring in team games. We need to make choices that are a solution for all stakeholders, not just some of them. If you select Proposal 1 then it only acts as a (attempted) solution for the hard-liners who totally oppose use of ProGUI. The reality is that there are a wide variety of opinions about ProGUI in the user base. And, if you choose Proposal 1 then some may see it as unreasonable and therefore see adjusting ignoreInCompatibilityChecks or other ways of hiding ProGUI as reasonable.

I think that what we want ideally is only overt use of ProGUI. That way we can negotiate either balancing teams based on which players are using it and which aren't, or else ask players to not use it based on hoster, and like-minded client, preferences.

3 hours ago, BreakfastBurrito_007 said:

Users also can’t hide it for long because it’s very obvious when observing and also there are changes to the meta-gameplay that result from using progui which would arouse suspicion.

This is true, BUT it's reactive, and it disrupts balance. We want a proactive way to know who is using ProGUI so that we can balance teams or enforce rules before the match starts. Proposal 1 doesn't do that. Proposals 2 and 3 do that.

Edited by Norse_Harold
Link to comment
Share on other sites

 

I've been playing with the script a bit more. Some user recomended me to check a suspicious game between borg_ and stockfish.

Here we see the attack commands (not queued). Stockfish has a time between turn 5300 and 5400 where he reaches over 20 commands in a turn multiple time while borg_ never gets over 4.

Looking at these commands in the file one sees:

turn 5325 200
cmd 1 {"type":"leave-turret","entities":[]}
cmd 1 {"type":"unload-all","garrisonHolders":[150,2374,2740,2883,2923,3057,3140,3229,3351]}
cmd 1 {"type":"leave-turret","entities":[]}
cmd 1 {"type":"unload-all","garrisonHolders":[150,2374,2740,2883,2923,3057,3140,3229,3351]}
cmd 1 {"type":"leave-turret","entities":[]}
cmd 1 {"type":"unload-all","garrisonHolders":[150,2374,2740,2883,2923,3057,3140,3229,3351]}
cmd 1 {"type":"leave-turret","entities":[]}
cmd 1 {"type":"unload-all","garrisonHolders":[150,2374,2740,2883,2923,3057,3140,3229,3351]}
cmd 2 {"type":"attack","entities":[2472,2483,2533,2701,2732,2735,2749,2781,2790,2806,2815,2825,2826,2846,2847,2848,2849,2851,2852,2853,2864,2872,2873,2874,2875,2876,2889,2896,2897,2912,2947,2960,2971,2973,2975,2977,2985,2995,2997,3022,3029,3030,3031,3032,3034,3035,3036,3040,3042,3055,3068,3069,3071,3083,3084,3085,3088,3100,3105,3120,3122,3123,3134,3145,3160,3171,3181,3193,3200,3209,3214,3223,3224,3226,3227,3245,3247,3254,3281,3287,3292,3294,3308,3309,3311,3313,3314,3316,3329,3330,3331,3346,3347,3348,3360,3361,3363,3365,3366,3367,3373,3376,3379,3390,3391,3392,3393,3421,3422,3425,3429,3431,3435,3440,3444,3445,3451,3467,3468,3469,3471,3509],"target":2963,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2472],"target":2963,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2483],"target":2963,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2533],"target":2963,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2701],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2732],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2735],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2749],"target":2446,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2781],"target":3050,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2790],"target":3050,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2806],"target":3050,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2815],"target":3050,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2825],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2826],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2846],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2847],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2848],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2849],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2851],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2852],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2853],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2864],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2872],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2873],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2874],"target":3342,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2875],"target":3050,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2876],"target":3050,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2889],"target":2446,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2896],"target":2446,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2897],"target":2446,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2912],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2947],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2960],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2971],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2973],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2975],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2977],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2985],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2995],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[2997],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3022],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3029],"target":2963,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack-walk","entities":[3030],"x":535.4337768554688,"z":222.9183349609375,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack-walk","entities":[3031],"x":535.2202758789062,"z":222.64129638671875,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack-walk","entities":[3032],"x":535.2202758789062,"z":222.64129638671875,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack-walk","entities":[3034],"x":535.2202758789062,"z":222.64129638671875,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack-walk","entities":[3035],"x":535.2202758789062,"z":222.64129638671875,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack-walk","entities":[3036],"x":535.2202758789062,"z":222.64129638671875,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack-walk","entities":[3040],"x":535.3624267578125,"z":222.36502075195312,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack-walk","entities":[3042],"x":535.3624267578125,"z":222.36502075195312,"targetClasses":{"attack":["Unit","Structure"]},"queued":false,"pushFront":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3055],"target":3015,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3068],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3069],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3071],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3083],"target":3234,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3084],"target":2446,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3085],"target":3050,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3088],"target":3183,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3100],"target":3183,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3105],"target":2385,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3120],"target":2545,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3122],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3123],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3134],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3145],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3160],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3171],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3181],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
cmd 2 {"type":"attack","entities":[3193],"target":3475,"queued":false,"pushFront":false,"allowCapture":false,"formation":"special/formations/null"}
end

So stockfish gives each unit there a individual command. Not as a group. Each command he would need to select the unit and select the target if I'm not mistaken. And the first 3 attack the same target. He'd rather select 3 units individually and attack one target instead of selecting them to a group.

The game is from:

https://replay-pallas.wildfiregames.ovh/Replays/ReplayDetails/9E145F4901E161F4

Figure_3_full.png

Figure_3_zoom.png

 

load_replay.py

Edited by ffm2
small fix in the code
  • Like 3
Link to comment
Share on other sites

6 minutes ago, ffm2 said:

Here we see the attack commands (not queued). Stockfish has a time between turn 5300 and 5400 where he reaches over 20 commands in a turn multiple time while borg_ never gets over 4.

This is interesting. I would like to hear what @Stockfishhas to say about it before anyone jumps to conclusions.

  • Like 1
Link to comment
Share on other sites

In a very enduring and extreme way. This script is very young, although I checked games of good players and haven't seen it this extreme. There's also hardware that send multiple commands with very few delay on one click, but that would not explain the change of targets. It could also be some way to play the game other players don't know. With this kind of lag @borg- or @borg_ must be very frustrated and remember this.

In the team games that I checked one can see lag a bit that multiple people have the chance to cramp in a lot of commands in one turn.

  • Like 1
Link to comment
Share on other sites

3 hours ago, Atrik said:

Only 10% of regular MPs use vanilla UI; therefor in combination with new mod.io rules, it will be impossible to join a host that doesn't have the exact same mods then yourself if the option is checked. Given that most agree that the splitting due to com mod is kinda bad, now we will potentially have one for autociv, boongui, progui, godeyes, ffm_whynotifeveritgetsonmodio... Any combination of theses... Just to "make cheating a little harder".

Is it 10%? I don't know how many use the regular UI. I would have thought plenty of players prefer the regular UI. I do at least.

Of course not all games need to have the option checked, and i think it should be unchecked by default. I'm sure solutions can be found for certain mods. For autociv, which is certainly the most popular I think the main features (exect for the in-game data table) should be merged.

  • Like 1
Link to comment
Share on other sites

4 hours ago, Norse_Harold said:

That way we can negotiate either balancing teams based on which players are using it and which aren't, or else ask players to not use it based on hoster, and like-minded client, preferences.

Some of that is part of the issue. No clean player should have to ask a progui user not to use it, it should be up to the person who wants to use it to ask if they may. The default should be that no one is allowed to cheat. Also not all cheaters will be honest or participatory negotiators as we have seen.

Surely also you may see why having equal numbers of progui users per team is balanced for the teams but unfair for the players.

@ffm2 I think in this case the 20 commands is just sniping attack commands to distribute damage. This can be done in the base game. 

  • Like 1
Link to comment
Share on other sites

4 hours ago, Atrik said:

Only 10% of regular MPs use vanilla UI; therefor in combination with new mod.io rules, it will be impossible to join a host that doesn't have the exact same mods then yourself if the option is checked. Given that most agree that the splitting due to com mod is kinda bad, now we will potentially have one for autociv, boongui, progui, godeyes, ffm_whynotifeveritgetsonmodio... Any combination of theses... Just to "make cheating a little harder".

There is literally just ONE mod that everyone is complaining about. All the rest of this is noise to make it look like we are not signaling any one person or mod out. 

Let's call a spade a spade and disallow progui. Everything else is overly complicated and/or incomplete. 

Edited by chrstgtr
  • Thanks 1
Link to comment
Share on other sites

4 hours ago, guerringuerrin said:

@ffm2 couldn he just doing alt+right click micro fasion? (where alt is "Order one unit" hotkey) while some lag spikee was going on?

Its true that you can get quite a few clicks in while its lagging, but in a 1v1, I would be shocked if 70 actions in 1 turn is possible.

At first I assumed it was the garrison/degarrison pathing system, but it looks like essentially (dare I say it) autosniping.

Unless @ffm2 ur using a bin size of more than 1 turn?

Link to comment
Share on other sites

46 minutes ago, real_tabasco_sauce said:

Unless @ffm2 ur using a bin size of more than 1 turn?

No, it's not even a bin but a regular line graph with each turn.  Could be a bin later with adjustable width. Here's not just every command plottet, but only the attack commands with queue off.

This script gives atm. 4 graphs, all commands, attack without queue, attack with queue and stop.

It's interesting because some players use attack with queue quite often (very good do it rarely) and some don't use the stop command (or H key) for fast attacking of the nearest unit.

Also once one is suspicious one can and should look in the commands.txt and search for "turn X". Ungarrision / teleporting is indeed another action in which a user can have a irregular high command count.

Link to comment
Share on other sites

2 hours ago, BreakfastBurrito_007 said:

@ffm2 I think in this case the 20 commands is just sniping attack commands to distribute damage. This can be done in the base game. 

Could you tell me how? Atm. I only see the way with alt+right_click in combination with extreme lag in a usual game.

Link to comment
Share on other sites

6 hours ago, ffm2 said:

Could you tell me how? Atm. I only see the way with alt+right_click in combination with extreme lag in a usual game.

You can force your units to attack only enemy ranged units by editing unit_actions.js, change the target classes then setting the appropriate hotkey. However, the effect of this is not so persistent and does not save you much effort.

 

FFM you should also be aware that during large fights, each turn may take a few seconds to process and during this lag, some players panic and spam click. As a result, you may see abnormal amounts of commands being sent.

Link to comment
Share on other sites

Hi everyone.

i have no development experience and i admit i can't understand all the technical issues mentioned in the post. I just like to play the game ....but

I expect a multiplayer game to be a competitive little "race" where skill and strategy should decide the outcome. Every player imo must have the same basic technical prerequisites to ensure that skill decides .... If ProGUI (... the name is misleading btw as the mod obviously is much more than a GUI - i didnt know that a long time) is adding some considerable advantage, then it is not a fair basis for the competition. It is like you would have some motorcycles taking part at the Tour de France ...

If people like motorycles....fine,  they can compete with other motorcyclists.... but imo not with the byciclists...(and call it a cycle race)

I do understand that things are a bit different in an open source computer game. And some consider the development and use of automation and the "little" extras more as a kind of car tuning in  formula1  ... but i think for a multiplayer game this should be absolutely limited and transparent. If all in the game use it it would be fair.... if none in the game use it it is fair... nothing much inbetween imo. (I mean the automation stuff - not the GUI part)

Overall, i think solving the issues raised in this topic is very important for the community and the attractivity of 0ad, not only for the experienced players. If new players know that there are cheats which can't be prevented, or efforts to do so are not visible, they might be deterred to start the journey of 0ad. So i am happy that this is beeing discussed here and hopefully be solved somehow.

As i said i am not much inside the technical aspects, but i like the suggestions of @Alnur earlier in this post,  to synchronize and overwrite mods before gamestart as it seems to guarantee everyone is playing with the same technical prerequisites. And if this is an optional setting ... also fine. So I coud host a game with my kind of "punkbuster" activated and other hosts who don't care could just deactivate it ... (Would be interesting to see how many activate it, btw)

 

 

 

Edited by strat0spheric
  • Like 3
Link to comment
Share on other sites

2 hours ago, AInur said:

FFM you should also be aware that during large fights, each turn may take a few seconds to process and during this lag, some players panic and spam click. As a result, you may see abnormal amounts of commands being sent.

It’s true you can do a lot of one turn clicks if it’s laggy. But this was a 1v1. And 70 clicks in one turn.

Link to comment
Share on other sites

12 hours ago, real_tabasco_sauce said:

Is it 10%? I don't know how many use the regular UI.

No, @Atrik is just making up numbers.

2 hours ago, strat0spheric said:

If ProGUI (... the name is misleading btw as the mod obviously is much more than a GUI - i didnt know that a long time)

Wait until you learn about other mods, like "autociv" for example. :wink1:

I believe it'd be very beneficial for mods to focus on a single area of improvement, instead of putting everything the author can think of into a single mod. This way it would be much easier for players to get exactly what they want and publishing the mods on mod.io would be easier and less controversial as well.

  • Like 5
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...