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": { }
}
| Field | Type | Description |
|---|---|---|
version | number | Format version (MF.SimpleVisual.FORMAT_VERSION) |
baseResolution | object | Resolution the layout was made for |
scaleMode, scaleFonts | string, boolean | See Resolution |
theme | string | Theme for all scenes |
themes | object | Named themes |
scenes | object | Key — scene class name or custom scene id |
menuCommands | array | Main menu items |
presets | object | Partial layouts over the file |
windowTemplates | object | Editor only: saved groups of elements |
Keys starting with _, comment and extends are never reported as unknown.
Sizes and positions
| Value | Meaning |
|---|---|
240 | Pixels |
"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.
- Operators:
+ - * / ^ ( ),%of the container,< > <= >= == !=(1 / 0),&& || !,cond ? a : b. - Functions:
min max abs sign floor ceil round trunc sqrt pow exp log mod clamp lerp step between if hypot dist sin cos tan asin acos atan atan2 sind cosd tand atan2d angle deg rad; constantspi,e. - Fallback after
|:{actor.9.hp|100},\V[5|0]— used when the value is missing, empty or not a number. Without it:0(in text — empty). - An error (syntax, division by zero) keeps the standard value, with a console warning; the editor shows it under the field.
- Recalculated every 10 frames when inputs change; with
{mouse.},{self.},{el.}, map tokens — every frame.
{ "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.
| Token | Fields |
|---|---|
{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
| Token | Fields |
|---|---|
{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.*}:x y uiX uiY left right middle pressed dragging dragX dragY dragStartX dragStartY clickX clickY clicks rightClicks wheel idle,over.<id> down.<id> relX.<id> relY.<id>.{self.*}— the element / window itself,{el.<id>.*}— another element:x y width height centerX centerY right bottom rotation opacity visible hover down relX relY clicks hoverTime time parentWidth parentHeight. Geometry from the previous layout pass.
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.
| Field | Description |
|---|---|
theme | Theme of the scene |
windows, sprites, elements | See below and Elements |
skip / force | Leave standard / apply despite autoCompat |
custom, background, initialFocus | Custom scenes |
Windows
Key — scene field name (_commandWindow).
| Property | Description |
|---|---|
x y width height | Size values, expressions |
rows | Rows for "height": "auto" |
anchor, visible | Anchor point, visibility |
opacity backOpacity contentsOpacity | 0–255, expressions |
padding windowskin fontFace fontSize | Style |
template rowHeight cols rowBackground commands | Rows and commands |
slide | Scene_Battle._statusWindow: false — does not slide aside |
Windows of scenes
| Scene | Windows |
|---|---|
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.
action— an action (or a list) run instead of the command's own handler, like a button. Works in any command window: title, main menu, options, shop…enabled— condition;falsegreys the command out.
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
scenes.<X>.skip: trueor parameterskipScenes— scene and its child classes stay standard.autoCompat: scenes rebuilt by known plugins are skipped unlessforce: true.
| Plugin | Skipped scenes |
|---|---|
| VisuMZ_1_MainMenuCore, CGMZ_MenuCommandWindow, AltMenuScreen | Scene_Menu |
| VisuMZ_1_ItemsEquipsCore | Scene_Item Scene_Equip Scene_Shop |
| VisuMZ_1_SkillsStatesCore | Scene_Skill |
| VisuMZ_1_BattleCore | Scene_Battle |
| VisuMZ_1_OptionsCore | Scene_Options |
| VisuMZ_1_SaveCore, AltSaveScreen | Scene_File |
Extend: MF.SimpleVisual.KNOWN_PLUGINS.MyPlugin = ["Scene_Status"] before scenes load. Presets altMenu / altSave of the demo replace AltMenuScreen / AltSaveScreen.