mirror of
https://github.com/liyunfan1223/mod-playerbots.git
synced 2026-02-20 18:10:02 +01:00
Updated Playerbot Configuration (markdown)
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:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
## Recommended hardware
|
## Recommended hardware
|
||||||
```
|
```
|
||||||
Memory
|
Memory
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user