[MZ][VisuStella Main Menu] Variable Window edit

Hello everyone! I’m using Visustella Main Menu and I managed to set the Variable Window to display the location the player is at which is great but I’ve ran into an issue.

As you can see the name of the location and the “Location” variable name overlap. I was wondering if it would be possible to make it so the location name is displayed in a different row under the “Location” variable name.

I know that it’s tricky with Visustella but here is the code anyway

const rows = VisuMZ.MainMenuCore.Settings.Variable.VarList.length;

const ww = this.mainCommandWidth();

const wh = this.calcWindowHeight(rows, false);

const wx = this.isRightInputMode() ? Graphics.boxWidth - ww : 0;

let wy = this.mainAreaBottom() - wh;

if (this._goldWindow) wy -= this._goldWindow.height;

return new Rectangle(wx, wy, ww, wh);

Thank you for your time!

From what I understand you would need two pieces for this, more height in the window and a different draw order inside it.

For the height, in that same JS: X, Y, W, H parameter, give each variable two lines instead of one:

const wh = this.calcWindowHeight(rows * 2, false);

The drawing itself isn’t exposed as a parameter, so that part needs a small plugin file placed below VisuMZ_1_MainMenuCore in the Plugin Manager:

Window_MenuVariables.prototype.itemHeight = function() {
    return this.lineHeight() * 2;
};

Window_MenuVariables.prototype.drawItem = function(index) {
    const list = VisuMZ.MainMenuCore.Settings.Variable.VarList.filter(id => Number(id) > 0);
    const varId = Number(list[index]);
    if (varId <= 0) return;
    const rect = this.itemRect(index);
    this.resetFontSettings();
    this.drawTextEx($dataSystem.variables[varId], rect.x, rect.y, rect.width);
    this.drawText($gameVariables.value(varId), rect.x, rect.y + this.lineHeight(), rect.width, "left");
};

I haven’t tested this on your setup, so before you go further, open the console with F8 and type Window_MenuVariables to check it comes back as a class and not undefined. If it’s undefined then the window is named something else in your version and the override won’t be attaching to anything.

I hope I’m doing this correctly

This is what it came back as

Screenshot 2026-09-04 175449

That’s the one, so the override will have something to attach to.

Next step is putting that code into a new .js file in your js/plugins folder, adding it in the Plugin Manager underneath VisuMZ_1_MainMenuCore, and changing the wh line in the JS: X, Y, W, H parameter to use rows * 2. Post a screenshot of how the window comes out and we can go from there.

It worked! now the only thing I would like is the “Runa’s Place” or actual location name to be white like the other text in the menu

Try adding a color reset between the two draws:

    this.drawTextEx($dataSystem.variables[varId], rect.x, rect.y, rect.width);
    this.resetTextColor();
    this.drawText($gameVariables.value(varId), rect.x, rect.y + this.lineHeight(), rect.width, "left");

drawTextEx resets the font settings when it starts but not when it finishes, so if there’s a color code like \C[16] sitting in the variable’s name in the Database, that color is still active by the time the value gets drawn on the line below it.

That did it! Thank you so much again! :face_holding_back_tears: :face_holding_back_tears: