sorry to leave this here, but it is related to my question does this papyrus function introduce any changes to poison and if so could it conflict to this mod here "colorful magic" "Colorful magic bosses"
Forest Arrows cause freezing at windhelm Talos shrine CC Boss fight with Spell knight Version 1.6.1170 SKSE 2.2.6 - Mind you i am not using forest bow just the weakness to poison and stamina damage on vanilla Dwarven bow. there was no crash log, it was just an endless freeze.
Hi there. I'm getting a CTD when trying to give potions/food to Faendal or some other followers, via Administer Potions to Friendly NPCs, which uses the function ANDR_PapyrusFunctions.CastPotion(PlayerRef, akBaseItem as Potion, SelfActor).
I'm using GTS with over 1700 mods, so can't say exactly what's conflicting.
Any potion or food. I suspect it's something with the Player character, maybe some perk or magic effect as the PlayerRef is used on that function. I'll keep investigating.
Kinda weird bug, but after updating this mod it made my campfires disappear. I use campfires AIO and diverse campfires, but loading this mod before Campfires AIO made them reappear. Could you advise if i was doing something wrong pls?
yes 1.5.0 doesn't crash. i don't exactly know why but staying in this version seems normal. my log said this in the first line: Unhandled exception "EXCEPTION_ACCESS_VIOLATION" at 0x7FFD10550873 DbSkseFunctions.dll+00A0873 call [rax+0x190] Exception Flags: 0x00000000 Number of Parameters: 2 Access Violation: Tried to read memory at 0x000000000190
Please, do not change name of the mod file, because I am updating the mod always, and in this way, you are giving me, and other modders, hard work. Because I must manually copy-paste the right mod name, or else this will be recognized as tottaly new mod.
Ok so I am having an issue where this mod works perfectly in VR, except they don't get up when healed ONLY if they are currently following me, I am using EFF for follower management, which APPEARS to use vanilla follower faction but I will take a closer look. NON Following NPCs go down and get up when revived like normal
Just a heads up in case no one else has run into this yet.
After updating PapyrusUtil SE and Mantella, Vortex now coughs out a warning that this mod is redundant and needs removal. Since this mod is a hard requirement for Administer Potions and Poisons to Friendly NPCs I was reluctant to do so, but allowed Vortex to so anyways. Now am off to see if Administer Potions and Poisons to Friendly NPCs still works or not... and ideally... without any CTDs.
Vortex is wrong. You are correct, it still is a requirement. I don't know why Vortex would give this message. Could you show me the warning? I would heavily recommend reinstalling this mod, for Administer Potions and Poisons to Friendly NPCs to work.
Bizarre. The error message didn't match the actual problem. Well at least it is fixed. The Reinstall drop down from within Vortex worked perfectly. No more messages claiming the mod is redundant. Thank you
Hi! Just updated to v1170 from Steam to check things against GoG v659. This and a number of other SKSE plugins are logging to the wrong folder. Can you fix your mod?
hahaha. Me either. Has to be in the dll somewhere. Might need to be explicit where you enable your log function/feature. Funny, with GoG v659 I always had two folders with logs but never this Skyrim.ini
This is still driving me crazy but since v659 seems to be very niche I let it go after a drink or three. hahahaha. Skyrim Special Edition and Skyrim Special Edition GOG
If you can figure out why it applies to a number of different modders. I posted on every mod page that was not locked with similar postings. =)
I love your mods too! I hope you can figure it out.
This mod was made with the help of certain authors that have quit modding. So unless they came back, I won't be able to fix this. If anyone else wants to attempt this, feel free.
I looked again at your => ANDR_PapyrusFunctions.psc Nothing in there for logging controls. It is in your provided DLL for certain that SKSE is using to load up what you are doing. No source on your DLL either. In any case you should fix it somehow. Maybe as a future option you can have the coder make a companion ini file with config options in it.
I ran into some strange things in v1170 today too with other SKSE mods and such while play testing. Going back to stable and reliable v659. Love your mods so taking what I can with. =)
Is there any way you can do your great mods without the DLL like the olds ways? Your stuff is always very robust in how you think and do things. I promise I am not being pesty but I do my own mods (a couple I might go public with but usually no public mods) and I have never needed a DLL. Sure they are convenient because no load order but they have a drawback as well.
Just curious in a little dialogue here. If not possible then not possible and anyone using many of these modern mods will have to deal with straggler folders appearing. =O =)
Looks like I can keep your very best ones and I have your older Administer so no need for the new one. The others don't have this as a requirement so I am a happy girl. =) *hugs* K.
Just a polite FYI on this since you actually had a dialogue about this and seem to care.
It is related to CommonLib and how it 'automates' the Log File Path. It seems your programmer who created your DLL did what is not supposed to be done is implicit references to other DLL from a DLL. Bad No No in any programming. (I am a Systems Engineer that has a few programmers in my team and I had to take some computer science courses (that was long ago). This is how I know.)
Posting by mooit & TKHBMVP Here is a reply from the SKSE team regarding issues with SAE 1.6.1170 and SKSE 2.2.6 see link
Thanks. I opened it. Super easy fix if you decide to keep using the DLL version. I know you stated you are/were dipping your toes into this. You could get support on the Step Forums and SKSE Discord. Up to you but here is where your DLL needs fixing.
plugin.cpp void SetupLog() { auto logsFolder = SKSE::log::log_directory(); if (!logsFolder) SKSE::stl::report_and_fail("SKSE log_directory not provided, logs disabled."); auto pluginName = SKSE::PluginDeclaration::GetSingleton()->GetName(); auto logFilePath = *logsFolder / std::format("{}.log", pluginName); auto fileLoggerPtr = std::make_shared<spdlog::sinks::basic_file_sink_mt>(logFilePath.string(), true); auto loggerPtr = std::make_shared<spdlog::logger>("log", std::move(fileLoggerPtr)); spdlog::set_default_logger(std::move(loggerPtr)); spdlog::set_level(spdlog::level::trace); spdlog::flush_on(spdlog::level::trace); }
To refine it for non-coders: You can easily follow along by opening the file above in Notepad++ (you need VSCode to compile it for changes) This is a called function within this plugin. (Double Click the SetUpLog) You will see that it is called from this at the bottom.
It means that when SKSE is initialized it will run the void function above. It pulls the directory from
auto logsFolder = SKSE::log::log_directory(); if (!logsFolder) SKSE::stl::report_and_fail("SKSE log_directory not provided, logs disabled."); auto pluginName = SKSE::PluginDeclaration::GetSingleton()->GetName(); auto logFilePath = *logsFolder / std::format("{}.log", pluginName);
All you need to do to fix this on your end is provide an INI config file as a companion to your DLL. Add a simple Bool (True or False) to enable Log. You will need some SKSE help with making sure that your DLL knows about your INI file but there are many around Nexusmods who knows how (MaskedRPGFan is obviously one of them. Make contact. A very nice person.)
Something like this: ANDR_PapyrusFunctions.ini ;Allow SKSE Logs to be created. ;Note: There is a current bug with v1170 that creates the Logs in the incorrect location via CommonLib. Leave to False until this is resolved. ANDR_PF_Logging = False SKSEPluginLoad(const SKSE::LoadInterface* skse) { SKSE::Init(skse); if (ANDR_PF_Logging) { SetupLog(); } SKSE::GetPapyrusInterface()->Register(PapyrusFunctions); return true; }
As an extension you might already be thinking you could set up configuration variable to set your game globals. ;) This would be in lieu of setting them from papyrus scripts and console codes. You could even make this all encompassing for all your mods because you use a lot of in game console configs to change and set things for the player. You can do all of that in this INI file. It would be loaded at every game start. Super handy for players and yourself.
I have done 90% of the effort. Up to you to decide if you will stick to this DLL method and use an INI or do it the Old Way.
I'll see if I can do it. The problem is that I have an old version of the SKSE compiling stuff. I followed MrowrPurr's tutorials on how to do it. But she quit modding and as such I have no means to do this SKSE stuff anymore. I have no idea if my setup needs updating and I'm even unsure on how to do that.
Edit: I think I understand. Is it necessary to update VSCode? I'm using a version from 2-3 years ago. However, I fear that updating will mess up all the settings, which have been set up by MrowrPurr. In addition, it runs off of CommonLib NG, made by CharmedBaryon, whom also has quit modding, so I don't know if it's still usable.
Sure. You could simply comment that out then compile the VSCode project. // SetupLog();
Although I did not open the project in VSCode if you used the latest version it should be okay. Up at the top are the #include files so you may need the CommonLib C++ files too but I don't recognize any of those names. VSCode will tell you right away if it will compile or not. If not it will squiggle line where the issues are. I am 99.99% sure if you have any issues compiling it will be the 3 #includes at the top that are likely from CommonLib.
It is nice that you are digging into this. If you do learn this and have good source control of your DLL it is super powerful for you. =) You make a lot of great mods and all of them can benefit from this study/work.
Hey, was just wondering if you know if this is compatible with VR? Dragon War has DLL ported to VR, but Dragon War also requires some of your papyrus functions. Thank you!
100 comments
sorry to leave this here, but it is related to my question does this papyrus function introduce any changes to poison and if so could it conflict to this mod here "colorful magic" "Colorful magic bosses"
Forest Arrows cause freezing at windhelm Talos shrine CC Boss fight with Spell knight
Version 1.6.1170 SKSE 2.2.6 - Mind you i am not using forest bow just the weakness to poison and stamina damage on vanilla Dwarven bow. there was no crash log, it was just an endless freeze.
Fixes used: SSE Engine Fixes, SSE Bug fixes, Scrambled Bug fixes.
Any advice on settings would be helpful. Thanks again and sorry if this is unrelated to this.
I'm using GTS with over 1700 mods, so can't say exactly what's conflicting.
Pastebing log
mod before Campfires AIO made them reappear. Could you advise if i was
doing something wrong pls?
I take it that 1.5.0 doesn't crash on your setup?
Do you have any mods dependant on this resource?
Exception Flags: 0x00000000
Number of Parameters: 2
Access Violation: Tried to read memory at 0x000000000190
Also, if you make a test profile of a barebones load order, with just this resource, does it still crash?
Thank you for understanding, friend.
After updating PapyrusUtil SE and Mantella, Vortex now coughs out a warning that this mod is redundant and needs removal. Since this mod is a hard requirement for Administer Potions and Poisons to Friendly NPCs I was reluctant to do so, but allowed Vortex to so anyways. Now am off to see if Administer Potions and Poisons to Friendly NPCs still works or not... and ideally... without any CTDs.
Thank you
Wrong location:
Documents\My Games\Skyrim.INI\SKSE
Should be:
Documents\My Games\Skyrim Special Edition\SKSE
Log:
<Empty>
Related culprits:
Only one from your stuff. =)
Thanks.
Funny, with GoG v659 I always had two folders with logs but never this Skyrim.ini
This is still driving me crazy but since v659 seems to be very niche I let it go after a drink or three. hahahaha.
Skyrim Special Edition
and
Skyrim Special Edition GOG
If you can figure out why it applies to a number of different modders. I posted on every mod page that was not locked with similar postings. =)
I love your mods too! I hope you can figure it out.
Nothing in there for logging controls. It is in your provided DLL for certain that SKSE is using to load up what you are doing. No source on your DLL either. In any case you should fix it somehow. Maybe as a future option you can have the coder make a companion ini file with config options in it.
I ran into some strange things in v1170 today too with other SKSE mods and such while play testing. Going back to stable and reliable v659. Love your mods so taking what I can with. =)
Good luck on this one!
Just curious in a little dialogue here. If not possible then not possible and anyone using many of these modern mods will have to deal with straggler folders appearing. =O =)
Looks like I can keep your very best ones and I have your older Administer so no need for the new one. The others don't have this as a requirement so I am a happy girl. =) *hugs* K.
It is related to CommonLib and how it 'automates' the Log File Path. It seems your programmer who created your DLL did what is not supposed to be done is implicit references to other DLL from a DLL. Bad No No in any programming.
(I am a Systems Engineer that has a few programmers in my team and I had to take some computer science courses (that was long ago). This is how I know.)
Posting by mooit & TKHBMVP
Here is a reply from the SKSE team regarding issues with SAE 1.6.1170 and SKSE 2.2.6 see link
SSE 1.6.1170 or MO2 Now Making Skyrim.INI Folder? - General Skyrim SE Support - Step Mods | Change The Game
plugin.cpp
void SetupLog() {
auto logsFolder = SKSE::log::log_directory();
if (!logsFolder) SKSE::stl::report_and_fail("SKSE log_directory not provided, logs disabled.");
auto pluginName = SKSE::PluginDeclaration::GetSingleton()->GetName();
auto logFilePath = *logsFolder / std::format("{}.log", pluginName);
auto fileLoggerPtr = std::make_shared<spdlog::sinks::basic_file_sink_mt>(logFilePath.string(), true);
auto loggerPtr = std::make_shared<spdlog::logger>("log", std::move(fileLoggerPtr));
spdlog::set_default_logger(std::move(loggerPtr));
spdlog::set_level(spdlog::level::trace);
spdlog::flush_on(spdlog::level::trace);
}
To refine it for non-coders: You can easily follow along by opening the file above in Notepad++ (you need VSCode to compile it for changes)
This is a called function within this plugin. (Double Click the SetUpLog) You will see that it is called from this at the bottom.
SKSEPluginLoad(const SKSE::LoadInterface* skse) {
SKSE::Init(skse);
SetupLog();
SKSE::GetPapyrusInterface()->Register(PapyrusFunctions);
return true;
}
It means that when SKSE is initialized it will run the void function above. It pulls the directory from
auto logsFolder = SKSE::log::log_directory();
if (!logsFolder) SKSE::stl::report_and_fail("SKSE log_directory not provided, logs disabled.");
auto pluginName = SKSE::PluginDeclaration::GetSingleton()->GetName();
auto logFilePath = *logsFolder / std::format("{}.log", pluginName);
All you need to do to fix this on your end is provide an INI config file as a companion to your DLL. Add a simple Bool (True or False) to enable Log. You will need some SKSE help with making sure that your DLL knows about your INI file but there are many around Nexusmods who knows how (MaskedRPGFan is obviously one of them. Make contact. A very nice person.)
Something like this:
ANDR_PapyrusFunctions.ini
;Allow SKSE Logs to be created.
;Note: There is a current bug with v1170 that creates the Logs in the incorrect location via CommonLib. Leave to False until this is resolved.
ANDR_PF_Logging = False
SKSEPluginLoad(const SKSE::LoadInterface* skse) {
SKSE::Init(skse);
if (ANDR_PF_Logging)
{
SetupLog();
}
SKSE::GetPapyrusInterface()->Register(PapyrusFunctions);
return true;
}
As an extension you might already be thinking you could set up configuration variable to set your game globals. ;) This would be in lieu of setting them from papyrus scripts and console codes. You could even make this all encompassing for all your mods because you use a lot of in game console configs to change and set things for the player. You can do all of that in this INI file. It would be loaded at every game start. Super handy for players and yourself.
I have done 90% of the effort. Up to you to decide if you will stick to this DLL method and use an INI or do it the Old Way.
Just giving you some thoughts. Good luck!
Edit: I think I understand. Is it necessary to update VSCode? I'm using a version from 2-3 years ago. However, I fear that updating will mess up all the settings, which have been set up by MrowrPurr. In addition, it runs off of CommonLib NG, made by CharmedBaryon, whom also has quit modding, so I don't know if it's still usable.
SetupLog();
to// SetupLog();
Because I have no clue whatsoever how to link an INI file.// SetupLog();
Although I did not open the project in VSCode if you used the latest version it should be okay. Up at the top are the #include files so you may need the CommonLib C++ files too but I don't recognize any of those names. VSCode will tell you right away if it will compile or not. If not it will squiggle line where the issues are. I am 99.99% sure if you have any issues compiling it will be the 3 #includes at the top that are likely from CommonLib.
It is nice that you are digging into this. If you do learn this and have good source control of your DLL it is super powerful for you. =) You make a lot of great mods and all of them can benefit from this study/work.
Best Wishes! *hugs* Krixa
Anyways, I've uploaded a file that should have logging disabled. Let me know if it works for you.
plugin C:\Steam\steamapps\common\SkyrimVR\Data\SKSE\Plugins\\ANDR_PapyrusFunctions.dll (00000001 ANDR_PapyrusFunctions 00000010) loaded correctly