Jump to content

Fallout New Vegas GECK & Scripting Help 101


Recommended Posts

 

 

Im trying to come up with a workaround for the missile bug where missiles fired outside of VATS do no impact damage, only the explosion damage. 

                             

I thought about turning off the explosion then using a script to implement the explosion. However, all scripts that i put on a non-hitscan projectile like a missile (such as via ammo impact scripts or via base effect scripts) it simply refuse to run.

 

The script itself is really simple, but it just will not run for some reason.

 

For example :

scn MissileFixBaseEffectScriptBegin ScriptEffectStartplaceatme MissileExplosionHEEND

That does absolutely nothing when i fire a missile. Any ideas?

 

 

Anyone know why the script wont run?

 

 

 

If you are sure you attached the script where you need it, maybe it is because "me" in PlaceAtMe does not exists.

 

Link to comment

 

 

 

Im trying to come up with a workaround for the missile bug where missiles fired outside of VATS do no impact damage, only the explosion damage. 

                             

I thought about turning off the explosion then using a script to implement the explosion. However, all scripts that i put on a non-hitscan projectile like a missile (such as via ammo impact scripts or via base effect scripts) it simply refuse to run.

 

The script itself is really simple, but it just will not run for some reason.

 

For example :

scn MissileFixBaseEffectScriptBegin ScriptEffectStartplaceatme MissileExplosionHEEND

That does absolutely nothing when i fire a missile. Any ideas?

 

 

Anyone know why the script wont run?

 

 

 

If you are sure you attached the script where you need it, maybe it is because "me" in PlaceAtMe does not exists.

 

 

 

I'm doing it the same way the gauss rifle bug fix does it (which is to make a base effect, then attach the script to it, make an object effect with the base effect, then attach the object effect to the weapon) but it does nothing. The gauss rifle bug fix also uses "placeatme [explosion name]". If im not supposed to use "placeatme", what do i use?

 

I tried  doing this:

Begin ScriptEffectStart

 Print "Missile Script Fired!"
 placeatme MissileExplosionHE

END

I attached it to both the ammo (As an impact script) and as a script to the base effect, which is attached to an object effect, which is then attached to the weapon. Nothing happens when i fire the missile, no text pops up on my screen.

 

Just to make sure, i dont need to turn on any special options to get the text to show up right?

Link to comment

So the script wont run at all if the missile hits a rock or something? Because the whole point of it is to cause an explosion 100% of the time without setting the projectile to have an explosion (since that causes the weapon to do no impact damage outside of VATS).

Link to comment

Oh I don't really know, I should try.

I was more looking at when you wrote you have placed the script as weapon effect, and I remembered that weapons require to make at least 1 damage to let the effect be applied on the actor.

 

