Skip to content

Reputation

Two different things in the 1.13 code are called "reputation", and it pays to keep them apart:

  • Player reputation — a hidden rating of you as an employer, watched by the mercs back home. This system is live: it decides whether A.I.M. mercs will take your calls. It has nothing to do with the Arulcan population.
  • Town reputation — a per-merc, per-town opinion system left over from original JA2 development. It still exists in the source and in savegames, but it was scrapped before vanilla JA2 shipped and does nothing in current 1.13 builds.

Neither is the same thing as town loyalty, the very-much-alive percentage that scales mine income and gates militia training.

Player reputation

Internally the game tracks a single number, ubBadReputation, on a 0–100 scale — the source comments it as "0 = Saint, 100 = Satan". Every campaign starts at 0, the value is clamped to 0–100, and it is stored in your savegame. Word of how you treat your people gets around: battles, deaths, complaints and a few headline deeds all move it.

You never see the number

No screen, tooltip or cheat display shows player reputation — the string "reputation" doesn't appear anywhere in the game's text. You only find out about it indirectly: an A.I.M. merc refuses to sign on during the video call, or a snitch relays that a teammate is griping about your reputation.

What moves it

Every event has an externalized value in Data-1.13\Reputation_Settings.INI (section [Reputation Settings], all values −100 to 100). Positive values repair your name, negative ones damage it. Current defaults:

Setting Default When it fires
REPUTATION_LOW_DEATHRATE +5 Once per day while your overall death rate is under 5%
REPUTATION_HIGH_DEATHRATE −5 Daily, for each merc whose personal death-rate tolerance is exceeded
REPUTATION_GREAT_MORALE +3 Daily, for each merc with morale of 75+
REPUTATION_POOR_MORALE −3 Daily, for each merc stuck below his personal morale threshold
REPUTATION_BATTLE_WON +2 Winning a battle (tactical or auto-resolve)
REPUTATION_BATTLE_LOST −2 Losing a battle — retreating explicitly does not count
REPUTATION_TOWN_WON +5 Capturing a surface town sector from the enemy (Omerta on day 1 excepted)
REPUTATION_TOWN_LOST −5 Losing a surface town sector (Tixa J9 and Orta K4 excepted)
REPUTATION_SOLDIER_DIED −2 A merc dies in your employ — meant to scale with his experience level (see below)
REPUTATION_SOLDIER_CAPTURED −1 A merc is captured — meant to scale with experience level (see below)
REPUTATION_KILLED_CIVILIAN −5 One of your mercs kills a civilian
REPUTATION_EARLY_FIRING −3 Firing an A.I.M. merc within 3 hours of signing or extending his contract
REPUTATION_KILLED_MONSTER_QUEEN +15 Killing the crepitus queen
REPUTATION_KILLED_DEIDRANNA +25 Killing Deidranna
REPUTATION_MERC_COMPLAIN_EQUIPMENT −1 A merc complains his gear is worse than what he's used to (see below)
REPUTATION_MERC_OWED_MONEY −2 Never fires in current builds
REPUTATION_PLAYER_IS_INACTIVE −3 Never fires in current builds
REPUTATION_MERC_FIRED_ON_BAD_TERMS −3 Never fires in current builds

The daily per-merc entries add up fast in both directions. A big roster with high morale and a clean safety record repairs your reputation every single day; a roster of miserable mercs while the death rate is high sinks it just as quickly.

Three of the INI slots are dead weight: nothing in the current source ever raises the owed-money, player-inactive or fired-on-bad-terms reputation events, even though the matching morale mechanics exist. Owing wages and sitting on your hands still hurt merc morale and give snitches something to gossip about, but they do not touch this counter.

Implementation quirks (verified against current source)

