Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

L's Simple Custom Menu Scripts (Revised)

Status
Not open for further replies.
L's Simple Custom Menu Scripts


 Basically, it's repost for one of 'lost' script.

CMS #1 - Simple edit of default menu
 This is my first CMS.  Basically, it's just an edit of default menu.  I made it several months ago, but I heavily edited it, looking like SDK-compatible.(but you can use it without SDK)

rmxpcms012ah1.png

Code:
 

#============================================================================== 

# **Game_Map 

#============================================================================== 

class Game_Map    

  def name

     $map_infos[@map_id]

  end   

end

 

 

#========================================

# **Scene_Title

#--------------------------------------------------------------------------------

# Setting functions for the Title

#========================================

class Scene_Title

  $map_infos = load_data("Data/MapInfos.rxdata")

  for key in $map_infos.keys

    $map_infos[key] = $map_infos[key].name

  end

end

 

#==============================================================================

# **Window_Infos

#==============================================================================

class Window_Infos < Window_Base

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize

    super(0, 0, 160, 130)

    self.contents = Bitmap.new(width - 32, height - 32)

    refresh

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    #---Show Time

    self.contents.font.color = system_color

    self.contents.draw_text(4, 0, 120, 32, "Time")

    @total_sec = Graphics.frame_count / Graphics.frame_rate

    hour = @total_sec / 60 / 60

    min = @total_sec / 60 % 60

    sec = @total_sec % 60

    text = sprintf("%02d:%02d:%02d", hour, min, sec)

    self.contents.font.color = normal_color

    self.contents.draw_text(4, 0, 120, 32, text, 2)

    #---Show Steps

    self.contents.font.color = system_color

    self.contents.draw_text(4, 25, 120, 32, "Steps")

    self.contents.font.color = normal_color

    self.contents.draw_text(4, 42, 120, 32, $game_party.steps.to_s, 2)

    #---Show Money

    #Advanced Gold Display mini-script by Dubealex.

    case $game_party.gold

      when 0..9999

        gold = $game_party.gold

      when 10000..99999

        gold = $game_party.gold.to_s

        array = gold.split(//)

        gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s

      when 100000..999999 

        gold = $game_party.gold.to_s

        array = gold.split(//)

        gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s

      when 1000000..9999999 

        gold = $game_party.gold.to_s

        array = gold.split(//)

        gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s

    end

    

    self.contents.font.color = normal_color     

    cx = contents.text_size($data_system.words.gold).width    

    self.contents.draw_text(4, 67, 120-cx-2, 32, gold.to_s, 2)

    self.contents.font.color = system_color 

    self.contents.draw_text(124-cx, 67, cx, 32, $data_system.words.gold, 2)

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    super

    if Graphics.frame_count / Graphics.frame_rate != @total_sec

      refresh

    end

  end

end

 

 

#==============================================================================

# **Window_MapName

#==============================================================================

class Window_MapName < Window_Base

 def initialize

   super(0, 0, 160, 96)

   self.contents = Bitmap.new(width - 32, height - 32)   

   refresh

 end

 def refresh

   self.contents.clear

   self.contents.font.color = system_color

   self.contents.draw_text(4, 0, 120, 32, "Location")

   self.contents.font.color = normal_color

   self.contents.draw_text(4, 32, 120, 32, $game_map.name.to_s, 2)

 end

end

 

 

#==============================================================================

# ** Scene_Menu

#------------------------------------------------------------------------------

#  This class performs menu screen processing.

#==============================================================================

 

class Scene_Menu

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     menu_index : command cursor's initial position

  #--------------------------------------------------------------------------

  def initialize(menu_index = 0)

    @menu_index = menu_index    

    commands_init

    @changer = 0 #Change Party Order by Yargovish

    @where = 0 #

    @checker = 0  #

  end

  #--------------------------------------------------------------------------

  # * Set Commands

  #--------------------------------------------------------------------------

  def commands_init

    # MenuCommand

    @commands = []

    s1 = "Item"

    s2 = "Skill"

    s3 = "Equip"

    s4 = "Status" 

    s5 = "Order"

    s6 = "Option"

    s7 = "System"

    @commands.push(s1, s2, s3, s4, s5, s6, s7).flatten!

    

    @system_commands = []

    o1 = "Save"

    o2 = "Load"

    o3 = "Exit"

    @system_commands.push(o1, o2, o3).flatten!

  end

  #--------------------------------------------------------------------------

  # * Main Processing

  #--------------------------------------------------------------------------

  def main

    #Draw Windows

    main_command_window

    system_command_window

    main_draw

    #Execute transition

    Graphics.transition

    #Main Loop

    loop do

      #Main Loop

      main_loop

      break if main_scenechange?

    end

    #Prepare for transition

    Graphics.freeze

    #Dispose Windows

    main_dispose

  end

  #--------------------------------------------------------------------------

  # * Main Draw - Handles drawing windows

  #--------------------------------------------------------------------------

  def main_draw

    #Draw Windows

    # Make Info Window

    @infos_window = Window_Infos.new

    @infos_window.x = 0

    @infos_window.y = 255

    # Make map name window

    @mapname_window = Window_MapName.new

    @mapname_window.x = 0

    @mapname_window.y = 384

    # Make status window

    @status_window = Window_MenuStatus.new

    @status_window.x = 160

    @status_window.y = 0     

    end

  #--------------------------------------------------------------------------

  # * Main Command Window

  #--------------------------------------------------------------------------

  def main_command_window 

    # Make command window    

    @command_window = Window_Command.new(160, @commands)

    @command_window.index = @menu_index

    # If number of party members is 0

    if $game_party.actors.size == 0

      # Disable items, skills, equipment, and status

      @command_window.disable_item(0)

      @command_window.disable_item(1)

      @command_window.disable_item(2)

      @command_window.disable_item(3)

    end

    # If save is forbidden

    #if $game_system.save_disabled

      # Disable save

      #@command_window.disable_item(4)      

    #end

    if $game_party.actors.size <= 1 #

      @command_window.disable_item(4)

    end

  end

  #--------------------------------------------------------------------------

  # * System Command Window

  #--------------------------------------------------------------------------

  def system_command_window

    @load_enabled = false

    @sys_command_window = Window_Command.new(128, @system_commands)

    @sys_command_window.visible = false

    @sys_command_window.active = false

    @sys_command_window.x = 100

    @sys_command_window.y = 210

    @sys_command_window.z = 0

    if $game_system.save_disabled

      @sys_command_window.disable_item(0)

    end

    for i in 0..3

      if (FileTest.exist?("Save#{i+1}.rxdata"))        

        @load_enabled = true

      end

    end  

    if !@load_enabled

      @sys_command_window.disable_item(1)

    end

  end    

  #--------------------------------------------------------------------------

  # * Main Scene Change 

  #--------------------------------------------------------------------------

  def main_scenechange?

    # Abort loop if screen is changed

    if $scene != self

      return true

    end

    return false

  end

  #--------------------------------------------------------------------------

  # * Main Dispose 

  #--------------------------------------------------------------------------

  def main_dispose

    # Dispose All Windows

    @command_window.dispose

    @sys_command_window.dispose

    @infos_window.dispose

    @mapname_window.dispose

    @status_window.dispose

  end

  #--------------------------------------------------------------------------

  # * Main Loop 

  #--------------------------------------------------------------------------

  def main_loop

    # Update game screen

    Graphics.update

    # Update input information

    Input.update

    # Frame update

    update

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    # Update Windows

    update_windows

    

    if @sys_command_window.active

      @sys_command_window.z = +500

    end

    

    # If command window is active: call update_command

    if @command_window.active

      update_command

      return

    end

    # If system window is active: call update_sys_command

    if @sys_command_window.active

      update_sys_command

      return

    end

    # If status window is active: call update_status

    if @status_window.active

      update_status

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Window Update 

  #--------------------------------------------------------------------------

  def update_windows    

    @command_window.update if @command_window.visible

    @sys_command_window.update if @sys_command_window.visible

    @infos_window.update

    @status_window.update

    @mapname_window.update

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when command window is active)

  #--------------------------------------------------------------------------

  def update_command

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Switch to map screen

      $scene = Scene_Map.new

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # If command other than save or end game, and party members = 0

      if $game_party.actors.size == 0 and @command_window.index < 4

        # Play buzzer SE

        $game_system.se_play($data_system.buzzer_se)

        return

      end

      # Branch by command window cursor position

      case @command_window.index

      when 0  # item

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Switch to item screen

        $scene = Scene_Item.new

      when 1  # skill

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Make status window active

        @command_window.active = false

        @status_window.active = true

        @status_window.index = 0

      when 2  # equipment

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Make status window active

        @command_window.active = false

        @status_window.active = true

        @status_window.index = 0

      when 3  # status

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Make status window active

        @command_window.active = false

        @status_window.active = true

        @status_window.index = 0    

      when 4  # Order

        #Change Party Order by Yargovish

        $game_system.se_play($data_system.decision_se)

        @checker = 0

        @command_window.active = false

        @status_window.active = true

        @status_window.index = 0  

      when 5  #Option

        #$game_system.se_play($data_system.decision_se)

        #Put your Option Scene

      when 6  #Call System Menu

        $game_system.se_play($data_system.decision_se)

        @sys_command_window.active = true

        @sys_command_window.visible = true

        @command_window.active = false        

      end

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Update SysCommand Window

  #--------------------------------------------------------------------------

  def update_sys_command

    if Input.trigger?(Input::B)

      $game_system.se_play($data_system.cancel_se)

      @command_window.active = true

      @sys_command_window.active = false

      @sys_command_window.visible = false

      @sys_command_window.index = 0

      @sys_command_window.z = 0

      return

    end

    

    if Input.trigger?(Input::C)

      case @sys_command_window.index      

      when 0  #Save

        # # If saving is forbidden

        if $game_system.save_disabled

          # Play buzzer SE

          $game_system.se_play($data_system.buzzer_se)

          return

        end

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Switch to save screen

        $scene = Scene_Save.new

      when 1  #Load

        #When there are no saved files

        if !@load_enabled

          # Play buzzer SE

          $game_system.se_play($data_system.buzzer_se)

          return

        end

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Switch to load screen

        $scene = Scene_Load.new

      when 2  #Quit

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Switch to end game screen

        $scene = Scene_End.new

      end

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when status window is active)

  #--------------------------------------------------------------------------

  def update_status

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Make command window active

      @command_window.active = true

      @status_window.active = false

      @status_window.index = -1

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Branch by command window cursor position

      case @command_window.index

      when 1  # skill

        # If this actor's action limit is 2 or more

        if $game_party.actors[@status_window.index].restriction >= 2

          # Play buzzer SE

          $game_system.se_play($data_system.buzzer_se)

          return

        end

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Switch to skill screen

        $scene = Scene_Skill.new(@status_window.index)

      when 2  # equipment

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Switch to equipment screen

        $scene = Scene_Equip.new(@status_window.index)

      when 3  # status

        # Play decision SE

        $game_system.se_play($data_system.decision_se)

        # Switch to status screen

        $scene = Scene_Status.new(@status_window.index)

      when 4  #Order

        #Change Party Order by Yargovish

        $game_system.se_play($data_system.decision_se)

        if @checker == 0

          @changer = $game_party.actors[@status_window.index]

          @where = @status_window.index

          @checker = 1

        else

          $game_party.actors[@where] = $game_party.actors[@status_window.index]

          $game_party.actors[@status_window.index] = @changer

          @checker = 0

          @status_window.refresh

          $game_player.refresh #

        end

      end

      return

    end

  end    

end

 

 

class Scene_Save < Scene_File

  alias save_on_decision on_decision

  alias save_on_cancel on_cancel

  #--------------------------------------------------------------------------

  # * Decision Processing

  #--------------------------------------------------------------------------

  def on_decision(filename)

    save_on_decision(filename)

    $scene = Scene_Menu.new(6)

  end

  #--------------------------------------------------------------------------

  # * Cancel Processing

  #--------------------------------------------------------------------------

  def on_cancel

    save_on_cancel

    $scene = Scene_Menu.new(6)

  end

end

 

 

class Scene_Load < Scene_File

  #--------------------------------------------------------------------------

  # * Alias Listings

  #--------------------------------------------------------------------------

  alias load_initialize initialize

  alias load_on_cancel on_cancel

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize

    @scene = $scene

    load_initialize

  end

  #--------------------------------------------------------------------------

  # * Cancel Processing

  #--------------------------------------------------------------------------

  def on_cancel

    load_on_cancel

    $scene = @scene

  end

end

 

Code:
 

#============================================================================

#L's Custom Menu - Simple DMS Edit 

#============================================================================

 

module MenuCommand

  Item     = 'Item'

  Skill    = 'Skill'

  Equip    = 'Equip'

  Status   = 'Status'

  Save     = 'Save'

  Load     = 'Load'

  End_Game = 'Exit'

    

  Order    = 'Order'

  Party    = 'Party'

  Option   = 'Option'

  Quest    = 'Quest'

  System   = 'System'

end

 

 

#------------------------------------------------------------------------------

#  Game_Map

#------------------------------------------------------------------------------

class Game_Map

#------------------------------------------------------------------------------

#  Name

#------------------------------------------------------------------------------

  def name

    $map_infos[@map_id]

  end

end

 

 

#========================================

#â–  Scene_Title

#--------------------------------------------------------------------------------

# Setting functions for the Title

#========================================

class Scene_Title

  $map_infos = load_data("Data/MapInfos.rxdata")

  for key in $map_infos.keys

    $map_infos[key] = $map_infos[key].name

  end

end

 

 

class Window_Infos < Window_Base

  #--------------------------------------------------------------------------

  # * Object Initialization

  #--------------------------------------------------------------------------

  def initialize

    super(0, 0, 160, 130)

    self.contents = Bitmap.new(width - 32, height - 32)    

    refresh

  end

  #--------------------------------------------------------------------------

  # * Refresh

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    #---Show Time

    self.contents.font.color = system_color

    self.contents.draw_text(4, 0, 120, 32, "Time")

    @total_sec = Graphics.frame_count / Graphics.frame_rate

    hour = @total_sec / 60 / 60

    min = @total_sec / 60 % 60

    sec = @total_sec % 60

    text = sprintf("%02d:%02d:%02d", hour, min, sec)

    self.contents.font.color = normal_color

    self.contents.draw_text(4, 0, 120, 32, text, 2)

    #---Show Steps

    self.contents.font.color = system_color

    self.contents.draw_text(4, 25, 120, 32, "Steps")

    self.contents.font.color = normal_color

    self.contents.draw_text(4, 42, 120, 32, $game_party.steps.to_s, 2)

    #---Show Money

    case $game_party.gold

      when 0..9999

        gold = $game_party.gold

      when 10000..99999

        gold = $game_party.gold.to_s

        array = gold.split(//)

        gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s

      when 100000..999999 

        gold = $game_party.gold.to_s

        array = gold.split(//)

        gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s

      when 1000000..9999999 

        gold = $game_party.gold.to_s

        array = gold.split(//)

        gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s

    end

    

    self.contents.font.color = normal_color     

    cx = contents.text_size($data_system.words.gold).width    

    self.contents.draw_text(4, 67, 120-cx-2, 32, gold.to_s, 2)

    self.contents.font.color = system_color 

    self.contents.draw_text(124-cx, 67, cx, 32, $data_system.words.gold, 2)

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    super

    if Graphics.frame_count / Graphics.frame_rate != @total_sec

      refresh

    end

  end

end

 

 

class Window_MapName < Window_Base

 def initialize

   super(0, 0, 160, 96)

   self.contents = Bitmap.new(width - 32, height - 32)   

   refresh

 end

 def refresh

   self.contents.clear

   self.contents.font.color = system_color

   self.contents.draw_text(4, 0, 120, 32, "Location")

   self.contents.font.color = normal_color

   self.contents.draw_text(4, 32, 120, 32, $game_map.name.to_s, 2)

 end

end

 

 

#==============================================================================

# ** Scene_Menu

#------------------------------------------------------------------------------

#  This class performs menu screen processing.

#==============================================================================

 

class Scene_Menu

  #--------------------------------------------------------------------------

  # * Object Initialization

  #     menu_index : command cursor's initial position

  #--------------------------------------------------------------------------

  def initialize(menu_index = 0)

    @menu_index = menu_index    

    commands_init

    @changer = 0 #Change Party Order by Yargovish

    @where = 0 #

    @checker = 0  #

  end

  #--------------------------------------------------------------------------

  # * Set Commands

  #--------------------------------------------------------------------------

  def commands_init

    @commands = []

    s1 = MenuCommand::Item

    s2 = MenuCommand::Skill

    s3 = MenuCommand::Equip

    s4 = MenuCommand::Status

    s5 = MenuCommand::Order

    s6 = MenuCommand::System

    @commands.push(s1, s2, s3, s4, s5, s6).flatten!

    

    @sys_commands = []

    o1 = MenuCommand::Option

    o2 = MenuCommand::Save

    o3 = MenuCommand::Load

    o4 = MenuCommand::End_Game

    @sys_commands.push(o1, o2, o3, o4).flatten!

  end

  #--------------------------------------------------------------------------

  # * Main Processing

  #--------------------------------------------------------------------------

  def main

    #Draw Windows    

    main_window

    #Execute transition

    Graphics.transition

    #Main Loop

    loop do

      #Main Loop

      main_loop

      break if main_scenechange?

    end

    #Prepare for transition

    Graphics.freeze

    #Dispose Windows

    main_dispose

  end

  #--------------------------------------------------------------------------

  # * Main Draw - Handles drawing windows

  #--------------------------------------------------------------------------

  def main_window

    #Draw Windows

    main_command_window

    system_command_window

    # Make Info Window

    @infos_window = Window_Infos.new

    @infos_window.x = 0

    @infos_window.y = 255

    # Make map name window

    @mapname_window = Window_MapName.new

    @mapname_window.x = 0

    @mapname_window.y = 384

    # Make status window

    @status_window = Window_MenuStatus.new

    @status_window.x = 160

    @status_window.y = 0     

    end

  #--------------------------------------------------------------------------

  # * Main Command Window

  #--------------------------------------------------------------------------

  def main_command_window 

    # Make command window    

    @command_window = Window_Command.new(160, @commands)

    @command_window.index = @menu_index

    if @command_window.height > 256

      @command_window.height = 256

    end

    # If number of party members is 0

    if $game_party.actors.size == 0

      # Disable items, skills, equipment, and status

      @command_window.disable_item(0)

      @command_window.disable_item(1)

      @command_window.disable_item(2)

      @command_window.disable_item(3)

    end

    if $game_party.actors.size <= 1 #

      #Disable change party order

      @command_window.disable_item(4)

    end

  end

  #--------------------------------------------------------------------------

  # * System Command Window

  #--------------------------------------------------------------------------

  def system_command_window    

    @sys_command_window = Window_Command.new(128, @sys_commands)

    @sys_command_window.visible = false

    @sys_command_window.active = false

    @sys_command_window.x = 100

    @sys_command_window.y = 210

    @sys_command_window.z = 0

    check_save_available

    check_load_available

  end

  #-----------------

  def check_save_available

    # If save is forbidden

    if $game_system.save_disabled

      # Disable save

      @sys_command_window.disable_item(1)

    end

  end

  #-----------------

  def check_load_available

    #Check if saved file exists

    @load_enabled = false

    for i in 0..3

      if (FileTest.exist?("Save#{i+1}.rxdata"))        

        @load_enabled = true

      end

    end  

    if !@load_enabled

      #Put your @command_window.disable_item(index)

      @sys_command_window.disable_item(2)

    end

  end

  #--------------------------------------------------------------------------

  # * Main Scene Change 

  #--------------------------------------------------------------------------

  def main_scenechange?

    # Abort loop if screen is changed

    if $scene != self

      return true

    end

    return false

  end

  #--------------------------------------------------------------------------

  # * Main Dispose 

  #--------------------------------------------------------------------------

  def main_dispose

    # Dispose All Windows

    @command_window.dispose

    @sys_command_window.dispose

    @infos_window.dispose

    @mapname_window.dispose

    @status_window.dispose

  end

  #--------------------------------------------------------------------------

  # * Main Loop 

  #--------------------------------------------------------------------------

  def main_loop

    # Update game screen

    Graphics.update

    # Update input information

    Input.update

    # Frame update

    update

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    # Update Windows

    update_windows

    

    if @sys_command_window.active

      @sys_command_window.z = +500

    end

    

    # If command window is active: call update_command

    if @command_window.active

      update_command

      return

    end

    # If system window is active: call update_sys_command

    if @sys_command_window.active

      update_sys_command

      return

    end

    # If status window is active: call update_status

    if @status_window.active

      update_status

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Window Update 

  #--------------------------------------------------------------------------

  def update_windows    

    @command_window.update if @command_window.visible

    @sys_command_window.update if @sys_command_window.visible

    @infos_window.update

    @status_window.update

    @mapname_window.update

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when command window is active)

  #--------------------------------------------------------------------------

  def update_command

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Switch to map screen

      $scene = Scene_Map.new

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Return if Disabled Command

      if disabled_main_command?

        # Play buzzer SE

        $game_system.se_play($data_system.buzzer_se)

        return

      end

      main_command_input

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Update SysCommand Window

  #--------------------------------------------------------------------------

  def update_sys_command

    if Input.trigger?(Input::B)

      $game_system.se_play($data_system.cancel_se)

      @command_window.active = true

      @sys_command_window.active = false

      @sys_command_window.visible = false

      @sys_command_window.index = 0

      @sys_command_window.z = -500

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Return if Disabled Command

      if disabled_main_command?

        # Play buzzer SE

        $game_system.se_play($data_system.buzzer_se)

        return

      end

      # Command Input

      sys_command_input

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Frame Update (when status window is active)

  #--------------------------------------------------------------------------

  def update_status

    # If B button was pressed

    if Input.trigger?(Input::B)

      # Play cancel SE

      $game_system.se_play($data_system.cancel_se)

      # Make command window active

      @command_window.active = true

      @status_window.active = false

      @status_window.index = -1

      return

    end

    # If C button was pressed

    if Input.trigger?(Input::C)

      # Return if Disabled Command

      if disabled_main_command?

        # Play buzzer SE

        $game_system.se_play($data_system.buzzer_se)

        return

      end

      # Command Input

      sub_command_input

      return

    end

  end

  #--------------------------------------------------------------------------

  # * Disabled Main Command? Test

  #--------------------------------------------------------------------------

  def disabled_main_command?

    # Gets Current Command

    command = @commands[@command_window.index]

    sys_command = @sys_commands[@sys_command_window.index]

    # Gets Menu Commands

    c = MenuCommand

    # If 0 Party Size

    if $game_party.actors.size == 0

      # If Item, Skill, Equip or Status Selected

      if [c::Item, c::Skill, c::Equip, c::Status].include?(command)

        return true

      end

    end

    if $game_party.actors.size <= 1

      if [c::Order].include?(command)

        return true

      end

    end

    # If Save Disabled && Command is Save

    return true if $game_system.save_disabled && sys_command == c::Save

    # If Load Disabled && Command is Load

    return true if !@load_enabled && sys_command == c::Load

    return false

  end

  #--------------------------------------------------------------------------

  # * Update Command Check

  #--------------------------------------------------------------------------

  def main_command_input

    # Loads Current Command

    command = @commands[@command_window.index]

    # Play decision SE

    $game_system.se_play($data_system.decision_se)

    # Checks Commands

    case command

    when MenuCommand::Item  #item

      command_item

    when MenuCommand::Skill #skill

      command_skill

    when MenuCommand::Equip #equip

      command_equip

    when MenuCommand::Status  #status

      command_status

    when MenuCommand::Order #order

      command_order

    when MenuCommand::System  #call system submenu

      $game_system.se_play($data_system.decision_se)

      @sys_command_window.active = true

      @sys_command_window.visible = true

      @command_window.active = false     

    end

  end

  #--------------------------------------------------------------------------

  # * Update System Command Check

  #--------------------------------------------------------------------------

  def sys_command_input

    # Loads Current Command

    sys_command = @sys_commands[@sys_command_window.index]

    # Play decision SE

    $game_system.se_play($data_system.decision_se)

    # Checks Commands

    case sys_command

    when MenuCommand::Option  #option

      command_option

    when MenuCommand::Save  #save

      command_save

    when MenuCommand::Load  #load

      command_load

    when MenuCommand::End_Game  #exit

      command_endgame

    end

  end

  #--------------------------------------------------------------------------

  # * Disabled Sub Command? Test

  #--------------------------------------------------------------------------

  def disabled_sub_command?

    # Loads Current Command

    command = @commands[@command_window.index]

    # If Skill Selected

    if command == MenuCommand::Skill

      # If this actor's action limit is 2 or more

      if $game_party.actors[@status_window.index].restriction >= 2

        return true

      end

    end

    return false

  end

  #--------------------------------------------------------------------------

  # * Update Status Check

  #--------------------------------------------------------------------------

  def sub_command_input

    # Loads Current Command

    command = @commands[@command_window.index]

    # Play decision SE

    $game_system.se_play($data_system.decision_se)

    # Checks Command By Name

    case command

    when MenuCommand::Skill

      command_skill

    when MenuCommand::Equip

      command_equip

    when MenuCommand::Status

      command_status

    when MenuCommand::Order

      command_order

    end

  end

  #--------------------------------------------------------------------------

  # * Command Item

  #--------------------------------------------------------------------------

  def command_item

    # Switch to item screen

    $scene = Scene_Item.new

  end

  #--------------------------------------------------------------------------

  # * Command Skill

  #--------------------------------------------------------------------------

  def command_skill

    # If Main Command Active

    if @command_window.active

      # Activate Status Window

      active_status_window

      return

    end

    # Switch to skill screen

    $scene = Scene_Skill.new(@status_window.index)

  end

  #--------------------------------------------------------------------------

  # * Command Equip

  #--------------------------------------------------------------------------

  def command_equip

    # If Main Command Active

    if @command_window.active

      # Activate Status Window

      active_status_window

      return

    end

    # Switch to equipment screen

    $scene = Scene_Equip.new(@status_window.index)

  end

  #--------------------------------------------------------------------------

  # * Command Status

  #--------------------------------------------------------------------------

  def command_status

    # If Main Command Active

    if @command_window.active

      # Activate Status Window

      active_status_window

      return

    end

    # Switch to status screen

    $scene = Scene_Status.new(@status_window.index)

  end

  #--------------------------------------------------------------------------

  # * Command Order

  #--------------------------------------------------------------------------

  def command_order

    # If Main Command Active

    if @command_window.active

      # Activate Status Window

      active_status_window

      @checker = 0

      return

    end

    #Change Party Order by Yargovish

    if @checker == 0

      @changer = $game_party.actors[@status_window.index]

      @where = @status_window.index

      @checker = 1

    else

      $game_party.actors[@where] = $game_party.actors[@status_window.index]

      $game_party.actors[@status_window.index] = @changer

      @checker = 0

      @status_window.refresh

      $game_player.refresh #

    end      

  end

  #--------------------------------------------------------------------------

  # * Command Party

  #--------------------------------------------------------------------------

  def command_party

    # Switch to party change screen

    #Put your Party Change Scene here

  end

  #--------------------------------------------------------------------------

  # * Command Option

  #--------------------------------------------------------------------------

  def command_option

    # Switch to party change screen

    #Put your Option Scene here

  end

  #--------------------------------------------------------------------------

  # * Command Quest

  #--------------------------------------------------------------------------

  def command_quest

    # Switch to party change screen

    #Put your Quest Scene here

  end

  #--------------------------------------------------------------------------

  # * Command Save

  #--------------------------------------------------------------------------

  def command_save

    # Switch to save screen

    $scene = Scene_Save.new

  end

  #--------------------------------------------------------------------------

  # * Command Load

  #--------------------------------------------------------------------------

  def command_load

    # Switch to load screen

    $scene = Scene_Load.new

  end

  #--------------------------------------------------------------------------

  # * Command End Game

  #--------------------------------------------------------------------------

  def command_endgame

    # Switch to end game screen

    $scene = Scene_End.new

  end

  #--------------------------------------------------------------------------

  # * Activate Status Window

  #--------------------------------------------------------------------------

  def active_status_window

    # Make status window active

    @command_window.active = false

    @status_window.active = true

    #@status_window.visible = true 

    @status_window.index = 0

  end

end

 

The rest will be posted separately, for I cannot post 'many' scripts in one message.

Credit
Well... various authors for various menu scripts, for I learned how to make my main menu by reading them.

Authoress' Note
I'm quite retired now, so I may not answer all of your question.  Feel free to use them.
 
Gosh, forget '$scene.current_location.to_s' thing. It's commented out, so you don't have to mind, but I forgot delete that line while posting.
 
I just have one little question about your menu system scripts.
Well a few actually, but,
1. When I go and select Options it dose nothing(did you leave that out?)
2. When I select Help nothing(same as 1)

other than these two questions awesome scripts.
 
'Option' and 'Help' are dummy commands until you got any script for that(sams as 'Quest Log'). Just get any 'config' script and call it by menu command('help/tutorial', and 'quest' too). If you don't need them, you may delete the commands.
 
Ok.
I was wanderin, but also it can be used for like the three book scripts.
Monster, Item, and Skills.
Is there a way to script an Option screen to were the player can change the Window screen, Music volume, sound volume, activate random battles or event battles(touch a monster to battle it), or some other random stuff I can't think of right now.

And for the Help command, is there a way to make it say like:
"Talk to (NPC) for directions to near by village" or something.
Or just gives random help on monsters weakness, how to find a town, what path to take in a cave, or what items are required for a recipe to make a weapon or piece of equipment.

But this is just me here.
 

Jason

Awesome Bro

Chaos_Prime, all that you said sounds cool, I'm no scripter, But i'm sure someone could come up with that stuff, and by the way Landarma, Nice work, I know how hard it is to make a CMS, Because I tried and failed miserably
 
Robintje;258740 said:
At CMS #2, it doesn't show me the character stats?

[normal], [poison] things or what stats?

**By the way, they're all old. I already revised them, yet to post.

**Edit: Posted revised ones.
 
lol, really nice! CMS #1 is almost exactly what I did, only, I added 'Options' and 'Load' above and below the 'Save' command. Options is dummy of course(until I figure out how to do one options system myself ^_^) I also like CMS #2, especially in the screenshot.
 
Reposting broken scripts.  Since I cannot post them all at once, I'll post it one-by-one.


CMS #1 - Simple edit of default menu
Continued..

Code:
#============================================================================
#L's Custom Menu - Simple DMS Edit SDK2 ver.
#============================================================================

#--------------------------------------------------------------------------
# * Begin SDK Log
#--------------------------------------------------------------------------
SDK.log("L's DMS Edit", 'Landarma', '???', '2007-03-17')

#--------------------------------------------------------------------------
# * Begin SDK Requirement Check
#--------------------------------------------------------------------------
SDK.check_requirements(2.0, [1])

#--------------------------------------------------------------------------
# * Begin SDK Enable Test
#--------------------------------------------------------------------------
if SDK.enabled?("L's DMS Edit")

module SDK::Scene_Commands
  #============================================================================
  # ** Scene_Menu
  #============================================================================
  module Scene_Menu
    Item     = 'Item'
    Skill    = 'Skill'
    Equip    = 'Equip'
    Status   = 'Status'
    Save     = 'Save'
    Load     = 'Load'
    End_Game = 'Exit'
    
    Order    = 'Order'
    Party    = 'Party'
    Option   = 'Option'
    Quest    = 'Quest'
    System   = 'System'
    
    Menu_Commands = [Item, Skill, Equip, Status, Order, System]
    SysMenu_Commands = [Option, Save, Load, End_Game]
  end
end


if SDK.enabled?('Map Info')

#============================================================================== 
# â–  Game_Map 
#============================================================================== 
class Game_Map    
  def name
     $data_mapinfos[@map_id].name
  end   
end

else
#------------
#------------------------------------------------------------------------------
#  Game_Map
#------------------------------------------------------------------------------
class Game_Map
#------------------------------------------------------------------------------
#  Name
#------------------------------------------------------------------------------
  def name
    $map_infos[@map_id]
  end
end


#========================================
#â–  Scene_Title
#--------------------------------------------------------------------------------
# Setting functions for the Title
#========================================
class Scene_Title
  $map_infos = load_data("Data/MapInfos.rxdata")
  for key in $map_infos.keys
    $map_infos[key] = $map_infos[key].name
  end
end

#-----------------
end


class Window_Infos < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 130)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.windowskin = RPG::Cache.windowskin($game_system.windowskin_name)     
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    #---Show Time
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "Time")
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120, 32, text, 2)
    #---Show Steps
    self.contents.font.color = system_color
    self.contents.draw_text(4, 25, 120, 32, "Steps")
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 42, 120, 32, $game_party.steps.to_s, 2)
    #---Show Money
    case $game_party.gold
    when 0..9999
      gold = $game_party.gold
    when 10000..99999
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
    when 100000..999999 
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
    when 1000000..9999999 
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
    when 10000000..99999999
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s+","+array[5].to_s+array[6].to_s+array[7].to_s
    when 100000000..999999999
      gold = $game_party.gold
    end
    
    self.contents.font.color = normal_color     
    cx = contents.text_size($data_system.words.gold).width    
    self.contents.draw_text(4, 67, 120-cx-2, 32, gold.to_s, 2)
    self.contents.font.color = system_color 
    self.contents.draw_text(124-cx, 67, cx, 32, $data_system.words.gold, 2)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end


class Window_MapName < Window_Base
 def initialize
   super(0, 0, 160, 96)
   self.contents = Bitmap.new(width - 32, height - 32)   
   refresh
 end
 def refresh
   self.contents.clear
   self.contents.font.color = system_color
   self.contents.draw_text(4, 0, 120, 32, "Location")
   self.contents.font.color = normal_color
   self.contents.draw_text(4, 32, 120, 32, $game_map.name, 2)
 end
end


#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  This class performs menu screen processing.
#==============================================================================

class Scene_Menu < SDK::Scene_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     menu_index : command cursor's initial position
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
    party_order_init
  end
  #--------------------------------------------------------------------------
  # * Party Order Change Initiation
  #--------------------------------------------------------------------------
  def party_order_init
    @changer = 0 #Change Party Order by Yargovish
    @where = 0 #
    @checker = 0  #
  end
  #--------------------------------------------------------------------------
  # * Main Processing : Window Initialization
  #--------------------------------------------------------------------------
  def main_window
    super
    # Make main command window
    main_command_window
    system_command_window
    # Make Info Window
    @infos_window = Window_Infos.new
    @infos_window.x = 0
    @infos_window.y = 255
    # Make map name window
    @mapname_window = Window_MapName.new
    @mapname_window.x = 0
    @mapname_window.y = 384
    # Make status window
    @status_window = Window_MenuStatus.new
    @status_window.x = 160
    @status_window.y = 0
  end
  #--------------------------------------------------------------------------
  # * Main Processing : Window Initialization : Main Command
  #--------------------------------------------------------------------------
  def main_command_window
    # Make command window
    command = SDK::Scene_Commands::Scene_Menu::Menu_Commands.dup
    @command_window = Window_Command.new(160, command)
    @command_window.index = @menu_index
    if @command_window.height > 256
      @command_window.height = 256
    end
    # If number of party members is 0
    if $game_party.actors.size == 0
      # Disable items, skills, equipment, and status
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    if $game_party.actors.size <= 1 #
      #Disable change party order
      @command_window.disable_item(4)
    end
  end
  #--------------------------------------------------------------------------
  # * Main Processing : Window Initialization : System Command
  #--------------------------------------------------------------------------
  def system_command_window
    # Make command window
    sys_command = SDK::Scene_Commands::Scene_Menu::SysMenu_Commands.dup
    @sys_command_window = Window_Command.new(128, sys_command)
    @sys_command_window.visible = false
    @sys_command_window.active = false
    @sys_command_window.x = 100
    @sys_command_window.y = 180
    #@sys_command_window.z = 0
    check_save_available
    check_load_available
  end
  #-----------------
  def check_save_available
    # If save is forbidden
    if $game_system.save_disabled
      # Disable save
      @sys_command_window.disable_item(1)
    end
  end
  #-----------------
  def check_load_available
    #Check if saved file exists
    @load_enabled = false
    for i in 0..3
      if (FileTest.exist?("Save#{i+1}.rxdata"))        
        @load_enabled = true
      end
    end  
    if !@load_enabled
      #Put your @command_window.disable_item(index)
      @sys_command_window.disable_item(2)
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    # If command window is active: call update_command
    if @command_window.active
      update_command
      return
    # If status window is active: call update_status
    elsif @status_window.active
      update_status
      return
    end
    
    if @sys_command_window.active
      @sys_command_window.z = +500
    end
    # If system window is active: call update_sys_command
    if @sys_command_window.active
      update_sys_command
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when command window is active)
  #--------------------------------------------------------------------------
  def update_command
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Return if Disabled Command
      if disabled_main_command?
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Command Input
      main_command_input
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Update SysCommand Window
  #--------------------------------------------------------------------------
  def update_sys_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @command_window.active = true
      @sys_command_window.active = false
      @sys_command_window.visible = false
      @sys_command_window.index = 0
      @sys_command_window.z = -500
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Return if Disabled Command
      if disabled_main_command?
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Command Input
      sys_command_input
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when status window is active)
  #--------------------------------------------------------------------------
  def update_status
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Make command window active
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Return if Disabled Command
      if disabled_main_command?
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Command Input
      sub_command_input
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Disabled Main Command? Test
  #--------------------------------------------------------------------------
  def disabled_main_command?
    # Gets Current Command
    command = @command_window.command
    sys_command = @sys_command_window.command
    # Gets SDK Scene_Menu Commands
    c = SDK::Scene_Commands::Scene_Menu
    # If 0 Party Size
    if $game_party.actors.size == 0
      # If Item, Skill, Equip or Status Selected
      if [c::Item, c::Skill, c::Equip, c::Status].include?(command)
        return true
      end
    end
    if $game_party.actors.size <= 1
      if [c::Order].include?(command)
        return true
      end
    end
    # If Save Disabled && Command is Save
    return true if $game_system.save_disabled && sys_command == c::Save
    # If Load Disabled && Command is Load
    return true if !@load_enabled && sys_command == c::Load
    return false
  end
  #--------------------------------------------------------------------------
  # * Main Command Input
  #--------------------------------------------------------------------------
  def main_command_input
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Branch by command window cursor position
    case @command_window.command
    when SDK::Scene_Commands::Scene_Menu::Item      # item
      command_item
    when SDK::Scene_Commands::Scene_Menu::Skill     # skill
      command_skill
    when SDK::Scene_Commands::Scene_Menu::Equip     # equipment
      command_equip
    when SDK::Scene_Commands::Scene_Menu::Status    # status
      command_status
    when SDK::Scene_Commands::Scene_Menu::Order      # order
      command_order
    when SDK::Scene_Commands::Scene_Menu::Option    #option
      command_option
    when SDK::Scene_Commands::Scene_Menu::System  # call system menu      
      $game_system.se_play($data_system.decision_se)
      @sys_command_window.active = true
      @sys_command_window.visible = true
      @command_window.active = false   
    end
  end
  #--------------------------------------------------------------------------
  # * System Command Input
  #--------------------------------------------------------------------------
  def sys_command_input
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Branch by command window cursor position
    case @sys_command_window.command
    when SDK::Scene_Commands::Scene_Menu::Save  #save
      command_save
    when SDK::Scene_Commands::Scene_Menu::Load  #load
      command_load
    when SDK::Scene_Commands::Scene_Menu::End_Game  #end game
      command_endgame
    when SDK::Scene_Commands::Scene_Menu::Option    #option
      command_option
    end
  end
  #--------------------------------------------------------------------------
  # * Disabled Sub Command? Test
  #--------------------------------------------------------------------------
  def disabled_sub_command?
    # If Skill Selected
    if @command_window.command == SDK::Scene_Commands::Scene_Menu::Skill
      # If this actor's action limit is 2 or more
      if $game_party.actors[@status_window.index].restriction >= 2
        return true
      end
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * Sub Command Input
  #--------------------------------------------------------------------------
  def sub_command_input
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Branch by command window cursor position
    case @command_window.command
    when SDK::Scene_Commands::Scene_Menu::Skill     # skill
      command_skill
    when SDK::Scene_Commands::Scene_Menu::Equip     # equipment
      command_equip
    when SDK::Scene_Commands::Scene_Menu::Status    # status
      command_status
    when SDK::Scene_Commands::Scene_Menu::Order      # order
      command_order
    end
  end
  #--------------------------------------------------------------------------
  # * Command : Item
  #--------------------------------------------------------------------------
  def command_item
    # Switch to item screen
    $scene = Scene_Item.new
  end
  #--------------------------------------------------------------------------
  # * Command : Skill
  #--------------------------------------------------------------------------
  def command_skill
    # If Main Command Active
    if @command_window.active
      # Activate Status Window
      active_status_window
      return
    end
    # Switch to skill screen
    $scene = Scene_Skill.new(@status_window.index)
  end
  #--------------------------------------------------------------------------
  # * Command : Equip
  #--------------------------------------------------------------------------
  def command_equip
    # If Main Command Active
    if @command_window.active
      # Activate Status Window
      active_status_window
      return
    end
    # Switch to equipment screen
    $scene = Scene_Equip.new(@status_window.index)
  end
  #--------------------------------------------------------------------------
  # * Command : Status
  #--------------------------------------------------------------------------
  def command_status
    # If Main Command Active
    if @command_window.active
      # Activate Status Window
      active_status_window
      return
    end
    # Switch to status screen
    $scene = Scene_Status.new(@status_window.index)
  end
  #--------------------------------------------------------------------------
  # * Command : Order
  #--------------------------------------------------------------------------
  def command_order
    # If Main Command Active
    if @command_window.active
      # Activate Status Window
      active_status_window
      @checker = 0
      return
    end
    #Change Party Order by Yargovish
    if @checker == 0
      @changer = $game_party.actors[@status_window.index]
      @where = @status_window.index
      @checker = 1
    else
      $game_party.actors[@where] = $game_party.actors[@status_window.index]
      $game_party.actors[@status_window.index] = @changer
      @checker = 0
      @status_window.refresh
      $game_player.refresh #
    end      
  end
  #--------------------------------------------------------------------------
  # * Command : Party
  #--------------------------------------------------------------------------
  def command_party
    # Switch to party change screen
    #Put your Party Change Scene here
  end
  #--------------------------------------------------------------------------
  # * Command : Option
  #--------------------------------------------------------------------------
  def command_option
    # Switch to option screen
    #Put your Option Scene here
    $scene = Scene_ConfigurationType.new
  end
  #--------------------------------------------------------------------------
  # * Command : Quest
  #--------------------------------------------------------------------------
  def command_quest
    # Switch to quest screen
    #Put your Quest Scene here
  end
  #--------------------------------------------------------------------------
  # * Command : Save
  #--------------------------------------------------------------------------
  def command_save
    # Switch to save screen
    $scene = Scene_Save.new
  end
  #--------------------------------------------------------------------------
  # * Command : Load
  #--------------------------------------------------------------------------
  def command_load
    # Switch to load screen
    $scene = Scene_Load.new
  end
  #--------------------------------------------------------------------------
  # * Command : End Game
  #--------------------------------------------------------------------------
  def command_endgame
    # Switch to end game screen
    $scene = Scene_End.new
  end
  #--------------------------------------------------------------------------
  # * Activate Status Window
  #--------------------------------------------------------------------------
  def active_status_window
    # Make status window active
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
  end
