Author Topic: Fix the CTF Autobalance ffs  (Read 10049 times)

Offline MasterOz on: January 21, 2021, 05:22:13 pm

  • Full Member
  • ***
  • Posts: 100
    • View Profile
The topic says it all. Fix the autobalancer or remove it! It's not fun anymore with this bugged up script destroying our time meant to have fun.
We come here for fun but get what? A team overpowering another after every 5 minutes of casual gameplay?
If you want detailed info, not only me but many players will give it but please do us one last favor, fix this gay shit!

Offline NewK #1 on: January 22, 2021, 07:18:25 pm

  • Developer
  • Hero Member
  • *
  • Posts: 893
    • View Profile
After looking at the script and doing more tests, I was able to reproduce the "issue", and I can conclude this report is yet another case of someone who does not understand how the autobalance works. Your screenshot doesn't really prove anything. Because you're using the F5 scoreboard to look at players but you dont know if they're actually spawned. You say there's 5 players on the red team but they're not all spawned.

The autobalance system only takes spawned players into account. You should have used the /splayers cmd to get the number of spawned players of each team.

If I change the system to count unspawned players aswell, then every time some idiot looks at the F5 scoreboard, it will look balanced, but in reality, it won't be balanced at all. Because some players are just AFK on the spawnscreen or are just spectating.


Players who claim there is a bug are usually either:

- Using the F5 scoreboard to compare the number of players in each team (which doesn't show if players are spawned)
- Or think the server will assign already spawned players to a different team when players leave the server


Not sure how many more times I have to explain this to people...


Offline MasterOz #2 on: January 24, 2021, 06:24:11 pm

  • Full Member
  • ***
  • Posts: 100
    • View Profile
I'll try to analyze how the autobalancer works, as they said that the autobalancer works in proper way, by calculating the /splayers (spawned players) it supposed to be like if there's 5 players spawned as red team, and 3 players spawned at blue team, there will be an script that assign you to the blue team because its unbalanced
if we use our heads its simply as that
but the problem appears when both teams are balanced at the start of the round, because the round doesn't starts if balancer is ON and teams are unbalanced.

When multiple players from a team dies, the server doesnt count those players as spawned players, so sometimes, it switchs automatically to the team which has less players. Sometimes it happens twice a time, at the same time, which means that sometimes many players are assigned at the same time to the same team
this provokes a unbalanced team
and 1 of those teams will always have counterless, this situation makes that those players which are on the team with less players, spawn always at the same team, and those who doesnt die on the opposite team will stay until the counter of the match is not equal
for example: (START OF THE ROUND)
TEAM RED 5 PLAYERS
TEAM BLUE 5 PLAYERS

IN MID ROUND , RED TEAM KILLS TWO PLAYERS FROM BLUE SIDE: 5 PLAYERS OF RED TEAM BLUE TEAM KILLS A PLAYER AT THE SAME TIME ONE OF THOSE REDS KILLS 1, SO COUNTER OF BLUE NOW ITS ON 3
and that player from the red team who's near to die.
what happend next? that red one will spawn as blue because its outnumbered, and those blues will continue spawning at blue
the following situation is when those reds who now they are 4 and blues are 6, if those reds can kill 2 players, its fine, because autobalancer will try to mix the players again with both counter on 4
if they not, blue team will be always unbalanced . If red team gets 3 kills, and unfortunately 1 red die at the same time of those blues,
the red one will spawn as blue and it will be 7v3
There's no way to fix the unbalanced players when its based on spawned players
There always will be a problem with the counter if they are DEAD because they are not spawned
If 3 players die, you can't balance 7 players, a problem will happen because its always 4v3
My suggestion is add something like XE did now. when you are not spawned your name appears as color black, that means that you can make an autobalancer by calculating the players that are NOT SPAWNED
How you supposed to do that? Calculate how teams are formed, that means using the same script as now, and which players are in order to spawn (black color). That means that when a player spawns, dont spawn on the team already assigned by the script, spawn on another world and when those 2 seconds or 1 second of cooldown, assign a team properly with the count at 0. it can help to avoid 2 players spawn at the same time to prevent that unbalanced situation

(c) [R3v]Gohan

Offline NewK #3 on: January 26, 2021, 11:21:53 pm

  • Developer
  • Hero Member
  • *
  • Posts: 893
    • View Profile
I am aware of the described situation. That is not new information, once again, the autobalancer is working as intended.

And as I said before on my previous post, I'm not going to make an autobalance system completely based on unspawned players because someone who is AFK on the spawn screen will completely disrupt the balancing, 1 single malicious (or even non-malicious) player would ruin the balancer for all players, sure it would look balanced for players who just look at the scoreboard, so everyone would be happy, but it wouldn't be balanced at all due to AFK players. The goal here is not to simply make an auto balanced that "works" but also one that wouldn't be easily manipulated by malicious players.

I'm also not going to add any delays to the spawning process as that would cut down on the action. I have been looking into maybe making the autbalance consider players who spawned in the last 20/30 seconds as players who are "spawned" and take them into account when its counting for players on each team. It would make it harder for a malicious player to manipulate the balancer, and would solve many of the "issues" that happen when the script assigns players to teams. Needs some more consideration and analysis though.

Offline ELK #4 on: January 27, 2021, 11:10:52 am

  • Administrator
  • Hero Member
  • *
  • Posts: 564
  • The age of elves has come
    • View Profile
I also find something wrong with the auto balancer, it works just fine at preparing/ initializing round process but then it fails to take care of balance afterwards. I don't have a video captured to demonstrate and help the case, but we literally had 8v4 situation and the script couldn't do anything.

How about we revert back to ctf 4.0's team balance system, Newk? As for away players on spawn screen, We can maybe switch their player class and team to Builders by script? I find it a perfect solution but not sure how would it go practically.
The Huna Horde

Offline NewK #5 on: January 27, 2021, 12:04:53 pm

  • Developer
  • Hero Member
  • *
  • Posts: 893
    • View Profile
As for away players on spawn screen, We can maybe switch their player class and team to Builders by script? I find it a perfect solution but not sure how would it go practically.
If we're gonna switch the skin of players who are on the spawn screen for the script to exclude them from being counted, how exactly is this different from excluding unspawned players? It's exactly the same thing....and it's what the script is currently doing.
Also I dont recall how the autobalancer system worked in CTF4 because I didn't make it, but if it counted unspawned players, then it's also failing to balance teams correctly, players just never noticed because they keep looking at the scoreboard to see players on each team, but they dont know who is actually spawned.

Offline MasterOz #6 on: January 28, 2021, 12:31:38 pm

  • Full Member
  • ***
  • Posts: 100
    • View Profile
While you try to find the perfect auto-balancer, please implement the one of similar structure as of TDW or EAD has so that this server doesn't dies again soon. Atleast those balancers don't fuck up as much as the current one of CTF does.

Offline Halchter #7 on: January 28, 2021, 02:21:11 pm

  • Administrator
  • Full Member
  • *
  • Posts: 167
    • View Profile
While you try to find the perfect auto-balancer, please implement the one of similar structure as of TDW or EAD has so that this server doesn't dies again soon. Atleast those balancers don't fuck up as much as the current one of CTF does.
EAD and CTF are different gamemodes, there is constant respawn in CTF whereas that is not true for EAD.

Offline MasterOz #8 on: January 28, 2021, 05:49:01 pm

  • Full Member
  • ***
  • Posts: 100
    • View Profile
While you try to find the perfect auto-balancer, please implement the one of similar structure as of TDW or EAD has so that this server doesn't dies again soon. Atleast those balancers don't fuck up as much as the current one of CTF does.
EAD and CTF are different gamemodes, there is constant respawn in CTF whereas that is not true for EAD.
Is TDW also unlike CTF?

Offline Halchter #9 on: January 29, 2021, 10:25:27 am

  • Administrator
  • Full Member
  • *
  • Posts: 167
    • View Profile
While you try to find the perfect auto-balancer, please implement the one of similar structure as of TDW or EAD has so that this server doesn't dies again soon. Atleast those balancers don't fuck up as much as the current one of CTF does.
EAD and CTF are different gamemodes, there is constant respawn in CTF whereas that is not true for EAD.
Is TDW also unlike CTF?
I spoke to Spiller, he said that tdw's autobalancer works similar to CTF, the difference in TDW's is that once a player is spawned before the round starts or spawns during the round they are counted even if they go afk later on in the round so we come back to the problem that it only looks balanced in the scoreboard if someone is idling and one way to battle this is with anti idle system which comes with its own problems, I guess.

Offline NewK #10 on: January 29, 2021, 06:49:55 pm

  • Developer
  • Hero Member
  • *
  • Posts: 893
    • View Profile
While you try to find the perfect auto-balancer, please implement the one of similar structure as of TDW or EAD has so that this server doesn't dies again soon. Atleast those balancers don't fuck up as much as the current one of CTF does.
EAD and CTF are different gamemodes, there is constant respawn in CTF whereas that is not true for EAD.
Is TDW also unlike CTF?
the difference in TDW's is that once a player is spawned before the round starts or spawns during the round they are counted even if they go afk later on in the round so we come back to the problem that it only looks balanced in the scoreboard
Yep, this seems to be what most people seem to forget, they look at the scoreboard and as long as it looks fine there, they think its balanced. This also causes the issue which I mentioned above in which 1 single malicious player can ruin the balancer for all players by staying AFK. He can even manipulate it by just joining the server again on another game instance and disrupt it even further.

I believe the best approach here would be as I said before to consider players who spawned in the last 30 seconds as spawned players, if you stay on the spawn screen for more than 30s you're considered AFK and the server will not count you. Doesn't cover all the cases, but it makes it harder to manipulate and is a good balance between the 2 approaches.


Offline dekO^ #11 on: January 30, 2021, 07:02:40 pm

  • Administrator
  • Full Member
  • *
  • Posts: 97
    • View Profile
I reported this bug 30 times or more, I ALWAYS DO /SPLAYERS BEFORE SPAWN, and you can see on console if you have register about it, it doesn't work.
As ELK mentioned, it works perfectly before the round starts but when all the players are in mid action, multiple kills at the same times destroy your script.
And this script is not working as intended, if this is how you intended as it works, let me tell you that it has nosense.

I made multiple suggestions ingame, and most of the time no body from part of the staff have heard me, now that a player arrives with my words on your topic you appear to "understand" the mistake.

Another suggestion that could help is that when its "unbalanced" assign a team to the player who tries to spawn, and make it permanently until round starts, that will make it balanced every time new players tries to spawn.
If a player from a team do /q, it will set a new value to the team counter, that might be a trigger to allow all players get managed by the autobalancer script again, if they respawn, a new value is setted as locked. And it won't be unbalanced anymore, until a new player joins the server or a player leaves the server, joining again in the script circuit, allowing the trigger to keep managing the players on behalf the balancer script.
Quote from: NewK
First of all, amazing work Berkley, we need more people like you in this community, people who are willing to go the extra mile to catch these cunts.

Offline NewK #12 on: January 30, 2021, 08:55:38 pm

  • Developer
  • Hero Member
  • *
  • Posts: 893
    • View Profile
I made multiple suggestions ingame, and most of the time no body from part of the staff have heard me, now that a player arrives with my words on your topic you appear to "understand" the mistake.
Not really, just read what I said to his reply:
I am aware of the described situation. That is not new information, once again, the autobalancer is working as intended.
There is no new information in this thread that I wasn't already aware of. I know my approach can cause unbalanced situations, but so does every other suggested approach.
Another suggestion that could help is that when its "unbalanced" assign a team to the player who tries to spawn, and make it permanently until round starts
That's unecessary because the round doesn't even start unless the teams are balanced, or atleast close to balanced in the case of un-even number of players (off by 1 player)

You still seem to not understand that some of the aproaches you suggest have flaws too because they can be easily manipulated by malicious players or even by players who just go AFK.

Offline dekO^ #13 on: January 30, 2021, 11:07:33 pm

  • Administrator
  • Full Member
  • *
  • Posts: 97
    • View Profile
I made multiple suggestions ingame, and most of the time no body from part of the staff have heard me, now that a player arrives with my words on your topic you appear to "understand" the mistake.
Not really, just read what I said to his reply:
I am aware of the described situation. That is not new information, once again, the autobalancer is working as intended.
There is no new information in this thread that I wasn't already aware of. I know my approach can cause unbalanced situations, but so does every other suggested approach.
Another suggestion that could help is that when its "unbalanced" assign a team to the player who tries to spawn, and make it permanently until round starts
That's unecessary because the round doesn't even start unless the teams are balanced, or atleast close to balanced in the case of un-even number of players (off by 1 player)

You still seem to not understand that some of the aproaches you suggest have flaws too because they can be easily manipulated by malicious players or even by players who just go AFK.

I think you don't understand the point.

If the balancer takes spawned players on count, if you have 4 players as blue and 5 players as red. When the new player tries to spawn it will be assigned as blue. Now when the round starts, those 10 players will be permanent assigned to those teams they selected.

When they die, the counter of both teams will stay on 5v5.
If 1 player of any team leaves the server, via /q, timeout, or whatever... The script makes a trigger to reset the autobalance with the spawned players. Those players who recently have been permanently asigned to their teams, will continue on the same team until a new player tries to spawn, player who never have been assigned to a team. (IM NOT INCLUDING THOSE WHO ARE NOT SPAWNED [I think you have to read it carefully seeing that you autobalancer is not working so well.])

Now the situation is the following 4 players on blue team again, 5 players on red team, round already started. New players will be assigned to team that is unbalanced, and when its balanced, new players can pick team as they want. When they pick, their team will be permanently assigned until round it's finished, if they want to switch back again in mid round because of skill based or whatever, must contact an admin/moderator. [a command /switchteam <player> won't be a problem I think]

