Well, I took a break, lets see how long I hang around...
Ok first lets see what is going on with this stupid thing.
I am having a strange problem when I run Relinker, after pressing <Enter> for MO's mods folder path, this comes up:
Alright, let's get started.
First, search the Mods folder for merged plugins.
File "<string>", line244, in <module>
<class 'OSError'>: [Errno 22] Invalid argument: 'D:\\The Elder Scrolls\\Skyrim\\Mod Organizer\\profiles\\"Skyrim SRLE; Legacy of the Dragonborn"\\modlist.txt'
Press Enter to exit...
The path for is correct. When I launch TESEdit, LOOT, WryeBash, or Merge Plugins Standalone from Mod Organizer, they have my load order (which relies on modlist.txt) correct. All those apps work fine too! A google search of "class 'OSError'>: [Errno 22] Invalid argument:" turns up results relating to Python. What could be the issue?
Yes, the python results are appropriate since this "application" is a wrapper for a python script. Taking a first look and I see a semicolon in the name, is that supposed to be there?
As for minty lightning mod, who ever wrote the script used some char codes that don't exist in the encoding that skyrim uses or UTF-8.
I don't even know what to do about it and I don't have the running knowledge on how to go about fixing it.
Does Relinker support non english Skyrim?
I have "unicod decoder error" with non english install (game and mods with russian translate) of SRLE LOTD REQTIFIED with version 40 and version 30 of Relinker. Only version 44 goes fine through the whole process but game ctd on startup. Also i have exact same install on english version of Skyrim with all mods on english, and Relinker works fine (v40).
I think i will just copy relinker output files from english game install to russian and see what will happen.
File IO is a pain, I remember ganda spending too much time on this.
I don't know what russian languages change.
EDIT: So, Ganda deleted the github way back when and now I dont have the history or what he changed from v40->v44. If my memory serves correctly, I believe he was just trying to mess with system encodings. I believe, I know what is wrong with the minty script but I need to develop a testing environment.
EDIT2: If someone knows a way to extend this to non-vfs systems, let me know, I may be interesting in extending it.
Here is the current process:
Looks for merge maps in MO's mod list (by priority),
processes these maps into dictionaries,
extracts all active bsa's into a temporary directory,
copies all loose scripts into that directory, override files from the bsa's,
decompiles any compiled scripts (.pex),
uses the merge maps to replace original plugin references (both plugin name and formids) with new references from the merge,
recompiles the scripts and
copies them to a new mod folder in MO, "Relinker Scripts".
I will say, the current method does not account for every combination of the formid lookup. Some authors include their own function which breaks this "patching."
I believe chesko was one of them, if I remember correctly it was to account for SKSE/non-SKSE.
Good thing, its in the list
function_to_modify_list = ["GetModByName", "checkModPresence", "GetFormFromFile", "IsPluginLoaded"]