StressBotPlugin

Server stress testing plugin that spawns configurable numbers of fake player bots with randomized equipment to test viewport performance, rendering systems, and server load under heavy player density.

File Location#

Data/Plugins/World/StressBotPlugin.xml

Dependencies#

Depends OnPurpose
Item.xmlEquipment pool source for random bot equipment (items with a slot assignment are added to the pool)

Overview#

StressBotPlugin creates "stress bots" - fake players that appear in the game world with fully randomized equipment and character classes. These bots are visible to real players and generate all the same viewport packets, rendering effects, and server processing as real players, making them ideal for:

  • Testing server performance under high player density
  • Stress testing viewport packet processing
  • Testing client rendering performance with many players
  • Validating equipment visual effects at scale
  • Performance profiling under realistic load

GM Commands#

All commands require GM authority level 2 or higher (admin/GM).

CommandDescription
/stressbot spawn <map> <count>Spawn specified number of bots on a map
/stressbot clear <map>Remove all bots from specified map
/stressbot clearallRemove all bots from all maps
/stressbot statusDisplay current bot counts per map
/stressbot reloadReload configuration from XML

Command Examples#

/stressbot spawn 0 100       - Spawn 100 bots in Lorencia
/stressbot spawn 2 50        - Spawn 50 bots in Devias
/stressbot clear 0           - Remove all bots from Lorencia
/stressbot clearall          - Remove all bots from all maps
/stressbot status            - Show current bot distribution

Configuration Attributes#

Core Settings#

AttributeTypeDefaultDescription
EnabledboolfalseEnable/disable the plugin. Set to true to activate stress testing features

Bot Limits#

AttributeTypeDefaultDescription
MaxBotsPerMapint200Maximum number of bots allowed per map. Higher values create more concentrated stress. Limited by server memory.
MaxBotsTotalint500Maximum total bots across all maps. Bots consume slots from the shared summon-object pool (also used by player pets, guardians, and other summoned objects).

Bot Appearance#

AttributeTypeDefaultDescription
DefaultBotLevelint400Level assigned to spawned bots. Affects visual appearance through armor glow effects and animations. Higher levels display more advanced visual effects
DefaultBotClassint1Default character class when RandomizeClass="false". Values: 0=Dark Wizard, 1=Dark Knight, 2=Fairy Elf, 3=Magic Gladiator, 4=Dark Lord, 5=Summoner, 6=Rage Fighter
RandomizeClassbooltrueIf true, each bot receives a random class (0-6). Creates visual variety for more realistic testing scenarios

Equipment Settings#

AttributeTypeDefaultDescription
RandomizeEquipmentbooltrueIf true, equips bots with random items from Item.xml. Tests equipment rendering, glow effects, and visual system performance
RandomizeWingsbooltrueIf true, includes wings in equipment randomization. Wings have high-impact particle effects and should be tested separately
ItemLevelint13Item level for equipped items (0-15). Higher levels = more visual effects (glow, particles). Level 13+ creates significant visual complexity
ItemOptionint16Additional option level (+4, +8, +12, +16). Value represents the actual bonus. Adds stat display effects and visual indicators
ItemExcellentbooltrueAdd excellent options to items. Excellent items have special glow effects and are the most visually intensive item type

Spawn Behavior#

AttributeTypeDefaultDescription
WalkableRetryCountint50Number of random position attempts before fallback. Higher values = better spatial distribution but slower spawn time. 50 is typically sufficient for most maps

Important Behavior#

Common Map Numbers#

Map IDMap NameMap IDMap Name
0Lorencia30Castle Siege
1Dungeon31Land of Trials
2Devias33Aida
3Noria34Crywolf
4Lost Tower51Elbeland
7Atlans56Swamp of Calmness
8Tarkan57Raklion
10Icarus

Examples#

<StressBotPlugin
    Enabled="true"
    MaxBotsPerMap="100"
    MaxBotsTotal="200"
    DefaultBotLevel="400"
    DefaultBotClass="1"
    RandomizeClass="true"
    RandomizeEquipment="true"
    RandomizeWings="true"
    ItemLevel="13"
    ItemOption="16"
    ItemExcellent="true"
    WalkableRetryCount="50"
>

Conservative settings for development testing. 100 bots per map, full equipment randomization for visual testing.

Performance Testing Workflow#

1. Baseline Test#

/stressbot spawn 0 50

Start with 50 bots in Lorencia. Check server CPU, memory, and client FPS.

2. Incremental Load#

/stressbot spawn 0 50    (50 total)
/stressbot spawn 0 50    (100 total)
/stressbot spawn 0 50    (150 total)

Incrementally add bots to find performance thresholds.

3. Multi-Map Distribution#

/stressbot spawn 0 100   (Lorencia)
/stressbot spawn 2 100   (Devias)
/stressbot spawn 3 100   (Noria)

Test server performance with load distributed across multiple maps.

4. Status Monitoring#

/stressbot status

Regularly check bot distribution and ensure limits aren't exceeded.

5. Cleanup#

/stressbot clearall

Always clear bots when testing is complete to free server resources.

Common Issues#

Technical Details#

Bot Properties#

Stress bots are configured as follows:

  • Type: OBJECT_BOTS (appears in viewport, minimal server processing)
  • Life/Mana: 30,000 (prevents death)
  • Defense: 32,000 (monsters cannot damage them)
  • MagicDefense: 32,000 (magic attacks cannot damage them)
  • Level: Configurable (affects visual appearance)
  • Name: Bot##### where ##### is object index (e.g., "Bot15450")
  • Inventory: Full inventory array allocated (equipment plus inventory and InventoryMap arrays)
  • Movement: Stationary (no AI, no walking)
  • Combat: Cannot attack, cannot be killed

Slot Assignment#

Equipment slots match MU Online's standard layout:

SlotNameSlotName
0Weapon (Right)5Gloves
1Weapon (Left)6Boots
2Helm7Wings
3Armor8Pet
4Pants

When RandomizeEquipment="true", slots 0-6 are filled with random items from the Item.xml pool that match each slot. Wings (slot 7) are only equipped if RandomizeWings="true".

Item Excellent Options#

When ItemExcellent="true", bots receive 0x3F (all 6 excellent options):

  • Excellent items display special glow effects
  • This creates maximum visual complexity for stress testing
  • Performance impact is significant with 100+ bots

Set to false for baseline testing without excellent effects.

Last updated August 20, 2026