public

Rpg Maker Developers Group

Simple enough for a child, powerful enough for a developer

2 Followers

VXACEVXAce Hammy - FF9 Windowskin System

BMM Archive · July 15, 2026

Preserved forum archive. This topic stores the original first post and locally mirrored RPG Maker Web attachments when available. It is posted by the BMMPlay archive account, not by the original creator.

Original Source

  • Original title: VXAce Hammy - FF9 Windowskin System
  • Original author: buddysievers
  • Original date: October 23, 2025
  • Source thread: https://forums.rpgmakerweb.com/threads/hammy-ff9-windowskin-system.180664/
  • Source forum path: Game Development Engines > Ruby Game System (RGSS) Scripts > RGSS3 Scripts (RMVX Ace)

Summary

Hammy - FF9 Windowskin System v1.01 Recreate the iconic Final Fantasy IX window themes with dynamic type-based skinning​ Introduction This script provides an authentic Final Fantasy IX windowskin system for RPG Maker VX Ace. It allows different window types to use specialized windowskin graphics based on their class and function.

Archived First Post

Hammy - FF9 Windowskin System v1.01
Recreate the iconic Final Fantasy IX window themes with dynamic type-based skinning



Introduction

This script provides an authentic Final Fantasy IX windowskin system for RPG Maker VX Ace. It allows different window types to use specialized windowskin graphics based on their class and function.

AI Disclaimer: Generative AI was used to refine the documentation and presentation of this script, as I am not a native English speaker. Additionally, AI was used for naming conventions in some places and for general beautification of the script.



Features

Core Windowskin Features
  • Automatic windowskin assignment based on window class and type
  • Dual color themes (grey and blue) with runtime switching through Game_System
  • Multiple window type support: default, frame, topbar, help

Customization System
  • Per-window-class type configuration with tailored windowskin assignments
  • Configurable windowskin filenames for each type and color combination

Technical Features
  • Real-time windowskin refresh when the active theme changes
  • Automatic window type detection with safe default fallback



Script Calls

The following script calls are available for use in events and other scripts.

Color Theme Management

$game_system.windowskin_color = :grey
Changes all windows to use the grey color theme.

$game_system.windowskin_color = :blue
Changes all windows to use the blue color theme.

Examples
Ruby:
# Change color theme to grey
$game_system.windowskin_color = :grey

# Change color theme to blue
$game_system.windowskin_color = :blue



Configuration

Edit the constants in the Hammy::FF9WindowskinSystem module to configure the windowskin filenames, window type mapping, and background opacity.

Windowskin File Names
Configure the windowskin graphic filenames for different window types and color themes. All windowskin files should be placed in the Graphics/System folder of your project.

GREY_DEFAULT
Default grey windowskin for standard windows.
- Valid values: String containing filename without extension
- Default: "Window_Default_Grey"

Example
Ruby:
GREY_DEFAULT = "Window_Default_Grey"

BLUE_DEFAULT
Default blue windowskin for standard windows.
- Valid values: String containing filename without extension
- Default: "Window_Default_Blue"

Example
Ruby:
BLUE_DEFAULT = "Window_Default_Blue"

GREY_FRAME
Grey windowskin for frame-type windows.
- Valid values: String containing filename without extension
- Default: "Window_Frame_Grey"

Example
Ruby:
GREY_FRAME = "Window_Frame_Grey"

BLUE_FRAME
Blue windowskin for frame-type windows.
- Valid values: String containing filename without extension
- Default: "Window_Frame_Blue"

Example
Ruby:
BLUE_FRAME = "Window_Frame_Blue"

GREY_TOPBAR
Grey windowskin for topbar-type windows.
- Valid values: String containing filename without extension
- Default: "Window_Topbar_Grey"

Example
Ruby:
GREY_TOPBAR = "Window_Topbar_Grey"

BLUE_TOPBAR
Blue windowskin for topbar-type windows.
- Valid values: String containing filename without extension
- Default: "Window_Topbar_Blue"

Example
Ruby:
BLUE_TOPBAR = "Window_Topbar_Blue"

HELP_SYSTEM
Special windowskin for help windows.
- Valid values: String containing filename without extension
- Default: "Window_Help_System"

Example
Ruby:
HELP_SYSTEM = "Window_Help_System"

Window Type Configuration
Configure window classes to use specific windowskin types. This allows different window classes to automatically use specialized windowskin graphics based on their designated type.

WINDOW_TYPES
Hash mapping window classes to their designated types.

Available types: :default, :frame, :topbar, :help Windows not listed here will automatically default to :default type.

- Valid values: Hash with Window Class keys and Symbol values
- Default: { Window_MenuCommand => :frame, ... }

Example
Ruby:
WINDOW_TYPES = {
  Window_MenuCommand => :frame,
  Window_MenuStatus => :topbar,
  Window_Gold => :frame,
  Window_TitleCommand => :frame
}

Window Background Opacity
Configure the default background opacity for all windows in the game. This controls the transparency of the window background content area.

BACK_OPACITY
Background opacity value (0-255, 255 is fully opaque).
- Valid values: Integer from 0 to 255
- Default: 255

Example
Ruby:
BACK_OPACITY = 255



Installation

  • Copy the script to an open slot below ▼ Materials but above ▼ Main
  • Ensure your windowskin graphics are saved in Graphics/System with the names defined in the configuration section



Compatibility

This script is made strictly for RPG Maker VX Ace. It is highly unlikely that it will run with RPG Maker VX without adjusting.



License

MIT License - Free for commercial and non-commercial use.



Credits

This script is based on Jet10985's Windowskin Changer script.



Why VX Ace?

You might wonder why I'm still making scripts for VX Ace instead of MV/MZ. The answer is simple: Ruby is pure beauty, while JavaScript is a terrible language. Ruby's elegant syntax, intuitive design, and expressive power make scripting a joy. JavaScript, on the other hand, is a chaotic mess of inconsistencies and quirks that I simply despise.

I work with RPG Maker VX Ace for my own game project, and I share the scripts I create with the community. If you're still using VX Ace, you're in good company!



Download

Script: Download from GitHub
Demo: Download from GitHub



YEA System Options Addon

This addon extends Yanfly's System Options script to include windowskin color selection directly in the system options menu. Players can toggle between grey and blue themes without using script calls.

Features
  • Windowskin color toggle command in System Options menu
  • Automatic detection of Global System Option script presence
  • Configurable command insertion position via anchor system

Requirements

Installation
Place this addon script BELOW both YEA-SystemOptions and the FF9 Windowskin System.

Download: Download from GitHub

Ruby:
# encoding: utf-8
#==============================================================================
# ▼ Hammy - FF9 Windowskin System - YEA System Options Addon v1.01
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# -- Last Updated: 25.05.2026
# -- Requires: Hammy FF9 Windowskin System v1.01+,
#              YEA-SystemOptions v1.00
# -- Optional: Theolized - Global System Option v1.00
# -- Recommended: None
# -- Credits: Yanfly (YEA-SystemOptions),
#             Theo Allen (Global System Option)
# -- License: MIT License
#==============================================================================

$imported ||= {}
$imported[:hammy_ff9_windowskin_system_system_options] = true

