About This File
Hard Blush
A soft bridge between Sex Attributes (FPA) and Scripted Face Tints (SFT) that makes the player character blush when arousal rises outside of sex, and again on orgasm.
Mod based on textures by Kziitd.
Features
- Three-stage face blush (SFT headparts), duration scaled by arousal (~3 s at low arousal up to ~30 s at max)
- Optional pink screen vignette, breathing SFX, and a short mouth-open MFG pose with the breath
- Orgasm blush: face only (no vignette / sound)
- No arousal-driven blush during sex (FPA sex state); orgasm still applies the face effect
- MCM: toggle VFX / SFX / mouth, arousal gain threshold before the next blush, Reconnect to Sex Attributes for existing saves after updates
- Soft dependencies (FPA / SFT need not be masters)
What to expect
- All three blush stages are applied in sequence as a short animation. Each stage always runs at full intensity; only the duration changes. Duration depends on the current Arousal value.
- Blush triggers when the Arousal stat increases. That can come from various mods (e.g. Perverted Mechanics, SA Helper), alcohol, or the steady arousal gain in Sex Attributes itself. To change how often blush appears, use the threshold option in the MCM.
- Blush does not run from arousal during AAF scenes—otherwise a rapid arousal climb would keep the face red for the whole scene. Instead, blush is applied on orgasm, including during AAF. The orgasm blush has no sound and no pink vignette, so it does not distract from the AAF scene.
For mod authors
Soft dependency on SA blush.esp (plugin filename must match your install). Replace 0x???? with the local FormID of the Hard Blush quest (xEdit / CK).
Start blush
Form f = Game.GetFormFromFile(0x????, "SA blush.esp")
if f
ScriptObject blush = f as ScriptObject
if blush
Var[] args = new Var[3]
args[0] = 10.0 ; hold seconds at full blush
args[1] = true ; play breath SFX (+ mouth if MCM allows)
args[2] = true ; play vignette (if MCM allows)
blush.CallFunction("StartBlush", args)
endif
endif
- One argument only: StartBlush(hold) — from scripts, defaults are breath + VFX on.
- From console, omitted bools may become false; use StartBlushTest 20 or pass 1 1.
- Face-only (like orgasm): StartBlush(30.0, false, false).
Stop / clear
blush.CallFunction("StopBlush", none) ; fade out
; or ForceClear if you exposed it — immediate strip
Events — is the player blushing?
CustomEvent OnBlushEvent
; akArgs[0] as int:
; 1 = full blush active (stage 3)
; 0 = blush fully cleared
Form f = Game.GetFormFromFile(0x????, "SA blush.esp")
if f
RegisterForCustomEvent(f, "OnBlushEvent")
endif
Event SA_BlushQuest.OnBlushEvent(SA_BlushQuest akSender, Var[] akArgs)
int level = akArgs[0] as int
if level == 1
; fully blushing — e.g. NPC comment
elseif level == 0
; cleared
endif
EndEvent
Stages 1–2 do not send events.
Reconnect after load on old saves via MCM if needed; new games register on quest init.
Requirements:
Sex Attributes (FPAttributes),
F4SE
MCM for in-game options.
Special Thanks:
@kziitd- wonderfull textures
@lee3310 - for help and upgrading SFT
@guliguliradish - testing and chinese MCM localization
@Samhsay - help and advise
Everyone else who helped testing