Wolfe6900 Posted 5 hours ago Posted 5 hours ago Wolfe's Struggle Systems View File NOTE: This mod does nothing by itself. It needs to be called by another mod. To Test: "coc wss2" Wolfe's Struggle Systems: A Fallout 4 struggle / resistance minigame framework built for Advanced Animation Framework (AAF). When triggered, the player must fight back through a real-time QTE while an AAF scene plays. Win to break free and keep your outfit. Lose and the scene escalates. Hard requirements: - Fallout 4 - F4SE (required for the Scaleform HUD and extended input handling) - Mod Configuration Menu (MCM) - Advanced Animation Framework (AAF) - Savage Cabbage animation pack Recommended: - Kziitd Fetish Toolset 1.0 Beta 3 Load order: Place this mod below AAF, F4SE-dependent plugins, and MCM. Keep your animation packs below AAF as usual. WHAT IT DOES: When a struggle is triggered (dialogue, another mod, or a test call), the system: 1. Snapshots the player (and partner) outfit. 2. Starts an AAF struggle scene if AAF Compatible is enabled in MCM. 3. Shows a Scaleform struggle HUD and runs one of three minigame modes: - Mash — spam click / attack / jump / sprint to fill the bar. - Keyboard — press the prompted letter or gamepad face button. 4. Resolves win or loss: - Win — stops the struggle scene, restores clothing after a short delay, fires outcome events / quest stages. - Lose — progressively strips armor and clothing as the meter falls, then plays a defeat AAF scene. HOW ARMOR AFFECTS THE STRUGGLE: Armor is not just cosmetic — it changes how hard the fight is. When Armor Affects Start Progress is enabled (default), better coverage gives you more of the bar at the start: - Light clothing on the body slot gives a modest boost. - Each worn armor piece adds bonus starting progress based on its rating. - A strong full set can start you much higher on the meter. Resistance while mashing / prompting *Worn armor also scales how much progress you gain from successful inputs. Nearly naked = very slow progress. Full coverage = noticeably faster fills. MODDER'S RESOURCE — HOW TO LINK YOUR MOD ======================================== Quote This release is intended as a reusable framework. Other mods can trigger struggles and react to outcomes without re-implementing the QTE, HUD, AAF wiring, or clothing logic. Core script ----------- - Script: WSS_System - Type: Quest script - Attach it to your struggle controller quest in the Creation Kit. You will need a quest in your plugin with: - Player alias (fill PlayerRef on the script) - Optional partner alias or speaker passed at runtime - WSS_System attached and compiled (WSS_System.pex in your mod or a master dependency) Minimum CK setup (your mod) --------------------------- 1. Create a Quest (example: WSS_StruggleQuest). 2. Attach script WSS_System. 3. PlayerRef is optional. If left empty, the script uses Game.GetPlayer() automatically. A Player alias is only needed if you prefer filling PlayerRef through an alias in CK. 4. Tune AAF tags, defeat tags, quest stages, and armor properties on the script as needed. 5. Ship WSS_System.pex (and Interface\WSS_StruggleBar.swf if you bundle the HUD) or list this mod as a hard requirement. Recommended setup for other mod authors (cleanest) -------------------------------------------------- Do not attach WSS_System to their own quest. Instead: 1. List Wolfes Struggle Mod as a requirement. 2. On their quest script, add a property: WSS_System Property StruggleSystem Auto { Fill with the WSS_StruggleQuest from Wolfes Struggle Mod. } 3. Call it from dialogue, packages, or their own logic: StruggleSystem.StartStruggleWithSpeaker(akPartner, -1.0) This keeps one central struggle controller while their mod only triggers it. Can an activator / trigger / ObjectReference script call it? -------------------------------------------------------------- Yes. ObjectReference scripts cannot easily use GetOwningQuest() for your quest, but they can hold a quest reference property the same way: WSS_System Property StruggleSystem Auto Fill that property in CK with the Wolfes Struggle Mod quest, then call: StruggleSystem.StartStruggleWithSpeaker(SomeActor, -1.0) A trigger box can use an OnTriggerEnter script; an activator can use OnActivate. The ObjectReference script calls the quest script function through the filled property. That is normal Fallout 4 Papyrus and works fine. Starting a struggle from dialogue on the struggle quest itself -------------------------------------------------------------- On a dialogue line or fragment on the same quest: (GetOwningQuest() as WSS_System).StartStruggleWithDialoguePartner() Uses the current dialogue target as the partner. Optional difficulty override (0–100, higher = easier): (GetOwningQuest() as WSS_System).StartStruggleWithSpeaker(AKSpeaker, 50.0) Starting from another quest or object reference ----------------------------------------------- Fallout 4 has no Quest.GetQuest(). Use a quest reference property on your script: WSS_System Property StruggleSystem Auto { Fill with the WSS_StruggleQuest from Wolfes Struggle Mod. } Then call: StruggleSystem.StartStruggleWithSpeaker(akPartner, -1.0) Pass -1.0 for difficulty to use the MCM / default value. This works from quest scripts, dialogue fragments, activators, triggers, or any other script that can hold a filled quest property. Other public functions ---------------------- - StartStruggleWithDialoguePartner() — partner from dialogue target. - StartStruggleWithSpeaker(Actor akSpeaker, Float afDifficulty) — explicit partner + optional difficulty. - StartStruggleQTEOnly(Float afDifficulty) — bar only, no AAF struggle scene. - CancelStruggle() — abort a pending or active struggle. - IsStruggleActive() — returns whether a struggle is running. Test functions (console / papyrus on the quest) ----------------------------------------------- - StartStruggleBarTestMode1() — force Mash HUD - StartStruggleBarTestMode2() — force Pendulum HUD - StartStruggleBarTestMode3() — force Keyboard HUD Reacting to win / loss ---------------------- Option A — Quest stages (simplest) Set on WSS_System in CK: - WinQuestStage (default 10) - LossQuestStage (default 20) The script advances its owning quest to those stages on outcome. Option B — Custom event (flexible) Register on the struggle quest: RegisterForRemoteEvent(StruggleQuestRef as WSS_System, "OnStruggleOutcome") Handle it: Event WSS_System.OnStruggleOutcome(WSS_System akSender) Actor player = akSender.LastOutcomePlayer Actor partner = akSender.LastOutcomePartner Bool won = akSender.LastOutcomePlayerWon ; your logic EndEvent Readable outcome properties on WSS_System: - LastOutcomePlayer - LastOutcomePartner - LastOutcomePlayerWon Disable the custom event in CK with FireOutcomeCustomEvent = False if you only want quest stages. AAF integration notes for modders --------------------------------- Important script properties (AAF group): - StruggleIncludeTags / StruggleExcludeTags — how AAF picks the struggle animation. - StrugglePosition / StrugglePositionPool — override with your pack’s position IDs. - DefeatPosition / DefeatIncludeTags — what plays on loss. - PlayAAFDuringStruggle — mirrors MCM “AAF Compatible”. - AAFStartEquipmentSet = WSS_StruggleKeep — uses AAF\WSS_Struggle_equipmentSetData.xml to avoid instant strip at scene start. - PartnerIsActor0 — set False for typical female-player / male-partner packs. The mod registers for AAF events (OnSceneInit, OnAnimationStart, OnAnimationChange, OnSceneEnd) automatically when AAF is available. Clothing / armor extension -------------------------- Useful CK properties: - ProtectedStruggleArmorItems — forms never stripped. - ProtectedStruggleArmorKeywords — keywords never stripped (cuffs, harnesses, etc.). - StripArmorOnFailure — toggle progressive strip. - KeepClothedDuringStruggle — keep outfits on during the struggle scene when possible. Difficulty from your mod ------------------------ Pass a float 0–100 to StartStruggleWithSpeaker / StartStruggleQTEOnly. Higher = easier escape. MCM difficulty presets still apply to drain tuning unless you override per call. File layout modders may depend on --------------------------------- Scripts\WSS_System.pex Scripts\Source\User\WSS_System.psc Interface\WSS_StruggleBar.swf AAF\WSS_Struggle_equipmentSetData.xml MCM\Config\WolfesStruggleMod\config.json MCM\Config\WolfesStruggleMod\settings.ini Permissions ----------- If you release a mod that depends on this framework, credit Wolfes Struggle Mod and link back to this page. Do not redistribute WSS_System.pex under a different name without permission. Your own quests, dialogue, and triggers are yours. Submitter Wolfe6900 Submitted 07/11/26 Category Modders Resources Requirements
Samhsay Posted 5 hours ago Posted 5 hours ago If this works with animals, it looks like a good way to immersively trigger scenes involving them. 1
sath81 Posted 4 hours ago Posted 4 hours ago i might actually turn on animal scenes if there was a legit immersive way to fight them off and even kill them mid resistance scene
Verasmile2 Posted 3 hours ago Posted 3 hours ago This looks interesting, any chance for some gifs or a video?
Samhsay Posted 1 hour ago Posted 1 hour ago I think I’ve figured out how it works. When certain conditions are met (like a failed dialogue check), the script triggers an AAF wrestling animation. There probably isn't anything like that for animals; I’ve only seen animations involving dogs and yaoguais on Nexus. There might be something in the game files, but it's doubtful.
Wolfe6900 Posted 1 hour ago Author Posted 1 hour ago 24 minutes ago, Samhsay said: I think I’ve figured out how it works. When certain conditions are met (like a failed dialogue check), the script triggers an AAF wrestling animation. There probably isn't anything like that for animals; I’ve only seen animations involving dogs and yaoguais on Nexus. There might be something in the game files, but it's doubtful. Yeah, the MCM allows a different struggling animation to be chosen if needed, but it defaults to a 2-person animation and needs to be called by a dialogue fragment.
Wolfe6900 Posted 59 minutes ago Author Posted 59 minutes ago 2 hours ago, Verasmile2 said: This looks interesting, any chance for some gifs or a video? I didn't take any, but it's basically just Skyrim's QTE, but modeled for FO4: https://www.nexusmods.com/skyrimspecialedition/mods/121909 I've got a mash bar where you just hit the attack button to raise the meter and a keyboard system like the mod above. There's a pendulum system too, but it's not fully functional yet.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now