UltimateLethal CrewMorale
Crew morale for Ultimate Lethal: progressive sanity debuffs and HUD distortion, threat-scaled rewards, save-scoped morale and PC, InsanityMod integration, and hallucinations.UltimateLethal_CrewMorale 2.2.0
Crew Morale extends the pack's existing systems. InsanityMod remains authoritative for real insanity. Crew Morale changes morale-driven gain/recovery and hallucination behavior, but the new fake insanity HUD only changes presentation.
Morale effects
| Tier | Interaction | Stamina | LGU | Hallucination events | Insanity gain |
|---|---|---|---|---|---|
| BROKEN | -100% | -100% | normal | +100% | x3.00 |
| SHAKEN | -50% | -50% | normal | +60% | x2.10 |
| UNEASY | -25% | -25% | normal | +25% | x1.50 |
| STABLE | normal | normal | normal | normal | x1.00 |
| CONFIDENT | +25% | +25% | +5% | -20% | x0.65 |
| THRIVING | +50% | +50% | +10% | -40% | x0.35 |
| PEAK (100) | +100% | +100% | +15% | -60% | x0.15 |
Negative morale never debuffs LGU. Peak still blocks ordinary negative morale events. Last Stand remains the deliberate exception and consumes Peak morale to 70.
Progressive sanity debuffs
InsanityMod's real insanity now adds directly to the existing interaction and stamina values:
| Real insanity | Sanity contribution | Stable total | Broken total | Peak total |
|---|---|---|---|---|
| 0-59 | 0% | 0% | -100% | +100% |
| 60-74 | -10% | -10% | -110% | +90% |
| 75-89 | -25% | -25% | -125% | +75% |
| 90-100 | -50% | -50% | -150% | +50% |
There is no separate artificial cap: the default extremes naturally total -150%. The HUD's INT and STAM cells show the combined morale + sanity value. Negative interaction totals use duration scaling, so -100% means 2x hold duration and -150% means 2.5x hold duration instead of both collapsing to the same minimum speed. At -150% stamina drains at 2.5x and does not recover until the combined value rises above -100%.
Progressive sanity visuals
Real InsanityMod insanity also drives short, intermittent local-only HUD/screen interference. The useful Crew Morale values stay accurate and the compact HUD does not add duplicate information.
| Real insanity | Visual behavior |
|---|---|
| 0-59 | No added screen interference |
| 60-74 | Rare, faint edge loss and static/scan-line tears |
| 75-89 | More frequent color-split tearing and brief Crew Morale HUD jitter |
| 90-100 | Frequent heavier full-screen HUD interference and dark signal dropouts |
The effect uses smooth low-alpha pulses rather than bright full-screen flashes. [V2.2 - Sanity Visuals] provides an enable toggle, intensity, interval, duration and HUD-jitter controls. DebugForceEffect = true continuously forces the strongest pulse for testing. Existing fake Insanity HUD values, phantom audio, obvious brief figures and environmental disturbances remain separate and unchanged.
2.2.0 changes
- Changed the default interaction and stamina tier values to
-100/-50/-25/0/+25/+50/+100. - Existing configs still using the complete published v2.1 default sets migrate automatically; customized sets are preserved.
- Added a dedicated
TZPRecoveryMultiplierwith a default of1.765, raising a standard full TZP effect from roughly 17 to 30 raw insanity points before morale recovery scaling. - Added configurable progressive sanity contributions of
0/-10/-25/-50at real-insanity thresholds0/60/75/90; they stack with morale for interaction and stamina, reaching -150% at the default extremes. - Changed negative interaction scaling to added hold duration so totals below -100% remain distinct and playable.
- Added progressive intermittent full-screen HUD interference: faint at 60 insanity, stronger at 75 and frequent/heavy at 90, with configurable intensity and a testing override.
- Kept PC persistence, morale persistence, event logic and the existing sanity gain/recovery hooks unchanged.
2.1.18 changes
- Morale once again restores from the same save when rejoining or restarting, while a brand-new save initializes at
StartingMorale(55 by default). - Quota-failure resets still set and save morale at 55.
- PC persistence logic is unchanged from 2.1.17.
2.1.17 changes
- Restored the intended morale reset boundaries after the ES3 persistence repair: changing/creating a save and starting a newly hosted lobby reset morale to
StartingMorale(55 by default). - PC remains save-scoped. Reconnecting as a client to a lobby that stayed active keeps the current in-memory morale.
2.1.16 changes
- Same-save lobby re-entry is now detected from the live
StartOfRoundUnity instance instead of relying only onStartOfRound.Startor a changed save-slot name. - A queued saved-PC restoration now blocks transient LGU startup zeroes from being written over the authoritative saved balance.
2.1.15 changes
- Fixed persistence reads selecting ES3's
ES3Settingsoverload instead of the generic-default overload. - PC restoration is queued again whenever the same save slot is re-entered, while morale keeps its same-lobby continuity behavior.
2.1.14 changes
- PC restoration now waits for LGU's native wallet load, then verifies and corrects late LGU overwrites for 20 seconds before declaring the saved balance stable.
2.1.13 changes
- Added configurable stamina efficiency per morale tier. Positive values reduce stamina drain and improve recovery; negative values increase drain and slow recovery.
- Restored status colors. The status word and current morale fill use the tier color.
- Added tier chunks/dividers at 20, 35, 50, 70 and 85 so the bar shows where each morale state begins.
- Rebuilt the effect panel into fixed cells so exaggerated test values no longer push HUD text into neighboring fields.
- Added deceptive InsanityMod HUD values above a configurable threshold. The displayed number/fill can drift or spike while the real InsanityMod value remains untouched.
- Visual hallucinations are now intentionally obvious and brief: closer, larger figures with a high chance to appear near the center of view for a short jolt.
- Kept the improved 2.1.10 phantom-audio direction rather than replacing it.
- Reconnect handling now attempts to preserve morale when rejoining the same active lobby, while new lobby/save sessions and quota failure reset to StartingMorale.
- PC persistence now performs an immediate save/commit plus a delayed second commit after Crew Morale awards PC.
Focused test controls
For visual hallucination testing:
BaseChance = 1CheckSeconds = 2GlobalCooldownSeconds = 2DebugForceEventType = 2
For environment testing, change DebugForceEventType = 3.
For stamina testing, temporarily set the current tier to +100 or -100 and compare drain/recovery.
For fake insanity HUD testing, lower StartThreshold to make the presentation behavior easier to reach.
See TEST_v2.2.0.md.
Persistence
Morale and Crew Morale Player Credits are persisted inside the active Lethal Company save file. Each save slot keeps its own values. New saves start at the configured starting morale and adopt LGU's native starting PC balance.
