From 9ebccc23a2df0e0a56932c7b74f3d0f81b67ccbb Mon Sep 17 00:00:00 2001 From: bash Date: Sun, 5 Apr 2026 11:25:53 +0200 Subject: [PATCH] clearified the ac --- conf/playerbots.conf.dist | 63 ++++++++++++++++++++++++++------------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/conf/playerbots.conf.dist b/conf/playerbots.conf.dist index ff1b393b5..ccb392e1a 100644 --- a/conf/playerbots.conf.dist +++ b/conf/playerbots.conf.dist @@ -865,28 +865,43 @@ AiPlayerbot.ExcludedHunterPetFamilies = "" # # #################################################################################################### - #################################################################################################### # ACTIVITY # -# BotActiveAlone (%) -# - Determines the percentage of bots that remain active when no real players are nearby. -# - Default is 40% (which is practise kinda translates into 45-50%). -# - If `botActiveAloneSmartScale` is enabled, automatically temporarily down scale activity based on latency. -# - 40% will be activated in a random rotation for the amount of seconds specified in . -# - There are multiple conditions when bots will forced to be active e.g. when in BG/instance/attacked, some are configurable below. -#- When 100$ all bots will be active without any rotation or logic applied but comes with performance hit. +# BotActiveAlone +# - Controls how many bots are active when no real players are nearby. +# - Think of it as a rough percentage: 10 means approximately 10% of bots will be active. +# Not exact — the actual number may vary slightly per rotation cycle. +# - The active bots rotate: every a different set of bots takes a turn. +# - The real number of active bots will always be higher than this value, because bots in +# combat, dungeons, battlegrounds, LFG queue, groups with real players, etc. are always +# forced active on top of this (see force rules below). +# - Set to 100 (with SmartScale off) = all bots always active. Maximum server load. +# - Set to 0 = only bots that match a force rule below will be active. +# +# BotActiveAloneDurationSeconds +# - How often the active roster rotates (in seconds). A different group of bots wakes up +# and the previous group may go idle. +# - This is a minimum, not exact. If a bot is in combat or meets any force rule when the +# rotation happens, it stays active until those conditions end — it won't be cut off +# mid-fight just because its turn expired. # AiPlayerbot.BotActiveAlone = 10 AiPlayerbot.BotActiveAloneDurationSeconds = 30 -# Some additional rules that enforces the bot to be active # -# - bot is within this distance from a real player. -# - bot is in the same zone as a real player. -# - bot is in the same continent as a real player. -# - bot is a real player's friend. -# - bot is in a real player's guild. +# Force-active rules (1 = on, 0 = off) +# These override the percentage above. If any of these conditions is true, the bot stays active. +# +# InRadius - A real player is within this many yards (set to 0 to disable). +# InZone - A real player is in the same zone (e.g. Elwynn Forest). +# InMap - A real player is on the same continent (e.g. Eastern Kingdoms). +# IsFriend - A real player has this bot on their friends list. +# InGuild - This bot is in a guild that has a real player in it. +# +# Bots are also always forced active (not configurable) when: +# in combat, inside a dungeon/raid/BG, in a BG or LFG queue, +# grouped with a real player, or controlled by a real player. # AiPlayerbot.BotActiveAloneForceWhenInRadius = 150 AiPlayerbot.BotActiveAloneForceWhenInZone = 1 @@ -894,15 +909,21 @@ AiPlayerbot.BotActiveAloneForceWhenInMap = 0 AiPlayerbot.BotActiveAloneForceWhenIsFriend = 0 AiPlayerbot.BotActiveAloneForceWhenInGuild = 1 -# SmartScale (automatic scaling of percentage of active bots based on latency) -# The default is 1. When enabled (smart) scales the 'BotActiveAlone' value. -# (The scaling will be overruled by the BotActiveAloneForceWhen...rules) +# SmartScale — automatically reduces active bots when the server is struggling. +# Monitors the server's update time (how long each server tick takes in milliseconds). +# When the server slows down, fewer bots are kept active to reduce load. # -# Limitfloor - when DIFF (latency) is above floor, activity scaling begins -# LimitCeiling - when DIFF (latency) is above ceiling, activity is 0% +# Floor (default 50ms) - Below this, no reduction. Server is running fine. +# Ceiling (default 200ms) - At or above this, all non-forced bots are paused. +# Between floor and ceiling, activity scales down gradually. +# Example: BotActiveAlone=10, floor=50, ceiling=200 +# Server at 50ms → ~10% active (no reduction) +# Server at 125ms → ~5% active (half reduction) +# Server at 200ms → 0% active (only forced bots remain) # -# MinLevel - only apply scaling when level is above or equal to min(bot)Level -# MaxLevel - only apply scaling when level is lower or equal of max(bot)Level +# MinLevel/MaxLevel — only bots within this level range are affected by SmartScale. +# Bots outside the range always use the full BotActiveAlone value. +# Force rules always win over SmartScale. # AiPlayerbot.botActiveAloneSmartScale = 1 AiPlayerbot.botActiveAloneSmartScaleDiffLimitfloor = 50