Difference between revisions of "Notepad++"

From the Fallout4 CreationKit Wiki
Jump to navigation Jump to search
imported>Qazaaq
imported>Cobalt027
Line 85: Line 85:


If you are creating your own script from scratch, you'll need to select the language manually. "Papyrus" should be available near the bottom of the Language menu in Notepad++.
If you are creating your own script from scratch, you'll need to select the language manually. "Papyrus" should be available near the bottom of the Language menu in Notepad++.
==Compiling Debug from Notepad++==
#Open Notepad++
#Create a New File
#Paste the following:
<div style="overflow-x: scroll;">
<source lang="dos">
echo off
:: ---------------------------------------------
:: NotePad++ Run:
::  "C:\Program Files (x86)\Steam\steamapps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_debug.bat" "$(FULL_CURRENT_PATH)"
:: ---------------------------------------------
set "F4HOME=C:\Program Files (x86)\Steam\SteamApps\common\Fallout 4"
set "F4Compile=%F4HOME%\Papyrus Compiler\PapyrusCompiler.exe"
set "F4SRC=%F4HOME%\Data\Scripts\Source"
:: ---------------------------------------------
:: INCLUDES
:: ---------------------------------------------
set "F4INCLUDE=%F4SRC%\Base"
if exist "%F4SRC%\DLC01" set "F4INCLUDE=%F4SRC%\DLC01;%F4INCLUDE%"
if exist "%F4SRC%\DLC02" set "F4INCLUDE=%F4SRC%\DLC02;%F4INCLUDE%"
if exist "%F4SRC%\DLC03" set "F4INCLUDE=%F4SRC%\DLC03;%F4INCLUDE%"
if exist "%F4SRC%\DLC04" set "F4INCLUDE=%F4SRC%\DLC04;%F4INCLUDE%"
if exist "%F4SRC%\DLC05" set "F4INCLUDE=%F4SRC%\DLC05;%F4INCLUDE%"
set "F4INCLUDE=%F4SRC%\User;%F4INCLUDE%"
if exist "%F4SRC%\User\Fragments" set "F4INCLUDE=%F4SRC%\User\Fragments;%F4INCLUDE%"
if exist "%F4SRC%\User\Fragments\Quests" set "F4INCLUDE=%F4SRC%\User\Fragments\Quests;%F4INCLUDE%"
if exist "%F4SRC%\User\Fragments\Terminals" set "F4INCLUDE=%F4SRC%\User\Fragments\Terminals;%F4INCLUDE%"
:: ---------------------------------------------
:: DEBUG
:: ---------------------------------------------
echo "====> DEBUG BUILD"
"%F4Compile%" %1 -f="Institute_Papyrus_Flags.flg" -i="%F4INCLUDE%" -o="%F4HOME%\Data\Scripts"
pause
</source>
</div>
#Save the file as:
<div style="overflow-x: scroll;">
<source lang="dos">
C:\Program Files (x86)\Steam\SteamApps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_debug.bat
</source>
</div>
# Hit F5 (Run)
# Paste the Following into the Run Box:
<div style="overflow-x: scroll;">
<source lang="dos">
"C:\Program Files (x86)\Steam\steamapps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_debug.bat" "$(FULL_CURRENT_PATH)"
</source>
</div>
# Hit Save
# Name it "Compile Papyrus Debug"
# Hit the small [x] to close the window. A new "Compile Papyrus Debug" option should now appear under the RUN menu.
==Compiling Release from Notepad++==
#Open Notepad++
#Create a New File
#Paste the following:
<div style="overflow-x: scroll;">
<source lang="dos">
echo off
:: ---------------------------------------------
:: NotePad++ Run:
::  "C:\Program Files (x86)\Steam\steamapps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_release.bat" "$(FULL_CURRENT_PATH)"
:: ---------------------------------------------
set "F4HOME=C:\Program Files (x86)\Steam\SteamApps\common\Fallout 4"
set "F4Compile=%F4HOME%\Papyrus Compiler\PapyrusCompiler.exe"
set "F4SRC=%F4HOME%\Data\Scripts\Source"
:: ---------------------------------------------
:: INCLUDES
:: ---------------------------------------------
set "F4INCLUDE=%F4SRC%\Base"
if exist "%F4SRC%\DLC01" set "F4INCLUDE=%F4SRC%\DLC01;%F4INCLUDE%"
if exist "%F4SRC%\DLC02" set "F4INCLUDE=%F4SRC%\DLC02;%F4INCLUDE%"
if exist "%F4SRC%\DLC03" set "F4INCLUDE=%F4SRC%\DLC03;%F4INCLUDE%"
if exist "%F4SRC%\DLC04" set "F4INCLUDE=%F4SRC%\DLC04;%F4INCLUDE%"
if exist "%F4SRC%\DLC05" set "F4INCLUDE=%F4SRC%\DLC05;%F4INCLUDE%"
set "F4INCLUDE=%F4SRC%\User;%F4INCLUDE%"
if exist "%F4SRC%\User\Fragments" set "F4INCLUDE=%F4SRC%\User\Fragments;%F4INCLUDE%"
if exist "%F4SRC%\User\Fragments\Quests" set "F4INCLUDE=%F4SRC%\User\Fragments\Quests;%F4INCLUDE%"
if exist "%F4SRC%\User\Fragments\Terminals" set "F4INCLUDE=%F4SRC%\User\Fragments\Terminals;%F4INCLUDE%"
:: ---------------------------------------------
:: RELEASE
:: ---------------------------------------------
echo "====> RELEASE BUILD"
"%F4Compile%" %1 -f="Institute_Papyrus_Flags.flg" -i="%F4INCLUDE%" -o="%F4HOME%\Data\Scripts" -op -r -final
pause
</source>
</div>
#Save the file as:
<div style="overflow-x: scroll;">
<source lang="dos">
C:\Program Files (x86)\Steam\SteamApps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_release.bat
</source>
</div>
# Hit F5 (Run)
# Paste the Following into the Run Box:
<div style="overflow-x: scroll;">
<source lang="dos">
"C:\Program Files (x86)\Steam\steamapps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_release.bat" "$(FULL_CURRENT_PATH)"
</source>
</div>
# Hit Save
# Name it "Compile Papyrus Release"
# Hit the small [x] to close the window. A new "Compile Papyrus Release" option should now appear under the RUN menu.


==See Also==
==See Also==
*[[:Category:Text Editors|Other Text Editors]]
*[[:Category:Text Editors|Other Text Editors]]

Revision as of 23:25, 17 January 2018

Notepad++ is a freeware text editor that can be used to edit and compile Papyrus scripts. It can be downloaded from the official Notepad++ site. Notepad++ supports user-defined syntax highlighting autocomplete, folding, and can be set up to quickly compile Papyrus scripts, making it a more robust option than using the basic in-editor text editor.

See Wikipedia's page for more information.

Syntax Highlighting

  1. Create an XML file with the following content (you can call it whatever you like and save it anywhere you like). Note that the following has been updated to include the new Fallout 4 functions, events, and operators:
    <NotepadPlus>
        <UserLang name="Papyrus" ext="psc" udlVersion="2.1">
            <Settings>
                <Global caseIgnored="yes" allowFoldOfComments="no" foldCompact="no" forcePureLC="0" decimalSeparator="0" />
                <Prefix Keywords1="no" Keywords2="no" Keywords3="no" Keywords4="no" Keywords5="no" Keywords6="no" Keywords7="no" Keywords8="no" />
            </Settings>
            <KeywordLists>
                <Keywords name="Comments">00; 01 02 03 04</Keywords>
                <Keywords name="Numbers, prefix1">0x</Keywords>
                <Keywords name="Numbers, prefix2"></Keywords>
                <Keywords name="Numbers, extras1"></Keywords>
                <Keywords name="Numbers, extras2"></Keywords>
                <Keywords name="Numbers, suffix1"></Keywords>
                <Keywords name="Numbers, suffix2"></Keywords>
                <Keywords name="Numbers, range"></Keywords>
                <Keywords name="Operators1">( ) [ ] , = + - * / % . ! &gt; &lt; | &amp; :</Keywords>
                <Keywords name="Operators2">As Is</Keywords>
                <Keywords name="Folders in code1, open"></Keywords>
                <Keywords name="Folders in code1, middle"></Keywords>
                <Keywords name="Folders in code1, close"></Keywords>
                <Keywords name="Folders in code2, open">Event Function If Property State While Struct Group</Keywords>
                <Keywords name="Folders in code2, middle">ElseIf Else</Keywords>
                <Keywords name="Folders in code2, close">Auto AutoReadOnly EndEvent EndFunction EndIf EndProperty EndState EndWhile EndStruct EndGroup</Keywords>
                <Keywords name="Folders in comment, open"></Keywords>
                <Keywords name="Folders in comment, middle"></Keywords>
                <Keywords name="Folders in comment, close"></Keywords>
                <Keywords name="Keywords1">As Auto AutoReadOnly BetaOnly Collapsed CollapsedOnBase CollapsedOnRef Conditional Const DebugOnly Default Else ElseIf EndEvent EndFunction EndGroup EndIf EndProperty EndState EndStruct EndWhile Event Extends False Function Global Group Hidden If Import Is Length Mandatory Native New None Parent Property Return ScriptName Self State Struct True While</Keywords>
                <Keywords name="Keywords2">Bool Float Int String</Keywords>
                <Keywords name="Keywords3">Action Activator ActiveMagicEffect Actor ActorBase ActorValue Alias Ammo Apparatus Armor AssociationType Book Cell Class ConstructibleObject Container Debug Door EffectShader Enchantment EncounterZone Explosion Faction Flora Form FormList Furniture Game GlobalVariable Hazard Idle ImageSpaceModifier ImpactDataSet Ingredient Key Keyword LeveledActor LeveledItem LeveledSpell Light Location LocationAlias LocationRefType MagicEffect Math Message MiscObject MusicType ObjectReference Outfit Package Perk Potion Projectile Quest Race ReferenceAlias Scene ScriptObject Scroll Shout SoulGem Sound SoundCategory Spell Static TalkingActivator Topic TopicInfo Utility Var VisualEffect VoiceType Weapon Weather WordOfPower WorldSpace</Keywords>
                <Keywords name="Keywords4">abs acos Activate Add AddAchievement AddArray AddDependentAnimatedObjectReference AddForm AddHavokBallAndSocketConstraint AddInventoryEventFilter AddItem AddKeyIfNeeded AddKeyword AddLinkedLocation AddPerk AddPerkPoints AddRef AddRefCollection AddShout AddSpell AddTextReplacementData AddToFaction AddToMap AdvanceSkill AllowBleedoutDialogue AllowCompanion AllowPCDialogue Apply ApplyConveyorBelt ApplyCrossFade ApplyFanMotor ApplyHavokImpulse ApplyToRef asin atan AttachAshPile AttachMod AttachModToInventoryItem AttachTo AttemptAnimationSetSwitch BlockActivation CalculateEncounterLevel CalculateFavorCost CallFunction CallFunctionNoWait CallGlobalFunction CallGlobalFunctionNoWait CancelTimer CancelTimerGameTime CanFastTravelToMarker CanFlyHere CanMoveVertical CanPayCrimeGold CanProduceForWorkshop CanStrafe CaptureFrameRate Cast CastAs Ceiling CenterOnCell CenterOnCellAndWait ChangeAggression ChangeAnimArchetype ChangeAnimFaceArchetype ChangeAnimFlavor ChangeFaction ChangeHeadPart CheckActorAgainstFactionArray CheckFormAgainstArray CheckFormAgainstKeywordArray CheckLocationAgainstArray CheckLocationAgainstLocationAliasArray CheckObjectAgainstKeywordArray CheckObjectReferenceAgainstArray CheckObjectReferenceAgainstReferenceAliasArray Clear ClearArrested ClearDestruction ClearExpressionOverride ClearExtraArrows ClearForcedLandingMarker ClearForcedMovement ClearHelpMessages ClearKeepOffsetFromActor ClearLookAt ClearPrison ClearTempEffects CloseUserLog CompleteAllObjectives CompleteQuest ConveyorBeltOn cos CountActors CountActorsLinkedToMe CountLinkedRefChain CountRefsLinkedToMe Create CreateDetectionEvent DamageActorValue DamageAV DamageObject DamageValue DBSendPlayerPosition DebugChannelNotify DegreesToRadians Delete DeleteWhenAble Disable DisableAll DisableLinkChain DisableNoWait DisablePlayerControls DisallowCompanion Dismember Dismount Dispel DispelAllSpells DispelSpell DoCombatSpellApply DogDropItems DogPlaceInMouth DrawWeapon Drop DropObject DumpAliasData DumpEventRegistrations Enable EnableActivate EnableAI EnableAll EnableCamSwitch EnableCollisions EnableDetection EnableFastTravel EnableFastTravel EnableFavorites EnableFighting EnableJournal EnableLinkChain EnableLooking EnableMenu EnableMenus EnableMovement EnableNoWait EnablePipboyHDRMask EnablePlayerControls EnableRunning EnableSneaking EnableSprinting EnableVATS EnableZKey EndDeferredKill EndFrameRateCapture EquipItem EquipShout EquipSpell Error EvaluateAll EvaluatePackage FadeOutGame FailAllObjectives FanMotorOn FastTravel Find FindAllReferencesOfType FindAllReferencesWithKeyword FindClosestActor FindClosestActorFromRef FindClosestReferenceOfAnyTypeInList FindClosestReferenceOfAnyTypeInListFromRef FindClosestReferenceOfType FindClosestReferenceOfTypeFromRef FindInReferenceAliasArray FindRandomActor FindRandomActorFromRef FindRandomReferenceOfAnyTypeInList FindRandomReferenceOfAnyTypeInListFromRef FindRandomReferenceOfType FindRandomReferenceOfTypeFromRef FindWeather Fire Floor FollowerFollow FollowerSetDistanceFar FollowerSetDistanceMedium FollowerSetDistanceNear FollowerWait ForceActive ForceActorValue ForceAddRagdollToWorld ForceAV ForceDisableSSRGodraysDirLight ForceFirstPerson ForceLocationTo ForceMovementDirection ForceMovementDirectionRamp ForceMovementRotationSpeed ForceMovementRotationSpeedRamp ForceMovementSpeed ForceMovementSpeedRamp ForceRefIfEmpty ForceRefTo ForceRemoveRagdollFromWorld ForceStart ForceTargetAngle ForceTargetDirection ForceTargetSpeed ForceThirdPerson GameTimeToString Get GetActorAt GetActorBase GetActorOwner GetActorRef GetActorReference GetActorRefOwner GetActors GetActorsLinkedToMe GetActorValue GetActorValuePercentage GetAggressionAV GetAgilityAV GetAlias GetAllCombatTargets GetAllLinkedLocations GetAngleX GetAngleY GetAngleZ GetAnimationVariableBool GetAnimationVariableFloat GetAnimationVariableInt GetAssociatedForm GetAssociatedSkill GetAt GetAV GetAverageFrameRate GetAVPercentage GetBaseActorValue GetBaseAV GetBaseObject GetBaseValue GetBribeAmount GetBudgetCount GetBudgetName GetCaps GetCasterActor GetCharismaAV GetClass GetClassification GetCombatState GetCombatTarget GetCommonProperties GetComponentCount GetConfidenceAV GetConfigName GetContainer GetCount GetCrimeFaction GetCrimeGold GetCrimeGoldNonViolent GetCrimeGoldViolent GetCurrentBudget GetCurrentDestructionStage GetCurrentGameTime GetCurrentLocation GetCurrentMemory GetCurrentPackage GetCurrentRealTime GetCurrentScene GetCurrentStageID GetCurrentWeather GetCurrentWeatherTransition GetDeadCount GetDialogueTarget GetDifficulty GetDistance GetEditorLocation GetEncounterZone GetEnduranceAV GetEquippedItemType GetEquippedShield GetEquippedShout GetEquippedSpell GetEquippedWeapon GetFactionOwner GetFactionRank GetFactionReaction GetFavorPoints GetFirstFoundFactionInArrayForActor GetFirstFoundKeywordInArrayForLocation GetFirstOwnedObject GetFlyingState GetForcedLandingMarker GetForm GetFormFromFile GetFormID GetGameSettingFloat GetGameSettingInt GetGameSettingString GetGiftFilter GetGoldAmount GetGoldValue GetHeadingAngle GetHealthAV GetHeight GetHigestRelationshipRank GetHighestRelationshipRank GetInfamy GetInfamyNonViolent GetInfamyViolent GetIntelligenceAV GetInventoryValue GetItemCount GetItemHealthPercent GetKey GetKeywordData GetKiller GetLength GetLevel GetLeveledActorBase GetLevelExact GetLightLevel GetLinkedRef getLinkedRefArray GetLinkedRefChain GetLinkedRefChildren GetLocation GetLockLevel GetLocRefTypes GetLowestRelationshipRank GetLuckAV GetMass GetMaxFrameRate GetMinFrameRate GetNoBleedoutRecovery GetNthLinkedRef GetObjectComponentCount GetOpenState GetOutgoingWeather GetOwningQuest GetParentCell GetPerceptionAV GetPlatformName GetPlayer GetPlayerControls GetPlayerFollowers GetPlayerGrabbedRef GetPlayerLevel GetPlayerRadioFrequency GetPlayersLastRiddenHorse GetPositionX GetPositionY GetPositionZ GetPropertyValue GetQuestStageDone GetRace GetRadioFrequency GetRadioVolume GetReaction GetRealHoursPassed GetReference GetRefsLinkedToMe GetRefTypeAliveCount GetRefTypeDeadCount GetRegard GetRelationshipRank GetReputation GetResourceDamage GetSafePosition GetScale GetSelfAsActor GetSex GetSitState GetSize GetSkyMode GetSleepState GetStage GetStageDone GetState GetStolenItemValueCrime GetStolenItemValueNoCrime GetStrengthAV GetSuspiciousAV GetTargetActor GetTeleportCell GetTemplate GetTransitionCell GetTransmitterDistance GetTriggerObjectCount GetUniqueActor GetValue GetValueInt GetValuePercentage GetVersionNumber GetVoiceRecoveryTime GetVoiceType GetWidth GetWorkshopOwnedObjects GetWorkshopResourceDamage GetWorkshopResourceObjects GetWorldSpace GetXPForLevel GivePlayerCaps GoToState GtLockLevel HasActorRefOwner HasAssociation HasCommonParent HasDetectionLOS HasDirectLOS HasEffectKeyword HasEverBeenCleared HasFamilyRelationship HasForm HasKeyword HasKeywordInFormList HasKeywordInFormList HasLocRefType HasLOS HasMagicEffect HasMagicEffectWithKeyword HasNode HasObjective HasOwner HasParentRelationship HasPerk HasRefType HasSharedPowerGrid HasSpell HideTitleSequenceMenu IgnoreFriendlyHits IncrementSkill IncrementSkillBy IncrementStat InitializeMarkerDistances InterruptCast Is3DLoaded IsActionComplete IsActivateChild IsActivateControlsEnabled IsActivateEnabled IsActivationBlocked IsActive IsActorInArrayHostileToActor IsAIEnabled IsAlarmed IsAlerted IsAllowedToFly IsArrested IsArrestingTarget IsAttached IsBeingRidden IsBeingRiddenBy IsBleedingOut IsBoundGameObjectAvailable IsBribed IsCamSwitchControlsEnabled IsCamSwitchEnabled IsChild IsCleared IsCommandedActor IsCompleted IsConveyorBeltOn IsCreated IsDead IsDeleted IsDestroyed IsDetectedBy IsDisabled IsDismembered IsDoingFavor IsEnabled IsEquipped IsEssential IsEuiped IsFactionInCrimeGroup IsFanMotorOn IsFastTravelControlsEnabled IsFastTravelEnabled IsFavoritesControlsEnabled IsFavoritesEnabled IsFightingControlsEnabled IsFightingEnabled IsFlying IsFurnitureInUse IsFurnitureMarkerInUse IsGhost IsGuard IsHostile IsHostileToActor IsIgnoringFriendlyHits IsInCombat IsInDialogueWithPlayer IsInFaction IsInInterior IsInIronSights IsInKillMove IsInLocation IsInMenuMode IsInPowerArmor IsInScene IsInterior IsIntimidated IsInvulnerable IsJournalControlsEnabled IsJournalEnabled IsLinkedLocation IsLoaded IsLockBroken IsLocked IsLookingControlsEnabled IsLookingEnabled IsMapMarkerVisible IsMenuControlsEnabled IsMenuEnabled IsMovementControlsEnabled IsMovementEnabled IsNearPlayer IsObjectiveCompleted IsObjectiveDisplayed IsObjectiveFailed IsOnMount IsOverEncumbered IsOwnedBy IsOwnedObjectInList IsOwner IsPlayerEnemy IsPlayerExpelled IsPlayerInRadioRange IsPlayerListening IsPlayerRadioOn IsPlayersLastRiddenHorse IsPlayerTeammate IsPlaying IsPluginInstalled IsPowered IsProtected IsQuestItem IsRadio IsRadioOn IsRefInTransitionCell IsRunning IsRunningEnabled IsSameLocation IsSeatOccupied IsSneaking IsSneakingControlsEnabled IsSneakingEnabled IsSprinting IsSprintingEnabled IsStageDone IsStartin IsStarting IsStopped IsStopping IsTalking IsTeleportAreaLoaded IsTrespassing IsUnconscious IsUnique IsVATSControlsEnabled IsVATSEnabled IsVATSPlaybackActive IsWeaponDrawn IsWithinBuildableArea IsWordUnlocked IsZKeyEnabled KeepOffsetFromActor Kill KillAll KillEssential KillSilent KnockAreaEffect LearnAllEffects LearnEffect LearnNextEffect LinkCollectionTo Lock MakePlayerFriend MakeRadioReceiver MakeTransmitterRepeater MarkItemAsFavorite Max Merge MergeWith MessageBox Min Mod ModActorValue ModAV ModCrimeGold ModFactionRank ModFavorPoints ModFavorPointsWithGlobal ModifyKeywordData ModObjectiveGlobal ModReaction ModRegard ModValue MoveAllTo MoveTo MoveToInteractionLocation MoveToMyEditorLocation MoveToNearestNavmeshLocation MoveToNode MoveToPackageLocation MoveToWhenUnloaded Mute Notification OpenInventory OpenUserLog OpenWorkshopSettlementMenu OpenWorkshopSettlementMenuEx OverBudget PassTime PathToReference Pause PauseAudio PlaceActorAtMe PlaceAtMe PlaceAtNode Play PlayAndWait PlayAnimation PlayAnimationAndWait PlayBink PlayerKnows PlayerMoveToAndWait PlayerPayCrimeGold PlayEventCamera PlayGamebryoAnimation PlayIdle PlayIdleAction PlayIdleWithTarget PlayImpactEffect PlaySubGraphAnimation PlaySyncedAnimationAndWaitSS PlaySyncedAnimationSS PlayTerrainEffect PopTo pow PrecacheCharGen PrecacheCharGenClear PreloadExteriorCell PreloadTargetArea ProcessTrapHit PushActorAway QueryStat QuitGame QuitToMainMenu RadiansToDegrees rampRumble RandomFloat RandomInt RecalculateResources RegisterForAnimationEvent RegisterForCustomEvent RegisterForDetectionLOSGain RegisterForDetectionLOSLost RegisterForDirectLOSGain RegisterForDirectLOSLost RegisterForDistanceGreaterThanEvent RegisterForDistanceLessThanEvent RegisterForHitEvent RegisterForLooksMenuEvent RegisterForLOS RegisterForMagicEffectApplyEvent RegisterForMenuOpenCloseEvent RegisterForPlayerSleep RegisterForPlayerTeleport RegisterForPlayerWait RegisterForRadiationDamageEvent RegisterForRemoteEvent RegisterForSingleLOSGain RegisterForSingleLOSLost RegisterForSingleUpdate RegisterForSingleUpdateGameTime RegisterForSleep RegisterForTrackedStatsEvent RegisterForTrackedStatsEvent RegisterForTutorialEvent RegisterForUpdate RegisterForUpdateGameTime ReleaseOverride RemoteCast Remove RemoveAddedForm RemoveAll RemoveAllInventoryEventFilters RemoveAllItems RemoveAllMods RemoveAllModsFromInventoryItem RemoveComponents RemoveCrossFade RemoveDependentAnimatedObjectReference RemoveFromAllFactions RemoveFromFaction RemoveHavokConstraints RemoveInventoryEventFilter RemoveItem RemoveItemByComponent RemoveKeyword RemoveLinkedLocation RemoveMod RemoveModFromInventoryItem RemovePerk RemovePlayerCaps RemoveRef RemoveShout RemoveSpell Repair RequestAutoSave RequestModel RequestSave Reset ResetAll ResetHealthAndLimbs ResetHelpMessage ResetKeyword ResetSpeechChallenges RestoreActorValue RestoreAV RestoreValue ResumeAudio Resurrect ReverseConveyorBelt Revert RewardPlayerXP Say SayCustom SellItem SendAnimationEvent SendAssaultAlarm SendCustomEvent SendPlayerToJail SendStealAlarm SendStoryEvent SendStoryEventAndWait SendTrespassAlarm SendWereWolfTransformation ServeTime Set SetActivateTextOverride SetActive SetActorCause SetActorOwner SetActorRefOwner SetActorValue SetAlert SetAllowFlying SetAllStages SetAlly SetAlpha SetAngle SetAnimArchetypeConfident SetAnimArchetypeDepressed SetAnimArchetypeElderly SetAnimArchetypeFriendly SetAnimArchetypeIrritated SetAnimArchetypeNervous SetAnimArchetypeNeutral SetAnimationVariableBool SetAnimationVariableFloat SetAnimationVariableInt SetAttackActorOnSight SetAttractionActive SetAV SetAvailableToBeCompanion SetAvoidPlayer SetBeastForm SetBribed SetCameraTarget SetCanDoCommand SetCharGenHUDMode SetCleared SetCombatStyle SetCommandState SetCompanion SetConveyorBeltVelocity SetCrimeFaction SetCrimeGold SetCrimeGoldViolent SetCriticalStage SetCurrentStageID SetDestroyed SetDirectAtTarget SetDogAnimArchetypeAgitated SetDogAnimArchetypeAlert SetDogAnimArchetypeNeutral SetDogAnimArchetypePlayful SetDoingFavor SetEnemy SetEssential SetEyeTexture SetFactionOwner SetFactionRank SetFogColor SetFogPlanes SetFogPower SetFootIK SetForcedLandingMarker SetFrequency SetGhost SetGodMode SetHarvested SetHasCharGenSkeleton SetHeadTracking SetHudCartMode SetInChargen SetINIBool SetINIFloat SetINIInt SetINIString SetInsideMemoryHUDMode SetInstanceVolume SetIntimidated SetInvulnerable SetKeywordData SetLinkedRef SetLockLevel SetLocRefType SetLookAt SetMotionType SetNoBleedoutRecovery SetNoFavorAllowed SetNotShowOnStealthMeter SetObjectiveCompleted SetObjectiveDisplayed SetObjectiveFailed SetObjectiveSkipped SetOpen SetOutfit SetOverrideVoiceType SetPersistLoc SetPlayerAIDriven SetPlayerControls SetPlayerEnemy SetPlayerExpelled SetPlayerHasTaken SetPlayerOnElevator SetPlayerRadioFrequency SetPlayerReportCrime SetPlayerResistingArrest SetPlayerTeammate SetPosition SetPropertyValue SetPropertyValueNoWait SetProtected SetPublic SetQuestStage SetRace SetRaction SetRadioFrequency SetRadioOn SetRadioVolume SetReaction SetRelationshipRank SetRestrained SetScale SetSittingRotation SetStage SetSubGraphFloatVariable SetUnconscious SetValue SetValueInt SetVehicle SetVoiceRecoveryTime SetVolume ShakeCamera ShakeController Show ShowAllMapMarkers ShowAsHelpMessage ShowBarterMenu ShowFatigueWarningOnHUD ShowFirstPersonGeometry ShowGiftMenu ShowPerkVaultBoyOnHUD ShowPipboyBootSequence ShowPipboyPlugin ShowRaceMenu ShowRefPosition ShowSPECIALMenu ShowTitleSequenceMenu ShowTrainingMenu sin SnapIntoInteraction SplineTranslateTo SplineTranslateToRef SplineTranslateToRefNode sqrt Start StartCannibal StartCombat StartCombatAll StartDeferredKill StartDialogueCameraOrCenterOnTarget StartFrameRateCapture StartFrenzyAttack StartObjectProfiling StartScriptProfiling StartSneaking StartStackProfiling StartStackRootProfiling StartTimer StartTimerGameTime StartTitleSequence StartVampireFeed StartWorkshop Stop StopCombat StopCombatAlarm StopDialogueCamera StopInstance StopObjectProfiling StopScriptProfiling StopStackProfiling StopStackRootProfiling StopTranslation StoreInWorkshop SwitchToPowerArmor TakeScreenshot tan TeachWord TetherToHorse ToggleAI ToggleCollisions ToggleMenus Trace TraceAndBox TraceConditional TraceConditionalGlobal TraceFunction TraceSelf TraceStack TraceUser TranslateTo TranslateToRef TrapSoul TriggerScreenBlood TryoEnable TryToAddToFaction TryToClear TryToDisable TryToDisableNoWait TryToEnable TryToEnableNoWait TryToEvaluatePackage TryToGetActorValue TryToGetValue TryToKill TryToMoveTo TryToRemoveFromFaction TryToReset TryToSetActorValue TryToSetValue TryToStopCombat TurnPlayerRadioOn UnequipAll UnEquipItem UnequipItem UnequipItemSlot UnequipShout UnequipSpell Unlock UnLockOwnedDoorsInCell UnlockWord UnMute UnPause UnregisterForAllCustomEvents UnregisterForAllEvents UnregisterForAllHitEvents UnregisterForAllMagicEffectApplyEvents UnregisterForAllMenuOpenCloseEvents UnregisterForAllRadiationDamageEvents UnregisterForAllRemoteEvents UnregisterForAllTrackedStatsEvents UnregisterForAnimationEvent UnregisterForCustomEvent UnregisterForDistanceEvents UnregisterForHitEvent UnregisterForLooksMenuEvent UnregisterForLOS UnregisterForMagicEffectApplyEvent UnregisterForMenuOpenCloseEvent UnregisterForPlayerSleep UnregisterForPlayerTeleport UnregisterForPlayerWait UnregisterForRadiationDamageEvent UnregisterForRemoteEvent UnregisterForSleep UnregisterForTrackedStatsEvent UnregisterForTutorialEvent UnregisterForUpdate UnregisterForUpdateGameTime UnshowAsHelpMessage UpdateCurrentInstanceGlobal UsingGamepad Value Wait WaitFor3DLoad WaitForAnimationEvent WaitForWorkshopResourceRecalc WaitGameTime WaitMenuMode Warning WillIntimidateSucceed WornHasKeyword WouldBeStealing WouldRefuseCommand</Keywords>
                <Keywords name="Keywords5">OnAction OnActivate OnActivate OnAliasInit OnAliasReset OnAliasShutdown OnAnimationEventUnregistered OnBegin OnBeginState OnCellAttach OnCellAttach OnCellDetach OnCellDetach OnCellLoad OnCellLoad OnChange OnClose OnClose OnCombatStateChanged OnCommandModeCompleteCommand OnCommandModeEnter OnCommandModeExit OnCommandModeGiveCommand OnCompanionDismiss OnConsciousnessStateChanged OnContainerChanged OnContainerChanged OnCripple OnDeath OnDeferredKill OnDestructionStageChanged OnDestructionStageChanged OnDifficultyChanged OnDistanceGreaterThan OnDistanceLessThan OnDying OnEffectFinish OnEffectStart OnEnd OnEnd OnEndState OnEnterBleedout OnEnterSneaking OnEntryRun OnEquipped OnEquipped OnEscortWaitStart OnEscortWaitStop OnExitFurniture OnExitFurniture OnGainLOS OnGetUp OnGrab OnGrab OnHit OnHolotapeChatter OnHolotapeChatter OnHolotapePlay OnHolotapePlay OnInit OnItemAdded OnItemAdded OnItemEquipped OnItemRemoved OnItemRemoved OnItemUnequipped OnKill OnLoad OnLoad OnLocationChange OnLocationCleared OnLocationLoaded OnLockStateChanged OnLockStateChanged OnLooksMenuEvent OnLostLOS OnMagicEffectApply OnMenuOpenCloseEvent OnOpen OnOpen OnPackageChange OnPackageEnd OnPackageStart OnPartialCripple OnPhaseBegin OnPhaseEnd OnPickpocketFailed OnPipboyRadioDetection OnPipboyRadioDetection OnPlayerCreateRobot OnPlayerDialogueTarget OnPlayerDialogueTarget OnPlayerDialogueTarget OnPlayerEnterVertibird OnPlayerFallLongDistance OnPlayerFireWeapon OnPlayerHealTeammate OnPlayerLoadGame OnPlayerModArmorWeapon OnPlayerModRobot OnPlayerSleepStart OnPlayerSleepStop OnPlayerSwimming OnPlayerTeleport OnPlayerUseWorkBench OnPlayerWaitStart OnPlayerWaitStop OnPowerOff OnPowerOff OnPowerOn OnPowerOn OnQuestInit OnQuestShutdown OnRaceSwitchComplete OnRadiationDamage OnRead OnRead OnRelease OnRelease OnReset OnReset OnSell OnSell OnSit OnSpeechChallengeAvailable OnSpellCast OnSpellCast OnStageSet OnStart OnStoryActivateActor OnStoryActorAttach OnStoryAddToPlayer OnStoryArrest OnStoryAssaultActor OnStoryAttractionObject OnStoryBribeNPC OnStoryCastMagic OnStoryChangeLocation OnStoryClearLocation OnStoryCraftItem OnStoryCrimeGold OnStoryCure OnStoryDialogue OnStoryDiscoverDeadBody OnStoryEscapeJail OnStoryFlatterNPC OnStoryHackTerminal OnStoryHello OnStoryIncreaseLevel OnStoryInfection OnStoryIntimidateNPC OnStoryIronSights OnStoryJail OnStoryKillActor OnStoryLocationLoaded OnStoryMineExplosion OnStoryNewVoicePower OnStoryPayFine OnStoryPickLock OnStoryPickPocket OnStoryPlayerGetsFavor OnStoryRelationshipChange OnStoryRemoveFromPlayer OnStoryScript OnStoryServedTime OnStoryTrespass OnTimer OnTimerGameTime OnTrackedStatsEvent OnTranslationAlmostComplete OnTranslationAlmostComplete OnTranslationComplete OnTranslationComplete OnTranslationFailed OnTranslationFailed OnTrapHitStart OnTrapHitStart OnTrapHitStop OnTrapHitStop OnTriggerEnter OnTriggerEnter OnTriggerLeave OnTriggerLeave OnTutorialEvent OnUnequipped OnUnequipped OnUnload OnUnload OnWorkshopMode OnWorkshopMode OnWorkshopNPCTransfer OnWorkshopNPCTransfer OnWorkshopObjectDestroyed OnWorkshopObjectDestroyed OnWorkshopObjectGrabbed OnWorkshopObjectGrabbed OnWorkshopObjectMoved OnWorkshopObjectMoved OnWorkshopObjectPlaced OnWorkshopObjectPlaced OnWorkshopObjectRepaired OnWorkshopObjectRepaired</Keywords>
                <Keywords name="Keywords6"></Keywords>
                <Keywords name="Keywords7"></Keywords>
                <Keywords name="Keywords8"></Keywords>
                <Keywords name="Delimiters">00 01 02/ 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23</Keywords>
            </KeywordLists>
            <Styles>
                <WordsStyle name="DEFAULT" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
                <WordsStyle name="COMMENTS" fgColor="8E8E8E" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
                <WordsStyle name="LINE COMMENTS" fgColor="8E8E8E" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
                <WordsStyle name="NUMBERS" fgColor="FF0080" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
                <WordsStyle name="KEYWORDS1" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
                <WordsStyle name="KEYWORDS2" fgColor="008040" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
                <WordsStyle name="KEYWORDS3" fgColor="008040" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
                <WordsStyle name="KEYWORDS4" fgColor="6565C6" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
                <WordsStyle name="KEYWORDS5" fgColor="6565C6" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
                <WordsStyle name="KEYWORDS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
                <WordsStyle name="KEYWORDS7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
                <WordsStyle name="KEYWORDS8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
                <WordsStyle name="OPERATORS" fgColor="0080FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
                <WordsStyle name="FOLDER IN CODE1" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
                <WordsStyle name="FOLDER IN CODE2" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" />
                <WordsStyle name="FOLDER IN COMMENT" fgColor="8E8E8E" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
                <WordsStyle name="DELIMITERS1" fgColor="8E8E8E" bgColor="FFFFFF" fontName="" fontStyle="2" nesting="0" />
                <WordsStyle name="DELIMITERS2" fgColor="8E8E8E" bgColor="FFFFFF" fontName="" fontStyle="2" nesting="0" />
                <WordsStyle name="DELIMITERS3" fgColor="8E8E8E" bgColor="FFFFFF" fontName="" fontStyle="2" nesting="0" />
                <WordsStyle name="DELIMITERS4" fgColor="A82800" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
                <WordsStyle name="DELIMITERS5" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
                <WordsStyle name="DELIMITERS6" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
                <WordsStyle name="DELIMITERS7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
                <WordsStyle name="DELIMITERS8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" />
            </Styles>
        </UserLang>
    </NotepadPlus>
    
  2. Open Notepad++
  3. Open the "User Defined Language" window via Language -> Define Your Language...
  4. Select "Import..."
  5. Select the XML file you created earlier.
  6. If the import was successful, you should see a notification saying "Import successful."

