Jump to content

Creation Kit (Skyrim) Source Scripts Missing


Recommended Posts

Not the right place to ask this but I am out of ideas.

I finally got the Creation Kit fully working???? and am getting scripts to compile, HOWEVER.

I have created a quest whch runs on startup. I have called Start(), I have fill all properties (whatever that does), but SetStage(0) is not starting the quest and my inventary related commands are not working either. I other words the quest is not running, or not connecting with the game. In Skyrin there was a RegisterForUpdate(...,...) command, I know why that was needed for a quest to do function, but now, I.m out of ideas.

Edited by AndyTheSaurus
Link to comment
Share on other sites

So, in the creation kit, when you open the quest, in the "quest data" tab, you have "Start Game Enabled" ticked on?

When you start a new game, open the console (with "~"/tilde) and type "sqv <your-quest-CK-id>".

Does it report the quest as "State: Running"?

If not, your problem is that your alias conditions are failing.  Open the "aliases" tab in the CK and review each one.

If the quest is running, please tell us more about what is not working.

Link to comment
Share on other sites

7 hours ago, xkkmEl said:

So, in the creation kit, when you open the quest, in the "quest data" tab, you have "Start Game Enabled" ticked on?

When you start a new game, open the console (with "~"/tilde) and type "sqv <your-quest-CK-id>".

Does it report the quest as "State: Running"?

If not, your problem is that your alias conditions are failing.  Open the "aliases" tab in the CK and review each one.

If the quest is running, please tell us more about what is not working.

The console access key does not give access to the console. The quest does not use aliases - at least not in any way clear to me. This is the, try anything, code I am trying to get to run:

;============================================

Scriptname PlayerSlaveCollarQuestInitScript extends Quest

GlobalVariable Property PlayerCollarIsFound Auto
GlobalVariable Property LockPlayerCollar Auto
Quest Property PlayerSlaveCollarQuest Auto
Armor Property DLC04_ShockCollarPlayer Auto

Event OnQuestInit()
      Debug.Trace("This quest QUEST Init has been called")
    Start()
        PlayerSlaveCollarQuest.SetStage (0 )
        PlayerSlaveCollarQuest.SetStage (10 )
endEvent

Event OnInit()
    ;  RegisterForUpdate(1,0)
      Debug.Trace("This quest SCRIPT Init has been done")
    Start()
        PlayerSlaveCollarQuest.SetStage (0 )
        PlayerSlaveCollarQuest.SetStage (10 )
EndEvent

;;;;Event OnUpdate()

function PlayerSlaveCollarQuestInit()
    int   Done

    if ( Done == 0 )
        Done = 1
        Start()
        PlayerSlaveCollarQuest.SetStage (0 )
        PlayerSlaveCollarQuest.SetStage (10 )
    endif
    if ( PlayerCollarIsFound.GetValueInt() == 0 )
        if ( Game.GetPlayer().GetItemCount ( DLC04_ShockCollarPlayer) == 0 )
            RETURN
        endif
        PlayerCollarIsFound.SetValue(1)
        SetStage (30 )
    endif
    
    ;========== This bit should go elsewhere ==========
    if ( Game.GetPlayer().GetItemCount( DLC04_ShockCollarPlayer)== 0 )    ; Player dropped it
        Game.GetPlayer().AddItem( DLC04_ShockCollarPlayer, 1 )
    else
        Game.GetPlayer().RemoveItem( DLC04_ShockCollarPlayer, 1 )    ; Player picked it up again
    endif

endfunction

Link to comment
Share on other sites

This a bit strangely put together.  It is not clear if or when OnQuestInit or PlayerSlaveCollarQuestInit are/would be called.

Also, the "Done" variable is local to the function and will start with value zero every time the PlayerSlaveCollarQuestInit function is called.  The "if (Done == 0)" test is always true...

And... well there are a number of problems.  Mark the quest as SEQ and try this instead:

 Scriptname PlayerSlaveCollarQuestInitScript extends Quest

GlobalVariable Property PlayerCollarIsFound Auto
GlobalVariable Property LockPlayerCollar Auto
Quest Property PlayerSlaveCollarQuest Auto
Armor Property DLC04_ShockCollarPlayer Auto

Event OnInit()
    if isRunning()
        RegisterForUpdate( 0.0)
        Debug.Trace("This quest SCRIPT Init has been done")
    endif
EndEvent

Event OnUpdate()
    PlayerSlaveCollarQuest.SetStage (0 )
    PlayerSlaveCollarQuest.SetStage (10 )
    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
EndEvent

 

Edited by xkkmEl
Link to comment
Share on other sites

You have realy put your finger on the problems. NON of the online tutorials mentaion any of this. What worked in Skyrim just will not work here. I suspected that the quest routines were not being called. And I am currently unable to establish aliase's for the Item cause the Alias screen dont work well with my weak vision on my display. Thats why the code is so odd - its a work around. And what's this about SEQ files!!!!!! Would Done need to be a Global variable???

RegisterForUpdate() IS NOT KNOWN TO THE COMPILER!!!!!!

Event OnUpdate() is not accepted by the compiler - something about being Not flagged as Native. Apparently, according to online docs,https://falloutck.uesp.net/wiki/Differences_from_Skyrim_to_Fallout_4

,it has been replaced. I think a timer has to be set and picked up by a Timer Event, - repeatedly. This just seams rediculous, other people are not haviing this problem?????

IF I can get this working I plan to just force equip it depending on the value set in LockPlayerCollar by the compiler, or something in the game.

Edited by AndyTheSaurus
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...