Chaos Project

RPG Maker => RPG Maker Scripts => RMXP Script Database => Topic started by: G_G on November 28, 2008, 01:34:54 am

Title: [XP] Customizable Enhanced Custom Menu
Post by: G_G on November 28, 2008, 01:34:54 am
Customizable Enhanced Custom Menu
Authors: game_guy
Version: 2.1
Type: CMS
Key Term: Custom Menu System



Introduction

First of all this is not an update of my modded default menu system.

Second this menu system I made has quite of few options for people to customize. Its a pretty awesome script for your 2nd script.


Features




Screenshots

Spoiler: ShowHide
(http://i307.photobucket.com/albums/nn318/bahumat27/Untitled.jpg)

Spoiler: ShowHide
(http://i307.photobucket.com/albums/nn318/bahumat27/fds.jpg)

Spoiler: ShowHide
(http://i307.photobucket.com/albums/nn318/bahumat27/fdsfds.jpg)

Spoiler: ShowHide
(http://i307.photobucket.com/albums/nn318/bahumat27/po.jpg)

Spoiler: ShowHide
(http://i307.photobucket.com/albums/nn318/bahumat27/pok.jpg)

Spoiler: ShowHide
(http://i307.photobucket.com/albums/nn318/bahumat27/poke.jpg)



Demo

http://www.savefile.com/files/1906991 (http://www.savefile.com/files/1906991)


Script


Spoiler: ShowHide

#------------------------------------------------------------------------------#
#                  Advenced Customizable Default Menu System                   #
#                           By: game_guy                                       #
#                           Version: 2.1                                       #
#------------------------------------------------------------------------------#
=begin
First Note:
This is not an update on my Game_Guy's Modded Default Menu
This is a brand new menu system I made. Its really controllable in many ways.
And its already at a high version because I was gone awhile.

Updates:
v 1.0 9-1-08: Script Made
Made it possible to name all choices.
Made it possible to shoose between Playtime or Gamename Window
Allowed Changing of back_opacity of all windows

v 1.2 9-17-08:
Made it possible to name all choices without using empty actor slots
Made it possible to name the gamename without an empty actor slot
Allowed changing of opacity in windows not back_opacity but just opacity

v 1.5 10-15-08: Been ahwile since I Updated
Made it possible to have a scrolling command window must have more than 6 choices to work
Made it possible to have map as background or just a black screen

v 1.78 beta 10-21-08:
Somewhat made it possible to have certain windows on or off
Somewhat made it possible to menu status height change depending on party member count

v 1.78 10-23-08:
Fully made it possible and fixed a bug having certain windows on or off
Fully made it possible to have the menu status hegiht change depending on party member count
All it was when i had the if statemeny like so
if $playtime_gamename_window = "Off" I forgot the ==
or the if $game_party.size = 1 instead of == i put =

v 2.1 11-26-08: New Features
Made it possible for you to choose the x and y location of each window
Made it possible to change the width an hieght of the gold, steps, and playtime/gamename window
Choose to have a picture as a background or the map as background


Description:
The default menu system with new customizations and choices you can do with this
script

Features:
Customizable Choices for all choices in menu: No using actors now
Customizable Background: map as back or a picture as a background
Turn on/off windows Playtime/Gamename Gold and Steps
Choose between the playtime window or gamename window
Customizable Game name: no using an actor slot now
Customizable opacity and back_opacity for all windows
Customizable x and y locations for all windows
Menu Status Height changes depending on the amount of members you have in your party
Scrolling Command Window type thing. Have more than 6 choices it adds a scroll function from my command_window2
Now change width and height for Gold, Steps, and Playtime/Gamename Windows


Thats all for now for this version

Instructions:
By each different customization

Required Scripts:
Window_Command2 by game_guy (Me) included in script
Window_GameName by game_guy (Me) included in script
Window_MenuStatus Modded by game_guy (Me) included in script
Window_Gold Modded by game_guy (Me) included in script
Window_Steps Modded by game_guy (Me) included in script
Window_PlayTime Modded by game_guy (Me) included in script

You need all the modded scripts because so its able to change the width and height. If you don't want these
in then just erase the modded windows.

Scripts in Script:
The Cusotmizable Menu System(Duh)
Window_Command2(Which has a scrolling function now)
Window_GameName(Which displays a gamename without an actor now)
Window_MenuStatusModded (Which changes the height depending on the party member count)

Few Unnecessary Side Notes:
Completely Made from scratch but used a few features from my modded default menu
There's More Coding than Comments believe me I counted >.> It seemed like more comment lines than coding
Cheese is made from Cows' Milk
And Oreos do not taste good smuthered with mustard and ketchup I've tried it >.>
Right now the way it is setup the windows are rearanged in a mirror to the
original menu and the picture is set as background and the menu has 7 choices and
steps and playtime/gamename window are off

=end

# Begin Config

# if you want to have any of these changed in game just use call-script command
# and type in xxxx = yyyy
# xxxx is the option and yyyy is what the option equals for instant
# $pic_as_back = true but you want to change it to false in game
# you would type in the script command $pic_as_back = false
# this can give people who play your game some options

$choices_item = "Inventory" # Choice for Items
$choices_skill = "Magic" # Choice for Skills
$choices_equip = "Equipment" # Choice for Equip
$choices_status = "Status" # Choice for Status
$choices_save = "Save" # Choice for Save
$choices_load = "Load" # Choice for Load
$choices_exit = "Exit" # Choice for End Game
$pic_as_back = false # If set to false, map is background
$pic_name = "Morning" # Picture name for the picture you want to use
$playtime_gamename_window = "Off" # Off will turn it off must be spelled Off not off same with On no on
$gold_window = "On" # Above applies here
$steps_window = "Off" # Above Applies here
$playtime_or_gamename = "GameName" # Want playtime window or game name window
$gamename = "Game Name Here" # You can display anything besides a game name like even a variable
# just typy in $game_variables[x] x = the variable number and erase the ""
$playtime_gamename_window_opacity = 0 # Opacity for playtime/gamename window the line that goes around the window
$playtime_gamename_window_backopacity = 0 #background opacity for gamename window
$gold_window_opacity = 255 # Same above just gold_window
$gold_window_backopacity = 100 # Same above
$steps_window_opacity = 0 # Same above just steps window
$steps_window_backopacity = 0 # same above
$command_window_opacity = 255 # same above just command window
$command_window_backopacity = 100 # same above
$menustatus_window_opacity = 255 # same above just menustatus window
$menustatus_window_backopacity = 100 # same above
$playtime_gamename_x = 480 # playtime/gamename x coordinate
$playtime_gamename_y = 224 # playtime/gamename y coordinate
$gold_window_x = 480  # Same above just gold_window
$gold_window_y = 416 # Same above
$steps_window_x = 480 # Same above just steps window
$steps_window_y = 320 # Same above
$command_window_x = 480 # same above just command window
$command_window_y = 0 # Same above
$menustatus_window_x = 0 # same above just menustatus window
$menustatus_window_y = 0 # Same above
$playtime_gamename_width = 160 # playtime/gamename widht
$playtime_gamename_height = 96 #playtime/gamename height
$gold_window_width = 160 # gold width
$gold_window_height = 64 # gold height
$steps_window_width = 160 # steps width
$steps_window_height = 96 # steps height

#------------------------------------------------------------------------------#
#                                  Windows                                     #
#------------------------------------------------------------------------------#

# For people out there who want to add more options go right ahead as the
# command menu has a scroll function thing.
# Window_Command2 which has scroll functions
class Window_Command2 < Window_Selectable
  def initialize(width, commands)
    super(0, 0, width, 224)
    @item_max = commands.size
    @commands = commands
    self.contents = Bitmap.new(width - 32, @item_max * 32)
    refresh
    self.index = 0
  end
  def refresh
    self.contents.clear
    for i in 0...@item_max
      draw_item(i, normal_color)
    end
  end
  def draw_item(index, color)
    self.contents.font.color = color
    rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(rect, @commands[index])
  end
  def disable_item(index)
    draw_item(index, disabled_color)
  end
end

#window gamename # now displays game name without using an actor slot
class Window_GameName < Window_Base
 
  def initialize
    super(0, 0, $playtime_gamename_width, $playtime_gamename_height)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
 
  def refresh
    self.contents.clear
    self.contents.draw_text(0, 0, 130, 64, $gamename.to_s)
  end
 
end

# Altered Window_MenuStatus so it changes height depending on party member count
class Window_MenuStatus < Window_Selectable
 
  def initialize
    super(0, 0, 480, $menu_status)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
    self.active = false
    self.index = -1
  end

  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = 64
      y = i * 116
      actor = $game_party.actors[i]
      draw_actor_graphic(actor, x - 40, y + 80)
      draw_actor_name(actor, x, y)
      draw_actor_level(actor, x, y + 32)
      draw_actor_state(actor, x + 90, y + 32)
      draw_actor_exp(actor, x, y + 64)
      draw_actor_hp(actor, x + 236, y + 32)
      draw_actor_sp(actor, x + 236, y + 64)
    end
  end

  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
    end
  end
end

# Window's Steps/Gold/PLaytime Modded for height and width options
class Window_Gold < Window_Base
  def initialize
    super(0, 0, $gold_window_width, $gold_window_height)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  def refresh
    self.contents.clear
    cx = contents.text_size($data_system.words.gold).width
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
  end
end

class Window_PlayTime < Window_Base
  def initialize
    super(0, 0, $playtime_gamename_width, $playtime_gamename_height)
    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, "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(4, 32, 120, 32, text, 2)
  end
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end

class Window_Steps < Window_Base
  def initialize
    super(0, 0, $steps_window_width, $steps_window_height)
    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, "Step Count")
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 32, 120, 32, $game_party.steps.to_s, 2)
  end
end

#------------------------------------------------------------------------------#
# ** Scene_Menu Modded and Customizable                                        #
#------------------------------------------------------------------------------#
#  This class performs menu screen processing.                                 #
#------------------------------------------------------------------------------#

class Scene_Menu
 
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
 
  def main
    # Command Window Setup
    s1 = $choices_item.to_s
    s2 = $choices_skill.to_s
    s3 = $choices_equip.to_s
    s4 = $choices_status.to_s
    s5 = $choices_save.to_s
    s6 = $choices_load.to_s
    s7 = $choices_exit.to_s
    @command_window = Window_Command2.new(160, [s1, s2, s3, s4, s5, s6, s7])
    @command_window.index = @menu_index
    @command_window.x = $command_window_x
    @command_window.y = $command_window_y
    @command_window.opacity = $command_window_opacity
    @command_window.back_opacity = $command_window_backopacity
    # If number of party members is 0 disable first four commands
    if $game_party.actors.size == 0
      @command_window.disable_item(0)
      @command_window.disable_item(1)
      @command_window.disable_item(2)
      @command_window.disable_item(3)
    end
    if $game_system.save_disabled
      @command_window.disable_item(5)
    end
    # Keeps track of party members and alters the MenuStatus height
    if $game_party.actors.size == 1
      $menu_status = 180
    elsif $game_party.actors.size == 2
      $menu_status = 280
    elsif $game_party.actors.size == 3
      $menu_status = 380
    else
      $menu_status = 480
    end
    # Checks to see if Save is Disabled
    # End Command Setup
    # Checks to see if $pic_as_back is on
    if $pic_as_back == true
      @sprite = Sprite.new
      @sprite.bitmap = RPG::Cache.picture($pic_name)
    else
      @map = Spriteset_Map.new
    end
   
    # Checks the gold window options
    if $gold_window == "On"
      @gold_window = Window_Gold.new
      @gold_window.x = $gold_window_x
      @gold_window.y = $gold_window_y
      @gold_window.opacity = $gold_window_opacity
      @gold_window.back_opacity = $gold_window_backopacity
    end
   
    # Checks the playtime/gamename window options
    if $playtime_gamename_window == "On"
       if $playtime_or_gamename == "GameName"
         @playtime_gamename_window = Window_GameName.new
       else
         @playtime_gamename_window = WIndow_PlayTime.new
       end
       @playtime_gamename_window.x = $playtime_gamename_x
       @playtime_gamename_window.y = $playtime_gamename_y
       @playtime_gamename_window.opacity = $playtime_gamename_window_opacity
       @playtime_gamename_window.back_opacity = $playtime_gamename_window_backopacity
     end
    
    # Checks the steps window options
    if $steps_window == "On"
      @steps_window = Window_Steps.new
      @steps_window.x = $steps_window_x
      @steps_window.y = $steps_window_y
      @steps_window.opacity = $steps_window_opacity
      @steps_window.back_opacity = $steps_window_backopacity
    end
    # checks the menustatus window options
    @status_window = Window_MenuStatus.new
    @status_window.x = $menustatus_window_x
    @status_window.y = $menustatus_window_y
    @status_window.opacity = $menustatus_window_opacity
    @status_window.back_opacity = $menustatus_window_backopacity
    Graphics.transition
    # Main loop
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    # checks to see what windows need to be disposed
    if $pic_as_back == true
      @sprite.dispose
      @sprite.bitmap.dispose
    else
      @map.dispose
    end
    if $gold_window == "On"
      @gold_window.dispose
    end
    if $playtime_gamename_window == "On"
      @playtime_gamename_window.dispose
    end
    if $steps_window == "On"
      @steps_window.dispose
    end
    @command_window.dispose
    @status_window.dispose
  end

  def update
    # checks to see what windows need to be updated
    if $gold_window == "On"
      @gold_window.update
    end
    if $playtime_gamename_window == "On"
      @playtime_gamename_window.update
    end
    if $steps_window == "On"
      @steps_window.update
    end
    @command_window.update
    @status_window.update
    if @command_window.active
      update_command
      return
    end
    if @status_window.active
      update_status
      return
    end
  end

  def update_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
   
    if Input.trigger?(Input::C)
      if $game_party.actors.size == 0 and @command_window.index < 4
        $game_system.se_play($data_system.buzzer_se)
        return
      end

      case @command_window.index
      when 0 
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Item.new
      when 1 
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2 
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 3 
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 4
        if $game_system.save_disabled
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Save.new
      when 5
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Load.new
      when 6 
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_End.new
      end
      return
    end
  end

  def update_status
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    if Input.trigger?(Input::C)
      case @command_window.index
      when 1 
        if $game_party.actors[@status_window.index].restriction >= 2
          $game_system.se_play($data_system.buzzer_se)
          return
        end
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Skill.new(@status_window.index)
      when 2 
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Equip.new(@status_window.index)
      when 3 
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Status.new(@status_window.index)
      end
      return
    end
  end
end




Instructions
Place below SDK and above main and above blizz's scripts

In script
Here are a few notes though
when you want to turn on or off a window you must type in On or Off between the quotes not on or oN or oFf
so it is case sensitve.
If $pic_as_back is false then it will show the map
$pic_name = "pic name" pic name is the name of the picture you want to display in the background
the opacity, back_opacity, x, and y all use numbers and width and height
opacity and back_opacity is a number 0-255
x is usually between 0-640
y is usually between 0-480
width is usually between 0-640
height is usually between 0-480


Compatibility

No compatibility issues with SDK 2.4 so far if any bugs please post.
Won't work with other menu's
Oh and when you choose load and press X you will go to title so be careful


Credits and Thanks




Author's Notes

Please post any bugs if yo ufind any
and CHEESE
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: shdwlink1993 on November 28, 2008, 01:42:16 pm
Unmoved by request of game_guy.
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: Blizzard on November 28, 2008, 02:50:38 pm
K. #_#
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: shdwlink1993 on November 28, 2008, 04:00:12 pm
Re-moved to the database because I forgot the difference between move and unmove to the database...  :^_^':. Sorry about that.
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: G_G on November 30, 2008, 03:28:55 pm
Does anyone like my new menu system at all? Jus wondering is all. Also considered a *BUMP*
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: Shadonking on November 30, 2008, 04:55:46 pm
its a good cms, i like the fact that you can have a picture as a background. and powersup.
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: G_G on December 22, 2008, 08:54:39 pm
bump jus wanna see if any one else likes
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: Valcos on December 22, 2008, 10:05:49 pm
Lol, I like the fact that it has those extra features. I guess not many people are looking for a CMS, like me :^_^':. Good job tho :D.
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: cheos on June 01, 2012, 02:30:30 pm
first i wanna apogize for necroposting but i have a question about this amazing cms

Is there a way 2 add the scroll function to the character selection area? I plan on using ten or more party members with a tatical battle system i found. 
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: G_G on June 01, 2012, 02:48:13 pm
That would require a completely different menu system. Though it's not hard, it does require some minor edits.
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: cheos on June 02, 2012, 05:29:59 pm
is that something i can ask you to do game_guy or should i put up a scrip request???
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: G_G on June 02, 2012, 07:02:45 pm
I'll try and get to it. If it's not done in two weeks, it'd probably be best to put up a script request.
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: ThallionDarkshine on June 02, 2012, 09:32:35 pm
I made something for this, chaos. I'll try to post it when I get back to my computer ( this is from my iPod).
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: cheos on June 02, 2012, 09:48:32 pm
sweet i cant wait
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: cheos on June 04, 2012, 01:41:33 pm
Quote from: ThallionDarkshine on June 02, 2012, 09:32:35 pm
I made something for this, chaos. I'll try to post it when I get back to my computer ( this is from my iPod).

Bump. when u gona do that not trying 2 rush u ThallionDarkshine
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: ThallionDarkshine on June 06, 2012, 07:43:26 pm
Quote from: cheos on June 04, 2012, 01:41:33 pm
Quote from: ThallionDarkshine on June 02, 2012, 09:32:35 pm
I made something for this, chaos. I'll try to post it when I get back to my computer ( this is from my iPod).

Bump. when u gona do that not trying 2 rush u ThallionDarkshine


Sorry, lots of homework.
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: cheos on June 08, 2012, 08:43:30 pm
that's ok just get it 2 me as soon as u can
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: ThallionDarkshine on June 08, 2012, 09:05:20 pm
You might want to request it too, b/c I'm really busy this weekend.
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: swick on June 14, 2012, 10:25:25 pm
Is there a way I can take out some of the menu selections? I need to take out Magic, Status, Save, and Load. My game uses save points and you can't load unless you die.
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: diagostimo on June 15, 2012, 10:20:20 pm
@swick, like this?
Spoiler: ShowHide
#------------------------------------------------------------------------------#
#                  Advenced Customizable Default Menu System                   #
#                           By: game_guy                                       #
#                           Version: 2.1                                       #
#------------------------------------------------------------------------------#
=begin
First Note:
This is not an update on my Game_Guy's Modded Default Menu
This is a brand new menu system I made. Its really controllable in many ways.
And its already at a high version because I was gone awhile.

Updates:
v 1.0 9-1-08: Script Made
Made it possible to name all choices.
Made it possible to shoose between Playtime or Gamename Window
Allowed Changing of back_opacity of all windows

v 1.2 9-17-08:
Made it possible to name all choices without using empty actor slots
Made it possible to name the gamename without an empty actor slot
Allowed changing of opacity in windows not back_opacity but just opacity

v 1.5 10-15-08: Been ahwile since I Updated
Made it possible to have a scrolling command window must have more than 6 choices to work
Made it possible to have map as background or just a black screen

v 1.78 beta 10-21-08:
Somewhat made it possible to have certain windows on or off
Somewhat made it possible to menu status height change depending on party member count

v 1.78 10-23-08:
Fully made it possible and fixed a bug having certain windows on or off
Fully made it possible to have the menu status hegiht change depending on party member count
All it was when i had the if statemeny like so
if $playtime_gamename_window = "Off" I forgot the ==
or the if $game_party.size = 1 instead of == i put =

v 2.1 11-26-08: New Features
Made it possible for you to choose the x and y location of each window
Made it possible to change the width an hieght of the gold, steps, and playtime/gamename window
Choose to have a picture as a background or the map as background


Description:
The default menu system with new customizations and choices you can do with this
script

Features:
Customizable Choices for all choices in menu: No using actors now
Customizable Background: map as back or a picture as a background
Turn on/off windows Playtime/Gamename Gold and Steps
Choose between the playtime window or gamename window
Customizable Game name: no using an actor slot now
Customizable opacity and back_opacity for all windows
Customizable x and y locations for all windows
Menu Status Height changes depending on the amount of members you have in your party
Scrolling Command Window type thing. Have more than 6 choices it adds a scroll function from my command_window2
Now change width and height for Gold, Steps, and Playtime/Gamename Windows


Thats all for now for this version

Instructions:
By each different customization

Required Scripts:
Window_Command2 by game_guy (Me) included in script
Window_GameName by game_guy (Me) included in script
Window_MenuStatus Modded by game_guy (Me) included in script
Window_Gold Modded by game_guy (Me) included in script
Window_Steps Modded by game_guy (Me) included in script
Window_PlayTime Modded by game_guy (Me) included in script

You need all the modded scripts because so its able to change the width and height. If you don't want these
in then just erase the modded windows.

Scripts in Script:
The Cusotmizable Menu System(Duh)
Window_Command2(Which has a scrolling function now)
Window_GameName(Which displays a gamename without an actor now)
Window_MenuStatusModded (Which changes the height depending on the party member count)

Few Unnecessary Side Notes:
Completely Made from scratch but used a few features from my modded default menu
There's More Coding than Comments believe me I counted >.> It seemed like more comment lines than coding
Cheese is made from Cows' Milk
And Oreos do not taste good smuthered with mustard and ketchup I've tried it >.>
Right now the way it is setup the windows are rearanged in a mirror to the
original menu and the picture is set as background and the menu has 7 choices and
steps and playtime/gamename window are off

=end

# Begin Config

# if you want to have any of these changed in game just use call-script command
# and type in xxxx = yyyy
# xxxx is the option and yyyy is what the option equals for instant
# $pic_as_back = true but you want to change it to false in game
# you would type in the script command $pic_as_back = false
# this can give people who play your game some options

$choices_item = "Inventory" # Choice for Items
$choices_equip = "Equipment" # Choice for Equip
$choices_exit = "Exit" # Choice for End Game
$pic_as_back = false # If set to false, map is background
$pic_name = "Morning" # Picture name for the picture you want to use
$playtime_gamename_window = "Off" # Off will turn it off must be spelled Off not off same with On no on
$gold_window = "On" # Above applies here
$steps_window = "Off" # Above Applies here
$playtime_or_gamename = "GameName" # Want playtime window or game name window
$gamename = "Game Name Here" # You can display anything besides a game name like even a variable
# just typy in $game_variables[x] x = the variable number and erase the ""
$playtime_gamename_window_opacity = 0 # Opacity for playtime/gamename window the line that goes around the window
$playtime_gamename_window_backopacity = 0 #background opacity for gamename window
$gold_window_opacity = 255 # Same above just gold_window
$gold_window_backopacity = 100 # Same above
$steps_window_opacity = 0 # Same above just steps window
$steps_window_backopacity = 0 # same above
$command_window_opacity = 255 # same above just command window
$command_window_backopacity = 100 # same above
$menustatus_window_opacity = 255 # same above just menustatus window
$menustatus_window_backopacity = 100 # same above
$playtime_gamename_x = 480 # playtime/gamename x coordinate
$playtime_gamename_y = 224 # playtime/gamename y coordinate
$gold_window_x = 480  # Same above just gold_window
$gold_window_y = 416 # Same above
$steps_window_x = 480 # Same above just steps window
$steps_window_y = 320 # Same above
$command_window_x = 480 # same above just command window
$command_window_y = 0 # Same above
$menustatus_window_x = 0 # same above just menustatus window
$menustatus_window_y = 0 # Same above
$playtime_gamename_width = 160 # playtime/gamename widht
$playtime_gamename_height = 96 #playtime/gamename height
$gold_window_width = 160 # gold width
$gold_window_height = 64 # gold height
$steps_window_width = 160 # steps width
$steps_window_height = 96 # steps height

#------------------------------------------------------------------------------#
#                                  Windows                                     #
#------------------------------------------------------------------------------#

# For people out there who want to add more options go right ahead as the
# command menu has a scroll function thing.
# Window_Command2 which has scroll functions
class Window_Command2 < Window_Selectable
  def initialize(width, commands)
    super(0, 0, width, commands.size * 32 + 32)
    @item_max = commands.size
    @commands = commands
    self.contents = Bitmap.new(width - 32, @item_max * 32)
    refresh
    self.index = 0
  end
  def refresh
    self.contents.clear
    for i in 0...@item_max
      draw_item(i, normal_color)
    end
  end
  def draw_item(index, color)
    self.contents.font.color = color
    rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    self.contents.draw_text(rect, @commands[index])
  end
  def disable_item(index)
    draw_item(index, disabled_color)
  end
end

#window gamename # now displays game name without using an actor slot
class Window_GameName < Window_Base
 
  def initialize
    super(0, 0, $playtime_gamename_width, $playtime_gamename_height)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
 
  def refresh
    self.contents.clear
    self.contents.draw_text(0, 0, 130, 64, $gamename.to_s)
  end
 
end

# Altered Window_MenuStatus so it changes height depending on party member count
class Window_MenuStatus < Window_Selectable
 
  def initialize
    super(0, 0, 480, $menu_status)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
    self.active = false
    self.index = -1
  end

  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = 64
      y = i * 116
      actor = $game_party.actors[i]
      draw_actor_graphic(actor, x - 40, y + 80)
      draw_actor_name(actor, x, y)
      draw_actor_level(actor, x, y + 32)
      draw_actor_state(actor, x + 90, y + 32)
      draw_actor_exp(actor, x, y + 64)
      draw_actor_hp(actor, x + 236, y + 32)
      draw_actor_sp(actor, x + 236, y + 64)
    end
  end

  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
    else
      self.cursor_rect.set(0, @index * 116, self.width - 32, 96)
    end
  end
end

# Window's Steps/Gold/PLaytime Modded for height and width options
class Window_Gold < Window_Base
  def initialize
    super(0, 0, $gold_window_width, $gold_window_height)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  def refresh
    self.contents.clear
    cx = contents.text_size($data_system.words.gold).width
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
  end
end

class Window_PlayTime < Window_Base
  def initialize
    super(0, 0, $playtime_gamename_width, $playtime_gamename_height)
    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, "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(4, 32, 120, 32, text, 2)
  end
  def update
    super
    if Graphics.frame_count / Graphics.frame_rate != @total_sec
      refresh
    end
  end
end

class Window_Steps < Window_Base
  def initialize
    super(0, 0, $steps_window_width, $steps_window_height)
    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, "Step Count")
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 32, 120, 32, $game_party.steps.to_s, 2)
  end
end

#------------------------------------------------------------------------------#
# ** Scene_Menu Modded and Customizable                                        #
#------------------------------------------------------------------------------#
#  This class performs menu screen processing.                                 #
#------------------------------------------------------------------------------#

class Scene_Menu
 
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
 
  def main
    # Command Window Setup
    s1 = $choices_item.to_s
    s2 = $choices_equip.to_s
    s3 = $choices_exit.to_s
    @command_window = Window_Command2.new(160, [s1, s2, s3])
    @command_window.index = @menu_index
    @command_window.x = $command_window_x
    @command_window.y = $command_window_y
    @command_window.opacity = $command_window_opacity
    @command_window.back_opacity = $command_window_backopacity
    # If number of party members is 0 disable first four commands
    if $game_party.actors.size == 0
      @command_window.disable_item(0)
      @command_window.disable_item(1)
    end
    # Keeps track of party members and alters the MenuStatus height
    if $game_party.actors.size == 1
      $menu_status = 180
    elsif $game_party.actors.size == 2
      $menu_status = 280
    elsif $game_party.actors.size == 3
      $menu_status = 380
    else
      $menu_status = 480
    end
    # End Command Setup
    # Checks to see if $pic_as_back is on
    if $pic_as_back == true
      @sprite = Sprite.new
      @sprite.bitmap = RPG::Cache.picture($pic_name)
    else
      @map = Spriteset_Map.new
    end
   
    # Checks the gold window options
    if $gold_window == "On"
      @gold_window = Window_Gold.new
      @gold_window.x = $gold_window_x
      @gold_window.y = $gold_window_y
      @gold_window.opacity = $gold_window_opacity
      @gold_window.back_opacity = $gold_window_backopacity
    end
   
    # Checks the playtime/gamename window options
    if $playtime_gamename_window == "On"
       if $playtime_or_gamename == "GameName"
         @playtime_gamename_window = Window_GameName.new
       else
         @playtime_gamename_window = WIndow_PlayTime.new
       end
       @playtime_gamename_window.x = $playtime_gamename_x
       @playtime_gamename_window.y = $playtime_gamename_y
       @playtime_gamename_window.opacity = $playtime_gamename_window_opacity
       @playtime_gamename_window.back_opacity = $playtime_gamename_window_backopacity
     end
     
    # Checks the steps window options
    if $steps_window == "On"
      @steps_window = Window_Steps.new
      @steps_window.x = $steps_window_x
      @steps_window.y = $steps_window_y
      @steps_window.opacity = $steps_window_opacity
      @steps_window.back_opacity = $steps_window_backopacity
    end
    # checks the menustatus window options
    @status_window = Window_MenuStatus.new
    @status_window.x = $menustatus_window_x
    @status_window.y = $menustatus_window_y
    @status_window.opacity = $menustatus_window_opacity
    @status_window.back_opacity = $menustatus_window_backopacity
    Graphics.transition
    # Main loop
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    # checks to see what windows need to be disposed
    if $pic_as_back == true
      @sprite.dispose
      @sprite.bitmap.dispose
    else
      @map.dispose
    end
    if $gold_window == "On"
      @gold_window.dispose
    end
    if $playtime_gamename_window == "On"
      @playtime_gamename_window.dispose
    end
    if $steps_window == "On"
      @steps_window.dispose
    end
    @command_window.dispose
    @status_window.dispose
  end

  def update
    # checks to see what windows need to be updated
    if $gold_window == "On"
      @gold_window.update
    end
    if $playtime_gamename_window == "On"
      @playtime_gamename_window.update
    end
    if $steps_window == "On"
      @steps_window.update
    end
    @command_window.update
    @status_window.update
    if @command_window.active
      update_command
      return
    end
    if @status_window.active
      update_status
      return
    end
  end

  def update_command
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
   
    if Input.trigger?(Input::C)
      if $game_party.actors.size == 0 and @command_window.index < 4
        $game_system.se_play($data_system.buzzer_se)
        return
      end

      case @command_window.index
      when 0 
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Item.new
      when 1
        $game_system.se_play($data_system.decision_se)
        @command_window.active = false
        @status_window.active = true
        @status_window.index = 0
      when 2
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_End.new
      end
      return
    end
  end

  def update_status
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      @command_window.active = true
      @status_window.active = false
      @status_window.index = -1
      return
    end
    if Input.trigger?(Input::C)
      case @command_window.index
      when 1 
        $game_system.se_play($data_system.decision_se)
        $scene = Scene_Equip.new(@status_window.index)
      end
      return
    end
  end
end
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: swick on June 16, 2012, 08:56:06 pm
thats exactly what i needed man, thanks!
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: cheos on June 23, 2012, 09:16:22 pm
Quote from: cheos on June 01, 2012, 02:30:30 pm
first i wanna apogize for necroposting but i have a question about this amazing cms

Is there a way 2 add the scroll function to the character selection area? I plan on using ten or more party members with a tatical battle system i found. 

i haven't been on in a week or so is any one working on this???
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: nathmatt on June 24, 2012, 10:24:26 am
here put this right below the original

Spoiler: ShowHide
class Window_MenuStatus < Window_Selectable
 
  def initialize
    s = ($game_party.actors.size * 112) + 32
    h = (s > 480 ? 480 : s)
    super(0, 0, 480, h)
    @item_max = $game_party.actors.size
    self.contents = Bitmap.new(width - 32, @item_max * 112)
    refresh
    self.active = false
    self.index = -1
  end
 
  def top_row
    return self.oy / 112
  end
 
  def top_row=(row)
    if row < 0
      row = 0
    end
    if row > row_max - 1
      row = row_max - 1
    end
    self.oy = row * 112
  end
 
  def page_row_max
    return (self.height - 32) / 112
  end
 
  def update_cursor_rect
    super
    if @index < 0
      self.cursor_rect.empty
      return
    end
    cursor_width = self.width / @column_max - 32
    x = @index % @column_max * (cursor_width + 32)
    y = @index / @column_max * 112 - self.oy
    self.cursor_rect.set(x, y, cursor_width, 112)
  end
 
end


to change max party members add this if needed this has no effect on on battle system

Spoiler: ShowHide
class Game_Party
 
  MAX_PARTY = 10
 
  def add_actor(actor_id)
    actor = $game_actors[actor_id]
    if @actors.size < MAX_PARTY && !@actors.include?(actor)
      @actors.push(actor)
      $game_player.refresh
    end
  end
 
end
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: cheos on June 26, 2012, 11:40:21 pm
thank you nathmatt ill try it now
im using a tactical battle system and already know how 2 change the max
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: Ranquil on September 11, 2013, 08:26:29 am
Because necroposting is cool. or not



I have only one small question. Is it possible to remove the window showing the stats of the character and replace it with the hero's battler? By "hero" is mean the character that is first in the party. Okay, it's probably possible, but how can I do it?
I'm sorry, I'm a total n00b at scripting ;_;

//Also, how do I reduce the amount of commands AND adjust the command window size accordingly? I want to reduce it to the size of four commands, two of them being Inventory and Exit, the other two being separate scenes: ForeverZer0's Diary and Journal scripts. I tried to reduce the size by commenting/removing the commands from here:
$choices_item = "Inventory" # Choice for Items
$choices_skill = "Magic" # Choice for Skills
$choices_equip = "Equipment" # Choice for Equip
$choices_status = "Status" # Choice for Status
$choices_save = "Save" # Choice for Save
$choices_load = "Load" # Choice for Load
$choices_exit = "Exit" # Choice for End Game

All it did was remove the names of the commands, but they were still there.

I'm sorry, I have no idea how to do this. ;___;
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: G_G on September 11, 2013, 09:26:31 am
.____________________________.

Why are you using this?! D: This is one of my first scripts when I[/] was still a noob at scripting lol. Trust me, this isn't a menu you should be using. You can't remove commands in this script and as for your first question, you might as well post a script request topic with a layout and everything you want.
Title: Re: [XP] Customizable Enhanced Custom Menu
Post by: Ranquil on September 11, 2013, 10:29:46 am
Quote from: gameus on September 11, 2013, 09:26:31 am
.____________________________.

Why are you using this?! D: This is one of my first scripts when I[/] was still a noob at scripting lol. Trust me, this isn't a menu you should be using. You can't remove commands in this script and as for your first question, you might as well post a script request topic with a layout and everything you want.

Oh ._.
Okay then >: