Updated Playerbot Configuration (markdown)

bash 2024-11-14 20:34:30 +01:00
parent 8ab814e0c8
commit 669a1d20fb

@ -1,3 +1,88 @@
## Random bots activity profiles.
Before going into the configuration options we need explain the logic around it first. Every update tick of the server its calculated whether a bot can
or can't be active. An active bots takes and eats alot more resources then an idle bot.
The following logic is applied to determine whether is active or not the order explain.
```
1. NOT ACTIVE: When server just started and the server update is smaller then (max amount of bots * 0.12 seconds)
2. ALWAYS ACTIVE: When bot is in battleground, instance or raid.
3. ALWAYS ACTIVE: When in combat and not in party (defend urself)
4. ALWAYS ACTIVE: If bot zone zone (e.g. Mulgore, Ashenvale etc) has a real player (aka all bots will be active in your zone)
5. ALWAYS ACTIVE: When the bots is a member of a guild with real players (aka all bots on your guild will always be active)
6. ALWAYS ACTIVE: Has real player as master
7. ALWAYS ACTIVE: if grouped and the leader is a real player
8. ALWAYS ACTIVE: if in battleground queue
9. ALWAYS ACTIVE: if looking for group
10. ALWAYS ACTIVE: If bot has a real player within the radius 300 yards (aka all bots will be active within the radius of 300 yards)
11. ALWAYS ACTIVE: When bot is a friend of a real player (aka all ur bots friends will always be active)
12. ALWAYS ACTIVE: When bot has more then 10 other bots within the sightDistance (force them to spread out)
```
These rules will always be applied regardless what value you have configured 'AiPlayerbot.BotActiveAlone'.
All remaining situations e.g. bots in maps with no real-players, empty server etc will be configured
based on the 'AiPlayerbot.BotActiveAlone' value. That value basically means that the bot has about
% chance to get active for only a few seconds. Unless in those few seconds one of the above rules
is triggered.
Then 'AiPlayerbot.botActiveAloneSmartScale' basically only adds to determine the activity percentages
based on the latency relative to the configured value of 'AiPlayerbot.BotActiveAlone' and only when in
level scope of the configured values of:
'AiPlayerbot.botActiveAloneSmartScaleWhenMinLevel'
'AiPlayerbot.botActiveAloneSmartScaleWhenMinLevel'
#### 1. best performance with high bot count.
My personal preference is that i keep my bots idle when i am not in the zone or map, which is applied with the following config
and in this specific requirement it doesnt rlly matter autoscale is on or off but i leave it on.
```
AiPlayerbot.BotActiveAlone = 10
AiPlayerbot.botActiveAloneSmartScale = 1
AiPlayerbot.botActiveAloneSmartScaleWhenMinLevel = 1
AiPlayerbot.botActiveAloneSmartScaleWhenMaxLevel = 80
```
#### 2. Default; best effort to enforce 100% acitivity but auto adjust when needed.
When you want all bots active in all situations but you want to server to compensate the bot
acitivity based on your latency then use (basically best effort for 100%) :
```
AiPlayerbot.BotActiveAlone = 100
AiPlayerbot.botActiveAloneSmartScale = 1
AiPlayerbot.botActiveAloneSmartScaleWhenMinLevel = 1
AiPlayerbot.botActiveAloneSmartScaleWhenMaxLevel = 80
```
#### 3. All bots active regardless your latency and performance impact.
```
AiPlayerbot.BotActiveAlone = 100
AiPlayerbot.botActiveAloneSmartScale = 0
AiPlayerbot.botActiveAloneSmartScaleWhenMinLevel = 1
AiPlayerbot.botActiveAloneSmartScaleWhenMaxLevel = 80
```
#### 4. All bots active and only apply autoscale on a level range (e.g. high levels)
```
AiPlayerbot.BotActiveAlone = 100
AiPlayerbot.botActiveAloneSmartScale = 1
AiPlayerbot.botActiveAloneSmartScaleWhenMinLevel = 75
AiPlayerbot.botActiveAloneSmartScaleWhenMaxLevel = 80
```
#### How to determine whether your config/hardware are good or not
Use the command '.server info' to see your latencies. The general latencites should be under 70-80 or lower and the percentiles maxed out around 100, 120, 150. If higher change profile or bot count.
Another way is to verify how quick a how executes your command. It should be pretty much instant if not to should choose a different profile
or lower your bot amount.
If you use the approve performance checks it might lead into strange and incorrect behaviours and huge amount of memory footprint growth in a short time.
##### example
I use profile 1 with 5000 bots on amd 5700x (6 cores), linux, 20GB with the following result:
![image](https://github.com/user-attachments/assets/6760feaf-3dc7-4d7a-9534-d4183ff43284)
## Recommended hardware ## Recommended hardware
``` ```
Memory Memory