The Alcoholic trait for Build 42: features and planned scope


A design brief for review. Every vanilla figure below is read from the Build 42 game files; every Alcoholic figure is the current tuning. Comments and counter-proposals welcome — the questions at the end are the ones I would most like answered.

The pitch

A negative trait built on the same bones as vanilla’s Smoker: a craving that grows while you go without, and lets go when you indulge.

Where it differs is that it pays you back. Smoker is pure cost — you take three points and you manage a habit. The Alcoholic takes four and gives you two real capabilities in exchange: a drink steadies your hands in a fight, and you carry your liquor better than anyone else.

The result is a trait you might take on purpose rather than for the points.

How it compares to Smoker

Smoker (vanilla)Alcoholic (planned)
Point cost−3−4
Mutually exclusive withAthleticAthletic
Disabled in multiplayerNoNo
Craving channelNicotine withdrawal, added to stress as a read-time offsetUnhappiness and stress, held at a target
What relieves itSmoking a cigaretteAny alcoholic drink
Upside for the playerNone — it is pure costPanic relief and alcohol tolerance
Cross-trait interactionNoneFeeds and is fed by Smoker

The structural point: vanilla computes getNicotineStress() as stress plus nicotine withdrawal, clamped. Withdrawal is a level, not an accumulator — it raises where your stress sits rather than piling on forever. The Alcoholic uses the same idea, so at full craving you are uncomfortable and still functional, which is where Smoker leaves you.

Feature one — the craving

Value
Sober hours before it bites8 in-game hours
Craving growth once dry6 points/hour, capped at 100
Unhappiness at full cravingheld at 55 of 100
Stress at full cravingheld at 0.60 of 1.0
How fast it closes on target34% of the remaining gap per hour
Craving cleared per drink45 points

At 6 points an hour, a full craving takes roughly 16 hours of sobriety to build. One drink removes 45, so a little over two drinks resets you completely — a hip flask is a day’s supply, not an afternoon’s.

Feature two — a drink steadies your aim

Each drink takes 18 points off panic, on a 0–100 scale.

Panic is one of the engine’s own character stats, and vanilla already turns it into accuracy loss and the moodle. So this is one number nudged, with the game supplying every consequence.

What that buys in play is the part worth arguing about: a bottle becomes a tactical item rather than upkeep. Cornered in a house with your aim falling apart, take a swig and steady up. Everyone else hauling spirits is hauling trade goods. You are carrying equipment.

Feature three — you can hold your drink

35% of the intoxication gain is waived.

Anyone can drink for the panic relief. The alcoholic can do it and still walk straight. Because the engine’s drunk penalties all key off the intoxication stat, handing a fraction of it back means every one of those penalties applies proportionally less — with no separate system to write.

This is what makes the panic relief usable rather than a trap. Without tolerance, drinking to steady your aim would cost you more accuracy to intoxication than it bought you.

Feature four — the Smoker cross

Take both traits and they talk to each other, deliberately asymmetrically:

DirectionEffect
DrinkingRaises nicotine withdrawal — a drink makes you want a cigarette
SmokingPays off only while drunk, and then it is worth more than usual

Symmetry would have the two traits paying each other back and netting to nothing. The asymmetry means indulging both is rewarded, and being drunk carries a cost you cannot simply smoke away.

It is cheap to build because nicotine withdrawal is already wired into stress by vanilla — the seam between the two traits is one number the game is already reading.

How it registers

The trait is created at runtime from Lua via addCharacterTraitDefinition, which is the supported route for a mod: it mints a new trait, sets the cost and the display name, and lands it in the engine’s own trait list. Verified working on a dedicated server.

The remaining step is a client: confirming it draws correctly in character creation and survives a save. Registering and rendering are separate things, and only the first is proven.

Planned, in order

  1. In-client verification — character creation, save and reload.
  2. Tolerance confirmation. The craving already writes to unhappiness and stress through the engine’s keyed stat API; tolerance uses the same call on intoxication. The code writes it, reads it back and reports which result it actually got.
  3. Moodle and UI text — the trait needs its own description in all four supported languages.
  4. Balance pass against a real playthrough, not a test harness.
  5. The Smoker cross, if it survives review below.

What I would like your input on

  1. Is −4 right, when Smoker is −3? The Alcoholic is strictly more capable — it has two upsides Smoker does not. Is one extra point enough, or should it be −6?
  2. Eight sober hours before it bites — a third of a day. Right rhythm, or should it be a full day?
  3. Unhappiness 55 and stress 0.60 at maximum. Uncomfortable and playable. Should it be allowed to genuinely threaten a run?
  4. 45 craving cleared per drink — two and a bit drinks for a full reset. Too generous?
  5. 18 points of panic relief is a real combat effect. Is it the best thing here, or does it quietly make the trait a net win for anyone who fights?
  6. 35% tolerance — enough to make drinking viable mid-fight, or so much that the drawback disappears?
  7. Does the Smoker cross belong in version one, or should it ship separately once the base trait is proven?
  8. Mutually exclusive with Athletic — inherited from Smoker. Does that still make sense for a drinker?

Every number above is a one-line change. The design decisions are the expensive ones.


Leave a Reply

Your email address will not be published. Required fields are marked *