#==============================================================================
# ▼ Updates
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 25.05.2026 - (v1.01) Applied new documentation conventions.
#              Migrated configuration modules to Hammy::PascalCase naming.
# 
# 23.10.2025 - (v1.00) Initial release.
# 
#==============================================================================
# ▼ Introduction
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This addon extends the Yanfly System Options script to include windowskin
# color selection functionality for the Hammy FF9 Windowskin System. It
# provides seamless integration with the system options menu, allowing players
# to change the window color theme directly from the game's options screen.
# 
# The addon automatically detects whether Theo's Global System Option script is
# present and adapts its save behavior accordingly, supporting both standard
# save file storage and global options storage.
# 
# -----------------------------------------------------------------------------
# ► Core Integration Features
# -----------------------------------------------------------------------------
# ★ Windowskin color toggle command in System Options menu
# ★ Automatic detection of Global System Option script presence
# ★ Configurable command insertion position via anchor system
# 
#==============================================================================
# ▼ Base Classes & Method Modifications
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script modifies the following RGSS3 base classes:
# 
# -----------------------------------------------------------------------------
# ► Game_System (Class)
# -----------------------------------------------------------------------------
# ★ Added Getters/Setters:
#   - windowskin_color
#   - windowskin_color=
# 
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script modifies the following 3rd party classes:
# 
# -----------------------------------------------------------------------------
# ► OptionData (Class)
# -----------------------------------------------------------------------------
# ★ Public Instance Variables:
#   - windowskin_color (attr_accessor)
# 
# ★ Alias Methods:
#   - initialize → ff9_windowskin_optiondata_initialize
# 
# -----------------------------------------------------------------------------
# ► Window_SystemOptions (Class < Window_Command)
# -----------------------------------------------------------------------------
# ★ Alias Methods:
#   - draw_item → ff9_windowskin_win_sysopt_draw_item
#   - cursor_change → ff9_windowskin_win_sysopt_cursor_change
#   - make_command_list → ff9_windowskin_win_sysopt_make_comm_list
# 
#==============================================================================
# ▼ Instructions
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
# 
# ★ This script requires Yanfly - YEA-SystemOptions and Hammy - FF9 Windowskin
#   System and must be placed BELOW them.
# 
# ★ If using Theolized Global System Option v1.0, windowskin color preferences
#   will be saved globally across all save files.
# 
#==============================================================================
# ▼ Compatibility
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjusting.
# 
#==============================================================================

#==============================================================================
# ** FF9 Windowskin System Configuration
#------------------------------------------------------------------------------
#  Configuration settings for the FF9 Windowskin System.
#==============================================================================

module Hammy
  module FF9WindowskinSystem
    
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - System Options Anchor -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Configure the insertion position for the windowskin color command in
    # the System Options menu. The command will be inserted after the
    # specified anchor command.
    # 
    # WINDOWSKIN_INSERT_ANCHOR: Symbol of the anchor command.
    #   - Valid values: Symbol representing a command in System Options
    #   - Default: :window_blu
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    WINDOWSKIN_INSERT_ANCHOR = :window_blu
    
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Command Vocabulary -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Configure the display text and help information for the windowskin
    # color toggle command in the System Options menu.
    # 
    # WINDOWSKIN_VOCAB: Hash containing command text and help description.
    #   [0] = Command name, [1] = Grey text, [2] = Blue text, [3] = Help text
    #   - Valid values: Hash with Symbol key and Array of Strings
    #   - Default: { :windowskin_color => [...] }
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    WINDOWSKIN_VOCAB = {
      :windowskin_color => ["Window Color", "Grey", "Blue",
                            "Change the color scheme of all windows.\n" \
                            "Toggle between grey and blue window themes."
                           ]
    }
    
    #==========================================================================
    # ▼ End of Documentation
    #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # This marks the end of the documentation and configuration section.
    # Everything below this point is the actual script implementation code.
    # 
    # WARNING: Modifying the code below requires advanced Ruby and RGSS3
    # knowledge. Improper changes may cause script errors, game crashes, or
    # data corruption. Only edit if you understand the consequences and have
    # backups of your project.
    #==========================================================================
    
    #--------------------------------------------------------------------------
    # * Merge Windowskin Color Vocabulary                              [Custom]
    #--------------------------------------------------------------------------
    if $imported["YEA-SystemOptions"]
      YEA::SYSTEM::COMMAND_VOCAB.merge!(WINDOWSKIN_VOCAB)
    end
    
  end # Hammy::FF9WindowskinSystem
