Title Screen & Save System

Learn how to customize the title screen and handle save file detection.

Title Screen Component

File: menus/src/views/TitleScreen.tsx

Basic Structure

const TitleScreen = (props: BaseMenuScreenProps) => {
  const handleItemSelected = (item) => {
    if (item && !item.disabled) {
      item.action();
    }
  };

  return (
    <div className="title-screen">
      <div className="title-screen-selector">
        <Chooser
          items={props.pageData.actions}
          hasFocus={props.hasFocus}
          onItemSelected={handleItemSelected}
        >
          {(item, selected) => <TitleMenuOption item={item} selected={selected} />}
        </Chooser>
      </div>
    </div>
  );
};

Actions are defined in js/plugins/rpgreact/override_common.js:

Disabling Menu Options

Checking for Save Files

Rendering Disabled State

CSS Styling

Preventing Execution

Save Screen

File: menus/src/views/SaveScreen.tsx

Loading Save List

Save File Display

Saving

Loading

Customization Examples

Animated Menu

Save File Thumbnails

Confirm Overwrite

Advanced Features

Auto-Save Detection

Cloud Save Indication

Save Corruption Detection

Common Issues

Continue button throws error when no saves

Fix: Disable the button when no saves exist (as shown above)

Save file shows wrong data

Cause: Save file structure changed between versions

Fix: Implement save migration:

Title screen freezes

Cause: Action handler throws error

Fix: Wrap actions in try-catch:

See Also

Last updated