So you are telling me that the explosions of missiles for example don't work outside VATS? they still visually explode, but don't cause impact damage? wow, I've never noticed that, that's... bad! :(

 

EDIT: the explosion effect (the visual) should be in the radius of explosion, at least this is what it was told me few days ago

Link to comment

Yea, if you fire a missile launcher that does 125 impact and 200 explosion damage outside of VATS, it will only do the 200 explosion damage.

 

I tried putting it as an impact script to the ammo but it wont fire either when i shoot a rock.

 

Edit : I also did some testing and realised that damage done via effects (such as the fire damage of an incendiary grenade) are not affected by perks or skills, which makes some perks and weapons kind of underwhelming. Is there a way to change that? I know i can add conditions to an effect so it does more damage if the player has a certain perk, but that is a lot of perks and a lot of effects.

Link to comment

I'm a beginner scripting and im looking for help to add packages to a companion via scripting. They seem to be adding fine but it seems to immediately evaluate the packages and go back to the package that it would be using. 

 

The way I add the packages is like this: 

;First I move the companion into the cell, this works

veronicaRef.moveto CHLTopsCasinoMarker 0 0 0
;Then I add the package, which according to the console output from the on begin part of the package says that it starts 
veronicaRef.addScriptPackage CHLTopsCasinoSandbox
;Then the default veronica lucky 38 package gets applied somehow and overrides the previous package
 
Also i've been having an issue where the console output is nearly unreadable. Like the horizontal space in between lines is tiny. How would I fix that?
 
 
Link to comment

Yea, if you fire a missile launcher that does 125 impact and 200 explosion damage outside of VATS, it will only do the 200 explosion damage.

 

Maybe you could try in the opposite way, then. What about adding an extra damage to the explosion itself, if you're not in VATS?

 

I'm a beginner scripting and im looking for help to add packages to a companion via scripting. They seem to be adding fine but it seems to immediately evaluate the packages and go back to the package that it would be using. 

 

The way I add the packages is like this: 

;First I move the companion into the cell, this works

veronicaRef.moveto CHLTopsCasinoMarker 0 0 0
;Then I add the package, which according to the console output from the on begin part of the package says that it starts 
veronicaRef.addScriptPackage CHLTopsCasinoSandbox
;Then the default veronica lucky 38 package gets applied somehow and overrides the previous package

 

The package you add with AddScriptPackage will have priority to any other package. If this doesn't happen, if can be that your package is immediately dropping after being added (because not configured in the right way or because it is impossible to be executed), or there's a running script that avoid any interference from you

 

 

Also i've been having an issue where the console output is nearly unreadable. Like the horizontal space in between lines is tiny. How would I fix that?
Link to comment

 

 

 

(because not configured in the right way or because it is impossible to be executed), or there's a running script that avoid any interference from you

 

 

 

The package is just a basic sandbox package which checks if a float is <= a value. I've tested it by manually adding it to veronica and it worked fine. So that might mean that there is some script interference, do you know if there is any vanilla scripts which could cause this?

Link to comment

Okay now seeing this thread I think it might be a better idea of just posting the original post again here, since more people seem on readin this topic and by the looks of it seems to be the appropriate thread anyway. Hopefully someone could help a non-scripter with resolving the issue.

 

 


Hey,

 

some time ago I found out about these two nice little immersion mods that both work with the Courier's stash preorder items. Now thinking it might be a nice little idea to not run into the Mojave with just my pants on AND giving every bandit this side of Vegas the same chance of items, I installed BOTH. Which kinda worked - only the items are not distributed to the character afterwards, because both are using the same base script. Now I've tried and merge those two somehow... but I am not a scripter, coder... so... yes it didn't work, obviously.

Then I looked at it some more and found the original selection script. It might be a nice idea to integrate the distribution of the items at the end of the selection (all of them, however, not just the selected items), but I do not know how this might be done.

This might be potentially interesting for other people, too.

 

 

Yukichigai's Selector Script

 

scn NVDLC00SelectorQuestSCRIPT

short DoStatus ;// Tracks where we are in the dialogue

short CaravanStatus
short ClassicStatus
short MercenaryStatus
short TribalStatus

short numDLC

short Button

Begin GameMode

    if DoStatus == 0

        ;//== Disable every DLC pack by default just so we don't get interrupted

        set VDLCPackQuest.bCaravanItemsGiven to 1
        set VDLCPackQuest.bClassicItemsGiven to 1
        set VDLCPackQuest.bMercenaryItemsGiven to 1
        set VDLCPackQuest.bTribalItemsGiven to 1

        set VDLCPackQuest.bCaravanUninstalled to -1 ;// Used to indicate to other mods that the load list has been modified, i.e. they shouldn't just re-enable everything

        SetQuestDelay NVDLC00SelectorQuest 1 ;// Add a delay

        set DoStatus to 1

    elseif DoStatus == 1 && VDLCPackQuest.bClassicUninstalled != -1 ;//== Unofficial way of tagging the Pre-order DLCs as disabled/do not activate now

        ;//== See what DLC Packs are installed
        ;//=== Actually, the IsDLCInstalled function doesn't work.  Skip this for now
        ;if (IsDLCInstalled "Caravan Pack")
        ;    set numDLC to 1
        ;else
        ;    set CaravanStatus to -1
        ;endif

        ;if (IsDLCInstalled "Classic Pack")
        ;    set numDLC to (numDLC + 1)
        ;else
        ;    set ClassicStatus to -1
        ;endif

        ;if (IsDLCInstalled "Mercenary Pack")
        ;    set numDLC to (numDLC + 1)
        ;else
        ;    set MercenaryStatus to -1
        ;endif

        ;if (IsDLCInstalled "Tribal Pack")
        ;    set numDLC to (numDLC + 1)
        ;else
        ;    set TribalStatus to -1
        ;endif

        ;//== Hackify it
        set numDLC to 4

        if numDLC > 1 ;// Show the selection message
            Set DoStatus to 2
            SetQuestDelay NVDLC00SelectorQuest 0.1 ;//Undo the delay for the menu
            ShowMessage NVDLC00SelectorMessage CaravanStatus ClassicStatus MercenaryStatus TribalStatus
        else ;// Not enough DLC installed to select anything, so lets quit
            StopQuest NVDLC00SelectorQuest
        endif

    elseif DoStatus == 2 ;// Loop for the menu
        set Button to GetButtonPressed

        if Button == 1 ;// Toggle Caravan
            set CaravanStatus to (CaravanStatus == 0)
        elseif Button == 2 ;// Toggle Classic
            set ClassicStatus to (ClassicStatus == 0)
        elseif Button == 3 ;// Toggle Mercenary
            set MercenaryStatus to (MercenaryStatus == 0)
        elseif Button == 4 ;// Toggle Tribal
            set TribalStatus to (TribalStatus == 0)
        elseif Button == 5 ;// Enable all

            if CaravanStatus > -1
                set CaravanStatus to 1
            endif

            if ClassicStatus > -1
                set ClassicStatus to 1
            endif

            if MercenaryStatus > -1
                set MercenaryStatus to 1
            endif

            if TribalStatus > - 1
                set TribalStatus to 1
            endif
        elseif Button == 6 ;// Disable all
            if CaravanStatus > -1
                set CaravanStatus to 0
            endif

            if ClassicStatus > -1
                set ClassicStatus to 0
            endif

            if MercenaryStatus > -1
                set MercenaryStatus to 0
            endif

            if TribalStatus > - 1
                set TribalStatus to 0
            endif
        else ;// Catch-all, exit the menu
            set DoStatus to 3
        endif

        if DoStatus != 3 ;// If the loop is still enabled, show the message again
            ShowMessage NVDLC00SelectorMessage CaravanStatus ClassicStatus MercenaryStatus TribalStatus
        endif

    elseif DoStatus == 3 ;// Menu done

        ;//== Enable the appropriate items based on our choices
        set VDLCPackQuest.bCaravanItemsGiven to (CaravanStatus == 0)
        set VDLCPackQuest.bClassicItemsGiven to (ClassicStatus == 0)
        set VDLCPackQuest.bMercenaryItemsGiven to (MercenaryStatus == 0)
        set VDLCPackQuest.bTribalItemsGiven to (TribalStatus == 0)

        set VDLCPackQuest.bCaravanUninstalled to -1 ;// Used to indicate to other mods that the load list has been modified, i.e. they shouldn't just re-enable everything

        ShowMessage NVDLC00SelectorDoneMSG

        ;//== Stop the quest
        StopQuest NVDLC00SelectorQuest
    endif

End

 

 

TheSilenced Integration Scripts

 

ScriptName VPreorderCaravanSCRIPT

short DoOnce
int iRighttoArmBearsLoaded
int iRighttoArmBearsLoadedAlt
int iCount
int iIndex
int iRef
ref rRef
BEGIN GameMode
    if (DoOnce != 0)
        set DoOnce to 0
        set iRighttoArmBearsLoaded to 0
    endif
    if IsModLoaded "GRA - The Right to Bear Arms.esp"
        set iRighttoArmBearsLoaded to 1
    endif
    if IsModLoaded "GRA - The Right to Bear Arms -Vendors Untouched.esp"
        set iRighttoArmBearsLoadedAlt to 1
    endif
    if (DoOnce == 0)
    ; Add items to formlists
        ; Shotgun
        AddFormToFormList Everything WeapPreordCaravanShotgun;
        AddFormToFormList NVAllWeapons WeapPreordCaravanShotgun;
        AddFormToFormList WeaponListRangedALL WeapPreordCaravanShotgun;
        AddFormToFormList ShotgunSurgeonWeaponsList WeapPreordCaravanShotgun;
        AddFormToFormList RepairNVCaravanShotgun WeapPreordCaravanShotgun;
        ; Armor
        AddFormToFormList Everything PreordArmorLeather;
        AddFormToFormList RepairLeatherArmor PreordArmorLeather;
    ; Add items into the world
        ; Armor
        if (iRighttoArmBearsLoaded == 0)
            AddItemToLeveledList CondLeatherArmor PreordArmorLeather 1 1 35;
            AddItemToLeveledList CondLeatherArmor PreordArmorLeather 1 1 25;
        elseif (iRighttoArmBearsLoaded == 1 || iRighttoArmBearsLoadedAlt == 1)
            if iRighttoArmBearsLoaded == 1
                set iIndex to GetModIndex "GRA - The Right to Bear Arms.esp"
            endif
            if iRighttoArmBearsLoadedAlt == 1
                set iIndex to GetModIndex "GRA - The Right to Bear Arms -Vendors Untouched.esp"
            endif

            set iCount to 0
            Label 1
            set iCount to iCount + 1
            if iCount <= 1
                if iCount == 1
                    set iRef to 20167    ;aagCondLeatherArmor
                endif
                ; Piece together FormID
                set rRef to BuildRef iIndex iRef

                if iCount == 1
                    AddItemToLeveledList rRef PreordArmorLeather 1 1 25
                    AddItemToLeveledList rRef PreordArmorLeather 1 1 35
                endif

                Goto 1
            endif
        endif
        ; Shotgun
        AddItemToLeveledList CondNVCaravanShotgunLoot WeapPreordCaravanShotgun 8 1 45;
        AddItemToLeveledList CondNVCaravanShotgunLoot WeapPreordCaravanShotgun 13 1 50;
    ; Confirm items have been "Given"...
        set VDLCPackQuest.bCaravanItemsGiven to 1;
        set DoOnce to 1;
        printc "Caravan Pack Intigrated"
    endif
    if (VDLCPackQuest.bCaravanItemsGiven == 1 && DoOnce == 1)
    ; ...and stop script from running again.
        Stopquest VPreorderCaravan
    endif
END

 

 

ScriptName VPreorderClassicSCRIPT

short DoOnce

BEGIN GameMode
    if (DoOnce != 0)
        set DoOnce to 0
    endif
    if (DoOnce == 0)
    ; Add to Formlists
        ; Armor
        AddFormToFormList Everything PreordArmorVault13Armored;
        AddFormToFormList RepairVaultSuit PreordArmorVault13Armored;
        ; Canteen
        AddFormToFormList Everything PreordVaultCanteen;
        ; Pistol
        AddFormToFormList Everything WeapPreord10mmPistol;
        AddFormToFormList Repair10mmPistol WeapPreord10mmPistol;
        AddFormToFormList NVAllWeapons WeapPreord10mmPistol;
        AddFormToFormList WeaponListRangedALL WeapPreord10mmPistol;
        AddFormToFormList NVImprovedHoldoutWeapons WeapPreord10mmPistol;
        AddFormToFormList TheProfessionalWeaponsList WeapPreord10mmPistol;
    ; Add items into the world
        ; Pistol
        AddItemToLeveledList Cond10mmPistolLoot WeapPreord10mmPistol 10 1 50;
        AddItemToLeveledList Cond10mmPistolNPC WeapPreord10mmPistol 1 1 70;
        AddItemToLeveledList Cond10mmPistolRaider WeapPreord10mmPistol 1 1 40;
        ; Canteen
        SarahVendorChestREF.AddItem PreordVaultCanteen 1 1;
        ; Armor
        SarahVendorChestREF.AddItem PreordArmorVault13Armored 1 1;
    ; Confirm items have been "Given"...
        set VDLCPackQuest.bClassicItemsGiven to 1
        set DoOnce to 1;
        printc "Classic Pack Intigrated"
    endif
    if (VDLCPackQuest.bClassicItemsGiven == 1 && DoOnce == 1)
    ; ...and stop script from running again.
        Stopquest VPreorderClassic
    endif
END

 

 


ScriptName VPreorderMercenarySCRIPT

short DoOnce
int iCount
int iIndex
int iRef
ref rRef


BEGIN GameMode
    if (DoOnce != 0)
        set DoOnce to 0
    endif
    if (DoOnce == 0)
    ; Add to Formlists
        ; Armor
        AddFormToFormList Everything  PreordArmorMetal;
        AddFormToFormList RepairMetalArmor PreordArmorMetal;
        AddFormToFormList NVTravelLightBadArmorList PreordArmorMetal;
        ; Grenade Rifle
        AddFormToFormList Everything WeapPreordGrenadeRifle;
        AddFormToFormList NVAllWeapons WeapPreordGrenadeRifle;
        AddFormToFormList WeaponListRangedALL WeapPreordGrenadeRifle;
        AddFormToFormList ExplodesGasTrapsOnHit WeapPreordGrenadeRifle;
        AddFormToFormList PerkDemolitionExpertWeapons WeapPreordGrenadeRifle;
        AddFormToFormList RepairNVGrenadeRifle WeapPreordGrenadeRifle;
    ; Add items into the world
        ; Armor
        AddItemToLeveledList CondMetalArmor PreordArmorMetal 1 1 35
        AddItemToLeveledList CondMetalArmor PreordArmorMetal 1 1 45
        ; Grenade Rifle
        AddItemToLeveledList CondNVGrenadeRifleLoot WeapPreordGrenadeRifle 5 1 40
        AddItemToLeveledList CondNVGrenadeRifleLoot WeapPreordGrenadeRifle 10 1 50
        ; DLC Support
            if IsModLoaded "DeadMoney.esm"
                set iIndex to GetModIndex "DeadMoney.esm"
                set iCount to 0
                Label 1
                set iCount to iCount + 1
                if iCount <= 1
                    if iCount == 1
                        set iRef to 61973    ;NVDLC01ArmorVsBeamTorso
                    endif
                    ; Piece together FormID
                    set rRef to BuildRef iIndex iRef

                    if iCount == 1
                        AddFormToFormList rRef PreordArmorMetal
                    endif

                    Goto 1
                endif
            endif
            
            if IsModLoaded "HonestHearts.esm"
                set iIndex to GetModIndex "HonestHearts.esm"
                set iCount to 0
                Label 2
                set iCount to iCount + 1
                if iCount <= 1
                    if iCount == 1
                        set iRef to 63094    ;NVDLC02PerkGruntWeapons
                    endif
                    ; Piece together FormID
                    set rRef to BuildRef iIndex iRef

                    if iCount == 1
                        AddFormToFormList rRef WeapPreordGrenadeRifle
                    endif

                    Goto 2
                endif
            endif
        
    ; Confirm items have been "Given"...
        set VDLCPackQuest.bMercenaryItemsGiven to 1;
        set DoOnce to 1;
        printc "Mercenary Pack Intigrated"
    endif
    if (VDLCPackQuest.bMercenaryItemsGiven == 1 && DoOnce == 1)
    ; ...and stop script from running again.
        stopquest VPreorderMercenary
    endif
END

 

 

ScriptName VPreorderTribalSCRIPT

short DoOnce
int iCount
int iIndex
int iRef
ref rRef


BEGIN GameMode
    if (DoOnce != 0)
        set DoOnce to 0
    endif
    if (DoOnce == 0)
    ; Add to Formlists
        AddFormToFormList Everything WeapPreordMachete;
        AddFormToFormList NVAllWeapons WeapPreordMachete;
        AddFormToFormList WeaponListMeleeALL WeapPreordMachete;
        AddFormToFormList VPoisonWeapons WeapPreordMachete;
        AddFormToFormList RepairNVMachete WeapPreordMachete;
    ; Add items into the world
        AddItemToLeveledList CondNVMacheteLoot WeapPreordMachete 3 1 55
        ; DLC Support
            if IsModLoaded "HonestHearts.esm"
                set iIndex to GetModIndex "HonestHearts.esm"
                set iCount to 0
                Label 1
                set iCount to iCount + 1
                if iCount <= 1
                    if iCount == 1
                        set iRef to 71469    ;NVDLC02DaturaPoisonWeapons
                    endif
                    ; Piece together FormID
                    set rRef to BuildRef iIndex iRef

                    if iCount == 1
                        AddFormToFormList rRef WeapPreordMachete
                    endif

                    Goto 1
                endif
            endif
            
            if IsModLoaded "GunRunnersArsenal.esm"
                set iIndex to GetModIndex "GunRunnersArsenal.esm"
                set iCount to 0
                Label 2
                set iCount to iCount + 1
                if iCount <= 3
                    if iCount == 1
                        set iRef to 2647    ;NVDLC05ChallengeArmedForBearWeapons
                    elseif iCount == 2
                        set iRef to 2624    ;NVDLC05ChallengeWhiteLineNightmareWeapons
                    elseif iCount == 3
                        set iRef to 2639    ;NVDLC05ChallengeYouDontBelongWeapons
                    endif
                    ; Piece together FormID
                    set rRef to BuildRef iIndex iRef

                    if iCount == 1
                        AddFormToFormList rRef WeapPreordMachete
                    elseif iCount == 2
                        AddFormToFormList rRef WeapPreordMachete
                    elseif iCount == 3
                        AddFormToFormList rRef WeapPreordMachete
                    endif

                    Goto 2
                endif
            endif
        
        ; Confirm items have been "Given"...
        set VDLCPackQuest.bTribalItemsGiven to 1;
        set DoOnce to 1;
        printc "Tribal Pack Intigrated"
    endif
    if (VDLCPackQuest.bTribalItemsGiven == 1 && DoOnce == 1)
    ; ...and stop script from running again.
        stopquest VPreorderTribal
    endif
END

 

 

Thanks for your continued time and help! o/

Link to comment

 

 

 

 

(because not configured in the right way or because it is impossible to be executed), or there's a running script that avoid any interference from you

 

 

 

The package is just a basic sandbox package which checks if a float is <= a value. I've tested it by manually adding it to veronica and it worked fine. So that might mean that there is some script interference, do you know if there is any vanilla scripts which could cause this?

 

 

The float doesn't count because the conditions are ignored when a package is added via AddScriptPackage, so the package will be always evaluated even if the conditions are false.

The problem with a sandbox package is... when will it drop? I'm inclined to believe that it drops immediately because sandboxing is not like a Travel package which has a precise end. Maybe Jaam could provide a better insight on the sandboxing behaviour.

Link to comment

 

 

 

 

 

 

 

The float doesn't count because the conditions are ignored when a package is added via AddScriptPackage, so the package will be always evaluated even if the conditions are false.

The problem with a sandbox package is... when will it drop? I'm inclined to believe that it drops immediately because sandboxing is not like a Travel package which has a precise end. Maybe Jaam could provide a better insight on the sandboxing behaviour.

 

 

The duration of the package would make the most sense to signify the end of the package but I have that set to something other than 0. Thanks for the insight into how package scripting works A.J. Hopefully someone else can elaborate on my issues further. 

Link to comment

Oh I had a doubt. I hope you are not using EVP after AddScriptPackage, aren't you?

 

However, it could be a good idea to test it in game if you want. Click on the reference and:

AddScriptPackage <hex ID of the package you can find on GECK too>

and then wait few seconds and see if something changes. This at least will allow you to narrow down the problem, if it's in your script or in the package.

You can check with GetCurrentAIPackage the type of package that the npc is using actually, it will answer with a value which corresponds to the package, i.e. 14 if it is setted to stay in a certain place, or 36 if it's sandboxing. This is useful because sometimes the NPC could feel bad and not sandboxing, visually speaking, but the current ai package still returns 36, this means that you did your work, it's the npc which is not doing his work

Link to comment

Oh I had a doubt. I hope you are not using EVP after AddScriptPackage, aren't you?

 

However, it could be a good idea to test it in game if you want. Click on the reference and:

AddScriptPackage <hex ID of the package you can find on GECK too>

and then wait few seconds and see if something changes. This at least will allow you to narrow down the problem, if it's in your script or in the package.

You can check with GetCurrentAIPackage the type of package that the npc is using actually, it will answer with a value which corresponds to the package, i.e. 14 if it is setted to stay in a certain place, or 36 if it's sandboxing. This is useful because sometimes the NPC could feel bad and not sandboxing, visually speaking, but the current ai package still returns 36, this means that you did your work, it's the npc which is not doing his work

 

No definitely not using evp after addscriptpackage.

 

Adding the package through the console works fine when the companion is not at the lucky 38 but when I add it manually it does the same thing it does when using the scripting method. GetCurrentAI package is just returning 36 because it keeps going back to the normal lucky38 sandbox package.

 

 

The correct way to implement what i'm aiming to do is through a script attached to a quest right? 

 

Edit: It seems like packages re-evaluate when you change cells, which means that what I was aiming to do via scripting might no be worthwhile. I might just need to make a bunch of packages for each individual companion and just change the condition values through scripting rather than apply generic packages through scripting.

Link to comment

It seems like packages re-evaluate when you change cells, which means that what I was aiming to do via scripting might no be worthwhile.

This can be corrected with a proper script probably.

Adding the packages to the companions is an easy way to avoid package problems, but it depends by the big picture of the things. It potentially can create conflicts since it changes vanilla IDs, so if you believe this could cause annoyance to you then it's not the right path to follow

Link to comment

Consider using AddPackageAt, as an alternative to modifying in GECK.

 

It adds a package to the base form of an actor, at a given index, you can use 0 for the top, -1 for the end.

 

I have found it to be more reliable than addscriptpackage, but note that:

 

It will persist for the duration of the game session, so you will need to re-add it using a GetGameRestarted block. To remove you will have to find its index (See GetBasePackages) and use RemovePackageAt.

 

It adds it to the base form, so applies to all references of an NPC. Since companions are unique, this is okay.

Link to comment

Consider using AddPackageAt, as an alternative to modifying in GECK.

 

It adds a package to the base form of an actor, at a given index, you can use 0 for the top, -1 for the end.

 

I have found it to be more reliable than addscriptpackage, but note that:

 

It will persist for the duration of the game session, so you will need to re-add it using a GetGameRestarted block. To remove you will have to find its index (See GetBasePackages) and use RemovePackageAt.

 

It adds it to the base form, so applies to all references of an NPC. Since companions are unique, this is okay.

 

This seems have done it!

 

The only issue I have now is that veronica wont enter the tops when I just tell her to sandbox in the tops cell but I can use moveto to get around that I think. 

 

Thank you so very much A.J and Odessa. You guys were amazingly helpful.

Link to comment

 


but I can use moveto to get around that I think.

Last time I used this solution, for 2 npcs, they both were stopping sandbox after the moveto, I don't know why. I hope it will work for you, it surely would avoid headaches

Link to comment

 

Consider using AddPackageAt, as an alternative to modifying in GECK.

 

It adds a package to the base form of an actor, at a given index, you can use 0 for the top, -1 for the end.

 

I have found it to be more reliable than addscriptpackage, but note that:

 

It will persist for the duration of the game session, so you will need to re-add it using a GetGameRestarted block. To remove you will have to find its index (See GetBasePackages) and use RemovePackageAt.

 

It adds it to the base form, so applies to all references of an NPC. Since companions are unique, this is okay.

 

This seems have done it!

 

The only issue I have now is that veronica wont enter the tops when I just tell her to sandbox in the tops cell but I can use moveto to get around that I think. 

 

Thank you so very much A.J and Odessa. You guys were amazingly helpful.

 

 

Did you try a travel package ?

Link to comment

 

 

 

Did you try a travel package ?

 

 

Yeah I did, they still got stuck on either side of one of the doors to the tops. I discovered this doesn't happen if I have the sandbox/travel package active on that companion when they are hired and they will go inside.

 

A little weird but I just move them to the next location when they need to enter or leave the tops.

 

Edit: Was just wondering if it was possible to get the actorRef that a package is attached to from within the packages result scripts?

Link to comment

 


Was just wondering if it was possible to get the actorRef that a package is attached to from within the packages result scripts?

Did you try GetSelf? it doesn't work in some cases, but nothing blocks you to try in game with packages and see what happens :)

Set MyQuest.rMyREF to GetSelf

Or simply use a different package per companion, maybe

Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use