Hi, I have a problem with adding the language swap option into VS_OptionCore (again). This time, the option is added properly (like, it doesn't crash, and displays like expected - other than the language name being absent, and the generic ON/OFF appearing instead), it just refuses to work at all, at most breaking itself by nudging the "OFF" or "ON" straight towards the right edge and removing the icon of the option. I tried following the tutorial included in the VisuStella Patch for this plugin, I tried copying the option from my previous project where it worked, same result. Here is the list of plugins I'm using (I am currently in the process of configuring them, from top to bottom, and I'm currently starting with OptionsCore):

Here is the option string that worked in previous versions of OptionsCore and MultiLanguageSystem:
Code
Code:{"Symbol:str":"languageIndex","Icon:num":"20","TextStr:str":"Untitled","TextJS:func":"\"return ODW.MLS.getOption();\"","Accessibility":"","ShowJS:func":"\"// Return Boolean\\nreturn true;\"","EnableJS:func":"\"// Return Boolean\\nreturn true;\"","ExtJS:func":"\"// Return Value\\nreturn 0;\"","Functions":"","DrawJS:func":"\"// Declare Constants\\nconst index = arguments[1];\\nconst title = this.commandName(index);\\nconst rect = this.itemLineRect(index);\\nconst halfWidth = rect.width / 2;\\n// Draw Command Name\\nthis.resetFontSettings();\\nthis.changePaintOpacity(true);\\nthis.drawTextEx(title, rect.x, rect.y, halfWidth, \\\"left\\\");\\n// Draw Status Text\\nthis.drawText(this.statusText(index), rect.x + halfWidth, rect.y, halfWidth, \\\"center\\\");\"","ProcessOkJS:func":"\"// Perform Actions\\nthis.processOk();\"","CursorRightJS:func":"\"// Perform Actions\\nthis.cursorRight();\"","CursorLeftJS:func":"\"// Perform Actions\\nthis.cursorLeft();\"","Data":"","DefaultJS:func":"\"// Declare Constants\\nconst symbol = arguments[1];\\n// Perform Actions\\nConfigManager[symbol] = 0;\"","SaveJS:func":"\"// Declare Constants\\nconst config = arguments[0];\\nconst symbol = arguments[1];\\n\\n// Return Value\\nconfig[symbol] = ConfigManager[symbol];\"","LoadJS:func":"\"// Declare Constants\\nconst config = arguments[0];\\nconst symbol = arguments[1];\\n\\n// Return Value\\nConfigManager[symbol] = config[symbol];\""}
Here is the option string that I tried making with the new versions, according to the guide:
Code
Code:{"Symbol:str":"languageIndex","Icon:num":"189","TextStr:str":"","TextJS:func":"\"return ODW.MLS.getOption();\"","Accessibility":"","ShowJS:func":"\"// Return Boolean\\nreturn true;\"","EnableJS:func":"\"// Return Boolean\\nreturn true;\"","ExtJS:func":"\"// Return Value\\nreturn 0;\"","Functions":"","DrawJS:func":"\"// Declare Constants\\nconst symbol = arguments[0];\\nconst index = arguments[1];\\nconst title = this.commandName(index);\\nconst rect = this.itemLineRect(index);\\nconst quarterWidth = rect.width / 4;\\nconst halfWidth = rect.width / 2;\\nconst value = this.getConfigValue(symbol);\\n\\n// Draw Command Name\\nthis.resetFontSettings();\\nthis.changePaintOpacity(true);\\nthis.drawTextEx(title, rect.x, rect.y, halfWidth, \\\"left\\\");\\n\\n// Draw Status Text\\nthis.drawText(this.statusText(index), rect.x + halfWidth, rect.y, halfWidth, \\\"center\\\");\"","ProcessOkJS:func":"\"// Declare Constants\\nconst symbol = arguments[0];\\nconst value = this.getConfigValue(symbol);\\n\\n// Perform Actions\\nthis.processOk();\"","CursorRightJS:func":"\"// Declare Constants\\nconst symbol = arguments[0];\\nconst value = this.getConfigValue(symbol);\\nconst lastValue = value;\\n\\n// Perform Actions\\nthis.cursorRight();\"","CursorLeftJS:func":"\"// Declare Constants\\nconst symbol = arguments[0];\\nconst value = this.getConfigValue(symbol);\\nconst lastValue = value;\\n\\n// Perform Actions\\nthis.cursorLeft();\"","Data":"","DefaultJS:func":"\"// Declare Constants\\nconst config = arguments[0];\\nconst symbol = arguments[1];\\n\\n// Perform Actions\\nConfigManager[symbol] = 0;\"","SaveJS:func":"\"// Declare Constants\\nconst config = arguments[0];\\nconst symbol = arguments[1];\\n\\n// Return Value\\nconfig[symbol] = ConfigManager[symbol];\"","LoadJS:func":"\"// Declare Constants\\nconst config = arguments[0];\\nconst symbol = arguments[1];\\n\\n// Return Value\\nConfigManager[symbol] = config[symbol];\""}
Both refuse to work now, and either I'm stupid and completely oblivious to how the instructions should be done (especially in terms of the
Code: // Draw Status Text
this.drawText(this.statusText(index), rect.x + halfWidth, rect.y, halfWidth, "center");
- JS Process OK:
// Perform Actions
this.processOk();
- JS Cursor Right:
// Perform Actions
this.cursorRight();
- JS Cursor Left:
// Perform Actions
this.cursorLeft();
part) or it just doesn't work in the most recent versions.
Edit: Here is a barebones project with only the few plugins I mentioned and are needed so that you can test this yourself too:
BTW, I noticed that MessageCore introduced its own language translation option, but I prefer this plugin - not only I have used it ever since I started using plugins in RPGMMZ, but also this plugin uses a .json format (which for me looks way more elegant) instead of MessageCore's .csv. Especially as this plugin nicely seperates languages into subfolders and allows me to seperate strings into seperate files, instead of clumping everything together into a single .csv.