[worldserver] ############################################## # mod-player-bot-level-brackets configuration ############################################## # # BotLevelBrackets.Enabled # Description: Enables the module. # Default: 1 (enabled) # Valid values: 0 (off) / 1 (on) BotLevelBrackets.Enabled = 1 # # BotLevelBrackets.FullDebugMode # Description: Enables full debug logging for the Bot Level Brackets module. # Default: 0 (disabled) # Valid values: 0 (off) / 1 (on) BotLevelBrackets.FullDebugMode = 0 # # BotLevelBrackets.LiteDebugMode # Description: Enables lite debug logging for the Bot Level Brackets module. # Default: 0 (disabled) # Valid values: 0 (off) / 1 (on) BotLevelBrackets.LiteDebugMode = 0 # # BotLevelBrackets.CheckFrequency # Description: The frequency (in seconds) at which the bot level distribution check is performed. # Default: 300 BotLevelBrackets.CheckFrequency = 300 # # BotLevelBrackets.CheckFlaggedFrequency # Description: The frequency (in seconds) at which the bot level reset is performed for processing safe bots and checking flagged bots that failed safety checks initially. # Default: 15 BotLevelBrackets.CheckFlaggedFrequency = 15 # BotLevelBrackets.FlaggedProcessLimit # Description: Maximum number of flagged bots to process per pending level change step. # 0 = unlimited (process all flagged bots each step) # Default: 5 BotLevelBrackets.FlaggedProcessLimit = 5 # # BotLevelBrackets.IgnoreGuildBotsWithRealPlayers # Description: When enabled, bots that are in a guild with at least one real (non-bot) player are excluded # from bot bracket calculations and will not be level changed or flagged. # This now works for both online and offline real players using persistent database tracking. # Default: 1 (enabled) # Valid values: 0 (disabled) / 1 (enabled) BotLevelBrackets.IgnoreGuildBotsWithRealPlayers = 1 # # BotLevelBrackets.IgnoreArenaTeamBots # Description: When enabled, bots that are members of arena teams are excluded from bot bracket calculations # and will not be level changed or flagged. This prevents bots in arena teams from being # changed, which would break team compositions. # Default: 1 (enabled) # Valid values: 0 (disabled) / 1 (enabled) BotLevelBrackets.IgnoreArenaTeamBots = 1 # # BotLevelBrackets.GuildTrackerUpdateFrequency # Description: The frequency (in seconds) at which the persistent guild tracker database is updated. # This tracks which guilds have real players even when they are offline. # Default: 600 (10 minutes) BotLevelBrackets.GuildTrackerUpdateFrequency = 600 # # BotLevelBrackets.IgnoreFriendListed # Description: Ignore bots that are on real players friend's lists from any brackets. # Default: 1 (enabled) # Valid values: 0 (off) / 1 (on) BotLevelBrackets.IgnoreFriendListed = 1 # BotLevelBrackets.ExcludeNames # Description: Comma-separated list of case insensitive bot names to exclude from all bracket checks. # Default: "" BotLevelBrackets.ExcludeNames = # # BotLevelBrackets.NumRanges # Description: The number of level brackets used for bot distribution. # Both Alliance and Horde should have the same number of brackets defined below. # Default: 9 # # IMPORTANT: If you are extending the number of brackets beyond 9, you must update your # mod_player_bot_level_brackets.conf file AND the corresponding mod_player_bot_level_brackets.conf.dist file to include configuration # lines for the additional bracket lines added below (e.g. Range10, Range11, etc.). Ensure that the # sum of the Pct values for each faction remains 100. BotLevelBrackets.NumRanges = 9 # # BotLevelBrackets.Dynamic.UseDynamicDistribution # Description: Enables dynamic recalculation of bot distribution percentages based on the number of non-bot players # present in each level bracket. This overrides any custom brackets in the conf. # Default: 0 (disabled) # Valid values: 0 (off) / 1 (on) BotLevelBrackets.Dynamic.UseDynamicDistribution = 0 # BotLevelBrackets.Dynamic.RealPlayerWeight # Description: This setting controls how much extra weight is given to brackets (level ranges) that contain real (non-bot) players, when dynamic distribution is enabled. # The higher you set this value, the more bots will move to the same level brackets where real players are found, but the effect is *gentle*, not extreme. # A value of 0.0 means bots always distribute evenly across all brackets, regardless of where players are. The default value of 1.0 gives a mild, balanced effect. # Raising this to 3.0, 5.0, or higher will make bots concentrate more in brackets with real players. # The value is a multiplier (not a percent): 0.0 = no extra effect, 1.0 = minimal, 3.0 = stronger, 5.0 = strong but not extreme. # Experiment based on your total bot count and real player counts to find a good number for your server. # If you want a large congestion of bots in your level bracket for solo play I recommend 10-15 for RealPlayerWeight. # What to expect: # - With 1.0 (default): If 6/10 real players are in one bracket, that bracket gets about 12.77% of bots. All-empty brackets get about 10.69% each. # - With 3.0: Same scenario: bracket gets about 15.73% of bots. All-empty brackets: 9.93% each. # - With 5.0: Bracket with 6/10 real players gets 18.31%. All-empty brackets: 9.28% each. # - If all real players are in one bracket and weight is 5.0, that bracket gets about 21.56% of bots (others: 9.80% each). # - With 0.0: Every bracket always gets the same number of bots (e.g., 11.11% each for 9 brackets). # Formula (per bracket): # bracket_weight = 1.0 + (RealPlayerWeight × (1 / TotalRealPlayers) × log(1 + RealPlayersInBracket)) # All bracket weights are normalized to total 100%. # Default: 1.0 BotLevelBrackets.Dynamic.RealPlayerWeight = 1.0 # # BotLevelBrackets.Dynamic.SyncFactions # Description: If enabled, both Alliance and Horde must have identical bracket definitions (same number, same level bounds). # All real players (regardless of faction) influence the dynamic distribution for both factions. # Default: 0 (disabled) # Valid values: 0 (off) / 1 (on) # WARNING: Server will fail to start if brackets do not match when enabled. # BotLevelBrackets.Dynamic.SyncFactions = 0 ############################################## # Alliance Level Brackets Configuration ############################################## # The following settings define the level brackets for Alliance bots. # For each bracket, you must specify three parameters: # # BotLevelBrackets.Alliance.RangeX.Lower # Description: The lower bound (inclusive) of bracket X. # # BotLevelBrackets.Alliance.RangeX.Upper # Description: The upper bound (inclusive) of bracket X. # # BotLevelBrackets.Alliance.RangeX.Pct # Description: The desired percentage of Alliance bots that should fall into bracket X. # # EXAMPLE: # The default configuration below defines 9 brackets: # # Range1 covers levels 1-9, Range2 covers levels 10-19, Range3 covers levels 20-29, and so on. # # To customize or add a new bracket (for example, to isolate level 60 in its own bracket), you can: # - Set Range7.Lower = 60 and Range7.Upper = 60, then adjust the Pct values for Range6 and Range8 accordingly. # # Also, if you want to add an extra bracket beyond the default 9, you must: # 1. Increase BotLevelBrackets.NumRanges to the desired number. # 2. Add configuration lines for the new RangeX.Lower, RangeX.Upper, and RangeX.Pct. # # NOTE: # The sum of all Pct values for the Alliance brackets must equal 100. # BotLevelBrackets.Alliance.Range1.Lower = 1 BotLevelBrackets.Alliance.Range1.Upper = 9 BotLevelBrackets.Alliance.Range1.Pct = 12 BotLevelBrackets.Alliance.Range2.Lower = 10 BotLevelBrackets.Alliance.Range2.Upper = 19 BotLevelBrackets.Alliance.Range2.Pct = 11 BotLevelBrackets.Alliance.Range3.Lower = 20 BotLevelBrackets.Alliance.Range3.Upper = 29 BotLevelBrackets.Alliance.Range3.Pct = 11 BotLevelBrackets.Alliance.Range4.Lower = 30 BotLevelBrackets.Alliance.Range4.Upper = 39 BotLevelBrackets.Alliance.Range4.Pct = 11 BotLevelBrackets.Alliance.Range5.Lower = 40 BotLevelBrackets.Alliance.Range5.Upper = 49 BotLevelBrackets.Alliance.Range5.Pct = 11 BotLevelBrackets.Alliance.Range6.Lower = 50 BotLevelBrackets.Alliance.Range6.Upper = 59 BotLevelBrackets.Alliance.Range6.Pct = 11 BotLevelBrackets.Alliance.Range7.Lower = 60 BotLevelBrackets.Alliance.Range7.Upper = 69 BotLevelBrackets.Alliance.Range7.Pct = 11 BotLevelBrackets.Alliance.Range8.Lower = 70 BotLevelBrackets.Alliance.Range8.Upper = 79 BotLevelBrackets.Alliance.Range8.Pct = 11 BotLevelBrackets.Alliance.Range9.Lower = 80 BotLevelBrackets.Alliance.Range9.Upper = 80 BotLevelBrackets.Alliance.Range9.Pct = 11 ############################################## # Horde Level Brackets Configuration ############################################## # The following settings define the level brackets for Horde bots. # For each bracket, you must specify: # # BotLevelBrackets.Horde.RangeX.Lower # Description: The lower bound (inclusive) of bracket X. # # BotLevelBrackets.Horde.RangeX.Upper # Description: The upper bound (inclusive) of bracket X. # # BotLevelBrackets.Horde.RangeX.Pct # Description: The desired percentage of Horde bots that should fall into bracket X. # # EXAMPLE: # The default configuration below defines 9 brackets: # # Range1 covers levels 1-9, Range2 covers levels 10-19, Range3 covers levels 20-29, and so on. # # To customize or add a new bracket (for example, to isolate level 70 in its own bracket), you can: # - Set Range8.Lower = 70 and Range8.Upper = 70, then adjust the Pct values for the adjacent ranges. # # NOTE: # The sum of all Pct values for the Horde brackets must equal 100. # BotLevelBrackets.Horde.Range1.Lower = 1 BotLevelBrackets.Horde.Range1.Upper = 9 BotLevelBrackets.Horde.Range1.Pct = 12 BotLevelBrackets.Horde.Range2.Lower = 10 BotLevelBrackets.Horde.Range2.Upper = 19 BotLevelBrackets.Horde.Range2.Pct = 11 BotLevelBrackets.Horde.Range3.Lower = 20 BotLevelBrackets.Horde.Range3.Upper = 29 BotLevelBrackets.Horde.Range3.Pct = 11 BotLevelBrackets.Horde.Range4.Lower = 30 BotLevelBrackets.Horde.Range4.Upper = 39 BotLevelBrackets.Horde.Range4.Pct = 11 BotLevelBrackets.Horde.Range5.Lower = 40 BotLevelBrackets.Horde.Range5.Upper = 49 BotLevelBrackets.Horde.Range5.Pct = 11 BotLevelBrackets.Horde.Range6.Lower = 50 BotLevelBrackets.Horde.Range6.Upper = 59 BotLevelBrackets.Horde.Range6.Pct = 11 BotLevelBrackets.Horde.Range7.Lower = 60 BotLevelBrackets.Horde.Range7.Upper = 69 BotLevelBrackets.Horde.Range7.Pct = 11 BotLevelBrackets.Horde.Range8.Lower = 70 BotLevelBrackets.Horde.Range8.Upper = 79 BotLevelBrackets.Horde.Range8.Pct = 11 BotLevelBrackets.Horde.Range9.Lower = 80 BotLevelBrackets.Horde.Range9.Upper = 80 BotLevelBrackets.Horde.Range9.Pct = 11