kolton / d2bot-with-kolbot

d2bot game manager by D3STROY3R with kolbot libs by kolton for d2bs
345 stars 332 forks source link

72 hour temp bans - wait queue with 259,200 seconds #2178

Open jang0z opened 4 years ago

jang0z commented 4 years ago

I'm trying to figure out what is causing these 72 hour temp bans, where I am unable to create or join a game. It displays a large number of seconds and won't allow for a new game. I am running 6 clients and I have modified the original D2BotLead.dbj

var StarterConfig = {
    MinGameTime: 300, // Minimum game length in seconds. If a game is ended too soon, the rest of the time is waited in the lobby
    PingQuitDelay: 300, // Time in seconds to wait in lobby after quitting due to high ping
    CreateGameDelay: 60, // Seconds to wait before creating a new game
    ResetCount: 100, // Reset game count back to 1 every X games.
    CharacterDifference: 99, // Character level difference. Set to false to disable character difference.
    ChatActionsDelay: 5, // Seconds to wait in lobby before entering a channel

    // ChannelConfig can override these options for individual profiles.
    JoinChannel: "", // Default channel. Can be an array of channels - ["channel 1", "channel 2"]
    FirstJoinMessage: "", // Default join message. Can be an array of messages
    AnnounceGames: false, // Default value
    AfterGameMessage: "", // Default message after a finished game. Can be an array of messages

    SwitchKeyDelay: 5, // Seconds to wait before switching a used/banned key or after realm down
    CrashDelay: 900, // Seconds to wait after a d2 window crash
    FTJDelay: 900, // Seconds to wait after failing to create a game
    RealmDownDelay: 15, // Minutes to wait after getting Realm Down message
    UnableToConnectDelay: 10, // Minutes to wait after Unable To Connect message
    CDKeyInUseDelay: 5, // Minutes to wait before connecting again if CD-Key is in use.
    ConnectingTimeout: 30, // Seconds to wait before cancelling the 'Connecting...' screen
    PleaseWaitTimeout: 30, // Seconds to wait before cancelling the 'Please Wait...' screen
    WaitInLineTimeout: 1200, // Seconds to wait before cancelling the 'Waiting in Line...' screen
    GameDoesNotExistTimeout: 30 // Seconds to wait before cancelling the 'Game does not exist.' screen
};
Fa-b commented 4 years ago

My guess is your 6 clients cause to many game creations/joins within a short time period. 5 minutes game time with 6 clients is an average of 50 seconds game time. Make it times 10 and you should be safe ;)

letmetrys commented 4 years ago

My guess is your 6 clients cause to many game creations/joins within a short time period. 5 minutes game time with 6 clients is an average of 50 seconds game time. Make it times 10 and you should be safe ;)

So what is the exact dependance between amount of running clients in the same game and the game time? Like 3 mins per client? so if you run 6 clients your game should be like 3 times 6 = 18 mins?

jang0z commented 4 years ago

My guess is your 6 clients cause to many game creations/joins within a short time period. 5 minutes game time with 6 clients is an average of 50 seconds game time. Make it times 10 and you should be safe ;)

Thanks for helping me trying to figure this out. I had forgot to mention that all 6 clients join the same game, 1 leader, the rest are helpers. The average time to complete one game is around 330 seconds. What timers do I need to increase?

Fa-b commented 4 years ago

Either increase the minimum game time for your leader (the bot will stall in town for the rest of the time, the followers would wait in the lobby for next game) or/and add some more scripts to your run to increase the overall time. I think nobody will be able to tell you how long exactly a game has to be in order for you to be safe from temp bans. You will have to try and error or provide enough margin.

jang0z commented 4 years ago

Either increase the minimum game time for your leader (the bot will stall in town for the rest of the time, the followers would wait in the lobby for next game) or/and add some more scripts to your run to increase the overall time. I think nobody will be able to tell you how long exactly a game has to be in order for you to be safe from temp bans. You will have to try and error or provide enough margin.

I think another part of the issue is that whenever one of my followers fail to join game, they continuously try to re-join the game, only to fail over and over. I can't figure out how to make them stop doing this. I am using the D2BotChannel.dbj and they're ignoring my FTJGDelay configuration and refreshing the friends list, seeing the game the leader is in, and attempting to re-join.