The reputation-changing function takes an event ID and looks the amount up in the INI table. A few callers still pass a computed amount instead, with odd results in current builds (verified at commit ba64ed5, July 2026):

  • Deaths and captures don't scale as designed. The code multiplies the dead merc's experience level by the event ID and uses the product as a lookup index. A level 1 death applies the configured −2; a level 2 death lands on the REPUTATION_PLAYER_IS_INACTIVE slot (−3); a level 3 death hits an empty slot and does nothing; level 4 and up read past the settings table entirely, applying an unpredictable value. Captures behave the same way, one row over.
  • Equipment complaints double-dip. Besides the intended −1, the complaint handler also directly applies the REPUTATION_TOWN_LOST value, so each complaint costs 6 points at default settings.
  • The snitch "passive reputation gain" is inverted. A happy snitch is supposed to talk you up by PASSIVE_REPUTATION_GAIN (default 3, Skills_Settings.INI) per day. The code passes that 3 where an event ID is expected, which selects the REPUTATION_POOR_MORALE slot (−3) — so with default files a happy snitch currently worsens your reputation by 3 a day instead of improving it.

What reads it

Each merc profile carries a bReputationTolerance value (0–100, or 101 for "couldn't care less") in Data-1.13\TableData\MercProfiles.xml. In the current data 163 of 255 profiles are set to 101 and never care. The picky ones include Mitch (10), Buns (12), Dr. Q (22), Doc, Raider and Raven (25), Spam (26), Lynx (27), Bob (28), Rusty and Spike (29) and Sidney (30).

The tolerance is checked in exactly these places:

  • A.I.M. hiring. During the video-conference hire (CanMercBeHired), a merc first checks your death rate, then refuses outright if your bad reputation exceeds his tolerance — you get a dedicated refusal line on the call. Both checks are skipped if one of his buddies is already on your team, so a well-chosen friend gets you past a picky merc. See hiring & contracts.
  • The morale threshold. For hired mercs the same tolerance sets a personal morale floor: (100 − tolerance) / 2. Buns (tolerance 12) sulks below 44 morale; a 101-tolerance merc never does. A merc below his floor refuses to renew his contract, and firing him while he's below it counts as firing "on bad terms": he spends 3–6 days giving you lame excuses if you try to rehire him, and his buddies on the team take a morale hit. Note that this path uses the tolerance, not your actual reputation — a saintly record won't save a renewal if the merc's morale is in the basement.
  • Snitch gossip. Once a day every merc who thinks your reputation is too high (plus death-rate, owed-money and other gripes) generates a report that a snitch can relay to you — the closest thing to a reputation readout the game offers.

Verified non-consumers, in case you've read otherwise: M.E.R.C. hires ignore reputation entirely, and it plays no role in contract pricing, insurance rates or fraud investigations, Bobby Ray's stock, town loyalty or militia.

Living with it

Reputation damage is never permanent. Win battles, take town sectors, keep the death rate low and morale high, and the daily bonuses will grind the counter back toward zero — and the two biggest single boosts in the game (crepitus queen, Deidranna) land late, right when a long bloody campaign has done its worst. If you want different pacing, every value is yours to edit in Reputation_Settings.INI (see configuration).

Town reputation: a scrapped system

Strategic/strategic town reputation.cpp implements per-town opinions about individual mercs: every A.I.M., M.E.R.C., RPC and IMP profile carries a bMercTownReputation array with one slot per town, ranging −50 to +50 and starting at 0. The design called for updates four times a day (9am, noon, 3pm, 6pm) with opinions spreading between towns based on the distance between them, and for an NPC's home-town opinion of a merc to affect how willing the NPC is to talk to that merc.

None of it runs. The scheduling function is commented out with a note from the original Sirtech developers — "this system has been scrapped because it is so marginal and it's too late to bother with it now" — the spread calculation is an empty stub, nothing in the entire source ever changes the stored values, and the one intended consumer (the NPC "desire to talk" formula) has the town-reputation term commented out. What remains: the arrays are zeroed at game start, carried around in savegames, and ignored. 1.13 inherited the dead code from the vanilla source release and has never revived it.

So if an NPC won't talk to your merc, town reputation isn't why — look at the merc's approach, leadership, and the NPC's individual opinions instead. And everything you've heard about "keeping a town happy" is loyalty, not reputation.

Sources

All source claims verified against 1dot13/source master at commit ba64ed5 (July 2, 2026).