File format — data/SimpleVisual.json

Format version 1. A file without "version" is treated as v0 and migrated. Missing properties keep the standard value.

Root

{
  "version": 1,
  "baseResolution": { "width": 816, "height": 624 },
  "theme": "default",
  "themes": { },
  "scenes": { },
  "menuCommands": [ ],
  "presets": { }
}
FieldTypeDescription
versionnumberFormat version (MF.SimpleVisual.FORMAT_VERSION)
baseResolutionobjectResolution the layout was made for
scaleMode, scaleFontsstring, booleanSee Resolution
themestringTheme for all scenes
themesobjectNamed themes
scenesobjectKey — scene class name or custom scene id
menuCommandsarrayMain menu items
presetsobjectPartial layouts over the file
windowTemplatesobjectEditor only: saved groups of elements

Keys starting with _, comment and extends are never reported as unknown.

Sizes and positions

ValueMeaning
240Pixels
"50%"Percent of the container (UI area Graphics.boxWidth/boxHeight, parent, or template row)
"100%-240", "(100%-20)/2"Expression
"auto"Height from rows or the number of items

anchor: top-left (default), top, top-right, left, center, right, bottom-left, bottom, bottom-right. x / y are offsets from the anchor point.

Expressions

Numeric properties (x, y, width, height, rotation, opacity, picture settings, particle numbers) accept expressions of MF.Units (MF_Core 1.1.0). No eval.

{ "id": "hpBar", "type": "shape", "x": 8, "y": 8, "height": 12, "width": "{leader.hpRate}*2", "fill": "#d04040", "radius": 6 }

Game values

Usable in text and expressions.

TokenFields
{game.*}gold currency steps playtime saveCount battleCount map partySize leader title
{actor.<id>.*}, {member.<n>.*} (n = 1 — first), {leader.*}name nickname className level hp mhp mp mmp tp mtp hpRate mpRate tpRate atk def mat mdf agi luk hit eva cri exp nextExp nextLevelExp levelExp maxLevel weapon equips states profile faceName faceIndex
{item|weapon|armor.<id>.*}name description price count iconIndex…
{<list id>.<field>}Selected row of a list
\V[n]Variable

Map tokens

TokenFields
{player.*}, {event.<id>.*}x y (tile), realX realY, uiX uiY (screen centre in element coordinates), screenX screenY, direction dist angle onScreen exists name
{tile.<x>.<y>.*}uiX uiY screenX screenY dist angle onScreen regionId passable
"rotation": "angle({self.centerX}, {self.centerY}, {event.3.uiX|0}, {event.3.uiY|0})"

Mouse, self, el

Mouse / self tokens work in numeric properties, not in conditions. hover / relX ignore element rotation.

Themes

"themes": {
  "default": { "windowskin": "Window", "fontFace": "rmmz-mainfont", "fontSize": 26, "backOpacity": 192, "padding": 12 },
  "dark":    { "extends": "default", "label": "Dark", "backOpacity": 230 }
}

Style properties: windowskin fontFace fontSize opacity backOpacity contentsOpacity padding + text style, extends, label (name shown to the player). Applied to all windows of a scene; window properties override it.

Scenes and inheritance

"Scene_Menu": {
  "theme": "dark",
  "windows":  { "_goldWindow": { "visible": false } },
  "sprites":  { },
  "elements": [ ]
}

The key is the class name; layouts of parent classes are inherited and more specific classes override them: Scene_MenuBase → all menus, Scene_File → Scene_Save / Scene_Load, Scene_Message → Scene_Map / Scene_Battle. Elements with the same id in a child class override inherited ones.

FieldDescription
themeTheme of the scene
windows, sprites, elementsSee below and Elements
skip / forceLeave standard / apply despite autoCompat
custom, background, initialFocusCustom scenes

Windows

Key — scene field name (_commandWindow).

PropertyDescription
x y width heightSize values, expressions
rowsRows for "height": "auto"
anchor, visibleAnchor point, visibility
opacity backOpacity contentsOpacity0–255, expressions
padding windowskin fontFace fontSizeStyle
template rowHeight cols rowBackground commandsRows and commands
slideScene_Battle._statusWindow: false — does not slide aside

Windows of scenes

SceneWindows
Scene_Title_commandWindow
Scene_Message_messageWindow _goldWindow _nameBoxWindow _choiceListWindow _numberInputWindow _eventItemWindow
Scene_Map_mapNameWindow _scrollTextWindow + messages
Scene_Menu_commandWindow _goldWindow _statusWindow
Scene_Item_helpWindow _categoryWindow _itemWindow _actorWindow
Scene_Skill_helpWindow _skillTypeWindow _statusWindow _itemWindow _actorWindow
Scene_Equip_helpWindow _statusWindow _commandWindow _slotWindow _itemWindow
Scene_Status_profileWindow _statusWindow _statusParamsWindow _statusEquipWindow
Scene_Options_optionsWindow
Scene_File_helpWindow _listWindow
Scene_GameEnd_commandWindow
Scene_Shop_helpWindow _goldWindow _commandWindow _dummyWindow _numberWindow _statusWindow _buyWindow _categoryWindow _sellWindow
Scene_Name_editWindow _inputWindow
Scene_Battle_logWindow _statusWindow _partyCommandWindow _actorCommandWindow _helpWindow _skillWindow _itemWindow _actorWindow _enemyWindow + messages
Scene_Debug_rangeWindow _editWindow _debugHelpWindow

Text style and fonts

Windows, text elements and themes: textColor (palette index 0–31 or "#rrggbb"), outlineColor, outlineWidth, fontBold, fontItalic.

fontFace: a family (rmmz-mainfont) or a file in fonts/ ("PixelFont.ttf"; ttf, otf, woff, woff2) — loaded at startup.

Rows and commands of standard windows

"_statusWindow": {
  "rowHeight": 120,
  "template": [
    { "type": "face", "anchor": "top-left", "width": 100, "height": "100%-2" },
    { "type": "text", "text": "{name}  Lv {level}", "anchor": "top-left", "x": 110 },
    { "type": "actorGauge", "stat": "hp", "anchor": "top-left", "x": 110, "y": 40 }
  ]
},
"_commandWindow": {
  "commands": {
    "item": { "icon": 176 }, "formation": { "visible": false }, "gameEnd": { "order": 0, "text": "Quit" },
    "status": { "action": { "type": "custom", "id": "Custom_Party" }, "enabled": { "switch": 3 } }
  }
}

template replaces the standard drawing (see row templates). Row data: Window_MenuStatus / Window_BattleStatus — actor fields; Window_ItemList — item + count; Window_SkillList — skill + mpCost tpCost; Window_Command — name symbol index status iconIndex.

commands (Window_Command only): key — symbol or #<index>; text visible order icon align color background action enabled.

Editor: select the window › Edit commands. In the main menu, + item adds an own command (menuCommands); own commands can be deleted, standard ones hidden.

Sprites

scenes.<X>.sprites.<field>: _backSprite1 _backSprite2 _gameTitleSprite (title), _backgroundSprite (menus), _cancelButton (battle), _menuButton (map).

Properties: x y (percent of Graphics.width/height), scaleX scaleY opacity visible image; title: titleText titleFontFace titleFontSize titleColor titleOutlineColor titleOutlineWidth.

Resolution

"scaleMode": "scale" at the root scales plain pixel x y width height written for baseResolution to the current UI area; "scaleFonts": true scales fontSize. Percentages, auto and expressions are unchanged. Scaling is off in the editor.

Compatibility

PluginSkipped scenes
VisuMZ_1_MainMenuCore, CGMZ_MenuCommandWindow, AltMenuScreenScene_Menu
VisuMZ_1_ItemsEquipsCoreScene_Item Scene_Equip Scene_Shop
VisuMZ_1_SkillsStatesCoreScene_Skill
VisuMZ_1_BattleCoreScene_Battle
VisuMZ_1_OptionsCoreScene_Options
VisuMZ_1_SaveCore, AltSaveScreenScene_File

Extend: MF.SimpleVisual.KNOWN_PLUGINS.MyPlugin = ["Scene_Status"] before scenes load. Presets altMenu / altSave of the demo replace AltMenuScreen / AltSaveScreen.