Notepad++
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 HighlightingEdit
- 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="PapyrusFallout4" 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"></Keywords> <Keywords name="Numbers, prefix2">0x</Keywords> <Keywords name="Numbers, extras1">A B C D E F</Keywords> <Keywords name="Numbers, extras2"></Keywords> <Keywords name="Numbers, suffix1"></Keywords> <Keywords name="Numbers, suffix2"></Keywords> <Keywords name="Numbers, range"></Keywords> <Keywords name="Operators1">+ - * / % . = > < ! && || ( ) [ ] , :</Keywords> <Keywords name="Operators2"></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 Group If State Struct While</Keywords> <Keywords name="Folders in code2, middle">Else ElseIf</Keywords> <Keywords name="Folders in code2, close">EndEvent EndFunction EndGroup EndIf EndState EndStruct EndWhile</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 CustomEvent 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 CustomEventName Float Int ScriptEventName String StructVarName Var</Keywords> <Keywords name="Keywords3">Action Activator ActiveMagicEffect Actor ActorBase ActorValue Alias Ammo Armor AssociationType Book CameraShot Cell Class CombatStyle Component ConstructibleObject Container Debug Door EffectShader Enchantment EncounterZone Explosion Faction Flora Form FormList Furniture Game GlobalVariable Hazard HeadPart Holotape Idle IdleMarker ImageSpaceModifier ImpactDataSet Ingredient InputEnableLayer InstanceNamingRules Key Keyword LeveledActor LeveledItem LeveledSpell Light Location LocationAlias LocationRefType MagicEffect Math Message MiscObject MovableStatic MusicType ObjectMod ObjectReference Outfit OutputModel Package Perk Potion Projectile Quest Race RefCollectionAlias ReferenceAlias Scene ScriptObject Scroll ShaderParticleGeometry Shout SoulGem Sound SoundCategory SoundCategorySnapshot Spell Static TalkingActivator Terminal TextureSet Topic TopicInfo Utility VisualEffect VoiceType Weapon Weather WordOfPower WorldSpace</Keywords> <Keywords name="Keywords4">abs acos Activate Add AddAchievement AddArray AddDependentAnimatedObjectReference AddForm AddInventoryEventFilter AddItem AddKeyIfNeeded AddKeyword AddLinkedLocation AddPerk AddPerkPoints AddRef AddRefCollection AddSpell AddTextReplacementData AddToFaction AddToMap AdvanceSkill AllowBleedoutDialogue AllowCompanion AllowPCDialogue Apply ApplyConveyorBelt ApplyCrossFade ApplyFanMotor ApplyHavokImpulse ApplyToRef asin atan AttachAshPile AttachMod AttachModToInventoryItem AttachTo AttemptAnimationSetSwitch BlockActivation CalculateEncounterLevel CallFunction CallFunctionNoWait CallGlobalFunction CallGlobalFunctionNoWait CancelTimer CancelTimerGameTime CanFastTravelToMarker CanFlyHere CanMoveVertical CanPayCrimeGold CanProduceForWorkshop CanStrafe CaptureFrameRate Cast CastAs Ceiling CenterOnCell CenterOnCellAndWait ChangeAnimArchetype ChangeAnimFaceArchetype ChangeAnimFlavor ChangeHeadPart Clear ClearArrested ClearDestruction ClearExpressionOverride ClearExtraArrows ClearForcedLandingMarker ClearForcedMovement ClearFromOldLocations ClearHelpMessages ClearLookAt ClearPrison ClearTempEffects CloseUserLog CompleteAllObjectives CompleteQuest ConveyorBeltOn cos CountActors CountActorsLinkedToMe CountLinkedRefChain CountRefsLinkedToMe Create CreateDetectionEvent DamageObject DamageValue DBSendPlayerPosition DegreesToRadians Delete DeleteWhenAble Disable DisableAll DisableLinkChain DisableNoWait DisablePlayerControls DisallowCompanion Dismember Dismount Dispel DispelAllSpells DispelSpell DoCombatSpellApply DogDropItems DogPlaceInMouth DrawWeapon Drop DropFirstObject DropObject DumpAliasData DumpEventRegistrations Enable EnableActivate EnableAI EnableAll EnableAmbientParticles EnableCamSwitch EnableCollisions EnableDetection EnableFastTravel EnableFavorites EnableFighting EnableJournal EnableJumping EnableLinkChain EnableLooking EnableMenu EnableMenus EnableMovement EnableNoWait EnablePipboyHDRMask EnablePlayerControls EnableRunning EnableSneaking EnableSprinting EnableVATS EnableZKey EndDeferredKill EndFrameRateCapture EnterTestData EquipItem EquipSpell Error EvaluateAll EvaluatePackage FadeOutGame FailAllObjectives FanMotorOn FastTravel Find FindAllReferencesOfType FindAllReferencesWithKeyword FindClosestActor FindClosestActorFromRef FindClosestReferenceOfAnyTypeInList FindClosestReferenceOfAnyTypeInListFromRef FindClosestReferenceOfType FindClosestReferenceOfTypeFromRef FindRandomActor FindRandomActorFromRef FindRandomReferenceOfAnyTypeInList FindRandomReferenceOfAnyTypeInListFromRef FindRandomReferenceOfType FindRandomReferenceOfTypeFromRef FindStruct FindWeather Fire Floor FollowerFollow FollowerSetDistanceFar FollowerSetDistanceMedium FollowerSetDistanceNear FollowerWait ForceActive ForceAddRagdollToWorld ForceDisableSSRGodraysDirLight ForceFirstPerson ForceLocationTo ForceMovementDirection ForceMovementDirectionRamp ForceMovementRotationSpeed ForceMovementRotationSpeedRamp ForceMovementSpeed ForceMovementSpeedRamp ForceRefIfEmpty ForceRefTo ForceRemoveRagdollFromWorld ForceStart ForceTargetAngle ForceTargetDirection ForceTargetSpeed ForceThirdPerson GameTimeToString GetActorAt GetActorBase GetActorOwner GetActorRef GetActorReference GetActorRefOwner GetActors GetActorsLinkedToMe GetAggressionAV GetAgilityAV GetAlias GetAllCombatTargets GetAllLinkedLocations GetAmmo GetAngleX GetAngleY GetAngleZ GetAnimationVariableBool GetAnimationVariableFloat GetAnimationVariableInt GetAssociatedForm GetAssociatedSkill GetAt GetAverageFrameRate GetBaseObject GetBaseValue GetBribeAmount GetBudgetCount GetBudgetLimit 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 GetCurrentStackID GetCurrentStageID GetCurrentWeather GetCurrentWeatherTransition GetDeadCount GetDialogueTarget GetDifficulty GetDistance GetEditorLocation GetEncounterZone GetEnduranceAV GetEquippedItemType GetEquippedShield GetEquippedSpell GetEquippedWeapon GetFactionOwner GetFactionRank GetFactionReaction GetFirstOwnedObject GetFlyingState GetForcedLandingMarker GetForm GetFormFromFile GetFormID GetGameSettingFloat GetGameSettingInt GetGameSettingString GetGiftFilter GetGoldAmount GetGoldValue GetHeadingAngle GetHealthAV GetHeight 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 GetRealHoursPassed GetRef GetReference GetRefsLinkedToMe GetRefTypeAliveCount GetRefTypeDeadCount GetRelationshipRank 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 GetVoiceType GetWidth GetWorkshopOwnedObjects GetWorkshopResourceDamage GetWorkshopResourceObjects GetWorldSpace GetXPForLevel GivePlayerCaps GotoState HasActorRefOwner HasAssociation HasBeenSaid HasCommonParent HasDetectionLOS HasDirectLOS HasEffectKeyword HasEverBeenCleared HasFamilyRelationship HasForm HasKeyword HasKeywordInFormList HasLocRefType HasMagicEffect HasMagicEffectWithKeyword HasNode HasObjective HasOwner HasParentRelationship HasPerk HasRefType HasSharedPowerGrid HasSpell HideTitleSequenceMenu IgnoreFriendlyHits IncrementSkill IncrementStat InitializeMarkerDistances Insert InterruptCast Is3DLoaded IsActionComplete IsActivateChild IsActivateControlsEnabled IsActivateEnabled IsActivationBlocked IsActive 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 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 IsJumpingControlsEnabled IsJumpingEnabled 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 IsStarting IsStopped IsStopping IsTalking IsTeleportAreaLoaded IsTrespassing IsUnconscious IsUnique IsVATSControlsEnabled IsVATSEnabled IsVATSPlaybackActive IsWeaponDrawn IsWithinBuildableArea IsZKeyEnabled Kill KillAll KillEssential KillSilent KnockAreaEffect LearnAllEffects LearnEffect LearnNextEffect LinkCollectionTo Lock MakePlayerFriend MakeRadioReceiver MakeTransmitterRepeater MarkItemAsFavorite Max MergeWith MessageBox Min Mod ModCrimeGold ModFactionRank ModFavorPoints ModFavorPointsWithGlobal ModifyKeywordData ModObjectiveGlobal ModValue MoveAllTo MoveTo MoveToIfUnloaded 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 PostStartUpTimes pow PrecacheCharGen PrecacheCharGenClear PreloadExteriorCell PreloadTargetArea ProcessTrapHit Push PushActorAway QueryStat QuitGame QuitToMainMenu RadiansToDegrees RaidTargetsAvailable rampRumble RandomFloat RandomInt RecalculateResources RegisterForAnimationEvent RegisterForCustomEvent RegisterForDetectionLOSGain RegisterForDetectionLOSLost RegisterForDirectLOSGain RegisterForDirectLOSLost RegisterForDistanceGreaterThanEvent RegisterForDistanceLessThanEvent RegisterForHitEvent RegisterForLooksMenuEvent RegisterForMagicEffectApplyEvent RegisterForMenuOpenCloseEvent RegisterForPlayerSleep RegisterForPlayerTeleport RegisterForPlayerWait RegisterForRadiationDamageEvent RegisterForRemoteEvent RegisterForTrackedStatsEvent RegisterForTutorialEvent ReleaseOverride RemoteCast Remove RemoveAddedForm RemoveAll RemoveAllInventoryEventFilters RemoveAllItems RemoveAllMods RemoveAllModsFromInventoryItem RemoveComponents RemoveCrossFade RemoveDependentAnimatedObjectReference RemoveFromAllFactions RemoveFromFaction RemoveFromRef RemoveInventoryEventFilter RemoveItem RemoveItemByComponent RemoveKeyword RemoveLast RemoveLinkedLocation RemoveMod RemoveModFromInventoryItem RemovePerk RemovePlayerCaps RemoveRef RemoveSpell Repair RequestAutoSave RequestModel RequestSave Reset ResetAll ResetHealthAndLimbs ResetHelpMessage ResetKeyword ResetSpeechChallenges RestoreValue ResumeAudio Resurrect ReverseConveyorBelt Revert RewardPlayerXP RFind RFindStruct Say SayCustom SellItem SendAssaultAlarm SendCustomEvent SendPlayerToJail SendStealAlarm SendStoryEvent SendStoryEventAndWait SendTrespassAlarm ServeTime SetActivateTextOverride SetActive SetActorCause SetActorOwner SetActorRefOwner SetAlert SetAllowFlying SetAllStages SetAlly SetAlpha SetAngle SetAnimArchetypeConfident SetAnimArchetypeDepressed SetAnimArchetypeElderly SetAnimArchetypeFriendly SetAnimArchetypeIrritated SetAnimArchetypeNervous SetAnimArchetypeNeutral SetAnimationVariableBool SetAnimationVariableFloat SetAnimationVariableInt SetAttackActorOnSight SetAttractionActive SetAvailableToBeCompanion SetAvoidPlayer 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 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 SetRadioFrequency SetRadioOn SetRadioVolume SetRelationshipRank SetRestrained SetScale SetSittingRotation SetStage SetSubGraphFloatVariable SetUnconscious SetValue SetValueInt SetVehicle SetVolume ShakeCamera ShakeController Show ShowAllMapMarkers ShowAsHelpMessage ShowBarterMenu ShowFatigueWarningOnHUD ShowFirstPersonGeometry ShowOnPipboy 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 tan TetherToHorse Trace TraceAndBox TraceConditional TraceConditionalGlobal TraceFunction TraceSelf TraceStack TraceUser TranslateTo TranslateToRef TrapSoul TriggerScreenBlood TryToAddToFaction TryToClear TryToDisable TryToDisableNoWait TryToEnable TryToEnableNoWait TryToEvaluatePackage TryToGetActorValue TryToGetValue TryToKill TryToMoveTo TryToRemoveFromFaction TryToReset TryToSetActorValue TryToSetValue TryToStopCombat TurnPlayerRadioOn UnequipAll UnequipItem UnequipItemSlot UnequipSpell Unlock UnLockOwnedDoorsInCell UnMute UnPause UnregisterForAllCustomEvents UnregisterForAllEvents UnregisterForAllHitEvents UnregisterForAllMagicEffectApplyEvents UnregisterForAllMenuOpenCloseEvents UnregisterForAllRadiationDamageEvents UnregisterForAllRemoteEvents UnregisterForAllTrackedStatsEvents UnregisterForAnimationEvent UnregisterForCustomEvent UnregisterForDistanceEvents UnregisterForHitEvent UnregisterForLooksMenuEvent UnregisterForLOS UnregisterForMagicEffectApplyEvent UnregisterForMenuOpenCloseEvent UnregisterForPlayerSleep UnregisterForPlayerTeleport UnregisterForPlayerWait UnregisterForRadiationDamageEvent UnregisterForRemoteEvent UnregisterForTrackedStatsEvent UnregisterForTutorialEvent UnshowAsHelpMessage UpdateCurrentInstanceGlobal UsingGamepad Wait WaitFor3DLoad WaitForAnimationEvent WaitForWorkshopResourceRecalc WaitGameTime WaitMenuMode Warning WillIntimidateSucceed WornHasKeyword WouldBeStealing WouldRefuseCommand</Keywords> <Keywords name="Keywords5">OnAction OnActivate OnAliasInit OnAliasReset OnAliasShutdown OnAnimationEvent OnAnimationEventUnregistered OnBegin OnBeginState OnCellAttach OnCellDetach OnCellLoad OnChange OnClose OnCombatStateChanged OnCommandModeCompleteCommand OnCommandModeEnter OnCommandModeExit OnCommandModeGiveCommand OnCompanionDismiss OnConsciousnessStateChanged OnConsciousnessStateChanged( OnContainerChanged OnCripple OnDeath OnDeferredKill OnDestructionStageChanged OnDifficultyChanged OnDistanceGreaterThan OnDistanceLessThan OnDying OnEffectFinish OnEffectStart OnEnd OnEndState OnEnterBleedout OnEnterSneaking OnEntryRun OnEquipped OnEscortWaitStart OnEscortWaitStop OnExitFurniture OnGainLOS OnGetUp OnGrab OnHit OnHolotapeChatter OnHolotapePlay OnInit OnItemAdded OnItemEquipped OnItemRemoved OnItemUnequipped OnKill OnLoad OnLocationChange OnLocationCleared OnLocationLoaded OnLockStateChanged OnLooksMenuEvent OnLostLOS OnMagicEffectApply OnMenuItemRun OnMenuOpenCloseEvent OnOpen OnPackageChange OnPackageEnd OnPackageStart OnPartialCripple OnPhaseBegin OnPhaseEnd OnPickpocketFailed OnPipboyRadioDetection OnPlayerCreateRobot OnPlayerDialogueTarget OnPlayerEnterVertibird OnPlayerFallLongDistance OnPlayerFireWeapon OnPlayerHealTeammate OnPlayerLoadGame OnPlayerModArmorWeapon OnPlayerModRobot OnPlayerSleepStart OnPlayerSleepStop OnPlayerSwimming OnPlayerTeleport OnPlayerUseWorkBench OnPlayerWaitStart OnPlayerWaitStop OnPowerOff OnPowerOn OnQuestInit OnQuestShutdown OnRaceSwitchComplete OnRadiationDamage OnRead OnRelease OnReset OnSell OnSit OnSpeechChallengeAvailable 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 OnTranslationComplete OnTranslationFailed OnTrapHitStart OnTrapHitStop OnTriggerEnter OnTriggerLeave OnTutorialEvent OnUnequipped OnUnload OnWorkshopMode OnWorkshopNPCTransfer OnWorkshopObjectDestroyed OnWorkshopObjectGrabbed OnWorkshopObjectMoved OnWorkshopObjectPlaced OnWorkshopObjectRepaired</Keywords> <Keywords name="Keywords6">Actor ActorBase Armor ArmorAddon Cell Component ConstructibleObject DefaultObject EncounterZone EquipSlot F4SE FavoritesManager Form Game HeadPart Input InstanceData Location Math MatSwap MiscObject ObjectMod ObjectReference Perk ScriptObject UI Utility WaterType Weapon</Keywords> <Keywords name="Keywords7">AddSlotToMask AddTaggedForms ApplyMaterialSwap AttachWire CloseMenu CreateWire Exp Get GetAccuracyBonus GetActionPointCost GetAddAmmoList GetAdditionalRaces GetAllMods GetAmmo GetAmmoCapacity GetArmorAddons GetArmorHealth GetArmorRating GetAttackDamage GetAttackDelay GetBodyWeight GetCameraState GetConnectedObjects GetConnectPoints GetConstructibleComponents GetConsumeSpell GetContactSpell GetCreatedCount GetCreatedObject GetCritChargeBonus GetCritMultiplier GetCurrentConsoleRef GetDamageTypes GetDefaultObject GetDescription GetDisplayName GetEmbeddedMod GetEnchantment GetEnchantmentValue GetEncounterZone GetEquipType GetExtraParts GetFavorites GetFlag GetFurnitureReference GetGoldValue GetHeadParts GetIconPath GetInstalledLightPlugins GetInstalledPlugins GetInstanceOwner GetInventoryItems GetInventoryWeight GetKeywords GetLevel GetLocation GetLooseMod GetMappedControl GetMappedKey GetMaskForSlot GetMaterialSwap GetMaxLevel GetMaxRange GetMaxRank GetMessageIconPath GetMinLevel GetMinRange GetMiscComponents GetName GetNextPerk GetNumProjectiles GetNumRanks GetOutfit GetOutOfRangeMultiplier GetParent GetParents GetPluginDependencies GetPluginVersion GetPriority GetProjectileOverride GetPropertyModifiers GetRaceForm GetRank GetReach GetReloadSpeed GetRemapData GetResist GetScrapItem GetScrapScalar GetScriptVersionRelease GetSightedTransition GetSkill GetSlotMask GetSpeed GetStagger GetSWFPath GetTaggedForms GetTemplate GetType GetValidRaces GetVersion GetVersionBeta GetVersionMinor GetVersionRelease GetWaterType GetWeight GetWorkbenchKeyword GetWorldModelPath GetWornItem GetWornItemMods HasExtraPart HasHeadPartOverlays HasWorldModel Invoke IsEligible IsExtraPart IsHidden IsMenuOpen IsMenuRegistered IsNeverResetable IsPlayable IsTaggedForm IsWorkshop LeftShift Load Log LogicalAnd LogicalNot LogicalOr LogicalXor OpenMenu QueueUpdate RegisterBasicCustomMenu RegisterCustomMenu RegisterForCameraState RegisterForControl RegisterForExternalEvent RegisterForFurnitureEvent RegisterForKey RemoveSlotFromMask RemoveTaggedForms RightShift Scrap Set SetAccuracyBonus SetActionPointCost SetAddAmmoList SetAmmo SetAmmoCapacity SetArmorHealth SetArmorRating SetAttackDamage SetAttackDelay SetBodyWeight SetConstructibleComponents SetConsumeSpell SetContactSpell SetCreatedCount SetCreatedObject SetCritChargeBonus SetCritMultiplier SetDamageTypes SetEmbeddedMod SetEnchantment SetEnchantmentValue SetEncounterZone SetEquipType SetFavorites SetFlag SetGameSettingBool SetGameSettingFloat SetGameSettingInt SetGameSettingString SetGoldValue SetIconPath SetKeywords SetLocation SetMaterialSwap SetMaxLevel SetMaxRange SetMaxRank SetMessageIconPath SetMinLevel SetMinRange SetMiscComponents SetName SetNeverResetable SetNumProjectiles SetOutOfRangeMultiplier SetParent SetPriority SetProjectileOverride SetRaceForm SetRank SetReach SetReloadSpeed SetRemapData SetResist SetScrapItem SetScrapScalar SetSightedTransition SetSkill SetSlotMask SetSpeed SetStagger SetValidRaces SetWeight SetWorkbenchKeyword SetWorkshop SetWorldModelPath TransmitConnectedPower UnregisterForCameraState UnregisterForControl UnregisterForExternalEvent UnregisterForFurnitureEvent UnregisterForKey UpdateThirdPerson VarArrayToVar VarToVarArray</Keywords> <Keywords name="Keywords8">OnControlDown OnControlUp OnFurnitureEvent OnKeyDown OnKeyUp OnPlayerCameraState</Keywords> <Keywords name="Delimiters">00;/ 01 02/; 03; 04 05((EOL)) 06{ 07 08} 09" 10\ 11((" EOL)) 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="009000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="LINE COMMENTS" fgColor="009000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="NUMBERS" fgColor="FF9000" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" /> <WordsStyle name="KEYWORDS1" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" /> <WordsStyle name="KEYWORDS2" fgColor="0090FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" /> <WordsStyle name="KEYWORDS3" fgColor="0090FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" /> <WordsStyle name="KEYWORDS4" fgColor="9000FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" /> <WordsStyle name="KEYWORDS5" fgColor="9000FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" /> <WordsStyle name="KEYWORDS6" fgColor="0090FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" /> <WordsStyle name="KEYWORDS7" fgColor="9000FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" /> <WordsStyle name="KEYWORDS8" fgColor="9000FF" bgColor="FFFFFF" fontName="" fontStyle="1" nesting="0" /> <WordsStyle name="OPERATORS" fgColor="000000" 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="009000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS1" fgColor="009000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS2" fgColor="009000" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS3" fgColor="909090" bgColor="FFFFFF" fontName="" fontStyle="0" nesting="0" /> <WordsStyle name="DELIMITERS4" fgColor="909090" 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>
- Open Notepad++
- Open the "User Defined Language" window via Language -> Define Your Language...
- Select "Import..."
- Select the XML file you created earlier.
- 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. "PapyrusFallout4" should be available near the bottom of the Language menu in Notepad++.
Compiling Debug from Notepad++Edit
- Open Notepad++
- Create a New File
- 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
- Save the file as:
C:\Program Files (x86)\Steam\SteamApps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_debug.bat
- Hit F5 (Run)
- Paste the Following into the Run Box:
"C:\Program Files (x86)\Steam\steamapps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_debug.bat" "$(FULL_CURRENT_PATH)"
- 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++Edit
- Open Notepad++
- Create a New File
- 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
- Save the file as:
C:\Program Files (x86)\Steam\SteamApps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_release.bat
- Hit F5 (Run)
- Paste the Following into the Run Box:
"C:\Program Files (x86)\Steam\steamapps\common\Fallout 4\Papyrus Compiler\NppScriptCompile_release.bat" "$(FULL_CURRENT_PATH)"
- 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.