end

#--------------------------------------------------------------------------
# * End SDK Enable Test
#--------------------------------------------------------------------------
end


CMS #2 - Simple-looking menu
 Originally, it was for private use, so I didn't intend to release it by public.  I tried to make its look as simple as possible, but some things were not that simple for me.
(Note: I tried to make it look like that of RPG Tkool Dante98/DantePC.  Though it doesn't look same, it looks similar to that of oldest RPG Maker series product..)

http://img368.imageshack.us/img368/3828/rmxpcmstest04cl4.png[/img]

Code:
#L's Custom Menu 2

#==============================================================================
# Window_Gold
#==============================================================================
class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    super(439, 413, 200, 64)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    #Z-Pos
    self.z = 100
    #Refresh and add the contents to window
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Advanced Gold Display mini-script by Dubealex.
    self.contents.clear     
    case $game_party.gold
      when 0..9999
        gold = $game_party.gold
      when 10000..99999
        gold = $game_party.gold.to_s
        array = gold.split(//)
        gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
      when 100000..999999 
        gold = $game_party.gold.to_s
        array = gold.split(//)
        gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
      when 1000000..9999999 
        gold = $game_party.gold.to_s
        array = gold.split(//)
        gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
      end
  
    self.contents.font.color = system_color 
    gold_word = $data_system.words.gold.to_s + " /"
    cx = contents.text_size(gold_word).width
    cx2=contents.text_size(gold.to_s).width
    self.contents.draw_text(4, 0, 160-cx-2, 32, gold_word)
    self.contents.font.color = text_color(0) 
    self.contents.draw_text(164-cx2+2, 0, cx2, 32, gold.to_s, 2)
  end
end


#==============================================================================
# Window_PlayTime
#==============================================================================
class Window_PlayTime < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    super(239, 413, 200, 64)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    #Z-Pos
    self.z = 100
    #Refresh and add the contents to window
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Clear Bitmap
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "Time")
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 160, 32, text, 2)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end


#============================================================================== 
# â–  Game_Map 
#============================================================================== 
class Game_Map    
  def name
     $map_infos[@map_id]
  end   
end


#========================================
#â–  Scene_Title
#--------------------------------------------------------------------------------
# Setting functions for the Title
#========================================
class Scene_Title
  $map_infos = load_data("Data/MapInfos.rxdata")
  for key in $map_infos.keys
    $map_infos[key] = $map_infos[key].name
  end
end

#==============================================================================
# Window_MapName
#==============================================================================
class Window_MapName < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    super(0, 413, 239, 64)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    #Z-Pos
    self.z = 100
    #Refresh and add the contents to window
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Clear Bitmap
    self.contents.clear    
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 200, 32, $game_map.name.to_s, 1)
  end  
end


#==============================================================================
# Window_MenuStatus
#==============================================================================
class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    $game_party.actors.size < 4 ? i = 14 : i = 0
    $game_party.actors.size == 1 ? i = 24 : i = i
    super(177, 0, 462, ($game_party.actors.size * 72)+i)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    #Z-Pos
    self.z = 100
    #Refresh and add the contents to window    
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Clear Bitmap
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = 16
      y = i*64
      actor = $game_party.actors[i]
      draw_actor_name(actor, x, y)
      draw_actor_class(actor, x + 144, y)
      draw_actor_state(actor, x + 260, y )
      draw_actor_level(actor, x, y + 32)
      draw_actor_hp(actor, x + 98, y + 32)
      draw_actor_sp(actor, x + 254, y + 32)
    end
  end
  #--------------------------------------------------------------------------
  # * Cursor Rectangle Update
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(0, @index * 64, self.width - 32, 64)
    end
  end
end


#==============================================================================
# Scene_Menu
#==============================================================================
class Scene_Menu
  def initialize(menu_index = 0)
    @menu_index = menu_index
    commands_init
    @changer = 0 #Change Party Order by Yargovish
    @where = 0 #
    @checker = 0  #
  end
  #--------------------------------------------------------------------------
  # * Set Commands
  #--------------------------------------------------------------------------
  def commands_init
    # MenuCommand
    @commands = []
    s1 = "Item"
    s2 = "Skill"
    s3 = "Equip"
    s4 = "Status"
    s5 = "Order"
    s6 = "System"
    @commands.push(s1, s2, s3, s4, s5, s6).flatten!
    
    @system_commands = []
    o1 = "Option"
    o2 = "Help"
    o3 = "Save"
    o4 = "Load"
    o5 = "Exit"
    @system_commands.push(o1, o2, o3, o4, o5).flatten!
  end
  #--------------------------------------------------------------------------
  # * Main - Handles drawing/disposing windows and the main loop 
  #--------------------------------------------------------------------------
  def main
    #Draw Windows
    main_command_window
    system_command_window
    main_draw
    #Execute transition
    Graphics.transition
    #Main Loop
    loop do
      #Main Loop
      main_loop
      break if main_scenechange?
    end
    #Prepare for transition
    Graphics.freeze
    #Dispose Windows
    main_dispose
  end
  #--------------------------------------------------------------------------
  # * Main Draw - Handles drawing windows
  #--------------------------------------------------------------------------
  def main_draw
    #Draw Background
    @background = Spriteset_Map.new
    #Draw Windows   
    @gold_window = Window_Gold.new
    @gold_window.x = 439
    @gold_window.y = 413
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 239
    @playtime_window.y = 413    
    @map_window = Window_MapName.new
    @map_window.x = 0
    @map_window.y = 413
    @map_window.z = 100
    @status_window = Window_MenuStatus.new        
  end
  #--------------------------------------------------------------------------
  # * Main Command Window
  #--------------------------------------------------------------------------
  def main_command_window  
    @command_window = Window_Command.new(160, @commands)
    @command_window.index = @menu_index
    # If number of party members is 0
    if $game_party.actors.size == 0
      # Disable items, skills, equipment, and status
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    
    if $game_party.actors.size <= 1 #
      @command_window.disable_item(4)
    end   
  end
    
  def system_command_window
    @load_enabled = false
    @sys_command_window = Window_Command.new(160, @system_commands)
    @sys_command_window.visible = false
    @sys_command_window.active = false
    @sys_command_window.x = 100
    @sys_command_window.y = 180
    @sys_command_window.z = 0
    if $game_system.save_disabled
      @sys_command_window.disable_item(2)
    end
    for i in 0..3
      if (FileTest.exist?("Save#{i+1}.rxdata"))        
        @load_enabled = true
      end
    end  
    if !@load_enabled
      @sys_command_window.disable_item(3)
    end
  end    
  #--------------------------------------------------------------------------
  # * Main Scene Change 
  #--------------------------------------------------------------------------
  def main_scenechange?
    # Abort loop if screen is changed
    if $scene != self
      return true
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * Main Dispose 
  #--------------------------------------------------------------------------
  def main_dispose
    #Dispose Background
    @background.dispose
    # Dispose All Windows
    @gold_window.dispose
    @playtime_window.dispose
    @map_window.dispose
    @status_window.dispose
    @command_window.dispose
    @sys_command_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Main Loop 
  #--------------------------------------------------------------------------
  def main_loop
    # Update game screen
    Graphics.update
    # Update input information
    Input.update
    # Frame update
    update
  end
  #--------------------------------------------------------------------------
  # * Update 
  #--------------------------------------------------------------------------
  def update
    # Update Windows
    update_windows
    #update_command if @command_window.active and @command_window.visible
    #update_sys_command if @sys_command_window.active and @sys_command_window.visible
    #update_status if @status_window.active
    
    if @sys_command_window.active
      @sys_command_window.z = +500
    end
    
    # If command window is active: call update_command
    if @command_window.active
      update_command
      return
    end
    # If system window is active: call update_sys_command
    if @sys_command_window.active
      update_sys_command
      return
    end
    # If status window is active: call update_status
    if @status_window.active
      update_status
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Window Update 
  #--------------------------------------------------------------------------
  def update_windows    
    @command_window.update if @command_window.visible
    @sys_command_window.update if @sys_command_window.visible
    @gold_window.update
    @playtime_window.update
    @map_window.update
    @status_window.update
  end
  #--------------------------------------------------------------------------
  # * Update Command Window
  #--------------------------------------------------------------------------
  def update_command
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # If command other than save or end game, and party members = 0
      if $game_party.actors.size == 0 and @command_window.index < 4
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Branch by command window cursor position
      case @command_window.index
      when 0 # Item      
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to item screen
        $scene = Scene_Item.new
      when 1 # Skill
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2 # Equip
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0      
      when 3 # Status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Make status window active
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0          
      when 4 # Order
        #Change Party Order by Yargovish
        $game_system.se_play($data_system.decision_se)
        @checker = 0
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0      
      when 5 # System
        $game_system.se_play($data_system.decision_se)
        @sys_command_window.active = true
        @sys_command_window.visible = true
        @command_window.active = false         
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Update SysCommand Window
  #--------------------------------------------------------------------------
  def update_sys_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @command_window.active = true
      @sys_command_window.active = false
      @sys_command_window.visible = false
      @sys_command_window.index = 0
      @sys_command_window.z = 0
      return
    end
    
    if Input.trigger?(Input::C)
      case @sys_command_window.index      
      when 0
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Option.new
      when 1
        # Play decision SE
        #$game_system.se_play($data_system.decision_se)
        #$scene = Scene_HelpScreen.new
      when 2
        # # If saving is forbidden
        if $game_system.save_disabled
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to save screen
        $scene = Scene_Save.new
      when 3
        if !@load_enabled
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to load screen
        $scene = Scene_Load.new
      when 4
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to end game screen
        $scene = Scene_End.new
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when status window is active)
  #--------------------------------------------------------------------------
  def update_status
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Make command window active
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Branch by command window cursor position
      case @command_window.index
      when 1  # skill
        # If this actor's action limit is 2 or more
        if $game_party.actors[@status_window.index].restriction >= 2
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to skill screen
        $scene = Scene_Skill.new(@status_window.index)
      when 2  # equipment
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to equipment screen
        $scene = Scene_Equip.new(@status_window.index)
      when 3  # status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to status screen
        $scene = Scene_Status.new(@status_window.index)
      when 4
        #Change Party Order by Yargovish
        $game_system.se_play($data_system.decision_se)
        if @checker == 0
          @changer = $game_party.actors[@status_window.index]
          @where = @status_window.index
          @checker = 1
        else
          $game_party.actors[@where] = $game_party.actors[@status_window.index]
          $game_party.actors[@status_window.index] = @changer
          @checker = 0
          @status_window.refresh
          $game_player.refresh #
        end        
      end
      return
    end
  end  