end # Hammy

#==============================================================================
# ▼ Script Dependencies Check
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This section checks for the presence of required companion scripts.
# If any required scripts are missing, it displays an error message and exits.
#==============================================================================

unless $imported["YEA-SystemOptions"]
  msgbox("YEA-System Options v1.00 by Yanfly is required but not found!\n" \
         "Please install the required script before using " \
         "Windowskin System - System Options Addon.")
  exit
end

unless $imported[:hammy_ff9_windowskin_system]
  msgbox("Hammy FF9 Windowskin System v1.00 is required but not found!\n" \
         "Please install the required script before using " \
         "Windowskin System - System Options Addon.")
  exit
end

#==============================================================================
# ** OptionData
#------------------------------------------------------------------------------
#  This class handles global system option data. It saves option preferences
# globally across all save files when using Theo's Global System Option.
#==============================================================================

if $imported[:Theo_GlobalOption]
  class OptionData
    #--------------------------------------------------------------------------
    # * Public Instance Variables                                      [Custom]
    #--------------------------------------------------------------------------
    attr_accessor :windowskin_color
    
    #--------------------------------------------------------------------------
    # * Alias Method Definitions                                       [Custom]
    #--------------------------------------------------------------------------
    alias_method :ff9_windowskin_optiondata_initialize, :initialize
    
    #--------------------------------------------------------------------------
    # * Object Initialization                                           [Alias]
    #--------------------------------------------------------------------------
    def initialize
      ff9_windowskin_optiondata_initialize
      @windowskin_color = :grey
    end
    
  end # OptionData
end # if $imported[:Theo_GlobalOption]

#==============================================================================
# ** Game_System
#------------------------------------------------------------------------------
#  This class handles system data. It saves the disable state of saving and 
# menus. Instances of this class are referenced by $game_system.
#==============================================================================

class Game_System
  #--------------------------------------------------------------------------
  # * Get Windowskin Color                                           [Custom]
  #--------------------------------------------------------------------------
  def windowskin_color
    if $imported[:Theo_GlobalOption]
      return $option_data.windowskin_color
    else
      return @windowskin_color
    end
  end
  
  #--------------------------------------------------------------------------
  # * Set Windowskin Color                                           [Custom]
  #--------------------------------------------------------------------------
  def windowskin_color=(value)
    if $imported[:Theo_GlobalOption]
      $option_data.windowskin_color = value
      OptionData.save
    else
      @windowskin_color = value
    end
  end
  
end # Game_System

#==============================================================================
# ** Window_SystemOptions
#------------------------------------------------------------------------------
#  This window displays system options on the options screen.
#==============================================================================