Now, when you open up Papyrus source files (with the extension .psc) Notepad++ will automatically highlight them for you.

If you are creating your own script from scratch, you'll need to select the language manually. "Papyrus" should be available near the bottom of the Language menu in Notepad++.

Compiling Debug from Notepad++

  1. Open Notepad++
  2. Create a New File
  3. Paste the following:
echo off
:: ---------------------------------------------
:: NotePad++ Run:
::   "C:\Program Files (x86)\Steam\steamapps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_debug.bat" "$(FULL_CURRENT_PATH)" 
:: ---------------------------------------------

set "F4HOME=C:\Program Files (x86)\Steam\SteamApps\common\Fallout 4"
set "F4Compile=%F4HOME%\Papyrus Compiler\PapyrusCompiler.exe"
set "F4SRC=%F4HOME%\Data\Scripts\Source"

:: ---------------------------------------------
:: INCLUDES
:: ---------------------------------------------

set "F4INCLUDE=%F4SRC%\Base"
if exist "%F4SRC%\DLC01" set "F4INCLUDE=%F4SRC%\DLC01;%F4INCLUDE%"
if exist "%F4SRC%\DLC02" set "F4INCLUDE=%F4SRC%\DLC02;%F4INCLUDE%"
if exist "%F4SRC%\DLC03" set "F4INCLUDE=%F4SRC%\DLC03;%F4INCLUDE%"
if exist "%F4SRC%\DLC04" set "F4INCLUDE=%F4SRC%\DLC04;%F4INCLUDE%"
if exist "%F4SRC%\DLC05" set "F4INCLUDE=%F4SRC%\DLC05;%F4INCLUDE%"

set "F4INCLUDE=%F4SRC%\User;%F4INCLUDE%"
if exist "%F4SRC%\User\Fragments" set "F4INCLUDE=%F4SRC%\User\Fragments;%F4INCLUDE%"
if exist "%F4SRC%\User\Fragments\Quests" set "F4INCLUDE=%F4SRC%\User\Fragments\Quests;%F4INCLUDE%"
if exist "%F4SRC%\User\Fragments\Terminals" set "F4INCLUDE=%F4SRC%\User\Fragments\Terminals;%F4INCLUDE%"

:: ---------------------------------------------
:: DEBUG
:: ---------------------------------------------
echo "====> DEBUG BUILD"
"%F4Compile%" %1 -f="Institute_Papyrus_Flags.flg" -i="%F4INCLUDE%" -o="%F4HOME%\Data\Scripts"

pause
  1. Save the file as:
C:\Program Files (x86)\Steam\SteamApps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_debug.bat
  1. Hit F5 (Run)
  2. Paste the Following into the Run Box:
"C:\Program Files (x86)\Steam\steamapps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_debug.bat" "$(FULL_CURRENT_PATH)"
  1. Hit Save
  2. Name it "Compile Papyrus Debug"
  3. Hit the small [x] to close the window. A new "Compile Papyrus Debug" option should now appear under the RUN menu.