end


class Scene_Load < Scene_File
  #--------------------------------------------------------------------------
  # * Alias Listings
  #--------------------------------------------------------------------------
  alias load_initialize initialize
  alias load_on_cancel on_cancel
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    @scene = $scene
    load_initialize
  end
  #--------------------------------------------------------------------------
  # * Cancel Processing
  #--------------------------------------------------------------------------
  def on_cancel
    load_on_cancel
    $scene = @scene
  end
end

To be continued..
 
CMS #2 - Simple-looking menu
Continued from previous.

Code:
#============================================================================
#L's Custom Menu #2 - Retro-looking 
#============================================================================
=begin
  This CMS is the result of attempted recreating RPG Tkool Dante98/DantePC Menu 
for RPG Maker XP.(except map name and time windows, and some commands ;))  Map 
as Background, and the size-changing Window_MenuStatus is inspired by D2Win
(MS Windows frontend for Dante98/98 II Games).
=end
#==============================================================================

module MenuCommand
  Item     = 'Item'
  Skill    = 'Skill'
  Equip    = 'Equip'
  Status   = 'Status'
  Save     = 'Save'
  Load     = 'Load'
  End_Game = 'Exit'
    
  Help     = 'Help'
  Order    = 'Order'
  Party    = 'Party'
  Option   = 'Option'
  Quest    = 'Quest'
  Limit    = 'Limit'
  System   = 'System'
end


#==============================================================================
# Window_Gold
#==============================================================================

class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    super(439, 413, 200, 64)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    #Refresh and add the contents to window
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Advanced Gold Display mini-script by Dubealex.
    self.contents.clear     
    case $game_party.gold
    when 0..9999
      gold = $game_party.gold
    when 10000..99999
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
    when 100000..999999 
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
    when 1000000..9999999 
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
    end
  
    self.contents.font.color = system_color 
    gold_word = $data_system.words.gold.to_s + " /"
    cx = contents.text_size(gold_word).width
    cx2=contents.text_size(gold.to_s).width
    self.contents.draw_text(4, 0, 160-cx-2, 32, gold_word)
    self.contents.font.color = text_color(0) 
    self.contents.draw_text(164-cx2+2, 0, cx2, 32, gold.to_s, 2)
  end
end


#==============================================================================
# Window_PlayTime
#==============================================================================

class Window_PlayTime < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    super(239, 413, 200, 64)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    #Refresh and add the contents to window
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Clear Bitmap
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "Time")
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 160, 32, text, 2)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end


#------------------------------------------------------------------------------
#  Game_Map
#------------------------------------------------------------------------------
class Game_Map
#------------------------------------------------------------------------------
#  Name
#------------------------------------------------------------------------------
  def name
    $map_infos[@map_id]
  end
end


#========================================
#â–  Scene_Title
#--------------------------------------------------------------------------------
# Setting functions for the Title
#========================================
class Scene_Title
  $map_infos = load_data("Data/MapInfos.rxdata")
  for key in $map_infos.keys
    $map_infos[key] = $map_infos[key].name
  end
end


#==============================================================================
# Window_MapName
#==============================================================================

class Window_MapName < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    super(0, 413, 239, 64)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    #Refresh and add the contents to window
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Clear Bitmap
    self.contents.clear    
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 200, 32, $game_map.name.to_s, 1)
  end  
end


#==============================================================================
# Window_MenuStatus
#==============================================================================

class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    $game_party.actors.size < 4 ? i = 14 : i = 0
    $game_party.actors.size == 1 ? i = 24 : i = i
    super(177, 0, 462, ($game_party.actors.size * 72)+i)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    #Refresh and add the contents to window    
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Clear Bitmap
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = 16
      y = i*64
      actor = $game_party.actors[i]
      draw_actor_name(actor, x, y)
      draw_actor_class(actor, x + 144, y)
      draw_actor_state(actor, x + 260, y )
      draw_actor_level(actor, x, y + 32)
      draw_actor_hp(actor, x + 98, y + 32)
      draw_actor_sp(actor, x + 254, y + 32)
    end
  end
  #--------------------------------------------------------------------------
  # * Cursor Rectangle Update
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(0, @index * 64, self.width - 32, 64)
    end
  end
end


#==============================================================================
# Scene_Menu
#==============================================================================
class Scene_Menu
  def initialize(menu_index = 0)
    @menu_index = menu_index
    commands_init
    @changer = 0 #Change Party Order by Yargovish
    @where = 0 #
    @checker = 0  #
  end
  #--------------------------------------------------------------------------
  # * Set Commands
  #--------------------------------------------------------------------------
  def commands_init
    # MenuCommand
    @commands = []
    s1 = MenuCommand::Item
    s2 = MenuCommand::Skill
    s3 = MenuCommand::Equip
    s4 = MenuCommand::Status
    s5 = MenuCommand::Order
    s6 = MenuCommand::Limit
    s7 = MenuCommand::System
    @commands.push(s1, s2, s3, s4, s5, s6, s7).flatten!
    
    @sys_commands = []
    o1 = MenuCommand::Option
    o2 = MenuCommand::Help
    o3 = MenuCommand::Save
    o4 = MenuCommand::Load
    o5 = MenuCommand::End_Game
    @sys_commands.push(o3, o4, o5).flatten!
  end
  #--------------------------------------------------------------------------
  # * Main - Handles drawing/disposing windows and the main loop 
  #--------------------------------------------------------------------------
  def main
    #Draw Background
    @background = Spriteset_Map.new
    #Draw Windows
    main_window
    #Execute transition
    Graphics.transition
    #Main Loop
    loop do
      #Main Loop
      main_loop
      break if main_scenechange?
    end
    #Prepare for transition
    Graphics.freeze
    #Dispose Windows
    main_dispose
  end
  #--------------------------------------------------------------------------
  # * Main Draw - Handles drawing windows
  #--------------------------------------------------------------------------
  def main_window    
    #Draw Windows
    main_command_window
    system_command_window   
    @gold_window = Window_Gold.new
    @gold_window.x = 439
    @gold_window.y = 413
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 239
    @playtime_window.y = 413    
    @map_window = Window_MapName.new
    @map_window.x = 0
    @map_window.y = 413
    @map_window.z = 100
    @status_window = Window_MenuStatus.new        
  end
  #--------------------------------------------------------------------------
  # * Main Command Window
  #--------------------------------------------------------------------------
  def main_command_window  
    @command_window = Window_Command.new(160, @commands)
    @command_window.index = @menu_index
    # If number of party members is 0
    if $game_party.actors.size == 0
      # Disable items, skills, equipment, and status
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    
    if $game_party.actors.size <= 1 #
      #Disable change party order
      @command_window.disable_item(4)
    end   
  end
  #--------------------------------------------------------------------------
  # * System Command Window
  #--------------------------------------------------------------------------
  def system_command_window
    @sys_command_window = Window_Command.new(160, @sys_commands)
    @sys_command_window.visible = false
    @sys_command_window.active = false
    @sys_command_window.x = 100
    @sys_command_window.y = 210
    @sys_command_window.z = 0
    check_save_available
    check_load_available
  end
  #-----------------
  def check_save_available
    if $game_system.save_disabled
      @sys_command_window.disable_item(0)
    end
  end
  #-----------------
  def check_load_available
    #Check if saved file exists
    @load_enabled = false
    for i in 0..3
      if (FileTest.exist?("Save#{i+1}.rxdata"))        
        @load_enabled = true
      end
    end  
    if !@load_enabled
      @sys_command_window.disable_item(1)
    end
  end    
  #--------------------------------------------------------------------------
  # * Main Scene Change 
  #--------------------------------------------------------------------------
  def main_scenechange?
    # Abort loop if screen is changed
    if $scene != self
      return true
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * Main Dispose 
  #--------------------------------------------------------------------------
  def main_dispose
    #Dispose Background
    @background.dispose
    # Dispose All Windows
    @gold_window.dispose
    @playtime_window.dispose
    @map_window.dispose
    @status_window.dispose
    @command_window.dispose
    @sys_command_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Main Loop 
  #--------------------------------------------------------------------------
  def main_loop
    # Update game screen
    Graphics.update
    # Update input information
    Input.update
    # Frame update
    update
  end
  #--------------------------------------------------------------------------
  # * Update 
  #--------------------------------------------------------------------------
  def update
    # Update Windows
    update_windows
    #update_command if @command_window.active and @command_window.visible
    #update_sys_command if @sys_command_window.active and @sys_command_window.visible
    #update_status if @status_window.active
    
    if @sys_command_window.active
      @sys_command_window.z = +500
    end
    
    # If command window is active: call update_command
    if @command_window.active
      update_command
      return
    end
    # If system window is active: call update_sys_command
    if @sys_command_window.active
      update_sys_command
      return
    end
    # If status window is active: call update_status
    if @status_window.active
      update_status
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Window Update 
  #--------------------------------------------------------------------------
  def update_windows    
    @command_window.update if @command_window.visible
    @sys_command_window.update if @sys_command_window.visible
    @gold_window.update
    @playtime_window.update
    @map_window.update
    @status_window.update
  end
  #--------------------------------------------------------------------------
  # * Update Command Window
  #--------------------------------------------------------------------------
  def update_command
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Return if Disabled Command
      if disabled_main_command?
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      main_command_input
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Update SysCommand Window
  #--------------------------------------------------------------------------
  def update_sys_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @command_window.active = true
      @sys_command_window.active = false
      @sys_command_window.visible = false
      @sys_command_window.index = 0
      @sys_command_window.z = -500
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Return if Disabled Command
      if disabled_main_command?
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Command Input
      sys_command_input
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when status window is active)
  #--------------------------------------------------------------------------
  def update_status
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Make command window active
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Return if Disabled Command
      if disabled_main_command?
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Command Input
      sub_command_input
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Disabled Main Command? Test
  #--------------------------------------------------------------------------
  def disabled_main_command?
    # Gets Current Command
    command = @commands[@command_window.index]
    sys_command = @sys_commands[@sys_command_window.index]
    # Gets SDK Scene_Menu Commands
    c = MenuCommand
    # If 0 Party Size
    if $game_party.actors.size == 0
      # If Item, Skill, Equip or Status Selected
      if [c::Item, c::Skill, c::Equip, c::Status].include?(command)
        return true
      end
    end
    if $game_party.actors.size <= 1
      if [c::Order].include?(command)
        return true
      end
    end
    # If Save Disabled && Command is Save
    return true if $game_system.save_disabled && sys_command == c::Save
    # If Load Disabled && Command is Load
    return true if !@load_enabled && sys_command == c::Load
    return false
  end
  #--------------------------------------------------------------------------
  # * Update Command Check
  #--------------------------------------------------------------------------
  def main_command_input
    # Loads Current Command
    command = @commands[@command_window.index]
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Checks Commands
    case command
    when MenuCommand::Item  #item
      command_item
    when MenuCommand::Skill #skill
      command_skill
    when MenuCommand::Equip #equip
      command_equip
    when MenuCommand::Status  #status
      command_status
    when MenuCommand::Order #order
      command_order
    when MenuCommand::Limit #limit break skill
      command_limitbreak
    when MenuCommand::System  #call system submenu
      $game_system.se_play($data_system.decision_se)
      @sys_command_window.active = true
      @sys_command_window.visible = true
      @command_window.active = false     
    end
  end
  #--------------------------------------------------------------------------
  # * Update System Command Check
  #--------------------------------------------------------------------------
  def sys_command_input
    # Loads Current Command
    sys_command = @sys_commands[@sys_command_window.index]
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Checks Commands
    case sys_command
    when MenuCommand::Help
      command_help
    when MenuCommand::Option  #option
      command_option
    when MenuCommand::Save  #save
      command_save
    when MenuCommand::Load  #load
      command_load
    when MenuCommand::End_Game  #exit
      command_endgame
    end
  end
  #--------------------------------------------------------------------------
  # * Disabled Sub Command? Test
  #--------------------------------------------------------------------------
  def disabled_sub_command?
    # Loads Current Command
    command = @commands[@command_window.index]
    # If Skill Selected
    if command == MenuCommand::Skill
      # If this actor's action limit is 2 or more
      if $game_party.actors[@status_window.index].restriction >= 2
        return true
      end
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * Update Status Check
  #--------------------------------------------------------------------------
  def sub_command_input
    # Loads Current Command
    command = @commands[@command_window.index]
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Checks Command By Name
    case command
    when MenuCommand::Skill
      command_skill
    when MenuCommand::Equip
      command_equip
    when MenuCommand::Status
      command_status
    when MenuCommand::Order
      command_order
    when MenuCommand::Limit #limit break skill
      command_limitbreak
    end
  end
  #--------------------------------------------------------------------------
  # * Command Item
  #--------------------------------------------------------------------------
  def command_item
    # Switch to item screen
    $scene = Scene_Item.new
  end
  #--------------------------------------------------------------------------
  # * Command Skill
  #--------------------------------------------------------------------------
  def command_skill
    # If Main Command Active
    if @command_window.active
      # Activate Status Window
      active_status_window
      return
    end
    # Switch to skill screen
    $scene = Scene_Skill.new(@status_window.index)
  end
  #--------------------------------------------------------------------------
  # * Command Equip
  #--------------------------------------------------------------------------
  def command_equip
    # If Main Command Active
    if @command_window.active
      # Activate Status Window
      active_status_window
      return
    end
    # Switch to equipment screen
    $scene = Scene_Equip.new(@status_window.index)
  end
  #--------------------------------------------------------------------------
  # * Command Status
  #--------------------------------------------------------------------------
  def command_status
    # If Main Command Active
    if @command_window.active
      # Activate Status Window
      active_status_window
      return
    end
    # Switch to status screen
    $scene = Scene_Status.new(@status_window.index)
  end
  #--------------------------------------------------------------------------
  # * Command Order
  #--------------------------------------------------------------------------
  def command_order
    # If Main Command Active
    if @command_window.active
      # Activate Status Window
      active_status_window
      @checker = 0
      return
    end
    #Change Party Order by Yargovish
    if @checker == 0
      @changer = $game_party.actors[@status_window.index]
      @where = @status_window.index
      @checker = 1
    else
      $game_party.actors[@where] = $game_party.actors[@status_window.index]
      $game_party.actors[@status_window.index] = @changer
      @checker = 0
      @status_window.refresh
      $game_player.refresh #
    end      
  end
  #--------------------------------------------------------------------------
  # * Command Party
  #--------------------------------------------------------------------------
  def command_party
    # Switch to party change screen
    #Put your Party Change Scene here
  end
  #--------------------------------------------------------------------------
  # * Command Option
  #--------------------------------------------------------------------------
  def command_option
    # Switch to option screen
    #Put your Option Scene here
  end
  #--------------------------------------------------------------------------
  # * Command Quest
  #--------------------------------------------------------------------------
  def command_quest
    # Switch to quest log screen
    #Put your Quest Scene here
  end
  #--------------------------------------------------------------------------
  # * Command Quest
  #--------------------------------------------------------------------------
  def command_help
    # Switch to help screen
    #Put your Help Scene here
  end
  #--------------------------------------------------------------------------
  # * Command LimitBreak
  #--------------------------------------------------------------------------
  def command_limitbreak
    # If Main Command Active
    if @command_window.active
      # Activate Status Window
      active_status_window
      return
    end
    # Switch to limit screen
    #Put your limit Scene here
    $scene = Scene_LimitMenu.new(@status_window.index) #for Alistor's Limit Break menu
  end
  #--------------------------------------------------------------------------
  # * Command Save
  #--------------------------------------------------------------------------
  def command_save
    # Switch to save screen
    $scene = Scene_Save.new
  end
  #--------------------------------------------------------------------------
  # * Command Load
  #--------------------------------------------------------------------------
  def command_load
    # Switch to load screen
    $scene = Scene_Load.new
  end
  #--------------------------------------------------------------------------
  # * Command End Game
  #--------------------------------------------------------------------------
  def command_endgame
    # Switch to end game screen
    $scene = Scene_End.new
  end
  #--------------------------------------------------------------------------
  # * Activate Status Window
  #--------------------------------------------------------------------------
  def active_status_window
    # Make status window active
    @command_window.active = false
    @status_window.active = true
    @status_window.visible = true 
    @status_window.index = 0
  end
end

   
To be continued..
 
CMS #2 - Simple-looking menu
Continued from previous..

Code:
#==============================================================================
#L's Custom Menu #2 - SDK2 ver.
#--------------------------------------------------------------------------
=begin
  This CMS is the result of attempted recreating RPG Tkool Dante98/DantePC Menu 
for RPG Maker XP.(except map name and time windows, and some commands ;))  Map 
as Background, and the size-changing Window_MenuStatus is inspired by D2Win
(Windows frontend for Dante98/98 II Games).
=end
#==============================================================================

#--------------------------------------------------------------------------
# * Begin SDK Log
#--------------------------------------------------------------------------
SDK.log("L's CMS #2", 'L', 1.01, '2007-03-15')

#--------------------------------------------------------------------------
# * Begin SDK Requirement Check
#--------------------------------------------------------------------------
SDK.check_requirements(2.0, [1, 3])

#--------------------------------------------------------------------------
# * Begin SDK Enable Test
#--------------------------------------------------------------------------
if SDK.enabled?("L's CMS #2")

module SDK::Scene_Commands
  #============================================================================
  # ** Scene_Menu
  #============================================================================
  module Scene_Menu
    Item     = 'Item'
    Skill    = 'Skill'
    Equip    = 'Equip'
    Status   = 'Status'
    Save     = 'Save'
    Load     = 'Load'
    End_Game = 'Exit'
    
    Order    = 'Order'
    Party    = 'Party'
    Option   = 'Option'
    Quest    = 'Quest'
    System   = 'System'
  end
