Jump to content

Two related questions:


Recommended Posts

1. What should the layout of script source files be for the F4 dlc?

My creation kit unpacked C:\Program Files (x86)\Steam\steamapps\common\Fallout 4\Data\Scripts\Source\DLC06\DLC06.zip thus:

C:\Program Files (x86)\Steam\steamapps\common\Fallout 4\Data\Scripts\Source\DLC06\DLC06\*.psc

but that doesn't seem right.

 

2. If a script is not in the scripts\base folder then would the following work as a property:

VaultWorkshopScript Property Vault88Workshop Auto

when the VaultWorkshipScript.pex is packed in the bsa as under ..\scripts\DLC06 and if I were to fill the property in the script as such:

Vault88Workshop = Game.GetFormFromFile(0x0000BCE7, "DLC03.esm") As VaultWorkshopScript?

 

this seems to work with base game workshops i.e:

WorkshopScript Property AbernathyWorkshop Auto

AbernathyWorkshop = Game.GetFormFromFile(0x0006F5C5, "Fallout4.esm") As WorkshopScript

 

but when looking at the Vault88 workshop the script that is attached is listed in the CK as DLC06:ValutWorkshopScript

which I think the the namespace thing I've read about but not used yet.

 

diziet

 

 

Link to comment
Share on other sites

Why use Game.GetFromFromFile to reference a script? I often use that function to pull object references in from other mods but not from Bethesda's base game or its DLCs.

 

I usually reference scripts in my properties as Namespace:Scriptname Property Shortnameforscript Auto Const.

 

The DLC files should be in a folder named for the DLC (DLC06 in your example above) and there should not be a second folder with that name inside the first folder. The NameSpace is usually the name of the User folder such as DLC06. Mine is GrimGrim31.

 

Scripts in the Base folder don't have a Namespace.

Link to comment
Share on other sites

1. What should the layout of script source files be for the F4 dlc?

My creation kit unpacked C:\Program Files (x86)\Steam\steamapps\common\Fallout 4\Data\Scripts\Source\DLC06\DLC06.zip thus:

C:\Program Files (x86)\Steam\steamapps\common\Fallout 4\Data\Scripts\Source\DLC06\DLC06\*.psc

but that doesn't seem right.

 

2. If a script is not in the scripts\base folder then would the following work as a property:

VaultWorkshopScript Property Vault88Workshop Auto

when the VaultWorkshipScript.pex is packed in the bsa as under ..\scripts\DLC06 and if I were to fill the property in the script as such:

Vault88Workshop = Game.GetFormFromFile(0x0000BCE7, "DLC03.esm") As VaultWorkshopScript?

 

this seems to work with base game workshops i.e:

WorkshopScript Property AbernathyWorkshop Auto

AbernathyWorkshop = Game.GetFormFromFile(0x0006F5C5, "Fallout4.esm") As WorkshopScript

 

but when looking at the Vault88 workshop the script that is attached is listed in the CK as DLC06:ValutWorkshopScript

which I think the the namespace thing I've read about but not used yet.

 

diziet

 

 

 

It should be Namespace:Scriptname.

DLC06:VaultWorkshopScript Vault88Workshop = Game.GetFormFromFile(0x0000BCE7, "DLC03.esm") as DLC06:VaultWorkshopScript

By the way, 0000BCE7 is the FormID of the Nuka World Workshop (DLCNukaWorld.esm).

Edited by LarannKiar
Link to comment
Share on other sites

Hi, I'm back:)

I corrected the error workshop formid, thanks.

I also got the namespace things working except for using my own namespace as a folder(s) for my source and .pex files. After reading and searching I think, but would like confirmation, that this can only be done in an external editor (notepad++) using papyrus project files?

Using the following in the notepad++ nppexec plugin:

npe_console -- m-
npp_save


set local F4HOME = C:\Program Files (x86)\Steam\SteamApps\common\Fallout 4
set local F4Compile = $(F4HOME)\Papyrus Compiler\PapyrusCompiler.exe
set local F4SRC = $(F4HOME)\Data\Scripts\Source
set local FLAGS  = $(F4SRC)\Base\Institute_Papyrus_Flags.flg

set local F4INCLUDE=$(F4SRC)\Base
set local F4INCLUDE=$(F4SRC)\DLC01;$(F4INCLUDE)
set local F4INCLUDE=$(F4SRC)\DLC02;$(F4INCLUDE)
set local F4INCLUDE=$(F4SRC)\DLC03;$(F4INCLUDE)
set local F4INCLUDE=$(F4SRC)\DLC04;$(F4INCLUDE)
set local F4INCLUDE=$(F4SRC)\DLC05;$(F4INCLUDE)
set local F4INCLUDE=$(F4SRC)\DLC06;$(F4INCLUDE)set local F4INCLUDE=$(F4SRC)\User;$(F4INCLUDE)
set local F4INCLUDE=$(F4SRC)\User\diziet;$(F4INCLUDE)
set local F4INCLUDE=$(F4SRC)\User\Fragments;$(F4INCLUDE)
set local F4INCLUDE=$(F4SRC)\User\Fragments\Quests;$(F4INCLUDE)
set local F4INCLUDE=$(F4SRC)\User\Fragments\Terminals;$(F4INCLUDE)
npp_console -
cd $(CURRENT_DIRECTORY)
npp_console +
"$(F4Compile)" "$(CURRENT_DIRECTORY)\$(FILE_NAME)" -f="$(FLAGS)" -i="$(F4INCLUDE)" -o="$(F4HOME)\Data\Scripts\user\diziet"

I can get .pex files to appear in the scripts/user/diziet folder but only if I my script says e.g.:

Scriptname dz_no_attacks_quest_script Extends Quest

 

If it says:

Scriptname diziet:dz_no_attacks_quest_script Extends Quest

then I get an error about mismatced scriptname.

Unfortunately if it does compile, it then doesn't show up as a script tp add in the Creation Kit.

 

diziet

Link to comment
Share on other sites

  • Recently Browsing   0 members

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