But don't worry bro, it seems that all your words are just to clarify that it works perfect, and you don't even play on your own server.
I suggest you to join when its 20 players on your server and see if that works like you think it is.
Just don't be a caveman and hear all the feedback we're bringing since months.
Quote from: NewK
First of all, amazing work Berkley, we need more people like you in this community, people who are willing to go the extra mile to catch these cunts.

Offline NewK #14 on: January 31, 2021, 10:02:06 am

  • Developer
  • Hero Member
  • *
  • Posts: 893
    • View Profile
Again there is no new information here. You still fail to see the flaws of your solution.
The script makes a trigger to reset the autobalance with the spawned players. Those players who recently have been permanently asigned to their teams, will continue on the same team until a new player tries to spawn, player who never have been assigned to a team. (IM NOT INCLUDING THOSE WHO ARE NOT SPAWNED [I think you have to read it carefully seeing that you autobalancer is not working so well.])
I'm going to try to explain this one more time: You are forgeting that a player can spawn and be counted by the script and then die and stay AFK on the spawn screen and manipulate the balancer. That will cause an unbalanced scenario too. You keep repeating yourself explaining something I've already known for months. You're simply saying to make the script only count players who are assigned to each team instead of counting spawned players. Your suggestion is to only start couting a player once he has spawned in his team. But once again you are forgeting a player can spawn into his team and then die and stay AFK, and that will cause issues.

When they pick, their team will be permanently assigned until round it's finished
This is already the case, the script never allows players to change their team. The only scenario in which the script allows this, is when the player is switching from a team who is unbalanced and is trying to balance the team. Did you not know this?

if they want to switch back again in mid round because of skill based or whatever, must contact an admin/moderator. [a command /switchteam <player> won't be a problem I think]
Again as said above the script doesn't allow team change after the round has started, this is intended. No point creating such commands, because at that point its no longer autobalance, it's manual and thats not the goal.

But don't worry bro, it seems that all your words are just to clarify that it works perfect
Read:
I know my approach can cause unbalanced situations, but so does every other suggested approach.


Just don't be a caveman and hear all the feedback we're bringing since months.
The first feedback you've brought me in your first topic was wrong because you were looking at the scoreboard, after I told you to use /splayers it seems you understood to ignore the scoreboard. While the feedback you brought this time isn't wrong, it's not new to me either and you still are not seeing the flaws in your solution. I already know about the cases in which the CTF autobalancer is causing unbalanced situations, what I'm telling you, is that your suggestion will cause unbalanced situations too.