arcvoodal Posted April 29, 2021 Share Posted April 29, 2021 (edited) To eliminate the problem of ragdoll spaghettification (which freaks me out to the point where I don't even want to play) I would like to have a mod that makes it so that any time an enemy dies from anything they will always become an ash pile. Not the greatest solution to spaghettification, but I do not see any other way of eliminating the bodies. Even if I disable+setfordelete every enemy I kill, there are still random enemies being killed in the wasteland by other enemies which I am not even aware of. I will be happily traveling along and then a radscorpion will suddenly spagettify in front of me out of nowhere despite that I didn't even kill one before. I am guessing that one way to do this would be to add the 'ash pile' script to every weapon (including the claws and teeth etc that animals use) but this is obviously not ideal. My request is for a mod that adds the script to make a body turn into an ash pile as part of the actual dying process. As for the ash piles persisting, that is a separate issue to be tackled separately (there is already a mod that makes ash piles disappear anyway). UPDATE: so I found this script from a zapaway mod. This script is for when a dead body gets hit. Is there some way to repurpose this script to work on enemies that are dying or have very little health left? ScriptName ZapAwayEffect Float Timer Short DoOnce Begin ScriptEffectStart if GetDead == 1 SetCriticalStage GooStart ;SetCriticalStage DisintegrateStart PMS AlienCritGlowFXShader PMS effectAlienDisintegration Set Timer to 1.8 Set DoOnce to 0 else Set DoOnce to 1 endif End Begin ScriptEffectUpdate if DoOnce == 0 if Timer <= 0 SetCriticalStage GooEnd ;SetCriticalStage DisintegrateEnd SMS AlienCritGlowFXShader SMS effectAlienDisintegration Set DoOnce to 1 endif Set Timer to (Timer - GetSecondsPassed) endif End UPDATE 2:so I found another script 'burn the body'. I especially like that it markfordelete . I don't know fallout scripting enough to repurpose this though: SCN staticaZippoBurnEffectSCRIPT Ref rTarget Ref rToken Float Timer Float fPosX Float fPosY Short DoOnce Short IsPile Short IsStarted Short myID Short bDebug BEGIN ScriptEffectStart Set Timer to 30.0 Set IsStarted to 0 Set DoOnce to 0 Set myID to staticaZippoSelectorQuest.iSpellID Set bDebug to staticaZippoQuest.bDebug if bDebug ShowMessage staticaZippoMsgDebug1 myID endif if ListGetCount staticaZippoDeleteList > 0 Set rTarget to ListGetNthForm staticaZippoDeleteList 0 ListRemoveNthForm staticaZippoDeleteList 0 if ( IsReference rTarget == 1 ) && ( rTarget.IsFormValid == 1 ) PlaySound OBJPipeControlTurn PlayerREF.RemoveItem AmmoFlamerFuel 1 1 ; A token to play burning sound. ; idk is there another way to stop the sound when I want. ; By design there is should NOT be any such "tokens" ; This done because of limitations of Fo3 API and/or my lack knowledge of it. Set rToken to rTarget.PlaceAtMe staticaEmptyFuelContainer 1 rTarget.SetCriticalStage DisintegrateStart rTarget.PMS Flames01 Set DoOnce to 1 else ; something weird happend ShowMessage staticaZippoMsgWRONG myID endif endif END BEGIN ScriptEffectUpdate if DoOnce if IsPile == 0 if Timer <= 0.5 if rTarget.IsFormValid rTarget.AttachAshPile endif ; stop 3D sound if rToken.IsFormValid rToken.Disable rToken.MarkForDelete endif Set IsPile to 1 elseif Timer <= 1.5 ; stop flames anim. several frames before of using Disable() ; because instead it will cause CTD if rToken.IsFormValid rToken.SMS Flames01 endif endif endif if IsStarted == 0 if Timer <= 29.5 if rToken.IsFormValid rToken.PlaySound3D FXFireHaroldLP rToken.PMS Flames01 ; move the token to new place ; because of lulz (they sometimes happens) Set fPosX to rToken.GetPos X Set fPosY to rToken.GetPos Y Set fPosX to ( fPosX - 25.0 ) Set fPosY to ( fPosY - 25.0 ) rToken.SetPos X fPosX rToken.SetPos Y fPosY endif Set IsStarted to 1 endif endif if Timer <= 0 if rTarget.IsFormValid rTarget.SetCriticalStage DisintegrateEnd rTarget.SMS Flames01 endif Set DoOnce to 0 endif Set Timer to ( Timer - GetSecondsPassed ) endif END BEGIN ScriptEffectFinish if rTarget.IsFormValid rTarget.Disable rTarget.MarkForDelete endif ; there is used staticaZippoQuest instead of staticaZippoSelectorQuest ; because of ... bugs? limitations? race conditions? idk ; anyway, usage of the staticaZippoSelectQuest gaves me no expected results SetStage staticaZippoQuest myID if bDebug ShowMessage staticaZippoMsgDebug2 myID endif END Edited May 1, 2021 by arcvoodal Link to comment Share on other sites More sharing options...
Recommended Posts