end


#==============================================================================
# Window_Gold
#==============================================================================

class Window_Gold < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    super(439, 413, 200, 64)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    #Refresh and add the contents to window
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Advanced Gold Display mini-script by Dubealex.
    self.contents.clear     
    case $game_party.gold
    when 0..9999
      gold = $game_party.gold
    when 10000..99999
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
    when 100000..999999 
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
    when 1000000..9999999 
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
    end
  
    self.contents.font.color = system_color 
    gold_word = $data_system.words.gold.to_s + " /"
    cx = contents.text_size(gold_word).width
    cx2=contents.text_size(gold.to_s).width
    self.contents.draw_text(4, 0, 160-cx-2, 32, gold_word)
    self.contents.font.color = text_color(0) 
    self.contents.draw_text(164-cx2+2, 0, cx2, 32, gold.to_s, 2)
  end
end


#==============================================================================
# Window_PlayTime
#==============================================================================

class Window_PlayTime < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    super(239, 413, 200, 64)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    #Refresh and add the contents to window
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Clear Bitmap
    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "Time")
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 160, 32, text, 2)
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end


#============================================================================== 
# â–  Game_Map 
#============================================================================== 
class Game_Map    
  def name
     $map_infos[@map_id]
  end   
end


#========================================
#â–  Scene_Title
#--------------------------------------------------------------------------------
# Setting functions for the Title
#========================================
class Scene_Title
  $map_infos = load_data("Data/MapInfos.rxdata")
  for key in $map_infos.keys
    $map_infos[key] = $map_infos[key].name
  end
end


#==============================================================================
# Window_MapName
#==============================================================================

class Window_MapName < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    super(0, 413, 239, 64)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    #Refresh and add the contents to window
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Clear Bitmap
    self.contents.clear    
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 200, 32, $game_map.name.to_s, 1)
  end  
end


#==============================================================================
# Window_MenuStatus
#==============================================================================

class Window_MenuStatus < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    $game_party.actors.size < 4 ? i = 14 : i = 0
    $game_party.actors.size == 1 ? i = 24 : i = i
    super(177, 0, 462, ($game_party.actors.size * 72)+i)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    #Refresh and add the contents to window    
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Clear Bitmap
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = 16
      y = i*64
      actor = $game_party.actors[i]
      draw_actor_name(actor, x, y)
      draw_actor_class(actor, x + 144, y)
      draw_actor_state(actor, x + 260, y )
      draw_actor_level(actor, x, y + 32)
      draw_actor_hp(actor, x + 98, y + 32)
      draw_actor_sp(actor, x + 254, y + 32)
    end
  end
  #--------------------------------------------------------------------------
  # * Cursor Rectangle Update
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(0, @index * 64, self.width - 32, 64)
    end
  end
end


#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  This class performs menu screen processing.
#==============================================================================

class Scene_Menu < SDK::Scene_Base
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     menu_index : command cursor's initial position
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
    party_order_init
  end
  #--------------------------------------------------------------------------
  # * Party Order Change Initiation
  #--------------------------------------------------------------------------
  def party_order_init
    @changer = 0 #Change Party Order by Yargovish
    @where = 0 #
    @checker = 0  #
  end
  #--------------------------------------------------------------------------
  # * Main Processing : Spriteset Initialization
  #--------------------------------------------------------------------------
  def main_spriteset  
    #Draw Background
    @background = Spriteset_Map.new
  end
  #--------------------------------------------------------------------------
  # * Main Processing : Window Initialization
  #--------------------------------------------------------------------------
  def main_window
    super
    # Make main command window
    main_command_window
    system_command_window
    # Make play time window
    @playtime_window = Window_PlayTime.new
    @playtime_window.x = 239
    @playtime_window.y = 413 
    # Make map window
    @map_window = Window_MapName.new
    @map_window.x = 0
    @map_window.y = 413
    # Make gold window
    @gold_window = Window_Gold.new
    @gold_window.x = 439
    @gold_window.y = 413
    # Make status window
    @status_window = Window_MenuStatus.new
  end
  #--------------------------------------------------------------------------
  # * Main Processing : Window Initialization : Main Command
  #--------------------------------------------------------------------------
  def main_command_window
    # Make command window
    s1 = SDK::Scene_Commands::Scene_Menu::Item
    s2 = SDK::Scene_Commands::Scene_Menu::Skill
    s3 = SDK::Scene_Commands::Scene_Menu::Equip
    s4 = SDK::Scene_Commands::Scene_Menu::Status
    s5 = SDK::Scene_Commands::Scene_Menu::Order
    s6 = SDK::Scene_Commands::Scene_Menu::System
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    # If number of party members is 0
    if $game_party.actors.size == 0
      # Disable items, skills, equipment, and status
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    if $game_party.actors.size <= 1 #
      # Disable change party order
      @command_window.disable_item(4)
    end
  end
  #--------------------------------------------------------------------------
  # * Main Processing : Window Initialization : System Command
  #--------------------------------------------------------------------------
  def system_command_window
    # Make command window
    o1 = SDK::Scene_Commands::Scene_Menu::Option
    o2 = SDK::Scene_Commands::Scene_Menu::Save
    o3 = SDK::Scene_Commands::Scene_Menu::Load
    o4 = SDK::Scene_Commands::Scene_Menu::End_Game
    @sys_command_window = Window_Command.new(160, [o1, o2, o3, o4])
    @sys_command_window.visible = false
    @sys_command_window.active = false
    @sys_command_window.x = 100
    @sys_command_window.y = 180
    #@sys_command_window.z = 0
    check_save_available
    check_load_available
  end
  #-----------------
  def check_save_available
    # If save is forbidden
    if $game_system.save_disabled
      # Disable save
      @sys_command_window.disable_item(1)
    end
  end
  #-----------------
  def check_load_available
    #Check if saved file exists
    @load_enabled = false
    for i in 0..3
      if (FileTest.exist?("Save#{i+1}.rxdata"))        
        @load_enabled = true
      end
    end  
    if !@load_enabled
      #Put your @command_window.disable_item(index)
      @sys_command_window.disable_item(2)
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  alias_method :l_cms_menu_update, :update
  def update
    super
    l_cms_menu_update
    
    if @sys_command_window.active
      @sys_command_window.z = +500
    end
    # If system window is active: call update_sys_command
    if @sys_command_window.active
      update_sys_command
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when command window is active)
  #--------------------------------------------------------------------------
  def update_command
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Return if Disabled Command
      if disabled_main_command?
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Command Input
      main_command_input
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Update SysCommand Window
  #--------------------------------------------------------------------------
  def update_sys_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @command_window.active = true
      @sys_command_window.active = false
      @sys_command_window.visible = false
      @sys_command_window.index = 0
      @sys_command_window.z = -500
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Return if Disabled Command
      if disabled_sys_command?
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Command Input
      sys_command_input
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when status window is active)
  #--------------------------------------------------------------------------
  def update_status
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Make command window active
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Return if Disabled Command
      if disabled_main_command?
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Command Input
      sub_command_input
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Disabled Main Command? Test
  #--------------------------------------------------------------------------
  def disabled_main_command?
    # Gets Current Command
    command = @command_window.command
    # Gets SDK Scene_Menu Commands
    c = SDK::Scene_Commands::Scene_Menu
    # If 0 Party Size
    if $game_party.actors.size == 0
      # If Item, Skill, Equip or Status Selected
      if [c::Item, c::Skill, c::Equip, c::Status].include?(command)
        return true
      end
    end
    if $game_party.actors.size <= 1
      if [c::Order].include?(command)
        return true
      end
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * Disabled System Command? Test
  #--------------------------------------------------------------------------
  def disabled_sys_command?
    # Gets Current Command
    sys_command = @sys_command_window.command
    # Gets SDK Scene_Menu Commands
    c = SDK::Scene_Commands::Scene_Menu
    # If Save Disabled && Command is Save
    return true if $game_system.save_disabled && sys_command == c::Save
    # If Load Disabled && Command is Load
    return true if !@load_enabled && sys_command == c::Load
    return false
  end    
  #--------------------------------------------------------------------------
  # * Main Command Input
  #--------------------------------------------------------------------------
  def main_command_input
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Branch by command window cursor position
    case @command_window.command
    when SDK::Scene_Commands::Scene_Menu::Item      # item
      command_item
    when SDK::Scene_Commands::Scene_Menu::Skill     # skill
      command_skill
    when SDK::Scene_Commands::Scene_Menu::Equip     # equipment
      command_equip
    when SDK::Scene_Commands::Scene_Menu::Status    # status
      command_status
    when SDK::Scene_Commands::Scene_Menu::Order      # order
      command_order
    when SDK::Scene_Commands::Scene_Menu::System  # call system menu      
      $game_system.se_play($data_system.decision_se)
      @sys_command_window.active = true
      @sys_command_window.visible = true
      @command_window.active = false   
    end
  end
  #--------------------------------------------------------------------------
  # * System Command Input
  #--------------------------------------------------------------------------
  def sys_command_input
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Branch by command window cursor position
    case @sys_command_window.command
    when SDK::Scene_Commands::Scene_Menu::Option  #option
      command_option
    when SDK::Scene_Commands::Scene_Menu::Save  #save
      command_save
    when SDK::Scene_Commands::Scene_Menu::Load  #load
      command_load
    when SDK::Scene_Commands::Scene_Menu::End_Game  #end game
      command_endgame
    end
  end
  #--------------------------------------------------------------------------
  # * Disabled Sub Command? Test
  #--------------------------------------------------------------------------
  def disabled_sub_command?
    # If Skill Selected
    if @command_window.command == SDK::Scene_Commands::Scene_Menu::Skill
      # If this actor's action limit is 2 or more
      if $game_party.actors[@status_window.index].restriction >= 2
        return true
      end
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * Sub Command Input
  #--------------------------------------------------------------------------
  def sub_command_input
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Branch by command window cursor position
    case @command_window.command
    when SDK::Scene_Commands::Scene_Menu::Skill     # skill
      command_skill
    when SDK::Scene_Commands::Scene_Menu::Equip     # equipment
      command_equip
    when SDK::Scene_Commands::Scene_Menu::Status    # status
      command_status
    when SDK::Scene_Commands::Scene_Menu::Order      # order
      command_order
    end
  end
  #--------------------------------------------------------------------------
  # * Command : Item
  #--------------------------------------------------------------------------
  def command_item
    # Switch to item screen
    $scene = Scene_Item.new
  end
  #--------------------------------------------------------------------------
  # * Command : Skill
  #--------------------------------------------------------------------------
  def command_skill
    # If Main Command Active
    if @command_window.active
      # Activate Status Window
      active_status_window
      return
    end
    # Switch to skill screen
    $scene = Scene_Skill.new(@status_window.index)
  end
  #--------------------------------------------------------------------------
  # * Command : Equip
  #--------------------------------------------------------------------------
  def command_equip
    # If Main Command Active
    if @command_window.active
      # Activate Status Window
      active_status_window
      return
    end
    # Switch to equipment screen
    $scene = Scene_Equip.new(@status_window.index)
  end
  #--------------------------------------------------------------------------
  # * Command : Status
  #--------------------------------------------------------------------------
  def command_status
    # If Main Command Active
    if @command_window.active
      # Activate Status Window
      active_status_window
      return
    end
    # Switch to status screen
    $scene = Scene_Status.new(@status_window.index)
  end
  #--------------------------------------------------------------------------
  # * Command : Order
  #--------------------------------------------------------------------------
  def command_order
    # If Main Command Active
    if @command_window.active
      # Activate Status Window
      active_status_window
      @checker = 0
      return
    end
    #Change Party Order by Yargovish
    if @checker == 0
      @changer = $game_party.actors[@status_window.index]
      @where = @status_window.index
      @checker = 1
    else
      $game_party.actors[@where] = $game_party.actors[@status_window.index]
      $game_party.actors[@status_window.index] = @changer
      @checker = 0
      @status_window.refresh
      $game_player.refresh #
    end      
  end
  #--------------------------------------------------------------------------
  # * Command : Party
  #--------------------------------------------------------------------------
  def command_party
    # Switch to party change screen
    #Put your Party Change Scene here
  end
  #--------------------------------------------------------------------------
  # * Command : Option
  #--------------------------------------------------------------------------
  def command_option
    # Switch to option screen
    #Put your Option Scene here
  end
  #--------------------------------------------------------------------------
  # * Command : Quest
  #--------------------------------------------------------------------------
  def command_quest
    # Switch to quest screen
    #Put your Quest Scene here
  end
  #--------------------------------------------------------------------------
  # * Command : Save
  #--------------------------------------------------------------------------
  def command_save
    # Switch to save screen
    $scene = Scene_Save.new
  end
  #--------------------------------------------------------------------------
  # * Command : Load
  #--------------------------------------------------------------------------
  def command_load
    # Switch to load screen
    $scene = Scene_Load.new
  end
  #--------------------------------------------------------------------------
  # * Command : End Game
  #--------------------------------------------------------------------------
  def command_endgame
    # Switch to end game screen
    $scene = Scene_End.new
  end
  #--------------------------------------------------------------------------
  # * Activate Status Window
  #--------------------------------------------------------------------------
  def active_status_window
    # Make status window active
    @command_window.active = false
    @status_window.active = true
    @status_window.index = 0
  end
end

#--------------------------------------------------------------------------
# * End SDK Enable Test
#--------------------------------------------------------------------------
end

To be continued..
 
Continued from previous..

CMS #3 - One-person menu
  1-person menu, literally.  I can't remember what I wrote originally.  The 'Variable' can be used for fame, score, or anything.

http://img138.imageshack.us/img138/2205/rmxpcmstest03cv6.png[/img]

Code:
class Window_Base < Window
  SYSTEM_WORD_EVA = "Evade" #
  #--------------------------------------------------------------------------
  # * Draw Parameter
  #     actor : actor
  #     x     : draw spot x-coordinate
  #     y     : draw spot y-coordinate
  #     type  : parameter type (0-6)
  #--------------------------------------------------------------------------
  def draw_actor_parameter(actor, x, y, type)
    case type
    when 0
      parameter_name = $data_system.words.atk
      parameter_value = actor.atk
    when 1
      parameter_name = $data_system.words.pdef
      parameter_value = actor.pdef
    when 2
      parameter_name = $data_system.words.mdef
      parameter_value = actor.mdef
    when 3
      parameter_name = $data_system.words.str
      parameter_value = actor.str
    when 4
      parameter_name = $data_system.words.dex
      parameter_value = actor.dex
    when 5
      parameter_name = $data_system.words.agi
      parameter_value = actor.agi
    when 6
      parameter_name = $data_system.words.int
      parameter_value = actor.int
    when 7 #
      parameter_name = SYSTEM_WORD_EVA #
      parameter_value = actor.eva #
    end
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 120, 32, parameter_name)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s, 2)
  end