class Window_SystemOptions < Window_Command
  #--------------------------------------------------------------------------
  # * Alias Method Definitions                                       [Custom]
  #--------------------------------------------------------------------------
  alias_method :ff9_windowskin_win_sysopt_draw_item, :draw_item
  alias_method :ff9_windowskin_win_sysopt_cursor_change, :cursor_change
  alias_method :ff9_windowskin_win_sysopt_make_comm_list, :make_command_list
  
  #--------------------------------------------------------------------------
  # * Create Command List                                             [Alias]
  #--------------------------------------------------------------------------
  def make_command_list
    ff9_windowskin_win_sysopt_make_comm_list
    inject_windowskin_color_command
  end
  
  #--------------------------------------------------------------------------
  # * Inject Windowskin Color Command                                [Custom]
  #--------------------------------------------------------------------------
  def inject_windowskin_color_command
    anchor_index = @list.find_index { |item| 
      item[:symbol] == Hammy::FF9WindowskinSystem::WINDOWSKIN_INSERT_ANCHOR 
    }
    
    if anchor_index
      insert_index = anchor_index + 1
    else
      insert_index = @list.size
    end
    
    vocab = YEA::SYSTEM::COMMAND_VOCAB
    
    windowskin_command = {
      :name => vocab[:windowskin_color][0],
      :symbol => :windowskin_color,
      :enabled => true,
      :ext => nil
    }
    
    @list.insert(insert_index, windowskin_command)
    @help_descriptions[:windowskin_color] = vocab[:windowskin_color][3]
  end
  
  #--------------------------------------------------------------------------
  # * Draw Item                                                       [Alias]
  #--------------------------------------------------------------------------
  def draw_item(index)
    if @list[index][:symbol] == :windowskin_color
      reset_font_settings
      rect = item_rect(index)
      contents.clear_rect(rect)
      draw_windowskin_toggle(rect, index, @list[index][:symbol])
    else
      ff9_windowskin_win_sysopt_draw_item(index)
    end
  end
  
  #--------------------------------------------------------------------------
  # * Draw Windowskin Toggle                                         [Custom]
  #--------------------------------------------------------------------------
  def draw_windowskin_toggle(rect, index, symbol)
    name = @list[index][:name]
    draw_text(0, rect.y, contents.width / 2, line_height, name, 1)
    
    enabled = $game_system.windowskin_color == :blue
    
    dx = contents.width / 2
    change_color(normal_color, !enabled)
    option1 = YEA::SYSTEM::COMMAND_VOCAB[symbol][1]
    draw_text(dx, rect.y, contents.width / 4, line_height, option1, 1)
    
    dx += contents.width / 4
    change_color(normal_color, enabled)
    option2 = YEA::SYSTEM::COMMAND_VOCAB[symbol][2]
    draw_text(dx, rect.y, contents.width / 4, line_height, option2, 1)
  end
  
  #--------------------------------------------------------------------------
  # * Process Cursor Move                                             [Alias]
  #--------------------------------------------------------------------------
  def cursor_change(direction)
    if current_symbol == :windowskin_color
      change_windowskin_toggle(direction)
    else
      ff9_windowskin_win_sysopt_cursor_change(direction)
    end
  end
  
  #--------------------------------------------------------------------------
  # * Change Windowskin Toggle                                       [Custom]
  #--------------------------------------------------------------------------
  def change_windowskin_toggle(direction)
    value = direction == :left ? false : true
    current_case = $game_system.windowskin_color == :blue
    
    new_color = value ? :blue : :grey
    $game_system.windowskin_color = new_color
    
    Sound.play_cursor if value != current_case
    draw_item(index)
  end
  
end # Window_SystemOptions

#==============================================================================
# 
# ▼ End of File
# 
#==============================================================================


Features Mentioned

  • Core Windowskin Features
  • Automatic windowskin assignment based on window class and type
  • Dual color themes (grey and blue) with runtime switching through Game_System
  • Multiple window type support: default, frame, topbar, help
  • Customization System
  • Per-window-class type configuration with tailored windowskin assignments
  • Configurable windowskin filenames for each type and color combination
  • Technical Features
  • Real-time windowskin refresh when the active theme changes
  • Automatic window type detection with safe default fallback
  • Script Calls
  • The following script calls are available for use in events and other scripts.
  • Color Theme Management
  • $game_system.windowskin_color = :grey
  • Changes all windows to use the grey color theme.
  • $game_system.windowskin_color = :blue
  • Changes all windows to use the blue color theme.
  • Examples

Downloads / Referenced Files

Log in to download

Log in, then follow the RPG Maker Developers Group to see these download links.

Log in to download

License / Terms Note

License MIT License - Free for commercial and non-commercial use. Credits This script is based on Jet10985's Windowskin Changer script.

Creator Claims / Removal

If you are the original creator and want this listing reassigned, edited, or removed, join BMMPlay and contact the moderators with proof that matches the original RPG Maker Web profile, linked GitHub, itch.io page, or another public creator identity.

#039#rgss3#script-archive

Replies (0)

No replies yet.

0 replies 1 view

Log in to reply.

User Avatar