[XP] Basic Custom Picture Menu

Started by Zexion, February 25, 2011, 01:57:50 am

Previous topic - Next topic


Basic Custom Picture Menu
Authors: Zexion
Version: 1.0
Type: Custom Picture Menu
Key Term: Custom Menu System


This script allows for an easy custom picture menu. It can be modified to make several menus.


  • Uses pictures to show a menu

  • Requires 7 pictures

  • Picture names can be defined in the layout module

  • Comments on how to change the scenes

Spoiler: ShowHide

Picture Menu Demo - 572 Kb

Spoiler: ShowHide
#                          Basic CMS V 1.0                                     #
#       This script is a modification of Mog's Sence Menu Itigo V1.5           #

module Layout
    # Main Menu Graphics Used
      Background       = "CM_Layout"       # Main Menu Graphics
      MENU_TYPE_1       = "Buttons Layout1"   # Button layout
      MENU_TYPE_2       = "Buttons Layout2"
      MENU_TYPE_3       = "Buttons Layout3"
      MENU_TYPE_4       = "Buttons Layout4"
      MENU_TYPE_5       = "Buttons Layout5"
      MENU_TYPE_6       = "Buttons Layout6"

# ** Scene_Journal
#  This class performs journal screen processing.

class Scene_CustomMenu
  # * Object Initialization
  #     menu_index : command cursor's initial position
    def initialize(menu_index = 0)
    @menu_index = menu_index
  # * Main Processing
  def main
    # Make command window
    s1 = ""
    s2 = ""
    s3 = ""
    s4 = ""
    s5 = ""
    s6 = ""
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
    @command_window.index = @menu_index
    @command_window.opacity = 0
    @command_window.windowskin = RPG::Cache.windowskin("")
    # Draws the pictures for the menu
    @mnlay = Sprite.new
    @mnlay.bitmap = RPG::Cache.picture(Layout::Background)
    @mnlay.opacity = 255
    @mncom = Sprite.new
    @mncom.bitmap = RPG::Cache.picture(Layout::MENU_TYPE_1)
    @mncom.z = 100
    # Execute transition
    # Main loop
    loop do
      # Update game screen
      # Update input information
      # Frame update
      # Abort loop if screen is changed
      if $scene != self
    # Prepare for transition
    # Dispose of windows
  # * Frame Update
  def update
    # Update windows
    # If command window is active: call update_command
    if @command_window.active
  def update_command
    case @command_window.index
    when 0 
      @mncom.bitmap = RPG::Cache.picture(Layout::MENU_TYPE_1)
    when 1
    @mncom.bitmap = RPG::Cache.picture(Layout::MENU_TYPE_2)
    when 2
    @mncom.bitmap = RPG::Cache.picture(Layout::MENU_TYPE_3)
    when 3
    @mncom.bitmap = RPG::Cache.picture(Layout::MENU_TYPE_4)
    when 4
    @mncom.bitmap = RPG::Cache.picture(Layout::MENU_TYPE_5)
    when 5
    @mncom.bitmap = RPG::Cache.picture(Layout::MENU_TYPE_6)
    if Input.trigger?(Input::B)
  # If the player presses cancel, what do you want it to do
      $scene = Scene_Menu.new
  # Replace $scene = Scene_Menu.new with whichever scene you want
  # to return to after they cancel this menu.
  # to return to the map replace it with, $scene = Scene_Map.new
    if Input.trigger?(Input::C)
  # If the player presses the confirm button...
      case @command_window.index
      when 0
  # and the first option is selected
        $scene = Scene_Item.new
      when 1
  # and the second option is selected
        $scene = Scene_Save.new
      when 2
  # and the third option is selected
        $scene = Scene_Load.new
      when 3
  # and the fourth option is selected
        $scene = Scene_Gameover.new
      when 4
  # and the fith option is selected
        $scene = Scene_Title.new
      when 5
  # and the sixth option is selected
        $scene = Scene_Map.new
# Keep in mind, Whatever scene you transfer to will still exit into whatever
# Menu it is defined to exit into, NOT this one (unless you change it to this 1)

Place above main in the script editor.

Just make pictures on any graphic program, and name them appropriately.
You can change what scenes the menu accesses by reading the comments.

Doesn't modify anything, so it shouldn't have any issues.

Credits and Thanks

  • Moghunter for his main menu script

  • Me for removing much of the code to make a menu base menu.

Author's Notes
Remember, just because you use the menu to acess the items menu, doesn't mean that the items menu will return to this menu on exit. You have to change that in scene_item, or scene_whatever else. Also, the graphics in the demo SUCK dont use them please :) they would look bad in any game lol.
They are simply to show how the menu works.
Be creative when making your menu :)


Very cool, I always wanted to figure this out. This adds a whole 'nother level of custom to your game.
Quote from: Blizzard on September 09, 2011, 02:26:33 am
The permanent solution for your problem would be to stop hanging out with stupid people.


now, if you add the options to position the pictures (if it isn't there already, I only looked at the listed features) this script will be awesome. *Moves*
I no longer keep up with posts in the forum very well. If you have a question or comment, about my work, or in general I welcome PM's. if you make a post in one of my threads and I don't reply with in a day or two feel free to PM me and point it out to me.<br /><br />DropBox, the best free file syncing service there is.<br />



WOW first wtf lol I thought this post didn't go through I barely saw it in the replies post :P. Second its actually easy to position the pictures, just get the 640x480 picture and draw your menu anywhere on it. The screen is 640x480 in most xp games, so the picture just covers the whole screen. That means no matter where you want your menu, you can have it there :) you can even make them jump around, change color, or even change backgrounds completely if you place a picture behind the buttons in the same image. There's alot you can do :P but like i said creativity is the key, and really your only limit.(besides not going left to right that is)


October 11, 2012, 10:48:31 pm #5 Last Edit: October 11, 2012, 10:50:16 pm by Zexion
Just to show an example of what can be made :P
Spoiler: ShowHide

Took around 1 hour yesterday and like 20 minutes today to put in the status boxes. I used only this script (and some general scripting knowlege) to make this fully animated menu. I thought I was done, but I just realised that I still need the map name lol. Either way, it goes to show that nice looking menus can be made with imagination.

Edit: btw the status boxes(box with green and blue lines) can't be finished till I finish the battle system lol hp/mp is based on a variable and I haven't decided that