How reputation works: faction definitions, gain rates and spillover. Sources:
src/game/ReputationMgr.cpp, tables faction,
faction_template.
faction- one row per reputation group players can hold standing with (e.g. Stormwind). Defines the rank thresholds, parent chain and spillover.faction_template- the combat-side faction of every creature/GO (creature_template.faction). Itsfriend/enemymasks decide hostility; itsreputationListIDlinks a creature to a reputation group so killing it grants/denies rep.
Hostility is evaluated through FactionTemplateReaction: hated→hostile … friendly→friendly;
players react to creatures via these templates, not via the rep table directly.
| Mechanic | Where configured |
|---|---|
| Kill credit | creature's faction_template → reputation list id |
| Quest rewards | quest_template.RepObjectiveFaction/Value, plus RewRepFaction* |
| Items | item spells granting rep |
| Rate multipliers | reputation_reward_rate per faction & zone type |
Rate.Reputation.Gain in mangosd.conf scales everything globally.
Ranks run Hated → Exalted (REP_HATED=0 … REP_EXALTED=7, SharedDefines.h).
The standing cut-offs between ranks come from Faction.dbc (per-faction ReputationMax
values), not from SQL; conditions can test them with
CONDITION_REPUTATION_RANK_MIN/MAX (conditions), e.g.
vendor items visible only at Exalted.
reputation_spillover defines which parent faction receives
a fraction of gains (e.g. killing Defias raises Stormwind, and partially the other Alliance
cities):
faction_id- the child faction gaining rep,parent_faction- where spillover goes,- per-rank rate columns control percentages for hostile/unfriendly/friendly tiers.
Standing per player persists in character_reputation
(faction → standing + flags such as "at war").
- faction · faction_template
- Quest System - quest rep rewards