The RPG Maker Resource Kit

RMRK RPG Maker Creation => VX Ace => VXA Scripts Database => Topic started by: modern algebra on January 18, 2012, 11:35:14 PM

Title: [VXA] Customizable Main Menu
Post by: modern algebra on January 18, 2012, 11:35:14 PM
Customizable Main Menu
Version: 1.0c
Author: modern algebra
Date: January 20, 2012

Version History



Description


This script is a base menu script which allows you to create custom menu commands and to move, add, or remove them from the menu easily. Not only can you easily add a command which directly calls a scene, you can also add commands which call common events or which call a particular method (the method needs to be defined). At the same time, the script is also designed to recongize and include any commands that are added by another script, without requiring setup in this one.

Additionally, this script allows easy creation of custom windows which show simple data, so you are not limited to just the gold window - you could, for instance, show data such as the value of particular variables or the playtime, etc.. These optional windows can be added and removed at will, and they show up beneath the command window in the menu.

Since too many windows could overlap with the command window, this script also allows you to set a row max for the command window so that you need to scroll the window down to see the other commands. Additionally, you canchange the width of the command and data windows and the Menu Status window will now better accomodate different resolutions. Finally, you can also change the alignment so that the status window is on the left and the command window is on the right.

Features


Screenshots

This shows a combined data window, as well as several new commands added to the menu.
(http://img854.imageshack.us/img854/7354/menu1w.png)
This shows a differently positioned command window with a row max of 5 and multiple data windows.
(http://img46.imageshack.us/img46/9783/menu2a.png)
This shows support for different resolutions.
(http://img830.imageshack.us/img830/9945/menu3m.png)

Instructions

Paste this script into its own slot in the Script Editor, above Main and below Materials. If you are using any scripts which require this menu, then this script should be above them as well.

Aside from that, you can go to the Editable Region at line 64 to figure out how to configure the menu. If you do not change anything, then the menu will operate exactly like the default menu.

I understand that the configuration can be very difficult. If you need any assistance at all, please do not hesitate to post here.

Script


The script is too long to post. Please retrieve it from Pastebin (http://pastebin.com/gKS4kLz5).

Addons

Spoiler for cozziekuns' Ring Menu:
Cozziekuns wrote a nice ring menu that works well with my Customizable Main Menu. You can get it here: http://rmrk.net/index.php/topic,47627.0.html

Spoiler for Location Window:
Generally speaking, the space provided in the optional data windows is not enough to properly show long location names. This addon allows you to create a location window that shows up directly below the status window and is the width of the status window.

Note that this requires at least v. 1.0b of the Customizable Main Menu. Earlier versions will not work.

(http://img842.imageshack.us/img842/1786/locwindow.png)

Code: [Select]
#==============================================================================
#    Location Window
#      Addon to Customizable Main Menu 1.0b
#    Version: 1.0a
#    Author: modern algebra (rmrk.net)
#    Date: January 20, 2012
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Description:
#
#    This is an Addon for the Customizable Main Menu (found at:
#   http://rmrk.net/index.php/topic,44906.0.html). With this script, you can
#   add a long window to properly display location in the main menu, as the
#   auto window function in the script doesn't create a wide enough window to
#   show long location names.
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Instructions:
#
#    Paste this script into its own slot in the Script Editor, above Main but
#   below the Customizable Main Menu script.
#
#    Other than that, all you need to do is set the display text at line xx.
#   That is the label drawn on the left hand side of the window to indicate
#   what the window shows. Additionally, you will need to make sure that you
#   have not created any custom windows in the Customizable Main Menu that have
#   :location as their identifer, or else this script will be overridden.
#
#    You can add or remove the location window in-game by using the following
#   codes in a script call:
#
#      add_menu_window(:location)
#      remove_menu_window(:location)
#==============================================================================

if $imported && $imported[:MA_CustomizableMenu]
$imported[:MACMM_LocationWindow] = true

#==============================================================================
# *** MA Customizable Menu
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Summary of Changes:
#    new constants - LOCATION_LABEL; LOCATION_FULL_WIDTH
#==============================================================================

module MA_CustomizableMenu
  #\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  #  Editable Region
  #||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  #  The label to be shown at the left hand side of the window. Message codes
  # are recognized
  LOCATION_LABEL = "\\i[231]"
  #  The value of this constant determines whether the location window should
  # take up the entire width of the screen, or be the same width as the status
  # window. false = Full; true = Status
  LOCATION_FULL_WIDTH = false
  #||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  #  End Editable Region
  #//////////////////////////////////////////////////////////////////////////
  OPTIONAL_WINDOWS_LIST.push(:location) unless OPTIONAL_WINDOWS_LIST.include?(:location)
end

#==============================================================================
# ** MACMM_LocationWindow
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  This window shows the location data.
#==============================================================================

class MACMM_LocationWindow < Window_MACMM_AutoCustom
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Object Initialization
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def initialize(*args)
    super([MA_CustomizableMenu::LOCATION_LABEL, "$game_map.display_name"])
    self.x = (MA_CustomizableMenu::COMMAND_WINDOW_ON_RIGHT ||
      MA_CustomizableMenu::LOCATION_FULL_WIDTH) ? 0 : $game_system.macmm_command_width
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Window Width
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def window_width
      MA_CustomizableMenu::LOCATION_FULL_WIDTH ? Graphics.width :
      Graphics.width - $game_system.macmm_command_width
  end
end

#==============================================================================
# ** Scene Menu
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Summary of Changes:
#    aliased method - manual_window; create_optional_windows
#==============================================================================

class Scene_Menu
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Create Optional Windows
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias macmm_locwin_crtoptwins_8ul5 create_optional_windows
  def create_optional_windows(*args, &block)
    if $game_system.macmm_optional_windows.include?(:location)
      # Make sure Location first window to be created
      $game_system.macmm_optional_windows.delete(:location)
      $game_system.macmm_optional_windows.push(:location)
    end
    macmm_locwin_crtoptwins_8ul5(*args, &block) # Call Original Method
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Create Manually Set Custom Window
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias macmm_locwin_mancustwin_2rw6 manual_custom_window
  def manual_custom_window(symbol, *args, &block)
    if symbol == :location
      @macmm_location_window = MACMM_LocationWindow.new
      set_custom_window_y(@macmm_location_window) if @macmm_location_window.width == Graphics.width
      @macmm_location_window.y = Graphics.height - @macmm_location_window.height
      # Change height of the Status Window
      if @status_window
        @status_window.height -= @macmm_location_window.height
        @status_window.create_contents
        @status_window.refresh
      end
    else
      macmm_locwin_mancustwin_2rw6(symbol, *args, &block) # Call Original Method
    end
  end
end

else
  p "Location Window requires the Customizable Main Menu, and the Location
    Window must be below it in the Script Editor. You can find the script at:
      http://rmrk.net/index.php/topic,44906.0.html"
end

Credit



Thanks


Support


Please post in this topic at RMRK for assistance with any aspect of this script.

Known Compatibility Issues

This script will likely not be compatible with most other menu systems which substantially alter the menu. However, it is designed to be compatible with scripts which add themselves to the menu, such that you do not need to manually set those up through the mechanisms provided in this script.

Author's Notes


I just wrote this script to encapsulate some of the functional features that were common to all my menu scripts in VX. That way, I can release the other portions as independent but compatible scripts, so that if these functions are desired they can be achieved, but without importing the heavy customization burden of these features for people who only want the graphical enhancements of my other menus.
Title: Re: Customizable Main Menu System
Post by: pacdiggity on January 19, 2012, 02:03:17 AM
Dear god, that's beautiful. Utterly brilliant.
Almost makes me want to port it to VX. I should probably get VXA... keep up with you guys.
Title: Re: Customizable Main Menu System
Post by: Seiryuki on January 19, 2012, 12:48:57 PM
Truly amazing!
Title: Re: Customizable Main Menu System
Post by: modern algebra on January 20, 2012, 09:49:20 PM
I made an addon to show a location window that is wider than the custom data windows, since location names sometimes need the extra space. The location window shows up directly below the status window and is the width of the status window, or there is an option to make it the width of the screen.

Please note that you need to have v. 1.0b of the Customizable Main Menu in order for this to work. Earlier versions won't.

(http://img842.imageshack.us/img842/1786/locwindow.png)

Code: [Select]
#==============================================================================
#    Location Window
#      Addon to Customizable Main Menu 1.0b
#    Version: 1.0a
#    Author: modern algebra (rmrk.net)
#    Date: January 20, 2012
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Description:
#
#    This is an Addon for the Customizable Main Menu (found at:
#   http://rmrk.net/index.php/topic,44906.0.html). With this script, you can
#   add a long window to properly display location in the main menu, as the
#   auto window function in the script doesn't create a wide enough window to
#   show long location names.
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Instructions:
#
#    Paste this script into its own slot in the Script Editor, above Main but
#   below the Customizable Main Menu script.
#
#    Other than that, all you need to do is set the display text at line xx.
#   That is the label drawn on the left hand side of the window to indicate
#   what the window shows. Additionally, you will need to make sure that you
#   have not created any custom windows in the Customizable Main Menu that have
#   :location as their identifer, or else this script will be overridden.
#
#    You can add or remove the location window in-game by using the following
#   codes in a script call:
#
#      add_menu_window(:location)
#      remove_menu_window(:location)
#==============================================================================

if $imported && $imported[:MA_CustomizableMenu]
$imported[:MACMM_LocationWindow] = true

#==============================================================================
# *** MA Customizable Menu
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Summary of Changes:
#    new constants - LOCATION_LABEL; LOCATION_FULL_WIDTH
#==============================================================================

module MA_CustomizableMenu
  #\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  #  Editable Region
  #||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  #  The label to be shown at the left hand side of the window. Message codes
  # are recognized
  LOCATION_LABEL = "\\i[231]"
  #  The value of this constant determines whether the location window should
  # take up the entire width of the screen, or be the same width as the status
  # window. false = Full; true = Status
  LOCATION_FULL_WIDTH = false
  #||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  #  End Editable Region
  #//////////////////////////////////////////////////////////////////////////
  OPTIONAL_WINDOWS_LIST.push(:location) unless OPTIONAL_WINDOWS_LIST.include?(:location)
end

#==============================================================================
# ** MACMM_LocationWindow
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  This window shows the location data.
#==============================================================================

class MACMM_LocationWindow < Window_MACMM_AutoCustom
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Object Initialization
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def initialize(*args)
    super([MA_CustomizableMenu::LOCATION_LABEL, "$game_map.display_name"])
    self.x = (MA_CustomizableMenu::COMMAND_WINDOW_ON_RIGHT ||
      MA_CustomizableMenu::LOCATION_FULL_WIDTH) ? 0 : $game_system.macmm_command_width
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Window Width
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def window_width
      MA_CustomizableMenu::LOCATION_FULL_WIDTH ? Graphics.width :
      Graphics.width - $game_system.macmm_command_width
  end
end

#==============================================================================
# ** Scene Menu
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#  Summary of Changes:
#    aliased method - manual_window; create_optional_windows
#==============================================================================

class Scene_Menu
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Create Optional Windows
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias macmm_locwin_crtoptwins_8ul5 create_optional_windows
  def create_optional_windows(*args, &block)
    if $game_system.macmm_optional_windows.include?(:location)
      # Make sure Location first window to be created
      $game_system.macmm_optional_windows.delete(:location)
      $game_system.macmm_optional_windows.push(:location)
    end
    macmm_locwin_crtoptwins_8ul5(*args, &block) # Call Original Method
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Create Manually Set Custom Window
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias macmm_locwin_mancustwin_2rw6 manual_custom_window
  def manual_custom_window(symbol, *args, &block)
    if symbol == :location
      @macmm_location_window = MACMM_LocationWindow.new
      set_custom_window_y(@macmm_location_window) if @macmm_location_window.width == Graphics.width
      @macmm_location_window.y = Graphics.height - @macmm_location_window.height
      # Change height of the Status Window
      if @status_window
        @status_window.height -= @macmm_location_window.height
        @status_window.create_contents
        @status_window.refresh
      end
    else
      macmm_locwin_mancustwin_2rw6(symbol, *args, &block) # Call Original Method
    end
  end
end

else
  p "Location Window requires the Customizable Main Menu, and the Location
    Window must be below it in the Script Editor. You can find the script at:
      http://rmrk.net/index.php/topic,44906.0.html"
end
Title: Re: Customizable Main Menu
Post by: Woogimember on February 17, 2012, 11:32:03 PM
Thanks for the script, but...
I get an error when I try to open the menu:

---------------------------
Test Game
---------------------------
Script 'Modern Algebra's Custom menu' line 842: NoMethodError occurred.

undefined method `[]' for nil:NilClass
---------------------------
Accept   
---------------------------
In the code It says:
when Symbol then method(cc[@command_window.current_symbol][2])
Please help me, I don't know how to script!
Title: Re: Customizable Main Menu
Post by: modern algebra on February 17, 2012, 11:40:04 PM
Where you see:

Code: [Select]
      when Symbol then method(cc[@command_window.current_symbol][2])
      when String then lambda { eval(cc[@command_window.current_symbol][2]) }

Replace it with just:

Code: [Select]
      when String then lambda { eval(cc[symbol][2]) }

Tell me if that works.
Title: Re: Customizable Main Menu
Post by: yuyu! on February 18, 2012, 01:46:48 AM
Why have I not seen this yet? This is utterly perfect. Thank you, MA. :) Certainly going to use this when VXA comes out.
Title: Re: Customizable Main Menu
Post by: Woogimember on February 26, 2012, 02:03:29 AM
Still not working

---------------------------
Test Game
---------------------------
Script 'Modern Algebra menu' line 842: NoMethodError occurred.

undefined method `[]' for nil:NilClass
---------------------------
Accept   
---------------------------
Title: Re: Customizable Main Menu
Post by: modern algebra on February 26, 2012, 04:27:43 AM
Upload the project and send it to me, or, if it is your main project and you are not comfortable sharing it, create a new project, reproduce the error-creating situation, and send that to me.

And actually, before you do, get the version from the first post and replace your current version, in case you are working from a prior version.
Title: Re: Customizable Main Menu
Post by: Mushu on April 10, 2012, 04:34:55 PM
Thanks, this will be very useful to me. Btw, it works perfectly fine so far, no errors.
Title: Re: Customizable Main Menu
Post by: paradoxum on April 19, 2012, 12:17:40 PM
Is it possible to change the menu to only display 1 character at a time, and have the menu 'scroll' down to the other characters when you select them like this screenshot indicates (http://i.imgur.com/RUkMF.png) (only instead of showing 3 characters and scrolling down to the 4th, show only 1 and have it able to scroll down to view the rest)

Like this (this is a menu mod in VX I was using) (http://i.imgur.com/e6Bft.png)
Current Ace menu (http://i.imgur.com/c6TCr.png)

Edit: I guess based on this

Quote
Additionally, you can change the width of the command and data windows and the Menu Status window will now better accomodate different resolutions.

No mention of height for the "data windows" and after looking through the script more i'm pretty sure it's not an option so, i'm politely requesting the option to change the Height of the main menu status window.

Thanks again.
Title: Re: Customizable Main Menu
Post by: Trihan on April 19, 2012, 09:57:40 PM
Somewhat unrelated, MA, but what naming convention do you use for your method aliases?
Title: Re: Customizable Main Menu
Post by: paradoxum on April 24, 2012, 07:29:30 AM
Figured out how to get it like I wanted:
(http://i.imgur.com/CvMru.png)

just changed
Window_MenuStatus

Code: [Select]
  #--------------------------------------------------------------------------
  # * Get Window Height
  #--------------------------------------------------------------------------
  def window_height
    Graphics.height - 240
  end
Title: Re: Customizable Main Menu
Post by: MajikalBlood on July 14, 2012, 02:31:04 PM
Hey I'm sorry for bumping a topic past 60days but I need some help; I just converted to VXA and I want to add in and customize my menu;

I would like to add in 2 new windows that act like the gold window.
1. Keys
2. Stars

and have a menu like the post above me.
Title: Re: Customizable Main Menu
Post by: Wiimeiser on July 14, 2012, 03:10:26 PM
I wouldn't know exactly how, but you could display a variable for each one; if they're tied into items you'll need to bind those variables with this (http://rmrk.net/index.php/topic,45809.0.html); it's complex though, so you may need to ask for a bit of help.
Title: Re: Customizable Main Menu
Post by: modern algebra on July 14, 2012, 06:57:47 PM
I'd refer you to this portion of the script:

Code: [Select]
  #  CUSTOM_WINDOWS - Here you can set up your own windows to show simple
  # data, like the gold window. Basically, you can show a label, and then real
  # data. The format is as follows:
  #
  #    :unique => ["Label", value],
  #
  #  As with the CUSTOM_COMMANDS, :unique must be a unique identifier so that
  # you can add it into the OPTIONAL_WINDOWS_LIST.
  #
  #  "Label" is a String which will show up on the left hand side. It
  # recognizes special message codes, but if you are using double quotation
  # marks (" "), then you need to use \\, not \. Ie, it would be \\c[16], not
  # \c[16].
  #
  #  value can show one of three things:
  #   (1) The value of a variable - to show this, just put the ID of the
  #      variable you want to show.
  #   (2) Any expression you evaluate - this requires some scripting knowledge,
  #      but if you know the correct code then just put it in a string. Ex:
  #        :steps =>     ["\\c[6]Steps\\c[0]", "$game_party.steps"],
  #        :keys =>      ["Keys", "$game_party.item_number($data_items[8])"],
  #   (3) Playtime - To show playtime, you need to just use :playtime. Ex:
  #        :playtime =>  ["\\i[280]", :playtime],
  #   (4) Other - If you know how to script, then it is possible to add
  #      special data as well, like playtime.
  #
  #  Additionally, you can make windows that have more than one data line,
  # simply by adding further lines. So, for instance:
  #
  #   :combined => ["\\i[280]", :playtime,
  #                 "\\i[467]", "$game_party.steps",
  #                 "\\i[347]", 5],
  #
  #  That would show all of that data in one line. It is the same format, they
  # just need to be within the same [].
  CUSTOM_WINDOWS = { # <- Do not touch!
    :playtime =>  ["\\i[280]", :playtime],
    :variable5 => ["\\i[122]", 5],
    :steps =>     ["\\c[6]Steps\\c[0]", "$game_party.steps"],
    :item8 =>     ["Keys", "$game_party.item_number($data_items[8])"],
    :combined =>  ["\\i[280]", :playtime,
                   "\\i[467]", "$game_party.steps",
                   "\\i[347]", 5,
                   "\\i[262]", "$game_party.gold"],
  } # <- Do not touch!
  #  OPTIONAL_WINDOWS_LIST - Like the COMMAND_LIST, any windows you want to add
  # to the menu need to be included in this array. Just add the :unique
  # identifier, and that is the position the window will show up. The only
  # default option is :gold, which shows the regular gold window. You can
  # delete it if you want. To add windows in-game, you can use the following
  # script calls:
  # 
  #    add_menu_window(:unique, index)
  #    remove_menu_window(:unique)
  #
  #  :unique is the unique identifier of the window you want to add or remove.
  #  index is an integer which allows you to choose where the command shows up
  # in the list when it is added. If you exclude it and just put:
  #
  #    add_menu_window(:unique)
  #
  # then it will be the placed at the bottom.
  OPTIONAL_WINDOWS_LIST = [ # <- Do not touch!
    :gold,
  ] # <- Do not touch!

To help you more specifically, WiiMeiser is correct in that I would need to know what keys and stars are in your game - ie. are they variables or items or whatever? If so, what is their ID in the database? However, the variable binding script is not necessary as this script allows you to have windows display something from Ruby code.

As a more concrete example, you can see in the script itself that it already has a number of examples:

Code: [Select]
  CUSTOM_WINDOWS = { # <- Do not touch!
    :playtime =>  ["\\i[280]", :playtime],
    :variable5 => ["\\i[122]", 5],
    :steps =>     ["\\c[6]Steps\\c[0]", "$game_party.steps"],
    :item8 =>     ["Keys", "$game_party.item_number($data_items[8])"],
    :combined =>  ["\\i[280]", :playtime,
                   "\\i[467]", "$game_party.steps",
                   "\\i[347]", 5,
                   "\\i[262]", "$game_party.gold"],
  } # <- Do not touch!

In particular, notice that this line, if included, would make a window identified as keys and which would show the number of Item 8 that the party currently holds:

Code: [Select]
    :item8 =>     ["Keys", "$game_party.item_number($data_items[8])"],

Then go to the following code:

Code: [Select]
  OPTIONAL_WINDOWS_LIST = [ # <- Do not touch!
    :gold,
  ] # <- Do not touch!

You could have the keys window show up by changing it to:

Code: [Select]
  OPTIONAL_WINDOWS_LIST = [ # <- Do not touch!
    :item8,
    :gold,
  ] # <- Do not touch!

If that is still difficult to understand, then please tell me what precisely the keys and stars window are supposed to show and I can tell you exactly what the code needs to look like. So, if keys corresponds to the number of a particular type of item, then I would need to know that and the ID. Or if it refers to the value of a variable, I would need to know that and the ID of the variable, etc.
Title: Re: Customizable Main Menu
Post by: Helladen on July 23, 2012, 10:35:14 AM
Thanks MA, this is probably the best menu made thus far.
Title: Re: Customizable Main Menu
Post by: modern algebra on July 24, 2012, 09:31:12 PM
I'm glad you like it!
Title: Re: Customizable Main Menu
Post by: Helladen on July 24, 2012, 09:36:19 PM
I have a quick question, how come your state scrolling doesn't work with it? I have been trying to fix the state icons in menus, it annoys me so badly. Do you have any suggestions how to resolve this problem?
Title: Re: Customizable Main Menu
Post by: modern algebra on July 24, 2012, 09:48:24 PM
I'll look into it. What is the problem?
Title: Re: Customizable Main Menu
Post by: Helladen on July 24, 2012, 09:52:31 PM
For some reason it has no effect in the menu at all. The same goes for Yanfly's status menu, not sure if it is another script causing it, or the class it uses is just separate from the one the menu scenes use.
Title: Re: Customizable Main Menu
Post by: modern algebra on July 24, 2012, 10:02:28 PM
I just tested the two scripts together and it appears to be working fine. My best guess is that one of your other scripts overwrites the state drawing method in Window_Base. Try putting the State Icon Scroll script below all your other scripts but still above Main. If that doesn't work, you will need to isolate the incompatibility by moving the State Icon Scroll and Customizable Main Menu scripts into a new project. Set it up so that you can see the scrolling states, then add your other scripts in one-by-one, testing the game after each new script is added. Once it stops working, the last script you had added is likely the source of the incompatibility. Let me know what it is and where to find it and I will tell you how it can be fixed.

But hopefully it will work once State Icon Scroll is below your other custom scripts.
Title: Re: Customizable Main Menu
Post by: Helladen on July 24, 2012, 10:07:46 PM
Thanks, will do. :)
Title: Re: Customizable Main Menu
Post by: vindaca on January 04, 2013, 12:17:38 PM
is there a way to display the sprites instead of the faces and or both
Title: Re: Customizable Main Menu
Post by: crow5derlock on January 04, 2013, 01:21:08 PM
Your work is truly brilliant. Your original VX scripts for many different main menus were brilliant by themselves, but this way of getting many different types of menus and they're all mostly your work. It's Brilliantly Great, and quite outright and obvious too. I love it!
Title: Re: [VXA] Customizable Main Menu
Post by: modern algebra on February 06, 2013, 02:03:22 AM
Thanks crow, and no, vindaca, not currently.

Cozziekuns has released a ring menu addon! You can get it here:

http://rmrk.net/index.php/topic,47627.0.html
Title: Re: [VXA] Customizable Main Menu
Post by: littlesatyr on February 27, 2013, 02:57:50 PM
Hey there, as you suggested in my request topic I checked out this script and I created an info box down the left side replacing the Gold box.
I gotta say, it looks pretty swish~

Thanks a lot MA! Appreciate the help a bunch. ^.^
Title: Re: [VXA] Customizable Main Menu
Post by: modern algebra on February 27, 2013, 11:13:21 PM
I'm glad it's working out for you.
Title: Re: [VXA] Customizable Main Menu
Post by: Giga on February 28, 2015, 01:49:00 PM
Could this be configured to have five actors on one page, similar to the Yanfly Party Sized Menu script? If not, could it be patched in, probably somewhere around line 376?

I tried using both the Yanfly Menu Engine with the Party Sized Menu and this at the same time, but this overwrites Yanfly's script. The math involved makes no sense to me, otherwise I'd attempt messing with it myself...

And yes, I understand that this is a bump, but I don't see how else I could solve this problem.