Jump to content

scrivener07

Premium Member
  • Posts

    1416
  • Joined

  • Last visited

Everything posted by scrivener07

  1. No ads is a great incentive to turn content consumers into content producers.
  2. In response to post #72613223. A topshelf modder, has horses, and an aircraft pilot! Your a very interesting person. Thanks for sharing your project. The quality is truly an inspiration.
  3. Great interview! Thanks for sharing technical details and the project history. I loved it.
  4. Hey CDante, great interview. I love your work. Your an author I look up to! Thanks for the shoutout to the xEdit team as well.
  5. Also, `var` is not a valid type in Skyrim. Thats a Fallout 4 language addition.
  6. If you use the SKSE scripting library then custom events with parameters are possible. https://www.creationkit.com/index.php?title=ModEvent_Script SKSE is for PC only so its usefulness depends on your project requirements.
  7. Thanks for everything you have done @expired. Your the best!
  8. The event is only sent once for every registration. Call start timer in the body of the OnTimer too. int MyTimerInterval = 10 const int MyTimerID = 999 const Event OnInit() StartTimer(MyTimerInterval, MyTimerID) EndEvent Event OnTimer(int aiTimerID) If (aiTimerID == MyTimerID) StartTimer(MyTimerInterval, MyTimerID) ; ask for another one, indefinitly EndIf EndEvent Most scripts like this should also consider a terminating condition but most objects you would attach to will automatically cancel the timer when appropriate. For example, a quest that is stopped will also cancel any timers on scripts which belong to it.
  9. I have no idea why your filled aliases are clearing themselves but I do know that a quest will not start unless all the aliases are filled. No empty aliases are allowed in order to start a quest. You must flag the alias as Optional to allow starting with an empty alias. Its not quite an answer but I hope it gives you some clues.
  10. Texas has a correct answer and SKK50 has some wise insights.
  11. I dont know but I can point you too the F4SE reddit or discord server. Sorry I cant be more helpful than that. https://www.reddit.com/r/f4se/ https://discord.gg/ybWkUvb/
  12. Its what Carreau said. One thing I can add is that a script property will autofill is the property name matches the EditorID. If you have an EditorID that starts with a number but you still want it to autofill, then prefix your property name with a "p" like "p10mm".
  13. I dont think you would need to loop at all for something like this. I slightly re-wrote it how I would have done. I took out the loop and added a few more debug messages. ScriptName SlaverTopicInfo extends TopicInfo Actor Player ; Events ;--------------------------------------------- Event OnInit() Player = Game.GetPlayer() EndEvent Event OnEnd(ObjectReference akSpeakerRef, bool abHasBeenSaid) Actor speaker = akSpeakerRef as Actor If (speaker) If (Enslave(speaker)) Debug.MessageBox("Enslaved\n" + speaker) Else Debug.MessageBox("Could not enslave " + speaker) EndIf Else Debug.MessageBox("The speaker was none or not of the Actor type.") EndIf EndEvent ; Functions ;--------------------------------------------- bool Function Enslave(Actor speaker) If (Player.GetItemCount(SlaveCollar) > 0) If (speaker.IsEquipped(SlaveCollar) == false) Player.RemoveItem(SlaveCollar, 1) speaker.EquipItem(SlaveCollar, true) return true Else Debug.MessageBox("The speaker already has a slave collar equipped.") return false EndIf Else Debug.MessageBox("The player does not have a slave collar in their inventory.") return false EndIf EndFunction ; Properties ;--------------------------------------------- Group Properties Armor Property SlaveCollar Auto Const Mandatory EndGroup
  14. reg2k is a wizard! The amount of pitfalls and oddities involved with adding new UI stuff is countless. If your serious/stubborn enough to do all the footwork required I can share what I know about the UI and holotapes. Im not an expert like like reg2k, neanka, or expired but Ive beaten my head against it long enough to have figured a few things out. There are not enough mods that take advantage of the UI because of the barrier to entry. My contact info is on my nexus profile.
  15. Yes. The information from Werr92 is spot on. Here is also a living, breathing, demonstration of an AI controlled player. https://www.nexusmods.com/skyrim/mods/27738/ Check the comment section for more tid-bits of info.
  16. With version 0.06.02 the psc papyrus source files included with F4SE are packaged in this directory .\Data\Scripts\Source\ .. psc files .. The psc files need to be located at least one folder level deeper into the source folder. For the INI settings you posted above, move the psc files to this directory. .\Data\Scripts\Source\F4SE Your papyrus source needs to pass a string value to SetGameSettingFloat and also prefix with the name of the script that the functions belongs to. Scriptname JumpPower extends ObjectReference string fJumpHeightMin = "fJumpHeightMin" const Event OnEquipped(Actor akActor) Game.SetGameSettingFloat(fJumpHeightMin, 152.0) EndEvent Event OnUnequipped(Actor akActor) Game.SetGameSettingFloat(fJumpHeightMin, 76.0) EndEvent You can also import the game script instead of prefixing if that is your preference. Scriptname JumpPower extends ObjectReference import Game string fJumpHeightMin = "fJumpHeightMin" const Event OnEquipped(Actor akActor) SetGameSettingFloat(fJumpHeightMin, 152.0) EndEvent Event OnUnequipped(Actor akActor) SetGameSettingFloat(fJumpHeightMin, 76.0) EndEvent
  17. Thanks this post helped me. Finding that button was surprisingly difficult.
  18. Check this post out about correctly adding the dlc to your script import settings. You have to tell the CK where to look for DLC scripts. https://forums.nexusmods.com/index.php?/topic/3370945-wipz-fallout-4-script-extender-f4se/?p=53204398
  19. Did you make sure you have the F4SE scripts in the compiler import folder? Or you have to add them. The default settings for CK don't tell it to compile using them. My CreationKitCustom.ini line looks like this [Papyrus] sAdditionalImports = "$(source);.\Data\Scripts\Source\Base;.\Data\Scripts\Source\DLC01;.\Data\Scripts\Source\DLC02;.\Data\Scripts\Source\DLC03;.\Data\Scripts\Source\DLC04;.\Data\Scripts\Source\DLC05;.\Data\Scripts\Source\DLC06;.\Data\Scripts\Source\F4SE" I cannot find a citation but if I recall correctly the `sAdditionalImport` list has a sort of load order to it. Imports on the left will be allowed to override imports on the right. This one imports the base scripts first, then imports the F4SE scripts which are overriding base scripts. sAdditionalImports = "$(source);.\Data\Scripts\Source\F4SE;.\Data\Scripts\Source\Base"This next one imports the F4SE scripts first. then imports the base scripts which are overriding F4SE scripts. If you attempt to compile a script using an F4SE function like this then it will appear to the compiler that F4SE does not exist. This is because the base import has overridden them. sAdditionalImports = "$(source);.\Data\Scripts\Source\Base;.\Data\Scripts\Source\F4SE"See also the compiler reference. https://www.creationkit.com/fallout4/index.php?title=Papyrus_Compiler_Reference
  20. A const or readonly variable is a good way to fake an enum, just like deadbeeftffn said. Its not at all hacky.
  21. Enable Loose Files https://www.creationkit.com/fallout4/index.php?title=Enable_Loose_Files See Also https://www.creationkit.com/fallout4/index.php?title=Initialization_File
×
×
  • Create New...