var StarterConfig = {
    JoinChannel: "op d2gm", // Name of the channel to join
    FirstJoinMessage: "", // Message to say when first joining a channel, usually ".login"
    ChatActionsDelay: 3, // Seconds to wait in lobby before entering a channel

    // D2BotChannel settings
    Games: [""], // List of games to look for. Example: Games: ["some baal-", "chaos run-"],
    Passwords: [""], // List of game passwords. Each array in Games array should have a matching element in Passwords. Use "" for blank pw.
    JoinDelay: 8, // Seconds to wait between announcement and clicking join
    FriendListQuery: 42, // Seconds between "/f l" retries. 0 = disable

    SwitchKeyDelay: 0, // Seconds to wait before switching a used/banned key or after realm down

    SkipMutedKey: true,
    MutedKeyTrigger: "Your account has had all chat privileges suspended.",
    CrashDelay: 900, // Seconds to wait after a d2 window crash
    FTJDelay: 900, // Seconds to wait after failing to create a game
    RealmDownDelay: 15, // Minutes to wait after getting Realm Down message
    UnableToConnectDelay: 15, // Minutes to wait after Unable To Connect message
    CDKeyInUseDelay: 5, // Minutes to wait before connecting again if CD-Key is in use. SwitchKeys overrides this!
    ConnectingTimeout: 30, // Seconds to wait before cancelling the 'Connecting...' screen
    PleaseWaitTimeout: 30, // Seconds to wait before cancelling the 'Please Wait...' screen
    WaitInLineTimeout: 600, // Seconds to wait before cancelling the 'Waiting in Line...' screen
    GameDoesNotExistTimeout: 30 // Seconds to wait before cancelling the 'Game does not exist.' screen
};
InterestingIndeed commented 4 years ago
// Advanced config - you don't have to edit this unless you need some of the features provided
var AdvancedConfig = {
    /* Features: Override join delay for each profile

    * Format *:
        "Profile Name": {JoinDelay: number_of_seconds}

    * Example * (don't edit this - it's just an example):
        "MyProfile1": {JoinDelay: 3},
        "MyProfile2": {JoinDelay: 6}
    */

    // Put your lines under this one. Multiple entries are separated by commas. No comma after the last one.

};

you can configure a JoinDelay here although I dont know if that is also used for rejoins after fail. FTJDelay is only the wait time for the creation of the game, at least thats what its says in the description.

If you want my honest opinion: I think your setup is way to greedy ;) I dont know what you already did with Kolbot, but I would start with a low amount of created games (leader creates, follows follow this game) instead of multiple leaders/followers. There seems to be a limit on 100 created games per 12hours, if you run short games with multiple leaders, that limit is reached very fast. In addition: instead of breaking the "failed to join game" thing, you should figure out how often and why your followers fail to join games (which brings me back to: probably to greedy).

jang0z commented 4 years ago
// Advanced config - you don't have to edit this unless you need some of the features provided
var AdvancedConfig = {
  /* Features: Override join delay for each profile

  * Format *:
      "Profile Name": {JoinDelay: number_of_seconds}

  * Example * (don't edit this - it's just an example):
      "MyProfile1": {JoinDelay: 3},
      "MyProfile2": {JoinDelay: 6}
  */

  // Put your lines under this one. Multiple entries are separated by commas. No comma after the last one.

};

you can configure a JoinDelay here although I dont know if that is also used for rejoins after fail. FTJDelay is only the wait time for the creation of the game, at least thats what its says in the description.

If you want my honest opinion: I think your setup is way to greedy ;) I dont know what you already did with Kolbot, but I would start with a low amount of created games (leader creates, follows follow this game) instead of multiple leaders/followers. There seems to be a limit on 100 created games per 12hours, if you run short games with multiple leaders, that limit is reached very fast. In addition: instead of breaking the "failed to join game" thing, you should figure out how often and why your followers fail to join games (which brings me back to: probably to greedy).

Thank you for your assistance troubleshooting this. Please let me clarify that I am running one leader and 5 followers. My games were running around 330 seconds on average, with a 60 second wait in lobby before creating a new game. I considered this setup to be conservative. but you're suggesting this is too aggressive?