end


#============================================================================== 
# â–  Game_Map 
#============================================================================== 
class Game_Map    
  def name
     $map_infos[@map_id]
  end   
end


#========================================
#â–  Scene_Title
#--------------------------------------------------------------------------------
# Setting functions for the Title
#========================================
class Scene_Title
  $map_infos = load_data("Data/MapInfos.rxdata")
  for key in $map_infos.keys
    $map_infos[key] = $map_infos[key].name
  end
end


#==============================================================================
# InfoWindow
#==============================================================================
class Window_Info < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    super(0, 384, 640, 96)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.size = 22
    #Z-Pos
    self.z = 100
    #Refresh and add the contents to window
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Clear Bitmap
    self.contents.clear
    #Add Contents
    self.contents.font.color = system_color
    self.contents.draw_text(4,0,120,32,'Location')
    self.contents.font.color = normal_color
    self.contents.draw_text(96,0,360,32,$game_map.name.to_s)
    
    #Draw Steps
    self.contents.font.color = system_color
    self.contents.draw_text(4,32,120,32,'Steps')
    self.contents.font.color = normal_color
    self.contents.draw_text(48,32, 120, 32, $game_party.steps.to_s, 2)
    
    #Draw Play Time
    self.contents.font.color = system_color
    self.contents.draw_text(200,32,120,32,'Play Time')
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(310, 32, 120, 32, text)
    
    #Draw Gold
    #Advanced Gold Display mini-script by Dubealex.
    case $game_party.gold
    when 0..9999
      gold = $game_party.gold
    when 10000..99999
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
    when 100000..999999 
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
    when 1000000..9999999 
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
    end    
    self.contents.font.color = system_color
    gold_word = $data_system.words.gold.to_s + " :"
    cx = contents.text_size(gold_word).width
    cx2=contents.text_size(gold.to_s).width
    self.contents.draw_text(412,32,120-cx-2,32,gold_word)
    self.contents.font.color = normal_color
    self.contents.draw_text(600-cx2+2, 32, cx2, 32, gold.to_s, 2)
    
    #Draw Variable
    self.contents.font.color = system_color
    self.contents.draw_text(412,0,120,32,'Variable Name')
    self.contents.font.color = normal_color
    self.contents.draw_text(540,0,120,32,'Variable')
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end


#==============================================================================
# MenuStatus
#==============================================================================
class Window_NewMenuStatus < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    super(160, 0, 480, 320)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.size = 22
    #Z-Pos
    self.z = 100
    #Refresh and add the contents to window
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Clear Bitmap
    self.contents.clear
    actor = $game_party.actors[0]
    draw_actor_graphic(actor, 32, 64)
    draw_actor_name(actor, 75, 0)
    draw_actor_class(actor, 240, 0)
    draw_actor_level(actor, 75, 32)
    draw_actor_state(actor, 240, 32)
    draw_actor_exp(actor, 75, 64)
    draw_actor_hp(actor, 32,100)
    draw_actor_sp(actor, 240,100)
    draw_actor_parameter(actor, 32, 150, 0)
    draw_actor_parameter(actor, 32, 182, 1)
    draw_actor_parameter(actor, 32, 214, 2)
    draw_actor_parameter(actor, 32, 246, 7) #Evade
    draw_actor_parameter(actor, 240, 150, 3)
    draw_actor_parameter(actor, 240, 182, 4)
    draw_actor_parameter(actor, 240, 214, 5)
    draw_actor_parameter(actor, 240, 246, 6)
  end
end


#==============================================================================
# Scene_Menu
#==============================================================================
class Scene_Menu
  def initialize(menu_index = 0)
    @menu_index = menu_index
    commands_init
  end
  #--------------------------------------------------------------------------
  # * Set Commands
  #--------------------------------------------------------------------------
  def commands_init
    # MenuCommand
    @commands = []
    s1='Item'
    s2='Skill'
    s3='Equip'
    s4='Player'
    s5='Option'
    s6='System'
    @commands.push(s1, s2, s3, s4, s5, s6).flatten!
    
    @player_commands = []
    z1='Status'
    z2='Quest Log'
    @player_commands.push(z1, z2).flatten!
    
    @system_commands = []
    o1='Save'
    o2='Load'
    o3='Exit'
    @system_commands.push(o1, o2, o3).flatten!
  end
  #--------------------------------------------------------------------------
  # * Main - Handles drawing/disposing windows and the main loop 
  #--------------------------------------------------------------------------
  def main
    #Draw Windows
    main_command_window
    player_command_window
    system_command_window
    main_draw
    #Execute transition
    Graphics.transition
    #Main Loop
    loop do
      #Main Loop
      main_loop
      break if main_scenechange?
    end
    #Prepare for transition
    Graphics.freeze
    #Dispose Windows
    main_dispose
  end
  #--------------------------------------------------------------------------
  # * Main Command Window
  #--------------------------------------------------------------------------
  def main_command_window
    @command_window = Window_Command.new(160,@commands)
    @command_window.back_opacity = 160
    @command_window.index = @menu_index
    # If number of party members is 0
    if $game_party.actors.size == 0
      # Disable items, skills, equipment, and status
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
  end
  def player_command_window
    @player_command_window = Window_Command.new(160,@player_commands)
    @player_command_window.back_opacity = 160
    @player_command_window.visible = false
    @player_command_window.active = false
    @player_command_window.x = 100
    @player_command_window.y = 120
  end
  def system_command_window
    @sys_command_window = Window_Command.new(128,@system_commands)
    @sys_command_window.back_opacity = 160
    @sys_command_window.visible = false
    @sys_command_window.active = false
    @sys_command_window.x=100
    @sys_command_window.y=180
    if $game_system.save_disabled
      @sys_command_window.disable_item(0)
    end
  end
  #--------------------------------------------------------------------------
  # * Main Draw - Handles drawing windows
  #--------------------------------------------------------------------------
  def main_draw
    #Draw Background
    @background = Spriteset_Map.new
    
    #Draw Windows
    # InfoWindow
    @info_window = Window_Info.new
    @info_window.back_opacity = 160
    # MenuStatus
    @status_window = Window_NewMenuStatus.new
    @status_window.back_opacity = 160
  end
  #--------------------------------------------------------------------------
  # * Main Scene Change 
  #--------------------------------------------------------------------------
  def main_scenechange?
    # Abort loop if screen is changed
    if $scene != self
      return true
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * Main Dispose 
  #--------------------------------------------------------------------------
  def main_dispose
    #Dispose Background
    @background.dispose
    
    # Dispose All Windows
    # Dispose InfoWindow
    @info_window.dispose
    # Dispose MenuStatus
    @status_window.dispose
    # Dispose MenuCommand
    @command_window.dispose
    @player_command_window.dispose
    @sys_command_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Main Loop 
  #--------------------------------------------------------------------------
  def main_loop
    # Update game screen
    Graphics.update
    # Update input information
    Input.update
    # Frame update
    update
  end
  #--------------------------------------------------------------------------
  # * Update 
  #--------------------------------------------------------------------------
  def update
    # Update Windows
    update_windows
    
    if @player_command_window.active
      @player_command_window.z = +500
    end
    
    if @sys_command_window.active
      @sys_command_window.z = +500
    end
    
    # If command window is active: call update_command
    if @command_window.active
      update_command
      return
    end
    # If player menu window is active: call update_player_command
    if @player_command_window.active
      update_player_command
      return
    end
    # If system menu window is active: call update_sys_command
    if @sys_command_window.active
      update_sys_command
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Window Update 
  #--------------------------------------------------------------------------
  def update_windows
    # Update MenuCommand
    @command_window.update if @command_window.visible
    @player_command_window.update if @player_command_window.visible
    @sys_command_window.update if @sys_command_window.visible
    @info_window.update
    @status_window.update
  end
  #--------------------------------------------------------------------------
  # * Update Menu Command 
  #--------------------------------------------------------------------------
  def update_command
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)      
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)# If command other than save or end game, and party members = 0
      if $game_party.actors.size == 0 and @command_window.index < 4
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Branch by command window cursor position
      case @command_window.index
      when 0 # Item
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to item screen
        $scene = Scene_Item.new
      when 1 # Skill
        # If this actor's action limit is 2 or more
        if $game_party.actors[0].restriction >= 2
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to skill screen
        $scene = Scene_Skill.new
      when 2 # Equip
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to equipment screen
        $scene = Scene_Equip.new
      when 3 # Player
        $game_system.se_play($data_system.decision_se)
        @player_command_window.active = true
        @player_command_window.visible = true
        @command_window.active = false
      when 4 # Option
        #$game_system.se_play($data_system.decision_se)
        #Put your Option Scene
      when 5 # System
        $game_system.se_play($data_system.decision_se)
        @sys_command_window.active = true
        @sys_command_window.visible = true
        @command_window.active = false
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Update PlayerCommand Window
  #--------------------------------------------------------------------------
  def update_player_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @command_window.active = true
      @player_command_window.active = false
      @player_command_window.visible = false
      @player_command_window.index = 0
      @player_command_window.z = 0
      return
    end  
    
    if Input.trigger?(Input::C)
      case @player_command_window.index      
      when 0 #Status
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to status screen
        $scene = Scene_Status.new
      when 1 #Quest Log
        # Play decision SE
        #$game_system.se_play($data_system.decision_se)
        #Put your Quest Scene
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Update SysCommand Window
  #--------------------------------------------------------------------------
  def update_sys_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @command_window.active = true
      @sys_command_window.active = false
      @sys_command_window.visible = false
      @sys_command_window.index = 0
      @sys_command_window.z = 0
      return
    end  
    
    if Input.trigger?(Input::C)
      case @sys_command_window.index      
      when 0 #Save
        # If saving is forbidden
        if $game_system.save_disabled
          # Play buzzer SE
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to save screen
        $scene = Scene_Save.new
      when 1 #Load
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to load screen
        $scene = Scene_Load.new
      when 2 #Exit  
        # Play decision SE
        $game_system.se_play($data_system.decision_se)
        # Switch to end game screen
        $scene = Scene_End.new
      end
      return
    end
  end
end


class Scene_Save < Scene_File
  alias save_on_decision on_decision
  alias save_on_cancel on_cancel
  #--------------------------------------------------------------------------
  # * Decision Processing
  #--------------------------------------------------------------------------
  def on_decision(filename)
    save_on_decision(filename)
    $scene = Scene_Menu.new(5)
  end
  #--------------------------------------------------------------------------
  # * Cancel Processing
  #--------------------------------------------------------------------------
  def on_cancel
    save_on_cancel
    $scene = Scene_Menu.new(5)
  end
end


class Scene_Load < Scene_File
  #--------------------------------------------------------------------------
  # * Alias Listings
  #--------------------------------------------------------------------------
  alias load_initialize initialize
  alias load_on_cancel on_cancel
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    @scene = $scene
    load_initialize
  end
  #--------------------------------------------------------------------------
  # * Cancel Processing
  #--------------------------------------------------------------------------
  def on_cancel
    load_on_cancel
    $scene = @scene
  end
end

Code:
#==============================================================================
#L's Custom Menu #3: Simple 1-person CMS - SDK2 ver.
#--------------------------------------------------------------------------
#==============================================================================

#--------------------------------------------------------------------------
# * Begin SDK Log
#--------------------------------------------------------------------------
SDK.log("L's 1-person CMS", 'L', '1.01', '2007-05-31')

#--------------------------------------------------------------------------
# * Begin SDK Requirement Check
#--------------------------------------------------------------------------
SDK.check_requirements(2.0, [1])

#--------------------------------------------------------------------------
# * Begin SDK Enable Test
#--------------------------------------------------------------------------
if SDK.enabled?("L's 1-person CMS")

module SDK::Scene_Commands
  #============================================================================
  # ** Scene_Menu
  #============================================================================
  module Scene_Menu
    Item     = 'Item'
    Skill    = 'Skill'
    Equip    = 'Equip'
    Status   = 'Status'
    Save     = 'Save'
    Load     = 'Load'
    End_Game = 'Exit'
    
    Order    = 'Order'
    Party    = 'Party'
    Player   = 'Player'
    Option   = 'Option'
    Quest    = 'Quest'
    System   = 'System'
    
    Menu_Commands = [Item, Skill, Equip, Player, Option, System]
    Player_Commands = [Status, Quest]
    System_Commands = [Save, Load, End_Game]
  end
end


class Window_Base < Window
  SYSTEM_WORD_EVA = "Evade" #
  #--------------------------------------------------------------------------
  # * Draw Parameter
  #     actor : actor
  #     x     : draw spot x-coordinate
  #     y     : draw spot y-coordinate
  #     type  : parameter type (0-6)
  #--------------------------------------------------------------------------
  def draw_actor_parameter(actor, x, y, type)
    case type
    when 0
      parameter_name = $data_system.words.atk
      parameter_value = actor.atk
    when 1
      parameter_name = $data_system.words.pdef
      parameter_value = actor.pdef
    when 2
      parameter_name = $data_system.words.mdef
      parameter_value = actor.mdef
    when 3
      parameter_name = $data_system.words.str
      parameter_value = actor.str
    when 4
      parameter_name = $data_system.words.dex
      parameter_value = actor.dex
    when 5
      parameter_name = $data_system.words.agi
      parameter_value = actor.agi
    when 6
      parameter_name = $data_system.words.int
      parameter_value = actor.int
    when 7 #
      parameter_name = SYSTEM_WORD_EVA #
      parameter_value = actor.eva #
    end
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 120, 32, parameter_name)
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s, 2)
  end
end


#============================================================================== 
# â–  Game_Map 
#============================================================================== 
class Game_Map    
  def name
     $map_infos[@map_id]
  end   
end


#========================================
#â–  Scene_Title
#--------------------------------------------------------------------------------
# Setting functions for the Title
#========================================
class Scene_Title
  $map_infos = load_data("Data/MapInfos.rxdata")
  for key in $map_infos.keys
    $map_infos[key] = $map_infos[key].name
  end
end