Compiling Release from Notepad++

  1. Open Notepad++
  2. Create a New File
  3. Paste the following:
echo off
:: ---------------------------------------------
:: NotePad++ Run:
::   "C:\Program Files (x86)\Steam\steamapps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_release.bat" "$(FULL_CURRENT_PATH)" 
:: ---------------------------------------------

set "F4HOME=C:\Program Files (x86)\Steam\SteamApps\common\Fallout 4"
set "F4Compile=%F4HOME%\Papyrus Compiler\PapyrusCompiler.exe"
set "F4SRC=%F4HOME%\Data\Scripts\Source"

:: ---------------------------------------------
:: INCLUDES
:: ---------------------------------------------

set "F4INCLUDE=%F4SRC%\Base"
if exist "%F4SRC%\DLC01" set "F4INCLUDE=%F4SRC%\DLC01;%F4INCLUDE%"
if exist "%F4SRC%\DLC02" set "F4INCLUDE=%F4SRC%\DLC02;%F4INCLUDE%"
if exist "%F4SRC%\DLC03" set "F4INCLUDE=%F4SRC%\DLC03;%F4INCLUDE%"
if exist "%F4SRC%\DLC04" set "F4INCLUDE=%F4SRC%\DLC04;%F4INCLUDE%"
if exist "%F4SRC%\DLC05" set "F4INCLUDE=%F4SRC%\DLC05;%F4INCLUDE%"

