BotBuffer.xml

Defines NPC bots that sit at fixed map positions and sell buff packages. Each bot has its own class/appearance, name, equipment, cost, and access gates (level, VIP, Gens faction).

File Location#

Data/Plugins/Characters/BotBuffer.xml

Loaded once at GameServer startup. Supports hot reload via plugin admin command.

Schema#

<BotBuffer>
    <Bot Index="..." Class="..." Enabled="..." Name="..."
         Map="..." X="..." Y="..." Dir="..."
         ChangeColorName="..."
         Zen="..." PCPoints="..."
         MaxLevel="..." OnlyVip="..."
         ActiveGensFamily="..." ContributionGens="..." GensFamily="...">
        <Equipment>
            <Slot Slot="..." Type="..." Index="..." Level="..." Opt="..." />
        </Equipment>
        <Skills>
            <Skill Skill="..." Time="..." Power="..." />
        </Skills>
    </Bot>
</BotBuffer>

Bot Attributes#

AttributeTypeEffect
Index0-29Slot ID. Max 30 bots per server
ClassintCharacter class ID used to render the bot's model and avatar. Accepts any valid class code: 1st class (0 DW, 16 DK, 32 FE, 48 MG, 64 DL, 80 SU, 96 RF) or 2nd/3rd-class variants (1 SM, 2 GM, 17 BK, 18 BM, 33 ME, 34 HE, 49 DM, 65 LE, 81 BS, 82 DS). The shipped XML uses 2 (Grand Master) and 34 (High Elf)
Enabled0 or 11 spawns the bot on plugin load or reload
Namestring (<=10 chars)Display name shown to players
MapintSpawn map number
X, YintSpawn coordinates
Dir0-7Facing direction
ChangeColorNameintValue written to the bot's PKLevel, used by the client to tint the name. 0 = normal
ZenintZen cost per buff session. 0 = free
PCPointsintPC Point cost per session. 0 = free
MaxLevelintMaximum player level allowed to use the bot. Defaults to 400 when omitted
OnlyVip0 or 11 restricts use to accounts with AccountLevel > 0
ActiveGensFamily0 or 11 enforces the Gens family and contribution gates below
ContributionGensintMinimum Gens contribution points required
GensFamily0, 1, or 20 = accept either family, 1 = Vanert only, 2 = Duprian only

Equipment#

Visible equipment slots for the bot's character model:

SlotPosition
0Weapon
1Shield
2Helm
3Armor
4Pants
5Gloves
6Boots
7Wings
8Pet

Each <Slot> accepts the following attributes. Item identity is resolved from the standard item catalog.

AttributeEffect
SlotEquipment slot number 0-8 (see table above)
TypeItem category/type from Item.xml
IndexItem index within that type
LevelItem level, 0-15
OptExcellent options bitmask. 0 = none

Only these five attributes are read from each <Slot>. Luck, Ancient, socket, JOH and other per-item options are not configurable for bots.

Skills#

The buff package each bot applies to players that trade with it. Maximum 5 <Skill> entries per bot; extra entries are dropped with a warning.

AttributeEffect
SkillBuff ID. Only the nine IDs listed below trigger a buff; any other value is ignored silently
TimeBuff duration in minutes. Converted to ticks internally. 0 applies the buff for no time and it expires immediately
PowerEffect power or bonus magnitude passed directly to the effect

Supported buff IDs#

IDBuffClass the bot salutes on cast
16Soul Barrier (Mana Shield)Dark Wizard
27Greater DefenseFairy Elf
28Greater DamageFairy Elf
48Swell Life (Greater Life)Dark Knight
64Greater Critical DamageDark Lord
82Magic Circleany
129Greater Ignore Defense Rateany
130Fitnessany
217Damage ReflectionSummoner

The "class the bot salutes" column only controls a minor cosmetic animation; players of any class receive every buff the bot is configured to cast.

Cross-File Dependencies#

AttributeRelated in
ClassCharacter class code shared with Character.dat and the client avatar set
SkillBuff IDs listed above, not a lookup into Skill.txt
Equipment slot contentsItem.xml
ActiveGensFamily, ContributionGens, GensFamilyCommon.dat Gens System

Common Issues#

  • Bot never appears - Enabled="0", or the map/coordinates land on an unwalkable tile
  • Players cannot buy buffs - Zen too high, PCPoints too high, or OnlyVip="1" blocks free accounts
  • Buff ends immediately - Time="0" expires the effect on the next tick
  • Nothing happens on trade even though Skill is set - Skill value is not one of the nine supported IDs
  • Gens gate rejects everyone - ActiveGensFamily="1" but requesting characters have no Gens family or the wrong one
  • Bot over level cap - MaxLevel default is 400; raise it if your server supports higher levels

Last updated April 21, 2026