Somehow I was able to extract the "moacode.mwb" to "moacode" folder, which contains some 1kb txt files, but can't understand the 'which doesn't do anything useful, then re-pack the mostly empty folder it "extracts". It'll then replace the strings when writing the MWB back out.' part of you explanation.
Can you explain how to repack and replace the txt files?
I didn't actually get it to properly extract and re-pack the scripts, because that was more work than needed for my purposes. Something clearly changed in the format from what the tool was originally intended for, so the tool only finds a couple files it understands that it can unpack/repack, and it just blindly copies the rest of the data. You tell it to unpack it, and then immediately repack that because you don't want it to NOT include the few bits it DID understand.
You
will almost certainly have to modify the tool to do anything useful with it. I did not need any sort of user interface or similar for my purposes, so I did not create one, and just edited the code and recompiled each time.
I believe as provided, it will read in Strings.json (example provided in the ZIP), and in VALTYPE_GxStringUTF8.cs, it will search this JSON file for each string it loads, and if it finds it, it'll instead replace that value with the value associated in the JSON.
Also note: That tool only deals with the strings in the MWB file. Not all strings are there, many are buried all over the place elsewhere as well.
If you're trying to use the tool to work on some other game using the same engine, I'd suggest digging into File.cs instead of VALTYPE_GxStringUTF8.cs. The majority of the strings are things like variable names and such that you don't really want to touch, and it's much easier to hook things like that in File.cs. Most strings you would care about will be of Type 0x04, and are generally preceded at some point by some sort of command (usually Type = 0x05 && Token = 0x01, but I also saw a couple others in rare scenarios)