Compiled by: Trickerer (onlysuffering @ Gmail dot Com)
Version 0.25 - 14 Jun 2023 Original version by: Thesawolf (@ Gmail dot Com) Version 0.3 - 20 July 2016 here
This manual is created to officially state the purpose and explain the usage of NPCBot system
NPCBots player manual is available on youtube, by QT Blue-AI
NPCBots are hireable pet-like minions (with some exceptions). You don't have full control over them, but you can tune their behavior in many ways. Bots will follow you around, buff you, defend you and help you in general. Their main purpose is to support players during their leveling although they can do dungeons and raids, but expect them being stupid in there
Features of the NPCBots:
Fighting (via spells, melee, ranged combat)
Buffing
Healing
Resurrecting
Acting as a guard (when bot has no owner)
Grouping
DungeonFinder (they can enter dungeons with you)
Raids (they can participate in raids)
PvP (they can fight members of your opposing faction)
Providing you with consumables (mage, warlock)
Receiving buffs and consumables from you
Equipping gear
Assigning roles
Abilities management
etc...
NPCBots is a TrinityCore/AzerothCore mod (https://github.com/TrinityCore/TrinityCore/, https://github.com/azerothcore/azerothcore-wotlk/), only 3.3.5 branch is supported
Pre-patched repository available for TC and AC here and here
If you still prefer the patch then keep on reading, otherwise clone the patched repo and jump to step 4
At the very start of this document you can find a link for TrinityCore revision for the last version of NPCBots. There is no guarantee you will be able to apply the mod if you are using other version of TrinityCore
patch -p1 < NPCBots.patch
command (creating new files) /TrinityCore/sql/Bots/
to your DB (files starting with characters_
and world_
go into your characters
and world
DB respectively):
1_world_bot_appearance.sql
2_world_bot_extras.sql
3_world_bots.sql
4_world_generate_bot_equips.sql
5_world_botgiver.sql
characters_bots.sql
/TrinityCore/sql/Bots/updates
to your DB
Hint: for fresh installation there are also shell scripts available for you to quickly merge all required SQL files into `ALL_auth.sql`, `ALL_chracters.sql` and `ALL_world.sql` to go to `auth`, `characters` and `world` DB respectively
And after that you are ready to go
First of all, to list your NPCBot's stats, use /bonk
on them (Warning: big list)
Note that some commands may not be available to all accounts (depending on their access level and permissions set in the RBAC tables (TC) / in the command
table (AC)). You may need to change your account permissions / security level to enable usage of some commands
Most NPCBot commands are divised by persmissions into two groups: player commands and GM commands, there are also some Admin-only commands
KEY:
< > (angled brackets) indicates essential command argument
[ ] (square brackets) indicates optional command argument
| (pipe character) indicates argument choices (i.e. this|that = this OR that)
_ARGUMENT_ indicates argument names
COMMAND: .npcbot
, .npcb
-- (Player command) by itself will list all syntax available
lookup <_CLASS_> [_UNSPAWNED_ONLY_]
-- (GM command) lookup the NPCBot entries by .npcbot lookup
(.npcb loo
) (without the argument) to list class IDs .npcbot lookup 7
(to list all Shamans) .npcb loo 11 1
(to list all unspawned Druids) list
-- (GM command)
spawned
-- Lists all spawned bots in the world, their location and quick status
free
-- Same as above but only lists unowned bots.npcbot list spawned
.npcbot list spawned free
.npcbot list s f
add _TARGET_
-- (GM command) selected NPCBot becomes yours bypassing the price condition. Only works on NPCBots which have no owner
.npcbot add
.npcb add
remove _TARGET_
-- (GM command) dismisses the NPCBot(s) from player's control. Any bot removed via this command retains its gear
.npcbot remove
.npcb rem
free _TARGET_
-- (GM command) frees selected NPCBot from player's ownership. All gear will be unequipped and sent back to player, can be used on inactive NPCBot
.npcbot free
spawn <_ENTRY_|_LINK_>
-- (GM command) spawns a NPCBot in world, NPCBot is saved in DB. Only works in world maps (not instances). Note that unlike other creatures only one instance of each NPCBot can be spawned, but don't worry: there are many NPCBots to choose from
.npcbot spawn 70001
(spawns NPCBot with ID 70001) .npcb sp 70002
(spawn NPCBot with ID 70002) .npcb sp [Haromm]
(spawn NPCBot by link) move <_ENTRY_|_LINK_|_TARGET_>
-- (GM command) moves spawned NPCBot to a new location. This command replaces .npc move
command for bots
.npcbot move 70001
(moves NPCBot with ID 70001 to your position) delete
-- (GM command) deletes NPCBot from world, NPCBot is removed from its owner if any and deleted from DB. Gear is given back to either the bot's owner (if there is one) or the player using the command. If you need bot owner to not get the gear back, .npcbot remove
the bot before deleting. Command will fail if used from the console on unowned but geared NPCBots
.npcbot delete
.npcb del
creature_template
.entry
).npcbot delete id 70032
.npcb del id 70032
.npcbot delete free
.npcb del f
set
(GM command)
faction <a|h|m|f|_factionID_> _TARGET_
-- sets the faction for selected NPCBot
.lookup faction
command .npcbot set faction
(by itself will display list of subcommands for faction) .npcb s f m
(sets the faction of a selected NPCBot to HostileToAll) owner <_GUID_|_NAME_> _TARGET_
-- sets ownership of a selected NPCBot to a specific player
.npcbot set owner 312
(sets the selected NPCBot owner to the player with guid 312) .npcb s o Myplayer
(sets the selected NPCBot owner to the player by name Myplayer
) spec <_NUMBER_> _TARGET_
-- forces a spec change for selected NPCBot
.npcbot set spec 2
(selected NPCBot will instantly respec into Fury talent tree; talents will only apply to a warrior NPCBot) revive _TARGET_
-- (GM command) revives NPCBot(s)
.npcbot revive
.npcb rev
reloadconfig
-- (GM command) reloads NPCBot system settings
command
-- (Player command) allows to manage your NPCBots positioning, movement and couple other things (by itself will display list of subcommands)
follow _TARGET_
-- set NPCBot(s) to FOLLOW mode
only
-- toggle INACTIVE mode for NPCBots. Inactive bots will not do anything but follow standstill _TARGET_
-- set NPCBot(s) to STAY mode stopfully _TARGET_
-- set NPCBot(s) to IDLE mode
nocast
-- toggle NPCBots' ability to cast any spells nolongcast
-- toggle NPCBots' ability to cast spells with non-zero cast time unbind <_TARGET_|_NAMES..._>
-- free NPCBot(s) temporarily without dismissing them. Bot(s) will return to home position and wait there until invited back (or server restart) rebind <_TARGET_|_NAMES..._>
-- call unbound NPCBot(s) back. Use .npcbot info
to list your unbound NPCBots
walk
-- toggle WALK mode for NPCBots nogossip
-- toggle GOSSIP availability for NPCBots.npcbot command standstill
(NPCBot stops moving and will hold position) .npcb co sta
(same as above) .npcbot command stopfully
(NPCBot will interrupt all actions, stop and not react to anything) .npcbot command follow
(NPCBot will follow you if not already) .npcbot command follow only
(all NPCBots will do nothing while following you) .npcb co nog
(you will not be able to open NPCBot gossip menu even out of combat) .npcb co unb sheal
(temporarily remove druid NPCBot Sheal) info _TARGET_
-- (Player command) shows info on owned bots
.npcbot info
.npcb in
hide
-- (Player command) forces NPCBots to temporarily disappear. They will teleport off the map and out of the world for until allowed to come back. Cannot be used in combat
.npcbot hide
.npcb h
unhide
|show
-- (Player command) the opposite of .npcbot hide
command; your NPCBots will appear shortly. Cannot be used in combat
.npcbot unhide
.npcbot show
sendto <_TARGET_|_NAMES..._>
-- (Player command) for 30 seconds makes NPCBot(s) wait for your signal to move to stationery position. The position must be pointed then by a dest spell (AoE, smoke flare, dynamite, etc.). Stationed bots will stay there indefinetely, use follow command to call them back. Bots in FULLSTOP state can't be moved by this
last <_TARGET_|_NAMES..._>
-- (Player command) same as plain sendto
but moves NPCBot(s) back to previous position bot was sent from, making it stationery point <NUMBER> <_TARGET_|_NAMES..._>
-- (Player command) moves NPCBot(s) to a previously marked station point
set <_NUMBER_> <_TARGET_|_NAMES..._>
-- (Player command) marks NPCBots' current positions as a station point by the <_NUMBER_>
1 ... 5
.npcbot sendto
.npcb send eva jol eanor harene
.npcbot sendto last eva jol eanor harene
recall _TARGET_
-- (Player command) forces a NPCBot to move directly on your position. Usable while dead. Designed mostly for situations like when you die and your NPCBots are stuck under textures and in combat at the same time
teleport _TARGET_
-- (Player command) forces NPCBots to teleport to you immediatelly. Cannot be used in PvP spawns
-- (Player command) forces your inactive NPCBots to teleport to their spawn locations immediatelly. Use if bots do not join you back after logout .npcbot recall
.npcb rec tele
kill _TARGET_
|suicide _TARGET_
-- (Player command) forces a NPCBot to die. Designed for troubleshooting in situations like when NPCBots are not acting normally. This can be caused by a rare bug causing creatures to retain Unit States. If this doesn't work, try to /tickle
them
.npcbot kill
.npcbot suicide
order
-- (Player command) allows you to issue an order to your NPCBot. Orders take priority over any other action. Each bot can have up to 3 queued orders at a time (by itself will display list of subcommands)
cast <_BOT_NAME_ OR _CLASS_NAME_> <_SPELL_NAME_> [_TARGET_TOKEN_]
-- cast some spell
bot
, self
= selfcast me
, master
= bot owner (you) target
= bot's current target (won't work if bot has no target) mytarget
= your current target (won't work if you have no target).npcbot order cast javad lesser_healing_wave me
.npcbot order cast javad purge mytarget
useonbot
-- (Player command) allows you to use your abilities targeting only player on NPCBots. Resurrection, party spells like Intervene, Misdirection, etc. This circumvents any client-side restrictions that prevent selecting bots as target for those spells
spell <_SPELL_ID_ OR _SPELL_LINK_ OR _SPELL_NAME_>
-- use ability
Spell Name
or [Spell Name]
. Case sensitive item <_ITEM_ID_ OR _ITEM_LINK_ OR _ITEM_NAME_>
-- use item
Item Name
or [Item Name]
. Case sensitive.npcbot useonbot spell [Resurrection]
.npcbot useonbot spell Dampen Magic
.npcbot useonbot spell Intervene
.npcbot useonbot item [Gnomish Army Knife]
.npcb use s Intervene
distance <_VALUE_>
-- (Player command) allows you to quickly set bot follow distance (by itself will display full help)
attack <_VALUE_|_SHORT_|_LONG_>
-- (Player command) sets attack distance
.npcbot distance 75
.npcbot distance attack 20
.npcb dist a short
vehicle eject _TARGET_
-- (Player command) allows you to kick your NPCBots out of vehicles (bots won't dismount from vehicles automatically while in combat)
.npcbot vehicle eject
.npcb veh e
go _ENTRY_
-- (GM command) allows you to teleport to NPCBot's current location, similar to .appear
command for players. Be careful as this command may occasionally teleport you below ground level due to creature pathing errors
.npcbot go 70855
(teleport to NPCBot 70855) .npcb go 70855
wp
-- (GM command) a set of development commands for manipulating free-roaming bots wander points. If you wish to use them see the code
spawnall
move
add
del
list
list all
go
setlevels
setlevels z
setflags
setflags z
setname
setlinks
info
links
dump
-- (Admin command) allows you to migrate bots data, similar to pdump
for players (by itself will display list of subcommands)
write <_FILENAME_>
-- creates a backup file containing info required to move bots to another DB
.npcbot dump write bots_backup
(write to bots_backup.sql
) .npcb du w 1.txt
(write to 1.txt
) load <_FILENAME_> [_KICK_PLAYERS_]
-- load NPCBots info from a backup file into DB. Requires no players to be playing (use console) and will force a server restart after completion. NPCBots mod must be already installed (all tables present)
.npcbot dump load bots_backup
(load from bots_backup.sql
) .npcb du l 1.txt
(load from 1.txt
) log
(Admin command)
clear
-- clears characters_npcbot_logs
table (and resets autoincrement)
createnew <_NAME_> <_CLASS_> _RACE_ _GENDER_ _SKIN_ _FACE_ _HEARSTYLE_ _HAIRCOLOR_ _FEATURES_ _SOUNDSET_
-- (Admin command) allows you to create new NPCBots for players to use. Creature ids 70800+ are used for that.
.npcbot lookup
comand to list all available classes 0
and up. Different race/gender combinations have different constraints for visuals, use .npcbot createnew ranges
to see them .npcbot createnew Selendris 8 10 1 6 4 3 2 4
(creates a female redhead Blood Elf mage npcbot) .npcb cre Selendris 8 10 1 6 4 3 2 4
(creates a female redhead Blood Elf mage npcbot) .npcb createnew ranges
(prints visuals constraints for all races) If this is your first time using an NPCBot, you'll need to do the following to get started:
.npcbot lookup
This will give you a listing of the available classes with an ID to indicate each class. For example, 1 is the class ID for Warriors.
Example Output:
.npcbot lookup #class
Looks up npcbots by #class, and return all matches with their creature ID's.
BOT_CLASS_WARRIOR = 1
BOT_CLASS_PALADIN = 2
BOT_CLASS_HUNTER = 3
BOT_CLASS_ROGUE = 4
BOT_CLASS_PRIEST = 5
BOT_CLASS_DEATH_KNIGHT = 6
BOT_CLASS_SHAMAN = 7
BOT_CLASS_MAGE = 8
BOT_CLASS_WARLOCK = 9
BOT_CLASS_DRUID = 11
BOT_CLASS_BLADEMASTER = 12
BOT_CLASS_SPHYNX = 13
BOT_CLASS_ARCHMAGE = 14
BOT_CLASS_DREADLORD = 15
BOT_CLASS_SPELLBREAKER = 16
BOT_CLASS_DARK_RANGER = 17
BOT_CLASS_NECROMANCER = 18
BOT_CLASS_SEA_WITCH = 19
BOT_CLASS_CRYPT_LORD = 20
After you have figured out which class you want to lookup type in:
.npcbot lookup 1
Looking for bots of class 1...
70001 - [Llane] Human
70002 - [Thran] Dwarf
70003 - [Lyria] Human
70004 - [Ander] Dwarf
70005 - [Malosh] Orc
70006 - [Granis] Dwarf
...
70038 - [Kerra] Blood Elf
Next, you'll select an NPCBot from the list:
.npcbot spawn 70003
For this example, we'll select Lyria with an ID of 70003
Lyria will spawn at your location as a level 80 Warrior (by default, NPCBots spawn at max level)
Note that NPCBot you spawned is friendly. By default NPCBots spawn with faction ID set to 35 (friendly to all) But NPCBots will follow realm PvP rules, even if it's a FFAPvP
Also, NPCBots do not attack anything unless provoked, at which point they may attempt to do whatever it takes to kill their target; they can be very persistent
NPCBots can only be spawned in world maps
Right-clicking on the NPCBot will open a Gossip Menu (which gives you some command choices)
Example Output:
You need something?
- <Hire bot>
- Nevermind
Note: if you are have a GM mode enabled you will also see a '\<Debug>' menu
Next, you'll most likely just select '\<Hire bot>' which will popup a confirmation box asking:
"Do you wish to hire Lyria?", with a cost amount that you can Accept or Cancel.
Note: price scales with your level, but rare and elite bots cost more and may require you to be at least level X to hire them
After NPCBot is hired, they will automatically match your level.
Right-clicking on the NPCBot will open a new Gossip Menu with an assortment of options (described in following subsections). Your NPCBot will follow you around in or out of group, but it's probably a good idea to get them into your group so you can monitor their location on mini-map, or health/mana, etc. Your new hired Gossip Menu will show:
- Manage equipment...
- Manage roles...
- Manage formation...
- Manage abilities...
- Manage talents...
- Give consumable...
- <Create Group>
- You are dismissed
- Pull yourself together, damnit
- Nevermind
- [OPTIONAL options may be displayed here]
- <Create Group (all bots)>
- <Add to group>
- <Add all bots to group>
- <Remove from group>
- [CLASS-SPECIFIC options may be displayed here]
For now, select '\<Create Group>' and your NPCBot will join your group and you can begin your adventures!
As mentioned previously, the other options will be discussed further down this document.
If you want you can also spawn an NPC which provides NPCBots hiring services. This is done normal way through .npc add
command:
.npc add 70000
There are always dudes ready to kill for money.
Down the menu you will find a list of classes of NPCBots. After you select one, a list of NPCBots in the world available to you will appear.
Note that conditions you need to meet to hire NPCBots this way are completely the same as you would normally have, the only difference is that you don't need to go around the world to find NPCBots you need.
Whether grouped or not, your NPCBot will follow you around, keeping you buffed along the way (if they can buff), healing you when needed (if it is a healer-type NPCBot), attacking things alongside you and even ressurecting you if you die (if they can ressurect, that is). NPCBots are designed to keep up to your run pace and will mount up on their own version of your mount when you do. In the event that they cannot keep up (due to you moving too fast or they being stuck in combat or something), your NPCBot will eventually teleport to your location (even if you go into another map).
NOTE: NPCBots cannot teleport to you when you are in a dungeon, if they are not part of your group.
For the most part, go somewhere and they will follow. Simple as that. In those cases where following might not be safe or you want to proceed safely, you have a few options.
If your NPCBot is in your direct vicinity, you can target them and emote:
/stand
to make your NPCBot stay put/wave
to make your NPCBot follow you againIf your NPCBot is not targetable or in the immediate vicinity (for selection), you can use the commands:
.npcbot command stay
(.npcb c s
) to make all your controlled NPCBots STAY
.npcbot command follow
(.npcb c f
) to make all your controlled NPCBots FOLLOW
In the event your NPCBot is too far away to path to you, your NPCBot will teleport themself to you.
You can also use .npcbot recall teleport
command to force your NPCBots to teleport to you
When you leave the world your NPCBots aren't hanging around outside the dungeon you decided to log out at. Unless you spawned that NPCBot outside that dungeon. When you log out your NPCBots temporarily become normal free NPCBots (but not hireable because they already have an owner - you) and return to their spawn location. If you picked up your NPCBot in Darnassus, it will return there. If you spawned your NPCBot on the road through the Barrens, it will return there. This can be both annoying and good, spawning NPCBots in a good central location (like in cities), will provide you an easy way to hire them (and coincidentally, they like to hang out and buff passerbys).
NPCBots spawn with some basic equipment and clothes. Some NPCBots however start with some rather powerful weapons but they are only visual and provide no benefits: no damage, no stats. Nothing. They are purely visual. In fact, in most cases these weapons are partial to class appearance and will always stay (like Dark Ranger and her trusty bow)
NPCBots give you the ability to customize their individual gear pieces to make them more effective in combat. Note that visual changes to NPCBot's equipment are not instant (except weapons)
To make changes to their gear, you need to right-click that NPCBot and choose Manage equipment...
from their post-hire Gossip Menu. You should then see the following:
- Show me your inventory
- Auto-equip...
- Main hand...
- Ranged...
- Head...
- Shoulders...
- Chest...
- Waist...
- Legs...
- Feet...
- Wrist...
- Hands...
- Back...
- Shirt...
- Finger 1...
- Finger 2...
- Trinket 1...
- Trinket 2...
- Neck...
- Unequip all
- Update visual
- BACK
As you can see, you can gear up pretty much every slot on your NPCBot
Show me your inventory
will make the NPCBot whisper you a list of everything they currently have including an item icon (helps to understand which slot the item is equipped into)
Auto-equip
will list out all the items you have in YOUR bags that the NPCBot can use. Clicking on one of those items will automatically give it to the NPCBot and equip it into the appropriate slot
_(INDIVIDUAL GEAR SLOTS)_
will show you what they have equipped (if any), an option to use their old equipment (if any to start with) OR an unequip option (if you gave them some gear), a listing of any item in YOUR bags that the NPCBot can use in that slot and a BACK option. Selecting any of your bag items will automatically send that item to the NPCBot and have them equip it. The option to use old equipment or unequip gear will have the NPCBot RETURN the gear you gave them BACK to YOUR bags. They will then return to the default gear/state for that slot. You can also transmogrify items in displayed gear slots (if this feature is enabled) using items you have in your inventory/bags, refer to worldserver config for transmog rules
Unequip all
will have them do just that... dump ALL gear you have given them back into YOUR bags. If you don't have enough space in your bags the excess items will be mailed to you. NOTE: When firing an NPCBot, any gear you have given your NPCBot will automatically be returned to you
There is an additional optional item in this menu called Bot gear bank...
which can be enabled by setting NpcBot.GearBank.Enable = 1
in config. It gives access to unlimited storage for gear - useful when you have too many bots to keep all their extra gear in your own bags. This is an exploit of course so this feature is disabled by default. Note that this storage is saved per player so you will not lose this gear when your last bot is dismissed, but at the same time you won't be able to access it without bots to talk to
BACK
just goes back to the previous menu
NPCBot Role management allows you to adjust how they operate overall. The available options are dependent upon the class of the NPCBot you are controlling
To adjust the NPCBot's roles, you need to right-click that NPCBot and choose Manage roles...
from their Gossip Menu. You should then see (dependent upon the class):
- Gathering...
- Looting...
- Tank
- Off-Tank
- DPS
- Heal
- Ranged
- BACK
Clicking on the respective Role will toggle it on/off (changing the icon)
The roles can be a little tricky to understand:
"Tanking" role means that NPCBots will try to produce as much threat as possible, use taunt-like abilities to reaggro targets attacking friends and use defensive cooldowns more liberally. This does NOT include attacking anything. "Tanking" bots with no "Off-Tanking" enabled are considered Main Tanks and will always stay on targets pointed by TankTargetIconMask
(see Config Settings)
"Off-Tanking" is an addition to "Tanking" role and makes tanking NPCBots prioritize targets pointed by OffTankTargetIconMask
. Enabling this role will automatically enable "Tanking" role also
"DPS" role allows NPCBots to actually deal damage. If this role is disabled NPCBot will not use damaging abilities, not even auto-attack
"Heal" is what your healers need to have enabled. If this role is disabled NPCBots will not even try to heal anything, not even themselves. No, not even in a face of certain death
"Ranged" role affects NPCBots' positioning and the distance they will keep from their attack target. Ranged DPS non-tanking bots will always attack target pointed by RangedDPSTargetIconMask
Example: Warrior having Tanking + DPS + Ranged role enabled will constantly try to taunt the target and run away, only attacking if target catches up
It's recommended to only enable 1 or 2 specific roles for that class to minimize them switching tactics around alot. The only exception is Priest which can handle DPS, Heal and Ranged roles just fine (they will preserve some mana for healing and resort to wand)
Gathering...
roles allow NPCBots to collect different ores, herbs, leather and other trade goods. It does NOT allow to track those goods so good luck with that. It also does NOT allow bots to craft anything. NPCBots have their skill assigned according to their level so level 1 NPCBot for example will not be able to mine Mithril. Note that bots will only use nodes you are very close to
Looting...
roles allow NPCBots to automatically and quickly collect items from nearby lootable creatures for you and other players in your group. Make sure to chose loot method, quality threshold in your group and looting setting for your looter bot
Some times you just want your NPCBot close.. or as far away as possible. The formation option allows you to adjust your NPCBot's distance from you.
Select Manage formation...
from their Gossip Menu to adjust the formation. You will see:
- Follow distance (current: XX)
- DISABLE combat positioning
- Attack distance...
- Attack angle...
- Engage behavior...
- Priority target (Tank)...
- Priority target (DPS)...
- BACK
NOTE1: you will see DISABLE combat positioning
, Attack distance...
and Attack angle...
only if NPCBot has Ranged
role assigned
NOTE2: you will see Engage behavior
only if NPCBot is not a tank
NOTE3: you will see Priority target (<Role>)...
only if NPCBot has required role(s), you are in group, and at least one target icon belonging to respectful target icon mask is set (see Config Settings). Priority targets are set for each NPCBot individually
Selecting Follow distance
will open up a popup window that you can enter in an amount. This amount can be anywhere from 0 to 100. Setting any higher than 100 will default to 100 and any lower than 0 to 0. Setting the distance to 0 will result in the NPCBot PASSIVELY following you rather closely and not engaging mobs unless you attack
If DISABLE combat positioning
option is checked your Ranged
NPCBots will not try to assume attack positions and will instead retain their follow positioning even in combat, only attacking targets in reach
Selecting Attack distance...
will allow you to set ranged attack distance. You will see:
- Short range attacks
- Long range attacks
- Exact (0-50)
- BACK
NOTE: if "Exact" mode is set, its text will change to
- Exact (current: XX)
Short range are attacks that are the shortest distance of all ranged attacks for NPCBot's class. For example for paladins it is 10 yards (Judgement range) and for Mages it is 20 yards (Fire Blast range)
Long range attacks are the opposite of short range ones. For most classes this range is about 30-35 yards. This mode is useful when attacking something too dangerous to stand close to
Selecting Exact
will open up a popup window that you can enter in an amount. This amount can be anywhere from 0 to 50. Same rules as for follow distance
NOTE: setting exact attack distance to 0 will make NPCBots (and their pets) trying to position themselves on top of their target (ignoring model size)
Attack angle...
allows you to set ranged bots positioning mode. You will see:
- Normal
- Avoid frontal AOE
- BACK
If you tell your NPCBots to avoid frontal AOE they will try to position themselves in the way that they won't get hit, behing their target and to the either side, but only if you do the same or are already in melee range of the target
Engage behavior...
submenu is used to manage bots' behaviour when combat is initiated:
- Delay attack by: X.XXs
- Heal target health threshold: XX%
- BACK
Attack delay is time (in seconds) your DPS
NPCBots will wait before they start attacking. This does not apply to Tanks and Healers
Heal threshold is a unit health percentage, friendly units at which or below will be considered a viable heal target for your NPCBot. This is a way to tell your DPS+Heal bots to not heal anyone unless it's really needed. This parameter is individual to each bot. Only available to Healers
Priority target (<Role>)...
allows you to set main target for each bot individually and by role:
- <Icon> <Name>
- <Icon> <Name>
- ...
- <None>
- BACK
Here Icon
is group target icon (skull, cross, etc.), Name
is marked unit's name. Number of those rows is the number of active icons belonging to corresponding role. If marked target is attackable then at engage instead of normal targeting this NPCBot will immediately rush towards this unit. Be aware that priority target is set by icon and will persist when icon is set to another unit, this new unit becomes new priority target to all bots who have priority set to this icon. Selecting None
disables priority target for this NPCBot.
NPCBots use most of real class spells. Some spells/abilities such as buffs, heals, remove curse/poison, etc. are available through an NPCBot's Abilities menu. Level restrictions apply to NPCBots too, for example Warlock will not be able to use Fear until level 8
Selecting Manage abilities...
from the Gossip menu will give you a listing of spells/abilities that they can cast on you or for you. The "Update" option will refresh the spell listing as some spell may be cooled at the moment
If spell is not listed this doesn't mean NPCBot does not have the spell, probably you just cannot use it manually
NPCBots' abilities check algorithm includes finding missing buffs, friends to heal, restocking on consumables (like healthstones), class enchants (Rogue, Shaman), utilities (like using Sprint if falling far behind), spells for party and self, self-heals, finding crowd control targets and finally, attack abilities
Using Manage allowed abilities...
submenu you can make bots not use some of their spells. Disabled spells list is saved in DB
NPCBots don't use normal talent pick choice system. Instead, main talent tree is used (according to a spec) while also picking vital talents from other two trees up to tier 3 (available to players of the same spec).
Select Manage talents...
from the Gossip menu to chose a spec. Bot will activate it and continue to progress with chosen spec as you level up. This action has no cooldown
Although NPCBots will follow their owner around grouped or ungrouped and will usually buff people outside their groups, creating group will make NPCBots properly utilize buffs reserved for group members only
Grouping is also required to properly utilize the DungeonFinder (as you cannot summon NPCBots in or into instances that are ungrouped)
NOTE: If DungeonFinder group has only one real player loot rules will be set to Free For All
NPCBots will always try to use vehicles when player does. With random vehicle types bots will simply copy player actions, but for the essential vehicles bots will use their own tactics. Here is the list:
Wyrmrest Skytalon (Eye of Eternity)
Ruby Drake (Oculus)
Emerald Drake (Oculus)
Amber Drake (Oculus)
Argent Warhorse / Battleworg (Trial of the Champion)
Alliance / Horde Gunship Cannon (Icecrown Citadel Gunship Battle)
Mutated Abomination (Icecrown Citadel Professor Putricide, bots will never use)
Note: NPCBots do not dismount from vehicles automatically while in combat. Use .npcbot vehicle eject
command to force them out of their vehicles.
Depending on NPCBot's class, there may be extra options found in the Gossip menu for that NPCBot
For example, Rogue NPCBots will present the options:
- Help me pick a lock (XX)
- I need you to refresh poisons
- <Choose poison (Main Hand)>
- <Choose poison (Offhand)>
Lockpicks allow you to open locked chests in the world and locked items in your inventory. The skill level (XX) is based on NPCBot's level
Poisons can be chosen for the expected encounters. You'll have to tell your NPCBot to refresh the poisons when you are done
Shaman NPCBots have similar menu for their weapon enchants
Mage NPCBots will give you:
- I need food
- I need drink
- I need a refreshment table
- I need a portal
These options will summon a stack of food or drink for you
If your level is high enough, the mage NPCBot can summon a refreshment table and portals for you and your group
Warlock NPCBots will present the options:
- I need your healthstone
- I need a soulwell
First option will make that Warlock give you their healthstone
If your level is high enough, the warlock NPCBot can summon a soulwell
Level restrictions are applied here, too
Hunter and Warlock NPCBots (once they reach level 10) also have pet submenu:
- <Choose pet type>
You are still aware of level restrictions, right?
Because they don't quite apply to Hunter. He can summon any pet type, yet exotic pets are only unlocked at 80
Lastly, all NPCBots will have the following extra options:
- You are dismissed
- Nevermind
You are dismissed
will remove the NPCBot from your control. They will become pissed off, throw all their gear at you and return back to their spawn location. They will also become enraged for 5 minutes to the point where they will attack anyone attempting to hire them (this can be disabled in config)
Nevermind
will simply close out the Gossip menu
Besides main purpose which is to assist players, NPCBots can also be used as autonomous units. Wandering bots spawn with gear, but are free of player's control and cannot be hired. Here is a list of features supported:
NpcBot.WanderingBots.Continents.Count
controls desired amount of bots roaming world maps. Spawn points are random and level is selected accordingly. These bots give small reward for kill and bonus experience. See the config file for more info. NpcBot.WanderingBots.BG.Enable
setting, this feature allows to generate NPCBots to fill BG queue and partake in BG matches themselves. Bots can't fulfill BG objectives currently. Only Warsong Gulch and Arathi Basin are implemented currently. If some config settings look ambiguous this section may be of help to you
NpcBot.BaseFollowDistance
NpcBot.XpReduction
NpcBot.HealTargetIconsMask
NpcBot.TankTargetIconsMask
NpcBot.HealTargetIconsMask
, but this one marks targets for your NPCBot main tanksNpcBot.OffTankTargetIconsMask
NpcBot.TankTargetIconsMask
**, but this one marks targets for your NPCBot off-tanksNpcBot.DPSTargetIconsMask
NpcBot.TankTargetIconsMask
, but this one affects your damage dealers, and (off-)tanks with DPS role enabled without pointed tanking target, with the same rulesNpcBot.RangedDPSTargetIconsMask
NpcBot.DPSTargetIconsMask
but this one only affects your ranged NPCBotsNpcBot.NoDPSTargetIconMask
Heal / Tank / DPS _TargetIconsMask
priorities
Heal / Tank / DPS _TargetIconsMask
intersections
NoDPSTargetIconMask
NpcBot.Cost
NpcBot.Movements.InterruptFood
NpcBot.EquipmentDisplay.Enable
All localizable string are contained in npc_text
table. If you want to make a translation you'll have to populate npc_text_locale
table accordingly (Text0_0
field)
NPCBot mod features several custom classes inspired by Warcraft III. These bots are ranked Rare, Elite or Rareelite, have different mana increase rate and cannot drink to restore mana, have increased level and hire cost, may have minimum player level requirement. Also, control magic affects them much less, even less than is does players. They are not intended to be as effective as normal classes and/or balanced at any given level. Their main purpose is to support you and other bots. For basic information on certain class use Gossip Menu and click <Study the creature>
. If you need more info keep on reading
(Disabled in last version)
Rank: Rare
Level Bonus: +1
Minimum player level: 1
Equipment affects visual: no
Number included: 1
Class specifics: Very high attack speed, equipped weapon does not affect attack speed, attack power from stats: agility x9, cannot crit with normal attacks, cannot dodge or parry, bonus armor penetration 80%
Equippable weapon: 2h swords, 2h axes and polearms
Equippable armor: any (no shield)
Abilities:
Additional info: Blademaster stands out as a class with highest single target damage capabilities and ability to almost one-shot most things if geared properly. Unfortunately, due to changes in movement mechanic, Blademaster's critical strike animation can no longer be emulated, and thus this class was disabled in last version
Rank: Rareelite
Level Bonus: +3
Minimum player level: 60
Equipment affects visual: weapons only
Number included: 2
Class specifics: Very high resistances, negative mana regeneration which cannot be countered by passive mana regeneration effects (like item mp5 stats), cannot mount, no melee attack, stamina bonus +50%, armor bonus: +50%, all damage taken reduced by 33%, attack power from stats: strength x2, spellpower bonus: 50% attack power + 200% intellect + wands, cannot eat
Equippable weapon: wands x 2
Equippable armor: mail/plate (no shield), no jewelry or cape
Abilities:
Additional info: Obsidian Destroyer in fact derives from a non-hero unit, but received elite status because of the ability to deal insane amounts of damage given the chance, support party of any kind, dispel, purge AND tank at the same time, utilizing abilities of original unit's both forms: statue form and true form
Rank: Rare
Level Bonus: +1
Minimum player level: 20
Equipment affects visual: no
Number included: 1
Class specifics: Always mounted (ground mount only), no melee attack, armor bonus: 500% intellect, spell damage taken reduced by 35%, spellpower bonus: 100% intellect
Equippable weapon: staves
Equippable armor: cloth (no shield)
Abilities:
Additional info: Archmage is most valued for his support capabilities in large groups, although he is very squishy
Rank: Rareelite
Level Bonus: +3
Minimum player level: 60
Equipment affects visual: no
Number included: 5
Class specifics: High resistances, cannot mount, stamina bonus +20%, armor bonus: +50%, all damage taken reduced by 15%, critical strike rating x2, attack power from stats: strength x8, spellpower bonus: 200% stength
Equippable weapon: axes, maces, swords, 2h axes, 2h maces, 2h swords, polearms, staves, fist weapons, daggers
Equippable armor: plate (no shield)
Abilities:
Additional info: Dreadlord is most useful in a big party with a lot of melee classes and also can be very annoying in pvp if packed with enough haste and armor penetration
Rank: Rare
Level Bonus: +1
Minimum player level: 20
Equipment affects visual: no
Number included: 5
Class specifics: All spell damage taken reduced by 75%, armor penalty: -30%, attack power from stats: strength x5, block chance +90%, spellpower bonus: 200% stength
Equippable weapon: axes, maces, swords, fist weapons, daggers
Equippable armor: mail/plate
Abilities:
Additional info: Spell Breaker is mostly pure support class incapable of dealing any serious damage, but may also make quick work of some hapless caster, burning all his mana in seconds
Rank: Rareelite
Level Bonus: +3
Minimum player level: 40
Equipment affects visual: no
Number included: 5
Class specifics: Undead, damage generates no threat, sneak mode if not moving, spell damage taken reduced by 35%, attack power from stats: agility x4 + intellect x2, armor penetration bonus: 50%, crit bonus +20%, dodge bonus +30%, spellpower bonus: 50% intellect
Equippable weapon: swords, daggers, bows
Equippable armor: cloth/leather (no shield)
Abilities:
Additional info: Dark Ranger has most use in solo combined with healer, or as a support in big group due to Silence low cooldown and no other mana sinks
Rank: Elite
Level Bonus: +2
Minimum player level: 20
Equipment affects visual: no
Number included: 5
Class specifics: Spell damage taken reduced by 20%, no melee attack, spellpower bonus: 100% intellect
Equippable weapon: staves
Equippable armor: cloth (no shield)
Abilities:
Additional info: Necromancer has some Diablo II spirit to it. Curses may come in the future. Necromancer is mainly a support class, he doesn't have any damaging abilities besides CE, but Skeletons combined with Unholy Frenzy can help quite a lot
Rank: Rareelite
Level Bonus: +3
Minimum player level: 1
Equipment affects visual: no
Number included: 5
Class specifics: Spell damage taken reduced by 30%, attack power from stats: agility x2, parry bonus +25%, spellpower bonus: 200% intellect
Equippable weapon: daggers, bows
Equippable armor: cloth (no shield)
Abilities:
Additional info: Sea Witch is a versatile ranged damage dealer. She is very durable and has some CC capabilities
Rank: Rareelite
Level Bonus: +3
Minimum player level: 1
Equipment affects visual: no
Number included: 5
Class specifics: Melee damage taken reduced by 30%, spell damage taken reduced by 15%, stamina bonus +20%, armor bonus: up to +50%, attack power from stats: strength x9, spellpower bonus: 200% strength
Equippable weapon: axes, maces, swords, 2h axes, 2h maces, 2h swords, polearms, staves, fist weapons, daggers
Equippable armor: mail/plate (no shield)
Abilities:
Additional info: Crypt Lord is a great melee damage dealer and with little support he becomes a not bad melee tank. Higher levels also provide moderate CC capabilities. Crypt Lord is immune to poison-based effect (but not damage)
NPCBot data is stored in the following locations:
characters
DB
characters_npcbot
(created by this mod) contains all information about spawned npcbotscharacters_npcbot_group_member
(created by this mod) contains NPCBot group member recordscharacters_npcbot_transmog
(created by this mod) contains transmogrification info for NPCBotscharacters_npcbot_gear_storage
(created by this mod) contains NPCBot gear storage info per player
Also writes to:
item_instance
(item owner assignment)world
DB
creature_template_outfits
(created by this mod) contains static display informationcreature_template_npcbot_appearance
(created by this mod) contains dynamic display informationcreature_template_npcbot_extras
(created by this mod) contains race and class infocreature_template_npcbot_wander_nodes
(created by this mod) movement points for wandering botscreature_template
(ids 70000-71000*) contains creature base data for botscreature_equip_template
(ids 70000-71000*) contains bots' standard weapons infonpc_text
(ids 70000-71000) custom text for bots' gossip and class descriptionscreature
contains info about spawned creatures in the worldIf you want to make changes to the static template data used for NPCBots, you make adjustments in the world
database to those specific ids in the above tables (i.e. npcbot model, outfits, etc.)
Do not tinker with characters
DB NPCBot tables, any bug reports containing accidently corrupted NPCBots installation will be discarded without notice
If you need to delete custom created NPCBot you need to first delete the bot from the world (using .npcbot delete
command; you need to remove their equipment first, otherwise the items become inaccessible). Then delete by entry (creature id) from creature_template_npcbot_extras
, creature_template_npcbot_appearance
and creature_equip_template
tables, and finally, from creature_template
If you need to remove NPCBot mod completely you need to first delete every spawned bot in the world (using .npcbot delete
command). Then delete characters_npcbot
, characters_npcbot_group_member
, characters_npcbot_transmog
, characters_npcbot_gear_storage
, creature_template_npcbot_extras
, creature_template_npcbot_appearance
and creature_template_npcbot_wander_nodes
tables and clean all other used tables of entries by id (70000-71000 + possibly more custom bot entries). creature_template_outfits
can also be deleted if you are not using Npc Dress Mod
Bots are counted as active objects and keep map grids loaded like players Bots are being added to world at server loading (after Map System is started)
For current version (3.3.5) there is a NetherBot addon by NetherstormX
.npcbot useonbot ...
commands.npcbot sendto
command.npcbot command walk
command