Creature template
Таблица creature_template
Таблица creature_template из базы данных world хранит **описание шаблонов существ (NPC/мобов)**. Каждый спавн существа в мире (таблица creature) ссылается на шаблон по полю id/id1 (entry). Шаблон определяет базовые свойства: имя, флаги NPC, скорость, класс, тип, поведение ИИ, дополнительные флаги, привязку к транспорту/vehicle и т. п.
PRIMARY KEY: entry.
| Field | Type | Attributes | Key | Null | Default | Extra |
|---|---|---|---|---|---|---|
| entry | int | UNSIGNED | PRIMARY | NO | 0 | |
| KillCredit1 | int | UNSIGNED | NO | 0 | ||
| KillCredit2 | int | UNSIGNED | NO | 0 | ||
| name | mediumtext | utf8mb4_unicode_ci | YES | NULL | ||
| femaleName | mediumtext | utf8mb4_unicode_ci | YES | NULL | ||
| subname | mediumtext | utf8mb4_unicode_ci | YES | NULL | ||
| TitleAlt | mediumtext | utf8mb4_unicode_ci | YES | NULL | ||
| IconName | varchar(64) | utf8mb4_unicode_ci | YES | NULL | ||
| RequiredExpansion | int | NO | 0 | |||
| VignetteID | int | NO | 0 | |||
| faction | smallint | UNSIGNED | NO | 0 | ||
| npcflag | bigint | UNSIGNED | NO | 0 | ||
| speed_walk | float | NO | 1 | |||
| speed_run | float | NO | 1.14286 | |||
| scale | float | NO | 1 | |||
| Classification | tinyint | UNSIGNED | NO | 0 | ||
| dmgschool | tinyint | NO | 0 | |||
| BaseAttackTime | int | UNSIGNED | NO | 0 | ||
| RangeAttackTime | int | UNSIGNED | NO | 0 | ||
| BaseVariance | float | NO | 1 | |||
| RangeVariance | float | NO | 1 | |||
| unit_class | tinyint | UNSIGNED | NO | 0 | ||
| unit_flags | int | UNSIGNED | NO | 0 | ||
| unit_flags2 | int | UNSIGNED | NO | 0 | ||
| unit_flags3 | int | UNSIGNED | NO | 0 | ||
| family | int | NO | 0 | |||
| trainer_class | tinyint | UNSIGNED | NO | 0 | ||
| type | tinyint | UNSIGNED | NO | 0 | ||
| VehicleId | int | UNSIGNED | NO | 0 | ||
| AIName | varchar(64) | utf8mb4_unicode_ci | NO | |||
| MovementType | tinyint | UNSIGNED | NO | 0 | ||
| ExperienceModifier | float | NO | 1 | |||
| RacialLeader | tinyint | UNSIGNED | NO | 0 | ||
| movementId | int | UNSIGNED | NO | 0 | ||
| WidgetSetID | int | NO | 0 | |||
| WidgetSetUnitConditionID | int | NO | 0 | |||
| RegenHealth | tinyint | UNSIGNED | NO | 1 | ||
| CreatureImmunitiesId | int | NO | 0 | |||
| flags_extra | int | UNSIGNED | NO | 0 | ||
| ScriptName | varchar(64) | utf8mb4_unicode_ci | NO | |||
| StringId | varchar(64) | utf8mb4_unicode_ci | YES | NULL | ||
| VerifiedBuild | int | NO | 0 |
entry
Уникальный идентификатор шаблона существа (Creature Template). Используется как ссылка из creature (спавны), а также множеством других таблиц.
Пример: 1976
KillCredit1
Если запись является «kill credit template» (шаблон-заглушка, когда несколько существ могут засчитываться как убийство для одного условия квеста), то это ссылка на первого возможного реального моба, убийство которого даёт credit.
Ссылка на creature_template → entry.
Пример: 12345
KillCredit2
Аналогично KillCredit1, но для второго варианта. Если вариантов больше двух — обычно требуется дополнительная логика (скрипты), т. к. полей только два.
Ссылка на creature_template → entry.
Пример: 12346
name
Базовое имя существа (отображается игроку).
Пример: "Stormwind Guard"
femaleName
Женский вариант имени (если используется клиентом/данными).
Пример: "Stormwind Guard"
subname
Подзаголовок (титул) в угловых скобках под именем: <subname>.
Пример: "Weapon Master"
TitleAlt
Альтернативная строка/заголовок (использование зависит от клиента/сниффов; может быть пустым).
Пример: NULL
IconName
Имя «курсорной» иконки (подсказка игроку, что это за NPC). Значение регистрозависимое.
| Value | Описание |
|---|---|
| Directions | Иконка для стражников/телепортеров |
| Gunner | Индикатор турели / управляемого NPC |
| vehichleCursor | Индикатор PCV (Player Controlled Vehicle) |
| Driver | Руль (steering wheel) |
| Attack | Меч — можно атаковать |
| Buy | Сумка — торговец |
| Speak | Диалог/квесты |
| Pickup | Рука — «поднять/взять» (часто для квестов) |
| Interact | Шестерёнка — взаимодействие/транспорт |
| Trainer | Книга — тренер |
| Taxi | Сапог с крыльями — полётник |
| Repair | Наковальня — ремонт |
| LootAll | Множественная сумка — «лут всё» |
| Quest | Неиспользовано/неизвестно (встречается редко) |
| PVP | Неиспользовано/неизвестно (встречается редко) |
Пример: "Trainer"
RequiredExpansion
Минимальное дополнение (expansion), требуемое для актуальности/использования записи (ограничение контента на стороне данных/клиента).
| Value | Описание |
|---|---|
| 0 | Базовая игра / без требования дополнения |
| 1 | The Burning Crusade |
| 2 | Wrath of the Lich King |
| 3 | Cataclysm |
| 4 | Mists of Pandaria |
| 5 | Warlords of Draenor |
| 6 | Legion |
| 7 | Battle for Azeroth |
| 8 | Shadowlands |
| 9 | Dragonflight |
| 10 | The War Within (если используется соответствующим клиентом/данными) |
Пример: 7
VignetteID
ID «виньетки» (vignette) для клиентского отображения POI/подсветок/иконок, если применимо. Обычно соответствует клиентским данным (DB2/Hotfix) по виньеткам.
| Value | Описание |
|---|---|
| 0 | Не используется |
| >0 | ID виньетки (client DB2/Hotfix) |
Пример: 0
faction
Фракция существа (FactionTemplate). Влияет на дружелюбие/враждебность и на механику помощи «своим».
Пример: 11
npcflag
Битовая маска NPCFlags, определяющая доступные взаимодействия (госсип, выдача квестов, торговец, банк и т. п.). Чтобы объединить флаги — суммируйте значения (или используйте OR).
| Decimal | Hex | Name | Описание |
|---|---|---|---|
| 1 | 0x00000001 | Gossip | Дополнительные gossip-опции (меню) |
| 2 | 0x00000002 | Quest Giver | Выдаёт/принимает квесты |
| 4 | 0x00000004 | Unknown | Неизвестно |
| 8 | 0x00000008 | Unknown | Неизвестно |
| 16 | 0x00000010 | Trainer | Тренер (учит) |
| 32 | 0x00000020 | Class Trainer | Тренер класса |
| 64 | 0x00000040 | Profession Trainer | Тренер профессии |
| 128 | 0x00000080 | Vendor | Торговец |
| 256 | 0x00000100 | Vendor Ammo | Торговец боеприпасами |
| 512 | 0x00000200 | Vendor Food | Торговец едой |
| 1024 | 0x00000400 | Vendor Poison | Торговец ядами |
| 2048 | 0x00000800 | Vendor Reagent | Торговец реагентами |
| 4096 | 0x00001000 | Repairer | Ремонт |
| 8192 | 0x00002000 | Flight Master | Полётник |
| 16384 | 0x00004000 | Spirit Healer | Дух-целитель (воскрешение; невидим живым) |
| 32768 | 0x00008000 | Spirit Guide | Дух-проводник |
| 65536 | 0x00010000 | Innkeeper | Трактирщик (установка hearth) |
| 131072 | 0x00020000 | Banker | Банк |
| 262144 | 0x00040000 | Petitioner | Petition NPC |
| 524288 | 0x00080000 | Tabard Designer | Дизайнер гильдейских табардов |
| 1048576 | 0x00100000 | Battlemaster | Баттлмастер |
| 2097152 | 0x00200000 | Auctioneer | Аукционист |
| 4194304 | 0x00400000 | Stable Master | Конюх (стойло питомцев) |
| 8388608 | 0x00800000 | Guild Banker | Гильдбанк |
| 16777216 | 0x01000000 | Spellclick | Spellclick (нужны данные в npc_spellclick_spells) |
| 33554432 | 0x02000000 | Player Vehicle | Игрок-vehicle |
| 67108864 | 0x04000000 | Mailbox | Открывает почту как ящик (ПКМ) |
| 134217728 | 0x08000000 | Artifact Power Respec | Спец. флаг (как в данных ядра) |
| 268435456 | 0x10000000 | Transmogrifier | Трансмогрификатор |
| 536870912 | 0x20000000 | Vaultkeeper | Void Storage |
| 1073741824 | 0x40000000 | Wild Battle Pet | Боевой питомец (коллекционируемый) |
| 2147483648 | 0x80000000 | Blackmarket | Чёрный рынок |
Пример: 4226
speed_walk
Скорость ходьбы. (В таблице указано стандартное значение, часто встречаемое в сниффах.)
Пример: 1
speed_run
Скорость бега. (В таблице указано стандартное значение, часто встречаемое в сниффах.)
Пример: 1.14286
scale
Масштаб (размер) модели. Если равен 0 — используется дефолтный масштаб модели из клиентских данных.
Пример: 1
Classification
Классификация (качество/тип) существа, в основном визуальная (Normal/Elite/Rare и т. п.).
| Value | Name | Default Corpse Decay |
|---|---|---|
| 0 | Normal | 5 min |
| 1 | Elite | 5 min |
| 2 | Rare Elite | 5 min |
| 3 | Obsolete | 1 hour |
| 4 | Rare | 5 min |
| 5 | Trivial | 5 min |
| 6 | Minus Mob | 2.5 min |
Пример: 1
dmgschool
Школа урона для автоатак ближнего боя.
| Value | Name |
|---|---|
| 0 | SPELL_SCHOOL_NORMAL |
| 1 | SPELL_SCHOOL_HOLY |
| 2 | SPELL_SCHOOL_FIRE |
| 3 | SPELL_SCHOOL_NATURE |
| 4 | SPELL_SCHOOL_FROST |
| 5 | SPELL_SCHOOL_SHADOW |
| 6 | SPELL_SCHOOL_ARCANE |
Пример: 0
BaseAttackTime
Базовый интервал между автоатаками ближнего боя (в миллисекундах).
Пример: 2000
RangeAttackTime
Базовый интервал между автоатаками дальнего боя (в миллисекундах).
Пример: 2000
BaseVariance
Модификатор разброса/вариативности урона для ближнего боя (float). Обычно 1 = стандартный разброс.
Пример: 1
RangeVariance
Модификатор разброса/вариативности урона для дальнего боя (float). Обычно 1 = стандартный разброс.
Пример: 1
unit_class
Класс существа (влияет на базовые параметры здоровья/маны и расчёты).
| Value | Name | Power Shown |
|---|---|---|
| 1 | CLASS_WARRIOR | Только здоровье (как у Rogue) |
| 2 | CLASS_PALADIN | Здоровье + мана |
| 4 | CLASS_ROGUE | Только здоровье (как у Warrior) |
| 8 | CLASS_MAGE | Здоровье + мана |
Пример: 1
unit_flags
Битовая маска UnitFlags (серверные/клиентские флаги юнита). Для комбинирования — суммирование (или OR). Полный список битов соответствует перечислениям UNIT_FLAG в исходниках TrinityCore.
Пример: 0
unit_flags2
Битовая маска UnitFlags2. Полный список битов соответствует перечислениям UNIT_FLAG2 в исходниках TrinityCore.
Пример: 0
unit_flags3
Битовая маска UnitFlags3. Полный список битов соответствует перечислениям UNIT_FLAG3 в исходниках TrinityCore.
Пример: 0
family
ID семейства существа (обычно актуально для приручаемых питомцев). Как правило соответствует клиентскому справочнику CreatureFamily (DB2/DBC).
| Value | Описание |
|---|---|
| 0 | Нет семейства |
| >0 | Семейство (например: Wolf, Cat и т. п. — зависит от клиента) |
Пример: 1
trainer_class
Если NPC является классовым тренером, задаёт класс, которому он обучает.
| Value | Класс |
|---|---|
| 0 | Не задано / не классовый тренер |
| 1 | Warrior |
| 2 | Paladin |
| 3 | Hunter |
| 4 | Rogue |
| 5 | Priest |
| 6 | Death Knight |
| 7 | Shaman |
| 8 | Mage |
| 9 | Warlock |
| 10 | Monk |
| 11 | Druid |
| 12 | Demon Hunter |
| 13 | Evoker |
Пример: 2
type
Тип существа (CreatureType).
| ID | Name |
|---|---|
| 0 | None |
| 1 | Beast |
| 2 | Dragonkin |
| 3 | Demon |
| 4 | Elemental |
| 5 | Giant |
| 6 | Undead |
| 7 | Humanoid |
| 8 | Critter |
| 9 | Mechanical |
| 10 | Not specified |
| 11 | Totem |
| 12 | Non-Combat Pet |
| 13 | Gas Cloud |
| 14 | Wild Pet |
| 15 | Aberration |
Пример: 7
VehicleId
ID vehicle-набора. Определяет поведение транспорта: как «сидит» игрок, какие места/спеллы доступны и т. п. Для использования обычно также требуется запись в npc_spellclick_spells.
| Value | Описание |
|---|---|
| 0 | Не является vehicle/транспортом |
| >0 | VehicleId (client data / Vehicle.db2) |
Пример: 292
AIName
Строковый выбор базового ИИ (может быть переопределён полем ScriptName, если оно задано).
| Value | Описание |
|---|---|
| NullAI | Пустой ИИ, ничего не делает |
| AggressorAI | Атакует при входе в радиус агро |
| ReactorAI | Атакует только если его атаковали/заагрили |
| GuardAI | Поведение стражника |
| PetAI | Поведение питомца |
| TotemAI | Тотем: кастует Spell (Index 1), иначе как NullAI |
| SmartAI | Использует SmartAI |
Пример: "SmartAI"
MovementType
Тип движения по умолчанию.
| Value | Описание |
|---|---|
| 0 | Idle — стоит на месте |
| 1 | Random — случайное перемещение в радиусе spawndist |
| 2 | Waypoint — движение по путевым точкам |
Пример: 2
ExperienceModifier
Множитель опыта за убийство (прямо умножает выдаваемый опыт).
Пример: 1
RacialLeader
Флаг «расовый лидер». Убийство таких NPC обычно даёт дополнительную честь.
| Value | Описание |
|---|---|
| 0 | Нет |
| 1 | Да, расовый лидер |
Пример: 1
movementId
Служебное поле, которое передаётся клиенту. В публичных описаниях TrinityCore обычно отмечается как «неизвестное назначение».
Пример: 0
WidgetSetID
ID набора UI-виджетов (Widget Set) для существа (клиентские данные). Если не используется — 0.
Пример: 0
WidgetSetUnitConditionID
ID условия (UnitCondition) для применения WidgetSetID (клиентские данные). Если не используется — 0.
Пример: 0
RegenHealth
Управляет регенерацией здоровья вне боя.
| Value | Описание |
|---|---|
| 0 | Не регенерирует здоровье вне боя |
| 1 | Регенерирует здоровье вне боя |
Пример: 1
CreatureImmunitiesId
ID набора иммунитетов существа. Обычно ссылается на creature_immunities → CreatureImmunitiesId.
Пример: 0
flags_extra
Дополнительные флаги (битовая маска), которые не берутся из сниффов напрямую и используются ядром.
| Decimal | Hex | Name | Описание |
|---|---|---|---|
| 1 | 0x00000001 | CREATURE_FLAG_EXTRA_INSTANCE_BIND | Убийство биндит инстанс на убийцу и его группу |
| 2 | 0x00000002 | CREATURE_FLAG_EXTRA_CIVILIAN | Не агрится (игнорирует враждебность по фракциям/репутации) |
| 4 | 0x00000004 | CREATURE_FLAG_EXTRA_NO_PARRY | Не парирует |
| 8 | 0x00000008 | CREATURE_FLAG_EXTRA_NO_PARRY_HASTEN | Парирование не ускоряет контратаку |
| 16 | 0x00000010 | CREATURE_FLAG_EXTRA_NO_BLOCK | Не блокирует |
| 32 | 0x00000020 | CREATURE_FLAG_EXTRA_NO_CRUSH | Не наносит crush-атаки |
| 64 | 0x00000040 | CREATURE_FLAG_EXTRA_NO_XP_AT_KILL | За убийство не даётся опыт |
| 128 | 0x00000080 | CREATURE_FLAG_EXTRA_TRIGGER | Trigger-NPC (обычно невидим игрокам) |
| 256 | 0x00000100 | CREATURE_FLAG_EXTRA_NO_TAUNT | Иммунитет к taunt-эффектам |
| 512 | 0x00000200 | CREATURE_FLAG_EXTRA_UNUSED_9 | Не используется/резерв |
| 1024 | 0x00000400 | CREATURE_FLAG_EXTRA_GHOST_VISIBILITY | Видим только мёртвым игрокам |
| 2048 | 0x00000800 | CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK | Использует оффхенд-атаки |
| 4096 | 0x00001000 | CREATURE_FLAG_EXTRA_NO_SELL_VENDOR | Нельзя продавать предметы этому торговцу |
| 16384 | 0x00004000 | CREATURE_FLAG_EXTRA_WORLDEVENT | Пользовательский флаг для world events |
| 32768 | 0x00008000 | CREATURE_FLAG_EXTRA_GUARD | Стражник (игнорирует feign death и vanish) |
| 131072 | 0x00020000 | CREATURE_FLAG_EXTRA_NO_CRIT | Не наносит критические удары |
| 262144 | 0x00040000 | CREATURE_FLAG_EXTRA_NO_SKILLGAIN | Не повышает weapon skills |
| 524288 | 0x00080000 | CREATURE_FLAG_EXTRA_TAUNT_DIMINISH | Taunt подвержен diminishing returns |
| 1048576 | 0x00100000 | CREATURE_FLAG_EXTRA_ALL_DIMINISH | Подвержен всем diminishing returns |
| 2097152 | 0x00200000 | CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ | Кредит засчитывается игроку даже если NPC помогали (при наличии тега) |
| 268435456 | 0x10000000 | CREATURE_FLAG_EXTRA_DUNGEON_BOSS | Dungeon boss (обычно выставляется ядром во время работы; задавать в БД нельзя) |
| 536870912 | 0x20000000 | CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING | Игнорирует pathfinding (как отключение mmaps только для одного моба) |
| 1073741824 | 0x40000000 | CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK | Иммунитет ко всем knockback-эффектам |
Пример: 0
ScriptName
Имя привязанного серверного скрипта (C++/script engine). Если задано, может переопределять AIName.
Пример: "npc_custom_guard"
StringId
Дополнительный строковый идентификатор (используется выборочно; может быть NULL).
Пример: NULL
VerifiedBuild
Служебное поле TrinityDB Team: отметка, из какого client build подтверждены данные.
| Value | Описание |
|---|---|
| 0 | Не проверено/не распарсено |
| >0 | Распарсено из WDB указанного build клиента |
| -1 | Заглушка до появления корректных данных |
| -(Client Build) | Распарсено из WDB указанного build и затем вручную правилось |
Пример: 0