-
Posts
15 -
Joined
-
Last visited
Nexus Mods Profile
About neocatzeo

neocatzeo's Achievements
-
Bethesda's New Verified Creator Program
neocatzeo replied to Pickysaurus's topic in Skyrim's Skyrim SE
You're not likely to have an "Immersive Armors" mod at all, since each contributor would be seeking to get as many sales as possible of their own mod. -
Bethesda's New Verified Creator Program
neocatzeo replied to Pickysaurus's topic in Skyrim's Skyrim SE
Arguments against this sort of thing: - It erodes and undermines the communities ability to make mods. Right now many mods are made in an atmosphere of cooperation, by requiring other mods, updating other mods, borrowing, getting help from other mod makers. That will be greatly diminished if people feel they are in competition, and trying to protect their mod sales. That crazy thing you figured out no longer gets shared to help others, it becomes your patented thing - buy now. - Adding DRM to mods is going to make things worse. Forget making any compatibility patches for paid mods. - Many of the victims here will be the unseen mods that never get made. Nobody complains about these because they are out of sight and out of mind. People will be less inclined to help people in a competitive atmosphere, you ability to mod things will diminish if there is DRM. That mod that borrowed parts, and required a mod, and needed help to make is going to be less likely to happen now. - This idea that mod makers deserve to be paid. The cost of the mod is not the only price to be paid. The cost will also be a diminished community as the paywalls go up. -
Solution: I was having problems with OnHit(), OnPlayerSleepStop(), OnPlayerSwimming() events double triggering. I thought that this was a problem with me updating the scripts gradually as I was progressing through the game. While I did have some success removing the ESP and PEX script files, and resaving the savegame to try and clear out the quest/script data, that was not the cause of the problem. In the creation kit I created a "Start Enabled/Run Once" quest with a quest alias pointing to the player. It had a script attached which handles the events I just mentioned. At one point in the editor I noticed that the quest alias was missing so I had to add it back in a second time. I thought this was an editor quirk. It wasn't. I was looking at the wrong quest and ended up making 2 quest aliases. This caused the event triggering to double up. That explains why no one else on earth has this problem.
-
I have been working on a mod that makes hostile mobs hunt the player at various times across the Outdoor world. I have been adding hidden quests with scripts and updating existing scripts gradually as I play. I am starting to notice a quest script that handles player events OnHit() and OnPlayerSwimming() and OnPlayerSleepStop() is triggering twice each time it should only trigger once. It's as if two copies of the script are running. I need help finding out how to avoid this and to correct the existing problem. Disable the mod, resave the game, then re-enable the mod?
-
I am posting so that this comes up in search results since I was searching for information about this and there was next to nothing and some information was wrong. I apologize it this seems redundant. Just doing my good deed. Fallout 4 Script Events - Registering The official wiki explains some information about events: https://www.creationkit.com/fallout4/index.php?title=Category:Events What it doesn't say is that some events need to be registered inside an OnInit() event (or some function/event that runs) first and other events don't. OnHit() for example requires RegisterForHitEvent() - Critical information missing from the wiki page. https://www.creationkit.com/fallout4/index.php?title=RegisterForHitEvent_-_ScriptObject OnPlayerSleepStart() and OnPlayerSleepStop() require RegisterForPlayerSleep() - Actually mentioned in the wiki page. https://www.creationkit.com/fallout4/index.php?title=OnPlayerSleepStart_-_ScriptObject These registrations are one time only. Registering again is required if you want the event to happen again. So for example in the OnHit() event you can add in RegisterForHitEvent() to make it possible for future OnHit() events to happen. Fallout 4 Script Events - Registering Not Needed I had to dig for these details but eventually figured things out (experienced with creating Skyrim mods). What prompted me to post this was OnPlayerSwimming(). How do I register this event? There's no register function/command. The wiki says nothing. There's very little info online. https://www.creationkit.com/fallout4/index.php?title=OnPlayerSwimming_-_Actor OnPlayerSwimming() is not registered. Instead you can only use it in a script attached to the player. For example a Quest Alias pointing to the player, with the script added to the Quest Alias. It then just fires when you get in the water (twice in fact, how odd). OnEnterSneaking() is the same way. There's probably a ton of events not even player or actor related that do and do not need to be registered. Bad Information Game.GetPlayer().isSwimming() does not exist in Fallout 4. Some sites say you can do this. They're wrong that's Skyrim. Feel free to add or correct any details. Hopefully people will see this in their search results when looking up these commands. They are not well documented.
-
Custom Quest Variables Won't Save
neocatzeo replied to neocatzeo's topic in Oblivion's Mod troubleshooting
Thanks for the details. Also the bits about Skyrim. That's good to know for when I start my next play through. Their scripting languange is like some kind of half implemented programming language. -
Custom Quest Variables Won't Save
neocatzeo replied to neocatzeo's topic in Oblivion's Mod troubleshooting
Yes the issue very much seemed to be some kind of glitch. My impression is that the savegame creates a profile or a structure for the quest variables when the quest is started. Then even though the script can change, it doesn't update the data structure to store new variables or changes in data types. I was using INT as a data type since a lot of custom scripts I looked over appear to use it. I wasn't aware it was a non standard data type. I have OBSE installed and have been working with mods that make use of it. So I am aware I probably assume some functionality that isn't completely supported. This particular script is part of a larger custom mod I made which tracks damage on a magical sword and the game will spawn mobs of creatures into the game world to hunt down the player depending on the damage level. There's a few other versions of this script running which handle different mobs. And there's a separate master quest+script controlling these scripts, since these scripts just manage the mobs depending on their "MyState". I reverse engineered part of the "Break Undies" mod (most pointlessly pervy name ever) so that I can have visual damage on the weapon, track damage, and interface it with my custom scripts. (English programming + Japanese comments = nightmare) This is just a thing to make my latest stab at this game a little more interesting. Anyway I didn't want to be that guy that doesn't provide a followup after getting help. Thanks again. -
Custom Quest Variables Won't Save
neocatzeo replied to neocatzeo's topic in Oblivion's Mod troubleshooting
Changing the variable names did not work as I mentioned before. However, unloading the ESP, saving, enabling ESP, did work. Thanks that cleared everything up. Everything works now. Thanks a lot. -
Custom Quest Variables Won't Save
neocatzeo replied to neocatzeo's topic in Oblivion's Mod troubleshooting
No all of my quests are setup with "Start Game Enabled" and "Allow repeated stages" checked. There is no code to manually start or stop them. I originally wrote everything thinking I could control things with Quest Stages. Big mistake. "Allow repeated stages" is a lie. Only the highest ever attained stage is reported and it NEVER resets. Through all of this the actual are persistent and never reset. So since these stages need to go up and down to control things, "MyStage" variable was rewritten in to handle this functionality since actual quest stages don't ever go down. The big problem with this has been that variables aren't being saved. Short is now used on all of the variables. Only in some cases did switching miraculously cause the cariable to retain its value after completely reloading. The fact the game has different behaviour from reloading "ingame" from reloading "from main menu" is really sketchy. At lot of this seems really inconsistent. -
Custom Quest Variables Won't Save
neocatzeo replied to neocatzeo's topic in Oblivion's Mod troubleshooting
Thanks for the reply. I changed "int" to "short" as you suggested. It did work for this script, but didn't fix the problem for other quest scripts I have. The Finder didnt find anything other than where I used "MyStage". In other quest scripts where the problem remains, quest variables will retain their values if I save and then reload. If I return to menu or restart the game their quest variables are zeroed. For Example, one quest script has "Day" as a variable that stores gamedayspassed plus a few days. It reads 82 in game. I save. I reload. "Day" is still 82. I reload from Main Menu. "Day" is now 0. Nowhere is it ever set to 0. And this is a quest script. So none of this items re-equipping / resetting scripts stuff happening. I tried changing "Day" to "oDay" to get a unique variable nope no effect. Changed "Day" to short which solved the problem for the other script I posted, nope no effect. Didn't solve the problem. -
I'm having a problem with a custom quest script I wrote for a custom quest. The quest variables for this quest appear to be reset to 0 when loading the game. If I save and quick load they dont appear to reset to 0. This is a quest that controlls a group of monsters that will spawn in Tamriel at a specific location and traverse the game world to the player when the player is in the open world. The MyStage variable controls their overall behavior whether it be resetting the creatures, moving them to a temporary cell for storage, pausing them, or activating them. The problem is when I freshly load the game this scripts MyStage variable never retains it's old value. It's reset to 0 and these monsters hunting the player always get reset as a result. scn aaaHuntMobQuest01Script Float fQuestDelayTime int MyStage Begin GameMode Set fQuestDelayTime to 5 ;MyState ;0 - move everything to testzone and refresh and turn off finding set to 10 ;10 - deactivated and ready ;20 - Activation - move to world marker set to 30 ;30 - finding active ;40 - finding paused ;Disabling State If (MyStage == 0) ;Move group to test zone aaaHuntMobMother.MoveTo aaaSinHuntTestMarker aaaHuntMobOgre1.MoveTo aaaSinHuntTestMarker aaaHuntMobOgre2.MoveTo aaaSinHuntTestMarker aaaHuntMobOgre3.MoveTo aaaSinHuntTestMarker aaaHuntMobOgre4.MoveTo aaaSinHuntTestMarker ;disable any combat aaaHuntMobMother.StopCombat aaaHuntMobOgre1.StopCombat aaaHuntMobOgre2.StopCombat aaaHuntMobOgre3.StopCombat aaaHuntMobOgre4.StopCombat Set MyStage to 10 SetStage aaaHuntMobQuest 10 EndIf ;Activating State If (MyStage == 20) ;heal everyone - reset them aaaHuntMobMother.ResurrectActor 1 aaaHuntMobOgre1.ResurrectActor 1 aaaHuntMobOgre2.ResurrectActor 1 aaaHuntMobOgre3.ResurrectActor 1 aaaHuntMobOgre4.ResurrectActor 1 aaaHuntMobMother.Enable aaaHuntMobOgre1.Enable aaaHuntMobOgre2.Enable aaaHuntMobOgre3.Enable aaaHuntMobOgre4.Enable ;Move group to world marker aaaHuntMobMother.MoveTo MS12PalePassRuinsMarker aaaHuntMobOgre1.MoveTo MS12PalePassRuinsMarker aaaHuntMobOgre2.MoveTo MS12PalePassRuinsMarker aaaHuntMobOgre3.MoveTo MS12PalePassRuinsMarker aaaHuntMobOgre4.MoveTo MS12PalePassRuinsMarker ;disable any combat aaaHuntMobMother.StopCombat aaaHuntMobOgre1.StopCombat aaaHuntMobOgre2.StopCombat aaaHuntMobOgre3.StopCombat aaaHuntMobOgre4.StopCombat Set MyStage to 30 SetStage aaaHuntMobQuest 30 EndIf ;Pause Mob Hunting if player leaves the outdoor world. If (MyStage == 30) If ( Player.GetInWorldspace Tamriel == 0 ) Set MyStage to 40 SetStage aaaHuntMobQuest 40 EndIf EndIf ;Unpause Mob Hunting if player enters tamriel world space. If (MyStage == 40) If ( Player.GetInWorldspace Tamriel == 1 ) Set MyStage to 30 SetStage aaaHuntMobQuest 30 EndIf EndIf End ;<CSEBlock> ;<CSECaretPos> 138 </CSECaretPos> ;</CSEBlock> I don;t know what I need to do. Maybe offload the quest variables to global variables? Maybe there's something I missed?