set "F4INCLUDE=%F4SRC%\User;%F4INCLUDE%"
if exist "%F4SRC%\User\Fragments" set "F4INCLUDE=%F4SRC%\User\Fragments;%F4INCLUDE%"
if exist "%F4SRC%\User\Fragments\Quests" set "F4INCLUDE=%F4SRC%\User\Fragments\Quests;%F4INCLUDE%"
if exist "%F4SRC%\User\Fragments\Terminals" set "F4INCLUDE=%F4SRC%\User\Fragments\Terminals;%F4INCLUDE%"

:: ---------------------------------------------
:: RELEASE
:: ---------------------------------------------
echo "====> RELEASE BUILD"
"%F4Compile%" %1 -f="Institute_Papyrus_Flags.flg" -i="%F4INCLUDE%" -o="%F4HOME%\Data\Scripts" -op -r -final

pause
  1. Save the file as:
C:\Program Files (x86)\Steam\SteamApps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_release.bat
  1. Hit F5 (Run)
  2. Paste the Following into the Run Box:
"C:\Program Files (x86)\Steam\steamapps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_release.bat" "$(FULL_CURRENT_PATH)"
  1. Hit Save
  2. Name it "Compile Papyrus Release"
  3. Hit the small [x] to close the window. A new "Compile Papyrus Release" option should now appear under the RUN menu.

See Also