-
Posts
38 -
Joined
-
Last visited
Everything posted by AndyTheSaurus
-
Initially there seemed to be no problem. But then I found that after I fast travelled back to the Jail from The Boathoue, I could not leave the jail !!! If I attempt to walk out, the game locks up - theres plenty of memory left and the cpu's are not doing much. If I attempt to fast travel out, then for the first second or two on arrival, I can move (and so can the dog) but then it locks up again. Anyone got any ideas. Note, I do have a party of friendly npc's trying to follow me everywhere. They have been no trouble, so far....
-
Can someone tell me how a location is created???? Just creating a location entry in the editor is pretty useless. I cannot tell the location which cells are involved. I'm wanting the prescence of the player in the cells used by someone elses mod (Boston State Pen) to be visible - as a dummy location the scripting and packages can see - so that some npc's tracking the player will know that the player is in the jails area, and can go to be with him.
-
Creating an interior location
AndyTheSaurus replied to kitcat81's topic in Fallout 4's Creation Kit and Modders
In principle you are quite right, however, I don't get much response anyway. Call it desperation. -
Creating an interior location
AndyTheSaurus replied to kitcat81's topic in Fallout 4's Creation Kit and Modders
Can anyone tell me how to set up a "Dummy" location. In one mod I downloaded, it sets up a new location in Boston. In a mod I am making, I want to set up a dummy location corresponding to the Wilderness cells used so that some NPC's can then join the player when he is in the cells involved. Corrently the only way I can do it is to edit the downloaded mod to send a signal to my mod. -
Custom event WorkshopAddActor
AndyTheSaurus replied to SKKmods's topic in Fallout 4's Creation Kit and Modders
Perhaps you lot can help me. I'm trying to add some of my NPC's to the Red Rocket workstation. I dont have a clue how to do it, except that the NPC's have to carry a workshop script ( choice of 2 ). Some one passed me this in annother forum Actor Property DocHoffSharedRef Auto ;;; THIS DOES FILL WorkshopParentScript Property WorkshopParent Auto Const ;;;; THIS DOES NOT FILL function PlayerFunction() int workshopID = 10 ; RedRocketWorkshopREF WorkshopParent.AddPermanentActorToWorkshopPUBLIC(DocHoffSharedRef , workshopID ) endfunction Where do I get the workshopID from ??????????????. There is no info available about workshops except from a user level, and nothing about the settlement side. -
I came across this : In Creation Kit, edit your script so it includes in its properties: workshopparentscript Property WorkshopParent Auto Const Then add the line: WorkshopParent.AddPermanentActorToWorkshopPUBLIC(settlerRef, workshopID) where 'settlerRef' is the Object Reference of your spawned settler and 'workshopID' is the ID of the workshop you want to assign the settler to. Then compile the script and make sure the WorkshopParent property has filled properly. Unfortunately, they did not mention how to get the NPC reference. Using the Actor ID kepps the compiler (initially) happy, but does not fill. Then there's the WorkshopID
-
Thanks, but I'm not trying to spawn new NPC's, just puting up a beacon will do that - and provide a mixture of who knows what. I'm trying to link in existing npc's that I have created. Can your script be altered to do that?????? Also, I tried this anyway in a quest script and it does not compile - GetLinkedRef() is not known.
-
I wanted to add a number of my NPC's to a settlement (that does not yet exist). The NPC's all have workshop scripts and Faction workshop dialoges, but I cannot find a way to bind them into a settlement (even by selecting the master workshop station to do this). I have examined other preset settlment (agricultural) members but cannot see anything relevant in their faction settinge or packages.
-
I am trying to activate topic entries by talking to various NPC's. The standard function for this is GetTalkedToPC(). However all I ever get is Function Not Know replies. Coulsd some one tell me why this code is a total compiler failure ???/ I suspect that it has something to do with the Alias declaration. (which compiles and fills) ; Alias Property AlexDargon Auto ; points to actor reference in game ; ; theActor = AlexDargon.GetActorReference() ; FAILS ; if ( theActor != null ; ; if ( theActor.GetTalkedToPC() == 1 ) ; FAILS ; if ( Fallout3DocHoffAndFriendsQuest.GetStageDone(10) == true ) ; if ( Fallout3DocHoffAndFriendsQuest.GetStageDone(100) == false ) ; Fallout3DocHoffAndFriendsQuest.SetStage(100) ; endif ; endif ; endif ; endif
-
I'm new to modding Fallout4. I'vs modded a lot for Morrowind, Oblivion and Fallout3 ( I think I released my TenpennyTowerMakeover, transforming all the goons there into prohibition era gangsters).Skyrim was a pain - I lost intrest as Ice ands Snow does nort appeal to me. Fallout4 is very difficult because the programming interface has to be set up by the user, and so much has changed. I tend to look for stuff I can copy. So far I cannot manage dialogues - dont understand the new scene based dialogue system. Anyway, I was always doing clothing changes, and your script seems ideal for my Doc Hoff changing his vintage clothing Mod outfit during the night, with changes : Scriptname Fallout3DocHoffClothingScript extends Actor Outfit Property Fallout3DocHoffDayBlackTieTailsOutfitNoHat Auto Const Mandatory Outfit Property Fallout3DocHoffEveningWhiteTieTailsOutfitNoHat Auto Const Mandatory Outfit Property Fallout3DocHoffDayBlackTieTailsOutfitNoHatSC Auto Const Mandatory Outfit Property Fallout3DocHoffEveningWhiteTieTailsOutfitNoHatSC Auto Const Mandatory GlobalVariable Property pGameHour Auto Const Mandatory Outfit LastOutfit int myTimerID = 10 ; Give our timer an ID we can remember float myTimerDuration = 5.0 ; 5 seconds Event OnInit() Self.SetOutfit(Fallout3DocHoffDayBlackTieTailsOutfitNoHat ) LastOutfit = Fallout3DocHoffDayBlackTieTailsOutfitNoHat StartTimer(myTimerDuration , myTimerID ) EndEvent Event OnTimer(int aiTimerID) If aiTimerID == myTimerID ; The five second timer we started just expired CheckOutfit() StartTimer(myTimerDuration , myTimerID) EndIf EndEvent Function CheckOutfit() If (pGameHour.GetValue() < 6 ) || (pGameHour.GetValue() >= 18 ) If (LastOutfit != Fallout3DocHoffEveningWhiteTieTailsOutfitNoHat ) LastOutfit = Fallout3DocHoffEveningWhiteTieTailsOutfitNoHat Self.SetOutfit(LastOutfit) endif else If (LastOutfit != Fallout3DocHoffDayBlackTieTailsOutfitNoHat ) LastOutfit = Fallout3DocHoffDayBlackTieTailsOutfitNoHat Self.SetOutfit(LastOutfit) endif endif EndFunction
-
Help a new modder?
AndyTheSaurus replied to OperatorStripes's topic in Fallout 4's Creation Kit and Modders
Have now found that Scripts will not run because the Quest must be both STARTED and RUNNING - an obscure flag setting on the main quest form -
Is anyone else unable to run Quest scripts????
AndyTheSaurus replied to AndyTheSaurus's topic in Fallout 4's Discussion
Scripts will not run because the Quest must be both STARTED and RUNNING - an obscure flag setting on the main quest form -
Finding relevent documentation is a real problem. Most is spec theory and does not apply. Online tutorials are hard to follow because of screen visibility and other issues. The Help Site for the Creation Kit aught to help but is down for a revamp. I hope these Mod School Tutorials will help - I'm not really wanting to do much.
-
Fallout3 was easy to add dialogue to; partly by expanding existing topics, partly by scripting to use the AddTopic command. Skyrim was far more difficult (and I cannot remember what I did). For Fallout4 all I have managed to do is add new dialogue under the MISC Tab HELLO topic. It,s the only thing my new NPC's know. (they were based on copying Stanley). I cannot add addtional topics because I do not know how to link new dialogue topics in, and I find the Object Oriended scripting very very difficult - scripting was easy prior to papyrus. And the online tutorials are difficult to follow (rotten screen resolution of what is shown). Help please.
-
I find that despite calling OnQuestInit() in the main script and setting up an event timer, my Quest scripts do not execute. tHIS MONSTROSITY OF A SCRIPT REPRESENTS EVERYTHING INCLUDING THE KITCHEN SINK THROWN IN, AND GENERATES NO OUTPUT AT ALL. YET IT COMPILES Scriptname PlayerSlaveCollarQuestInitScript extends Quest GlobalVariable Property PlayerCollarIsFound Auto GlobalVariable Property LockPlayerCollar Auto Quest Property PlayerSlaveCollarQuest Auto Armor Property DLC04_ShockCollarPlayer Auto ; ObjectReference Property PlayerRef Auto Actor Property PlayerREF Auto bool QuestIsInitialized = false int myTimerID = 10 float TimeDuration = 0.1 Event OnQuestInit() ; RegisterForUpdate(1,0) ;;;;;; THIS WAS USED IN SKYRIM AND WORKED Debug.Trace("This quest SCRIPT Init has been done") Start() if ( isRunning() ) endif PlayerSlaveCollarQuest.SetStage (0 ) PlayerSlaveCollarQuest.SetStage (10 ) StartTimer(TimeDuration, myTimerID ) EndEvent Event OnInit() EndEvent Event OnTimer(int aiTimerID) PlayerSlaveCollarCheck() If ( aiTimerID == myTimerID ) ; The five second timer we started just expired ; Debug.Trace("Timer ended! Do some cool stuff now...") if ( QuestIsInitialized == false ) PlayerSlaveCollarQuest.SetStage (0 ) PlayerSlaveCollarQuest.SetStage (10 ) QuestIsInitialized = true endif if ( PlayerCollarIsFound.GetValueInt() == 0 ) if ( Game.GetPlayer().GetItemCount ( DLC04_ShockCollarPlayer) == 0 ) RETURN endif PlayerCollarIsFound.SetValue(1) SetStage (30 ) endif if ( Game.GetPlayer().GetItemCount( DLC04_ShockCollarPlayer)== 0 ) ; Player dropped it Game.GetPlayer().AddItem( DLC04_ShockCollarPlayer, 1 ) elseif ( Game.GetPlayer().GetItemCount( DLC04_ShockCollarPlayer) > 1 ); Player picked it up again Game.GetPlayer().RemoveItem( DLC04_ShockCollarPlayer, 1 ) endif ; If we wanted to have the timer start over, we could now do StartTimer again... StartTimer(TimeDuration , myTimerID ) EndIf StartTimer(TimeDuration, myTimerID ) EndEvent function PlayerSlaveCollarCheck() if ( QuestIsInitialized == false ) PlayerSlaveCollarQuest.SetStage (0 ) PlayerSlaveCollarQuest.SetStage (10 ) QuestIsInitialized = true endif if ( PlayerCollarIsFound.GetValueInt() == 0 ) if ( Game.GetPlayer().GetItemCount ( DLC04_ShockCollarPlayer) == 0 ) RETURN endif PlayerCollarIsFound.SetValue(1) SetStage (30 ) endif if ( Game.GetPlayer().GetItemCount( DLC04_ShockCollarPlayer)== 0 ) ; Player dropped it Game.GetPlayer().AddItem( DLC04_ShockCollarPlayer, 1 ) elseif ( Game.GetPlayer().GetItemCount( DLC04_ShockCollarPlayer) > 1 ); Player picked it up again Game.GetPlayer().RemoveItem( DLC04_ShockCollarPlayer, 1 ) endif endfunction
-
Is anyone else unable to run Quest scripts????
AndyTheSaurus replied to AndyTheSaurus's topic in Mod Troubleshooting
Thanks Have now found Scripts will not run because the Quest must be both STARTED and RUNNING - an obscure flag setting on the main quest form -
I find that despite calling OnQuestInit() in the main script and setting up an event timer, my Quest scripts do not execute. tHIS MONSTROSITY OF A SCRIPT REPRESENTS EVERYTHING INCLUDING THE KITCHEN SINK THROWN IN, AND GENERATES NO OUTPUT AT ALL. YET IT COMPILES Scriptname PlayerSlaveCollarQuestInitScript extends Quest GlobalVariable Property PlayerCollarIsFound Auto GlobalVariable Property LockPlayerCollar Auto Quest Property PlayerSlaveCollarQuest Auto Armor Property DLC04_ShockCollarPlayer Auto ; ObjectReference Property PlayerRef Auto Actor Property PlayerREF Auto bool QuestIsInitialized = false ;Event OnQuestInit() ; if isRunning() ;;; RegisterForUpdate( 0.0) ; Debug.Trace("This quest SCRIPT Init has been done") ; endif ; Debug.Trace("This quest QUEST Init has been called") ; Start() ; PlayerSlaveCollarQuest.SetStage (0 ) ; PlayerSlaveCollarQuest.SetStage (10 ) ;endEvent int myTimerID = 10 float TimeDuration = 0.1 Event OnQuestInit() ; RegisterForUpdate(1,0) ;;;;;; THIS WAS USED IN SKYRIM AND WORKED Debug.Trace("This quest SCRIPT Init has been done") Start() if ( isRunning() ) endif PlayerSlaveCollarQuest.SetStage (0 ) PlayerSlaveCollarQuest.SetStage (10 ) StartTimer(TimeDuration, myTimerID ) EndEvent Event OnInit() EndEvent Event OnTimer(int aiTimerID) PlayerSlaveCollarCheck() If ( aiTimerID == myTimerID ) ; The five second timer we started just expired ; Debug.Trace("Timer ended! Do some cool stuff now...") if ( QuestIsInitialized == false ) PlayerSlaveCollarQuest.SetStage (0 ) PlayerSlaveCollarQuest.SetStage (10 ) QuestIsInitialized = true endif if ( PlayerCollarIsFound.GetValueInt() == 0 ) if ( Game.GetPlayer().GetItemCount ( DLC04_ShockCollarPlayer) == 0 ) RETURN endif PlayerCollarIsFound.SetValue(1) SetStage (30 ) endif if ( Game.GetPlayer().GetItemCount( DLC04_ShockCollarPlayer)== 0 ) ; Player dropped it Game.GetPlayer().AddItem( DLC04_ShockCollarPlayer, 1 ) elseif ( Game.GetPlayer().GetItemCount( DLC04_ShockCollarPlayer) > 1 ); Player picked it up again Game.GetPlayer().RemoveItem( DLC04_ShockCollarPlayer, 1 ) endif ; If we wanted to have the timer start over, we could now do StartTimer again... StartTimer(TimeDuration , myTimerID ) EndIf StartTimer(TimeDuration, myTimerID ) EndEvent function PlayerSlaveCollarCheck() if ( QuestIsInitialized == false ) PlayerSlaveCollarQuest.SetStage (0 ) PlayerSlaveCollarQuest.SetStage (10 ) QuestIsInitialized = true endif if ( PlayerCollarIsFound.GetValueInt() == 0 ) if ( Game.GetPlayer().GetItemCount ( DLC04_ShockCollarPlayer) == 0 ) RETURN endif PlayerCollarIsFound.SetValue(1) SetStage (30 ) endif if ( Game.GetPlayer().GetItemCount( DLC04_ShockCollarPlayer)== 0 ) ; Player dropped it Game.GetPlayer().AddItem( DLC04_ShockCollarPlayer, 1 ) elseif ( Game.GetPlayer().GetItemCount( DLC04_ShockCollarPlayer) > 1 ); Player picked it up again Game.GetPlayer().RemoveItem( DLC04_ShockCollarPlayer, 1 ) endif endfunction