My followers will fail to join very frequently, I would say nearly every game, at least one of them is failing. I have no idea why... I even tweaked and staggered the join timer amoungst the followers so that way one joins after 6 seconds, then 9 seconds, 12 seconds, 15 seconds, etc. But this still didn't resolve the issue. I really believe that the recurring failing to join is contributing to the issue and I don't know how to instruct the followers to quit trying after they have failed to join game once.

Fa-b commented 4 years ago

Wifi or ethernet? What is your average ping when all bots are ingame? Be aware that 6 times packets are sent between battle.net and your PC. Not sure if fail joins contribute to temp bans but I could imagine it. 390 seconds for 6 clients still sounds too short IMHO

jang0z commented 4 years ago

Wifi or ethernet? What is your average ping when all bots are ingame? Be aware that 6 times packets are sent between battle.net and your PC. Not sure if fail joins contribute to temp bans but I could imagine it. 390 seconds for 6 clients still sounds too short IMHO

Ethernet connection. My ping consistently stays sub 200ms

Fa-b commented 4 years ago

200 is not a really low ping.. maybe the timeout delay for considering a join attempt to have failed should be increased. Does the client decide the join failed or the bot just crashes?

jang0z commented 4 years ago

200 is not a really low ping.. maybe the timeout delay for considering a join attempt to have failed should be increased. Does the client decide the join failed or the bot just crashes?

200ms or lower is generally considered low latency. It's usually around sub 100, but occasionally in the 100-200 range. Which timeout delay are you referring to? The client fails to join the game, but does not crash. Since it was a join game, instead of create game, it does not follow any delay timers and retries after returning to the lobby.

jang0z commented 4 years ago

Additionally, I have modified the minimum game time to 400 seconds; plus the additional 60 second wait in lobby before creating the next game. 3600 seconds (one hour) / 460 seconds equates to nearly 7.8 games per hour, which is below the 100 games per every 12 hours, which equates to 8.3 games allowed per hour. I think my 330 seconds + 60 seconds was ending up around 9.23 games per hour... which was placing above this limit. My temp ban has expired, I will update you all with the results of my new configuration.

On Wed, Jan 22, 2020 at 1:22 PM Fa-b notifications@github.com wrote:

200 is not a really low ping.. maybe the timeout delay for considering a join attempt to have failed should be increased. Does the client decide the join failed or the bot just crashes?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/kolton/d2bot-with-kolbot/issues/2178?email_source=notifications&email_token=AOKGRIMXJMD7IAZMYUEKE5DQ7CFFJA5CNFSM4KIXRGN2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJUS7RQ#issuecomment-577318854, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOKGRINLMOI5ORHNFN6RVHLQ7CFFJANCNFSM4KIXRGNQ .

9332823 commented 4 years ago

If you chicken a lot use town instead . Won't I set chicken to 20 and town chicken 40-50 depends on pal or sorc

jang0z commented 4 years ago

I made some adjustments that seemed to help short term, but then I've still resulted in two cases of 72 hour temp bans. The temp bans take the form of the wait queue message when creating a game, except it says that "Your position in line is: 255769" - which I have discovered to be a numerical representation of how many seconds are left on my temp ban.

During this ban, I cannot create games or join games, and I cannot see any public games from the lobby.

My configuration looks like..

Any feedback is appreciated, I'm completely stumped on this. My friend runs 5x clients constantly and has no issue...

destinationsound commented 4 years ago

I made some adjustments that seemed to help short term, but then I've still resulted in two cases of 72 hour temp bans. The temp bans take the form of the wait queue message when creating a game, except it says that "Your position in line is: 255769" - which I have discovered to be a numerical representation of how many seconds are left on my temp ban.

During this ban, I cannot create games or join games, and I cannot see any public games from the lobby.

My configuration looks like..

  • Min Game Time: 480 seconds (8 minutes)
  • 1x Leader
  • 6x Followers (all same game)
  • RDBlocker: Enabled

Any feedback is appreciated, I'm completely stumped on this. My friend runs 5x clients constantly and has no issue...

I get this type of ban too.

I'm running public Baal games at 3 - 3.5 minutes per games. With 4 bots running. 1 is the leader 3 are the followers. I am not rotating CD keys with any of them.

I was trying to be the go-to baal runner. But looks like I don't understand the settings enough and Battle.net enough to do so.

I never have this issue with Chaos + baal games.

Thoughts?