Mod modification - openmw & Morrowind vanilla

Post about your mods, learn about OpenMW mod compatibility, check for problematic mods, discuss issues, and give us feedback about your experience with modded OpenMW.
Post Reply
guigui
Posts: 33
Joined: 12 Apr 2020, 12:22

Mod modification - openmw & Morrowind vanilla

Post by guigui »

Hello,
I have a few questions concerning mod modification, and compatibility with openmw & Morrowind vanilla.

I have translate in french the JaceX mod Welcome to the Arena Patched for OpenMW. I used ESP-ESM Translator to do that (i renamed the .omwaddon in .esp, then i translate with ESP-ESM Translator and save the .esp). I just tested a little bit: this translate mod seems to work with openmw.

1) Do you confirm there is no other action to do? (no edit to do with openmw-cs?)


Now i wish this translate mod works with Morrowind vanilla. I learned that i must compile each translated script of this mod with TES-CS. But, when i open this mod with TES-CS, it seems that all journal conditions for dialogues are missing (example: if one of the conditions for a dialogue is "Journal *name_of_a_journal* < 20", then this condition doesn't exist anymore in TES-CS) ?!
When i open it with MWEdit, it's ok. But MWEdit wants "( )" around all if/elseif tests in the scripts => this is too much work for this big mod.

2) Do you have advices to make this translate mod working with Morrowind vanilla?
User avatar
bmw
Posts: 81
Joined: 04 Jan 2019, 19:42
Contact:

Re: Mod modification - openmw & Morrowind vanilla

Post by bmw »

Assuming I understand the problem correctly, this should be fixable with a tool I created for this purpose a while ago. I'm not sure how well it works in practice as I've only tested it a few times, but the idea is that it maps localisation-specific identifiers such as dialogue topics from one localisation to another.

https://gitlab.com/bmwinger/esmap

E.g. you should be able to run esmap mappings/en-fr-mapping.yaml <EnglishMod>.esm and have it produce a version compatible with the French morrowind plugins. It doesn't do any sort of translating of other strings in the way that the ESP-ESM Translator does, but you should be able to run it on what you already have translated to get something that works properly.

Presumably it appears to work on OpenMW only because it's not validating the scripts ahead of time and they actually reference nonexistant dialogue topics and will cause issues at runtime, while compiling the scripts for vanilla Morrowind raises the errors immediately.
guigui
Posts: 33
Joined: 12 Apr 2020, 12:22

Re: Mod modification - openmw & Morrowind vanilla

Post by guigui »

Hi bmw,
Thanks for your reply.
But i don't think you understand the problem correctly: there is no nonexistant dialogue topics; the dialogue topics are existing. But, in TES-CS, the journal conditions for dialogues are missing. I give the example again: if one of the conditions for a dialogue is "Journal *name_of_a_journal* < 20", then this condition doesn't exist anymore in TES-CS). (even though the journal exists)
This is a screenshot:
https://ti1ca.com/8s00f1tl-missing_jour ... n.png.html

It's strange, no? But in openmw-cs, or MWEdit, this problem doesn't occur. So it seems a TES-CS related problem.


By the way, for your information, i try esmap on my translated plugin, but it corrupt the name of the Parent Masters. For example i see, in TES-CS, Parent Masters: "Bloodmoon.esm->G#", so TES-CS doesn't find a file named "Bloodmoon.esm->G#". But openmw-cs doesn't see a corruption and i can load the plugin processed with esmap.
User avatar
bmw
Posts: 81
Joined: 04 Jan 2019, 19:42
Contact:

Re: Mod modification - openmw & Morrowind vanilla

Post by bmw »

If I remember correctly, I think EET does actually fix the dialogue topics anyway, and I don't think journals change since they're not displayed. I think esmap was necessary to fix cell reference numbers, which EET doesn't do. I was a little hasty in my first response.

The only thing I can think of regarding the SelectRule, is that the first character of the select rule string as it is stored in the record isn't used by OpenMW (it's just be the index of the select rule and is redundant), so it's possible that is set to some unexpected value which makes TES-CS think the select rule is invalid (possibly a duplicate index, if it internally uses the index to identify them). OpenMW's esmtool won't display it, but tes3cmd dump will.

I think the issue is that esmap isn't ending the master with a null character. OpenMW generally doesn't care, since the subrecords store the length of the data, but if TES-CS is reading it as a null terminated string and ignoring the length data then it would run into issues. I never tested it with the original morrowind engine or CS.
Post Reply