Skip to content

Factions and Reputation

HIKI edited this page Oct 26, 2026 · 2 revisions

Factions, relations and player reputation

NPC-to-NPC and NPC-to-mob relations

Loadout faction defines identity. relations is a numeric object, replacing the removed aligned and opposed arrays:

{
    "faction":"settlers",
    "relations": {
        "settlers":50,
        "trader":100,
        "raiders":-100,
        "monster":-100
    }
}

This is a loadout object, not a complete root file. Relations are directional: A liking B does not mean B likes A. Social actions that require mutual alliance check both directions. Sharing a faction or entity type does not automatically create an alliance; explicitly configure it.

For another TACZ NPC, an exact target loadout ID wins over its faction ID. Explicit 0 overrides a broad hostile/ally faction value. If neither exists, the value is 0.

tacznpc_factions.json groups non-NPC entity types:

{
    "settlers": ["minecraft:villager","minecraft:wandering_trader"],
    "raiders":["minecraft:pillager","minecraft:vindicator"]
}

Configured entity groups take precedence over vanilla mob categories such as monster. If several configured groups match, the lowest configured relation wins. Player relationships do not use relations.players; that field is rejected.

Player reputation

File: tacznpc_reputation.json.

{
    "hostileAt":-50,
    "alliedAt":50,
    "tradeMinimum":-49,
    "defaultFactionReputation":0,
    "factionDefaults": {
        "settlers":10
    }
}

Effective reputation = player–faction reputation + player–individual-NPC reputation. It is used for reputation checks. Personal reputation is keyed by the NPC's UUID, so friendship with one NPC need not make its faction friendly.

Field Built-in Validation
hostileAt -50 Must be negative
alliedAt 50 Must be positive
tradeMinimum -49 Must exceed hostileAt
defaultFactionReputation 0 Initial value for unspecified factions
factionDefaults {} Initial score by faction

Stored scores support -1,000,000,000 to +1,000,000,000 per component, not merely -100 to 100. New faction defaults apply where no explicit score is stored; they do not overwrite saved scores.

Display/price/greeting tiers

Tier Effective score
villainized ≤ -100
hostile -99 to -50
hated -49 to -25
neutral -24 to 24
friendly 25 to 49
allied 50 to 99
idolized ≥ 100

These tier boundaries are fixed. Changing hostileAt/alliedAt changes behavioral gates, not the fixed greeting/price tier names.

Player hits cause -5 personal reputation. A hit is tolerated if the pre-hit effective reputation is allied or higher; the next hit is checked against the new score. For example, 50 → 45 is tolerated, while the next hit starts from 45. Killing an NPC costs 5 reputation with its faction. These penalty amounts are currently fixed.

Use reputation commands for inspection and administration. Use greetings and prices to customize reactions.


Home · Configuration map · Troubleshooting

Clone this wiki locally