Jenova23 Posted August 30, 2016 Posted August 30, 2016 I'm not sure how to get this to work, but can you please help me out with error. Error C:\Program Files (x86)\Steam\steamapps\common\skyrim\Papyrus Compiler\NPPScriptCompile.batProcess started >>>C:\Program Files (x86)\Notepad++>cd "C:\Program Files (x86)\Steam\steamapps\common\Skyrim\Mod Organizer\mods\"The system cannot find the path specified.C:\Program Files (x86)\Notepad++>"C:\Program Files (x86)\Steam\steamapps\common\skyrim\Papyrus Compiler\PapyrusCompiler.exe" "" -f="C:\Program Files (x86)\Steam\steamapps\common\Skyrim\Data\scripts\Source\TESV_Papyrus_Flags.flg" -i="C:\Program Files (x86)\Steam\steamapps\common\Skyrim\Data\scripts\source\;source" -o="\"Starting 1 compile threads for 1 files...Cannot set output folder to """ - Illegal characters in path.Compiling ""...No output generated for , compilation failed.Batch compile of 1 files finished. 0 succeeded, 1 failed.Failed on<<< Process finished. (Exit code -1)================ READY ================ Also I'm confused by this step... "C:\Program Files (x86)\Steam\steamapps\common\skyrim\Papyrus Compiler\NPPScriptCompile.bat" "$(FILE_NAME)" "$(CURRENT_DIRECTORY)" This line... "$(FILE_NAME)" "$(CURRENT_DIRECTORY)" I've added the directory, but I prefer not to use steam because it likes to reset my game... either or I have to sets of Skyrim installed.
SlapMeSilly Posted October 12, 2016 Posted October 12, 2016 Very useful tools. Though I don't use a white background editor . So I made my own color set to use with the dark Zenburn theme of NPP. Color SS and import profile dm_Zenburn_Papyrus.rar Also added some (new?) FO4 words to the lists Folding code 2:Open: Struct GroupClose: EndStruct EndGroup 1st Group:ApplyToRef CallGlobalFunctionNoWait CallGlobalFunction CancelTimerGameTime CancelTimer AddKeyword AddTextReplacementData ApplyConveyorBelt ApplyFanMotor IsFanMotorOn AttachMod AttachModToInventoryItem AttachTo CanProduceForWorkshop ClearFromOldLocations ConveyorBeltOn CountActorsLinkedToMe CountLinkedRefChain CountRefsLinkedToMe DamageValue DisableLinkChain Drop DropFirstObject EnableLinkChain FindAllReferencesOfType FindAllReferencesWithKeyword GetActorRefOwner GetActorsLinkedToMe GetBaseValue GetEncounterZone GetInventoryValue GetComponentCount GetLinkedRefChain GetLinkedRefChildren GetLocRefTypes GetRadioFrequency GetRadioVolume GetResourceDamage GetSafePosition GetRefsLinkedToMe GetWorkshopOwnedObjects GetWorkshopResourceDamage GetWorkshopResourceObjects GetTeleportCell GetTransitionCell GetTransmitterDistance GetValuePercentage HasActorRefOwner HasDirectLOS HasKeywordInFormList HasLocRefType HasSharedPowerGrid IsConveyorBeltOn IsCreated IsDeleted IsDestroyed IsOwnedBy IsPowered IsQuestItem IsRadioOn IsRefInTransitionCell IsTeleportAreaLoaded IsWithinBuildableArea MakeRadioReceiver MakeTransmitterRepeater ModValue MoveToNearestNavmeshLocation OpenWorkshopSettlementMenuEx OpenWorkshopSettlementMenu RaidTargetsAvailable PlaceAtNode PauseAudio PreloadExteriorCell PreloadTargetArea RecalculateResources RemoveComponents RemoveItemByComponent RemoveKeyword RemoveAllMods RemoveAllModsFromInventoryItem RemoveMod RemoveModFromInventoryItem Repair ResetKeyword RestoreValue ResumeAudio ReverseConveyorBelt SayCustom SetActivateTextOverride SetActorRefOwner SetAttractionActive SetConveyorBeltVelocity SetDirectAtTarget SetHarvested SetLinkedRef SetLocRefType SetPersistLoc SetPlayerHasTaken SetRadioOn SetRadioFrequency SetRadioVolume StartWorkshop StoreInWorkshop WaitFor3DLoad WaitForWorkshopResourceRecalc Unlock rampRumble IsNearPlayer MoveToIfUnloaded getLinkedRefArray AddKeyIfNeeded FanMotorOn GetSelfAsActor HasOwner IsEnabled SellItem SplineTranslateToRef TranslateToRef IsInLocation ModObjectiveGlobal SetAllStages SetQuestStage GetQuestStageDone SetObjectiveSkipped ResetSpeechChallenges HasObjective GetActorAt GetFirstOwnedObject EnableAll DisableAll EvaluateAll MoveAllTo IsOwnedObjectInList KillAll StartCombatAll ResetAll AddRefCollection AddArray LinkCollectionTo AddRef GetCount RemoveAll RemoveRef ForceRefIfEmpty GetRef GetActorRef RemoveFromRef TryToDisableNoWait TryToEnableNoWait TryToEnable TryToEvaluatePackage TryToClear TryToGetActorValue TryToGetValue TryToSetActorValue TryToSetValue GetPropertyValue CallFunctionNoWait CallFunction CastAs IsBoundGameObjectAvailable RegisterForCustomEvent RegisterForDetectionLOSGain RegisterForDetectionLOSLost RegisterForDirectLOSGain RegisterForDirectLOSLost RegisterForDistanceLessThanEvent RegisterForDistanceGreaterThanEvent RegisterForHitEvent RegisterForMagicEffectApplyEvent RegisterForMenuOpenCloseEvent RegisterForPlayerSleep RegisterForPlayerTeleport RegisterForPlayerWait RegisterForRadiationDamageEvent RegisterForRemoteEvent RegisterForLooksMenuEvent RegisterForTutorialEvent SendCustomEvent SetPropertyValueNoWait SetPropertyValue StartTimerGameTime StartTimer UnregisterForAllEvents UnregisterForAllCustomEvents UnregisterForAllHitEvents UnregisterForAllMagicEffectApplyEvents UnregisterForAllMenuOpenCloseEvents UnregisterForAllRadiationDamageEvents UnregisterForAllRemoteEvents UnregisterForAllTrackedStatsEvents UnregisterForCustomEvent UnregisterForDistanceEvents UnregisterForHitEvent UnregisterForMagicEffectApplyEvent UnregisterForMenuOpenCloseEvent UnregisterForPlayerSleep UnregisterForPlayerTeleport UnregisterForPlayerWait UnregisterForRadiationDamageEvent UnregisterForRemoteEvent UnregisterForLooksMenuEvent UnregisterForTutorialEvent HasEverBeenCleared IsLinkedLocation ModifyKeywordData ForceDisableSSRGodraysDirLight GivePlayerCaps InitializeMarkerDistances IsVATSControlsEnabled IsVATSPlaybackActive IsFastTravelControlsEnabled IsFavoritesControlsEnabled IsJumpingControlsEnabled IsPluginInstalled IsPlayerInRadioRange IsPlayerListening IsPlayerRadioOn PassTime RewardPlayerXP TurnPlayerRadioOn IsPlayerEnemy DumpEventRegistrations MakePlayerFriend AttemptAnimationSetSwitch CanFlyHere ChangeAnimArchetype ChangeAnimFlavor ChangeHeadPart Dismount EndDeferredKill FollowerWait FollowerFollow FollowerSetDistanceNear FollowerSetDistanceMedium FollowerSetDistanceFar HasDetectionLOS IsAIEnabled IsBeingRidden IsBeingRiddenBy IsDismembered IsInIronSights IsInPowerArmor IsInScene IsOverEncumbered IsOwner IsSeatOccupied IsTalking Dismember MarkItemAsFavorite DisallowCompanion AllowCompanion ChangeAnimFaceArchetype SwitchToPowerArmor SnapIntoInteraction WouldBeStealing WouldRefuseCommand DrawWeapon DogPlaceInMouth DogDropItems IsRadio 2nd Group:OnTimer OnTimerGameTime OnPlayerFireWeapon OnPlayerFallLongDistance OnPlayerHealTeammate OnCripple OnPlayerEnterVertibird OnPlayerUseWorkBench OnPlayerSwimming OnRadiationDamage OnPlayerModArmorWeapon OnItemEquipped OnPlayerSleepStart OnPlayerSleepStop OnPlayerTeleport OnPipboyRadioDetection OnPlayerDialogueTarget OnPowerOn OnPowerOff OnSpellCast OnWorkshopMode OnWorkshopObjectDestroyed OnWorkshopObjectGrabbed OnWorkshopObjectMoved OnWorkshopObjectPlaced OnWorkshopNPCTransfer OnWorkshopObjectRepaired OnCommandModeCompleteCommand OnCommandModeEnter OnCommandModeExit OnCommandModeGiveCommand OnCompanionDismiss OnConsciousnessStateChanged OnDeferredKill OnDifficultyChanged OnEnterSneaking OnEscortWaitStart OnEscortWaitStop OnHolotapeChatter OnHolotapePlay OnItemUnequipped OnKill OnPartialCripple OnPickpocketFailed OnPlayerCreateRobot OnPlayerLoadGame OnPlayerModRobot OnSit OnSpeechChallengeAvailable OnExitFurniture OnEntryRun OnQuestInit OnQuestShutdown OnStageSet OnStoryActorAttach OnStoryIronSights OnStoryLocationLoaded OnStoryMineExplosion OnStoryPickPocket OnAnimationEventUnregistered OnDistanceLessThan OnDistanceGreaterThan OnMenuOpenCloseEvent OnPlayerWaitStart OnPlayerWaitStop OnLooksMenuEvent OnTutorialEvent OnLocationCleared OnLocationLoaded OnAliasInit OnAliasReset OnAliasShutdown 4th Group:const Also wanted to note that the function list code doesn't properly get the State. At least not in NPP 7.0. It looks like it only parses the first "function" node inside "parser". I fixed the comment matching and I merged them to a dirty looking combo and added group and struct also (see screenshots in spoiler) <parser id="papyrus_function" displayName="Papyrus" commentExpr="(;/.*?/;)|(;.*?$)|(\{.*?\})"> <function displayMode="$functionName" mainExpr="(^[\t ]*([\w]+[\t ]+)?(function|event)[\t ]+\w+[\t ]*\(.*?\))|(^[\t ]*?(state|group|struct)[\t ]+\w+[\t ]*)"> <functionName> <nameExpr expr="(\w+[\t ]*\(.*?\))|((state|group|struct)[\t ]+\w+)"/> </functionName> </function> </parser> Though it has limited uses that I can see. Did I mention how much I hate RegEx's sometimes
fred200 Posted October 12, 2016 Posted October 12, 2016 Thank you for this! I have used the NPP customization from the wiki for a long time - compiles without leaving NPP, highlighting, etc. This looks like a nice upgrade, and will be useful for Fallout 4 as well as SkyrmSE. Thanks again!
jfraser Posted October 13, 2016 Posted October 13, 2016 Thanks for this. I got as far as entering the code into the NPPExec. But when I run it, it throws this error: "C:\Program Files (x86)\Steam\steamapps\common\skyrim\Papyrus Compiler\NPPScriptCompile.bat" "new 1" "" Process started >>> C:\Program Files (x86)\Notepad++>cd "C:\Program Files (x86)\Steam\steamapps\common\Skyrim\Mod Organizer\mods\" The system cannot find the path specified. C:\Program Files (x86)\Notepad++>"C:\Program Files (x86)\Steam\steamapps\common\skyrim\Papyrus Compiler\PapyrusCompiler.exe" "new 1" -f="C:\Program Files (x86)\Steam\steamapps\common\Skyrim\Data\scripts\Source\TESV_Papyrus_Flags.flg" -i="C:\Program Files (x86)\Steam\steamapps\common\Skyrim\Data\scripts\source\;source" -o="\" Starting 1 compile threads for 1 files... Cannot set output folder to """ - Illegal characters in path. Compiling "new 1"... No output generated for new 1, compilation failed. Batch compile of 1 files finished. 0 succeeded, 1 failed. Failed on new 1 <<< Process finished. (Exit code -1) ================ READY ================ Any ideas?
Guest Posted October 13, 2016 Posted October 13, 2016 Thanks for this. I got as far as entering the code into the NPPExec. But when I run it, it throws this error: Any ideas? Post the content of the .bat file you are using. Probably there is an error inside.
jfraser Posted October 15, 2016 Posted October 15, 2016 "C:\Projects\TESV\Build\PC\Papyrus compiler\PapyrusCompiler.exe" %1 -f="TESV_Papyrus_Flags.flg" -i="C:\Projects\TESV\Build\Source\DLC01\Scripts" -o="C:\Projects\TESV\Build\PC\Data\Scripts" pause
Guest Posted October 15, 2016 Posted October 15, 2016 "C:\Projects\TESV\Build\PC\Papyrus compiler\PapyrusCompiler.exe" %1 -f="TESV_Papyrus_Flags.flg" -i="C:\Projects\TESV\Build\Source\DLC01\Scripts" -o="C:\Projects\TESV\Build\PC\Data\Scripts" pause Looking at your result lines and your bat command I suppose that the Exec is pointing to the wrong bat file.
SlapMeSilly Posted October 15, 2016 Posted October 15, 2016 Either that or he pasted the contents of the wrong file. The looks of it is that he pasted the contents of the Skyrim CK provided file. However, from the previous posting of the "error" message it appears to be running a different file as the displayed paths are different (as they should be).
jfraser Posted October 15, 2016 Posted October 15, 2016 to me, it seems like the error is that it thinks I'm using Mod Organizer, which I'm not. Question is, how do I fix this?
SlapMeSilly Posted October 15, 2016 Posted October 15, 2016 to me, it seems like the error is that it thinks I'm using Mod Organizer, which I'm not. Question is, how do I fix this? Are you using NMM and is skyrim in the default path of "C:\Program Files (x86)\Steam\steamapps\common\Skyrim"? Edit: Should also ask if you're trying to compile for Skyrim or Fallout 4?
jfraser Posted October 15, 2016 Posted October 15, 2016 to me, it seems like the error is that it thinks I'm using Mod Organizer, which I'm not. Question is, how do I fix this? Are you using NMM and is skyrim in the default path of "C:\Program Files (x86)\Steam\steamapps\common\Skyrim"? Edit: Should also ask if you're trying to compile for Skyrim or Fallout 4? yes, yes, and skyrim.
SlapMeSilly Posted October 16, 2016 Posted October 16, 2016 Maybe CPU can explain why if you use MO you'd need to change the path to the MO folder. The papyrus command contains all absolute paths.
jfraser Posted October 16, 2016 Posted October 16, 2016 Maybe CPU can explain why if you use MO you'd need to change the path to the MO folder. The papyrus command contains all absolute paths. It makes perfect sense that if I use MO I'd need to change the path to the MO folder. However, it seems to be pointing to the MO folder somehow even though I don't use it.
Guest Posted October 17, 2016 Posted October 17, 2016 ... Just added and tested your improvements. FunctionList works way better. And the new functions from FO4 are just good. I am try to add a secondary compiler bat script for FO4, and then I will release the new version, with full credits on your work.
Guest Posted October 17, 2016 Posted October 17, 2016 The last batch file I posted had a little bug that prevented it from working properly with FO4. This takes care of that. I removed the file from the last post as it only had 1 download. 99.999999% I will add this too.
jfraser Posted October 17, 2016 Posted October 17, 2016 You two are awesome. Have't had a chance to play with it yet.
SlapMeSilly Posted October 17, 2016 Posted October 17, 2016 I deleted my other 3 posts since they contained erroneous information in parts. This has my latest script which works with FO4 with some caveats detailed in the README file. README here and in the archive This README will try to explain all the usage scenarios and caveats around compiling Skyrim and Fallout 4 papyrus with this script. ******** Basic usage parameters ******** dm_NPPScriptCompile.bat {-fo4|-sk} [psc script file] {output folder} Surround paths with double quotes or parsing errors may occur. {-fo4} optional - Tells script to use Fallout 4 options. {-sk} optional - Tells script to use Skyrim options. {-skse} optional - Tells script to use Skyrim Special Edition options. [psc script file] is required. This should be full path and filename. If only a filename is specified, the batch will search the output folder, if still not found also the game source folder. {output folder} is optional. If not specified then output is sent to the game's default scripts folder. ******** Editing default settings inside the script ******** The batch file uses a few environment variables to do its job. Some of these require that you modify them to fit the settings of your computer. I will show the default line as shipped with the script and then detail an explanation of how to properly set it. set GAME_MODE=SK Sets the default game compile mode if no parameter on the command line is set { -fo4 | -sk | -skse } set CUSTOM_IMPORTS="C:\Some\Path;C:\Some\Other\Path" Commented out by default. If you have additional import paths that you need, uncomment it and edit the paths appropriately. Use a semi-colon to separate the paths just as the papyrus compiler expects. set SK_GAME_PATH="C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\" set SKSE_GAME_PATH="C:\Program Files (x86)\Steam\SteamApps\common\Skyrim Special Edition\" set FO4_GAME_PATH="C:\Program Files (x86)\Steam\SteamApps\common\Fallout 4\" Tells the script where to find the game files as well as the Papyrus compiler. This will need to be changed if you have a non default installation path. set SK_FLAG_FILE=TESV_Papyrus_Flags.flg The filename of the Skyrim Papyrus flag file. Normally the default is ok, but some users may have a customized one. You may change the name here. This file is expected to be found in one of the import folders. set FO4_FLAG_FILE=Institute_Papyrus_Flags.flg The filename of the Fallout 4 Papyrus flag file. Normally the default is ok, but some users may have a customized one. You may change the name here. This file is expected to be found in one of the import folders. set SPAM_ME=no A debugging variable. Should normally be left to "no". Changing it to anything else will cause the script to show every line as it is executed. This includes all the comments in the script file. This will generate lots of spam in the console. ******** Compiling Skyrim/Skyrim Special Edition Scripts ******** There are no special things to be aware of for compiling skyrim files. Just run the script with the proper parameters and things get done. ******** Comping Fallout 4 Scripts ******** There are a few things to note about compiling scripts for Fallout 4. 1) If the script has a sub folder structure then they must be in the format scripts\source\folder\my_script.psc If you created the original script in the Creation Kit it should have handled all of that for you. The ScriptName in the file should also have the proper format of "folder:my_script". 2) If the script does not have a sub folder structure it can be anywhere. 3) Source input file cannot be on a network path that is not mapped as a drive letter if they use a sub folder structure. The path: \\pc-nas\share\mod_work\scripts\source\my_mod\my_script.psc Will not compile. The papyrus compiler requires the working directory to be the parent of the "my_mod" folder in this example. The Windows CMD interpreter running the script will not do that. The path: \\pc-nas\share\mod_work\scripts\source\my_script.psc Will compile provided it doesn't use the sub folder structure in it's "ScriptName" header line. This script will spit out an error "CMD does not support UNC paths as current directories." Which can be ignored in this case. Known issues: Compiling Fallout 4 scripts in Data\Scripts\Source\anything except Base or User (i.e. Data\Scripts\Source\DLC01) will fail. The batch file has to do some path parsing tricks and it doesn't play nice with that. Solution is to copy them to the appropriate folder inside User i.e. Data\Scripts\Source\User\DLC01\WorkshopRobotScript.psc (you should be doing that to edit vanilla scripts anyway). *Edit: Updated 2017/04/15 to fix typo in custom imports variable expansion causing hang. Also changed order so it will use custom imports before vanilla files in case of duplicate script names. dm_NPPScriptCompile_v5.zip
SlapMeSilly Posted October 31, 2016 Posted October 31, 2016 Updated post with new batch file to add SKSE support. Using this post as a pseudo bump to notify watchers of such.
Guest Posted October 31, 2016 Posted October 31, 2016 Updated post with new batch file to add SKSE support. Using this post as a pseudo bump to notify watchers of such. Thank you for taking care of the improvements. I had no time to integrated all the changes you did (that I am using for myself) inside the main file.
SlapMeSilly Posted October 31, 2016 Posted October 31, 2016 I'm still confused why they moved the source folder. Oh well. Next on the TODO list is make it generate an xml for compiling because the command line can quickly get too large. I think that requires using full paths though not relative ones. So trying to get the custom imports when there's a lot might be tricky. Unless I have it read a plain text file of 1 path per line and generate the xml that way. Any suggestions?
Guest Posted October 31, 2016 Posted October 31, 2016 I'm still confused why they moved the source folder. Oh well. Just did a mod for SSE (just for test.) All the items go in the "Mods" folder. So the Data folder is now clean.
SlapMeSilly Posted October 31, 2016 Posted October 31, 2016 I'm still confused why they moved the source folder. Oh well. Just did a mod for SSE (just for test.) All the items go in the "Mods" folder. So the Data folder is now clean. That sort of makes sense then. Something tells me I'll have another revision of the compiler batch after I get to do some testing.
SlapMeSilly Posted November 1, 2016 Posted November 1, 2016 CPU, on 31 Oct 2016 - 3:29 PM, said: SlapMeSilly, on 31 Oct 2016 - 3:19 PM, said: I'm still confused why they moved the source folder. Oh well. Just did a mod for SSE (just for test.)All the items go in the "Mods" folder.So the Data folder is now clean. I know this is getting a little off topic, but I'm following your comment above. Hmm I see a mods folder as Skyrim Special Edition\Mods but it just stores the manifest files for mods downloaded in game there. Was there some trick you did for it to put them elsewhere? I tried making a mod and the CK saved it to the Data folder like it always has. When it packed a bsa it saved it there too. Packing an XB1 bsa it put it in Data\XB1 like the FO4 CK does.
Guest Posted January 13, 2017 Posted January 13, 2017 What does it mean when SSLBaseVoice is not a known user-defined type?
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now