#==============================================================================
# InfoWindow
#==============================================================================
class Window_Info < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    super(0, 384, 640, 96)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.size = 22
    #Z-Pos
    self.z = 100
    #Refresh and add the contents to window
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Clear Bitmap
    self.contents.clear
    #Add Contents
    self.contents.font.color = system_color
    self.contents.draw_text(4,0,120,32,'Location')
    self.contents.font.color = normal_color
    self.contents.draw_text(96,0,360,32,$game_map.name.to_s)
    
    #Draw Steps
    self.contents.font.color = system_color
    self.contents.draw_text(4,32,120,32,'Steps')
    self.contents.font.color = normal_color
    self.contents.draw_text(48,32, 120, 32, $game_party.steps.to_s, 2)
    
    #Draw Play Time
    self.contents.font.color = system_color
    self.contents.draw_text(200,32,120,32,'Play Time')
    @total_sec = Graphics.frame_count / Graphics.frame_rate
    hour = @total_sec / 60 / 60
    min = @total_sec / 60 % 60
    sec = @total_sec % 60
    text = sprintf("%02d:%02d:%02d", hour, min, sec)
    self.contents.font.color = normal_color
    self.contents.draw_text(310, 32, 120, 32, text)
    
    #Draw Gold
    #Advanced Gold Display mini-script by Dubealex.
    case $game_party.gold
    when 0..9999
      gold = $game_party.gold
    when 10000..99999
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+array[1].to_s+","+array[2].to_s+array[3].to_s+array[4].to_s
    when 100000..999999 
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+array[1].to_s+array[2].to_s+","+array[3].to_s+array[4].to_s+array[5].to_s
    when 1000000..9999999 
      gold = $game_party.gold.to_s
      array = gold.split(//)
      gold = array[0].to_s+","+array[1].to_s+array[2].to_s+array[3].to_s+","+array[4].to_s+array[5].to_s+array[6].to_s
    end    
    self.contents.font.color = system_color
    gold_word = $data_system.words.gold.to_s + " :"
    cx = contents.text_size(gold_word).width
    cx2=contents.text_size(gold.to_s).width
    self.contents.draw_text(412,32,120-cx-2,32,gold_word)
    self.contents.font.color = normal_color
    self.contents.draw_text(600-cx2+2, 32, cx2, 32, gold.to_s, 2)
    
    #Draw Variable
    self.contents.font.color = system_color
    self.contents.draw_text(412,0,120,32,'Variable Name')
    self.contents.font.color = normal_color
    self.contents.draw_text(540,0,120,32,'Variable')
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end


#==============================================================================
# MenuStatus
#==============================================================================
class Window_NewMenuStatus < Window_Base
  #--------------------------------------------------------------------------
  # * Object Initialization 
  #--------------------------------------------------------------------------
  def initialize
    super(160, 0, 480, 320)
    #Create Bitmap
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.size = 22
    #Z-Pos
    self.z = 100
    #Refresh and add the contents to window
    refresh
  end
  #--------------------------------------------------------------------------
  # * Refresh 
  #--------------------------------------------------------------------------
  def refresh
    #Clear Bitmap
    self.contents.clear
    actor = $game_party.actors[0]
    draw_actor_graphic(actor, 32, 64)
    draw_actor_name(actor, 75, 0)
    draw_actor_class(actor, 240, 0)
    draw_actor_level(actor, 75, 32)
    draw_actor_state(actor, 240, 32)
    draw_actor_exp(actor, 75, 64)
    draw_actor_hp(actor, 32,100)
    draw_actor_sp(actor, 240,100)
    draw_actor_parameter(actor, 32, 150, 0)
    draw_actor_parameter(actor, 32, 182, 1)
    draw_actor_parameter(actor, 32, 214, 2)
    draw_actor_parameter(actor, 32, 246, 7) #Evade
    draw_actor_parameter(actor, 240, 150, 3)
    draw_actor_parameter(actor, 240, 182, 4)
    draw_actor_parameter(actor, 240, 214, 5)
    draw_actor_parameter(actor, 240, 246, 6)
  end
end


#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  This class performs menu screen processing.
#==============================================================================

class Scene_Menu
  #--------------------------------------------------------------------------
  # * Object Initialization
  #     menu_index : command cursor's initial position
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # * Main Processing : Spriteset Initialization
  #--------------------------------------------------------------------------
  def main_spriteset  
    #Draw Background
    @background = Spriteset_Map.new
  end
  #--------------------------------------------------------------------------
  # * Main Processing : Window Initialization
  #--------------------------------------------------------------------------
  def main_window
    #Draw Windows
    main_command_window
    player_command_window
    system_command_window
    #Draw Windows
    # InfoWindow
    @info_window = Window_Info.new
    @info_window.back_opacity = 160
    # MenuStatus
    @status_window = Window_NewMenuStatus.new
    @status_window.back_opacity = 160    
  end
  #--------------------------------------------------------------------------
  # * Main Command Window
  #--------------------------------------------------------------------------
  def main_command_window
    commands = SDK::Scene_Commands::Scene_Menu::Menu_Commands.dup
    @command_window = Window_Command.new(160, commands)
    @command_window.back_opacity = 160
    @command_window.index = @menu_index
    # If number of party members is 0
    if $game_party.actors.size == 0
      # Disable items, skills, equipment, and status
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
  end
  #--------------------------------------------------------------------------
  # * Player Command Window
  #--------------------------------------------------------------------------
  def player_command_window
    player_commands = SDK::Scene_Commands::Scene_Menu::Player_Commands.dup
    @player_command_window = Window_Command.new(160, player_commands)
    @player_command_window.back_opacity = 160
    @player_command_window.visible = false
    @player_command_window.active = false
    @player_command_window.x = 100
    @player_command_window.y = 120
  end
  #--------------------------------------------------------------------------
  # * System Command Window
  #--------------------------------------------------------------------------
  def system_command_window
    system_commands = SDK::Scene_Commands::Scene_Menu::System_Commands.dup
    @sys_command_window = Window_Command.new(128, system_commands)
    @sys_command_window.back_opacity = 160
    @sys_command_window.visible = false
    @sys_command_window.active = false
    @sys_command_window.x=100
    @sys_command_window.y=180
    check_save_available
    check_load_available
  end
  #-----------------
  def check_save_available
    # If save is forbidden
    if $game_system.save_disabled
      # Disable save
      @sys_command_window.disable_item(0)
    end
  end
  #-----------------
  def check_load_available
    #Check if saved file exists
    @load_enabled = false
    for i in 0..3
      if (FileTest.exist?("Save#{i+1}.rxdata"))        
        @load_enabled = true
      end
    end  
    if !@load_enabled
      #Put your @command_window.disable_item(index)
      @sys_command_window.disable_item(1)
    end
  end
  #--------------------------------------------------------------------------
  # * Update 
  #--------------------------------------------------------------------------
  def update
    super
    
    if @player_command_window.active
      @player_command_window.z = +500
    end
    
    if @sys_command_window.active
      @sys_command_window.z = +500
    end
    
    # If command window is active: call update_command
    if @command_window.active
      update_command
      return
    end
    # If player menu window is active: call update_player_command
    if @player_command_window.active
      update_player_command
      return
    end
    # If system menu window is active: call update_sys_command
    if @sys_command_window.active
      update_sys_command
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Update Menu Command 
  #--------------------------------------------------------------------------
  def update_command
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)      
      # Switch to map screen
      $scene = Scene_Map.new
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Return if Disabled Command
      if disabled_main_command?
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Command Input
      main_command_input
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Update SysCommand Window
  #--------------------------------------------------------------------------
  def update_sys_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @command_window.active = true
      @sys_command_window.active = false
      @sys_command_window.visible = false
      @sys_command_window.index = 0
      @sys_command_window.z -= 500
      return
    end  
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Return if Disabled Command
      if disabled_main_command?
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Command Input
      sys_command_input
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Update Player Command Window
  #--------------------------------------------------------------------------
  def update_player_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @command_window.active = true
      @player_command_window.active = false
      @player_command_window.visible = false
      @player_command_window.index = 0
      @player_command_window.z -= 500
      return
    end  
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Return if Disabled Command
      if disabled_main_command?
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Command Input
      player_command_input
      return
    end    
  end
  #--------------------------------------------------------------------------
  # * Disabled Main Command? Test
  #--------------------------------------------------------------------------
  def disabled_main_command?
    # Gets Current Command
    command = @command_window.command
    sys_command = @sys_command_window.command
    player_command = @player_command_window.command
    # Gets SDK Scene_Menu Commands
    c = SDK::Scene_Commands::Scene_Menu
    # If 0 Party Size
    if $game_party.actors.size == 0
      # If Item, Skill, Equip or Status Selected
      if [c::Item, c::Skill, c::Equip, c::Status].include?(command)
        return true
      end
      if [c::Status].include?(player_command)
        return true
      end
    end
    if [c::Skill].include?(command)
      # If this actor's action limit is 2 or more
      if $game_party.actors[0].restriction >= 2
        return true
      end
    end
    # If Save Disabled && Command is Save
    return true if $game_system.save_disabled && sys_command == c::Save
    # If Load Disabled && Command is Load
    return true if !@load_enabled && sys_command == c::Load
    return false
  end
  #--------------------------------------------------------------------------
  # * Main Command Input
  #--------------------------------------------------------------------------
  def main_command_input
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Branch by command window cursor position
    case @command_window.command
    when SDK::Scene_Commands::Scene_Menu::Item      # item
      command_item
    when SDK::Scene_Commands::Scene_Menu::Skill     # skill
      command_skill
    when SDK::Scene_Commands::Scene_Menu::Equip     # equipment
      command_equip
    when SDK::Scene_Commands::Scene_Menu::Player    # Call Player Menu
      $game_system.se_play($data_system.decision_se)
      @player_command_window.active = true
      @player_command_window.visible = true
      @command_window.active = false
    when SDK::Scene_Commands::Scene_Menu::Option    #option
      command_option
    when SDK::Scene_Commands::Scene_Menu::System  # call system menu      
      $game_system.se_play($data_system.decision_se)
      @sys_command_window.active = true
      @sys_command_window.visible = true
      @command_window.active = false   
    end
  end
  #--------------------------------------------------------------------------
  # * Player Command Input
  #--------------------------------------------------------------------------
  def player_command_input
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    case @player_command_window.command
    when SDK::Scene_Commands::Scene_Menu::Status    # status
      command_status
    when SDK::Scene_Commands::Scene_Menu::Quest    # quest
      command_quest
    end
  end
  #--------------------------------------------------------------------------
  # * System Command Input
  #--------------------------------------------------------------------------
  def sys_command_input
    # Play decision SE
    $game_system.se_play($data_system.decision_se)
    # Branch by command window cursor position
    case @sys_command_window.command
    when SDK::Scene_Commands::Scene_Menu::Save  #save
      command_save
    when SDK::Scene_Commands::Scene_Menu::Load  #load
      command_load
    when SDK::Scene_Commands::Scene_Menu::End_Game  #end game
      command_endgame
    end
  end
  #--------------------------------------------------------------------------
  # * Command : Item
  #--------------------------------------------------------------------------
  def command_item
    # Switch to item screen
    $scene = Scene_Item.new
  end
  #--------------------------------------------------------------------------
  # * Command : Skill
  #--------------------------------------------------------------------------
  def command_skill
    # Switch to skill screen
    $scene = Scene_Skill.new
  end
  #--------------------------------------------------------------------------
  # * Command : Equip
  #--------------------------------------------------------------------------
  def command_equip
    # Switch to equipment screen
    $scene = Scene_Equip.new
  end
  #--------------------------------------------------------------------------
  # * Command : Status
  #--------------------------------------------------------------------------
  def command_status
    # Switch to status screen
    $scene = Scene_Status.new
  end
  #--------------------------------------------------------------------------
  # * Command : Option
  #--------------------------------------------------------------------------
  def command_option
    # Switch to option screen
    #Put your Option Scene here
  end
  #--------------------------------------------------------------------------
  # * Command : Quest
  #--------------------------------------------------------------------------
  def command_quest
    # Switch to quest screen
    #Put your Quest Scene here
  end
  #--------------------------------------------------------------------------
  # * Command : Save
  #--------------------------------------------------------------------------
  def command_save
    # Switch to save screen
    $scene = Scene_Save.new
  end
  #--------------------------------------------------------------------------
  # * Command : Load
  #--------------------------------------------------------------------------
  def command_load
    # Switch to load screen
    $scene = Scene_Load.new
  end
  #--------------------------------------------------------------------------
  # * Command : End Game
  #--------------------------------------------------------------------------
  def command_endgame
    # Switch to end game screen
    $scene = Scene_End.new
  end
end

#--------------------------------------------------------------------------
# * End SDK Enable Test
#--------------------------------------------------------------------------
end
 
Not sure if it's ok to ask this here since the topic hasn't had any posts in a few months... but I have a bit of a problem with the script. More specifically, I'm using CMS #2 Revised (No SDK). The problem I'm having is that on any map that saving is disabled, I find ALL menu commands stop working. They're not greyed out or anything, so they look selectable like normal, but when you actually press the action button on them, they fail to do anything. All menu options work as expected on maps were saving is allowed, though.

I'm just assuming it has to do with the saving thing because that's the only difference between maps it works and maps it doesn't work on as far as I can see. Is there any reason why the script might be doing this? I noticed that there's a code there that checks if saving is allowed or not, but from what I can tell, that's just for making the "Save" command in the System submenu selectable or not. Logically, it shouldn't affect the entire menu.
 
Crazy Li":a0ix4mx4 said:
Not sure if it's ok to ask this here since the topic hasn't had any posts in a few months... but I have a bit of a problem with the script. More specifically, I'm using CMS #2 Revised (No SDK). The problem I'm having is that on any map that saving is disabled, I find ALL menu commands stop working. They're not greyed out or anything, so they look selectable like normal, but when you actually press the action button on them, they fail to do anything. All menu options work as expected on maps were saving is allowed, though.

I'm just assuming it has to do with the saving thing because that's the only difference between maps it works and maps it doesn't work on as far as I can see. Is there any reason why the script might be doing this? I noticed that there's a code there that checks if saving is allowed or not, but from what I can tell, that's just for making the "Save" command in the System submenu selectable or not. Logically, it shouldn't affect the entire menu.
Logically, no, it shouldn't be. But now that I'm away from the scene for a long time, I'm not sure if I can even read the source and find the problem.
 
Status
Not open for further replies.

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top