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.

[VX] Custom Title Screen Menu: Easy way to edit your title menu~

Custom Title Screen Menu
Version 1.0
by Woratana
Release Date: 04/04/2008


Introduction
This script will help you add, arrange, and edit menu in title screen easier.

You can easily move, change its size, change skin, and  change opacity.


Features
Version 1.0
- Easy to Edit window's appearance (size, position, skin, opacity)
- Easy to Add/Arrange commands
- Included built-in method to help you make new command easier


Script
Place it above main

Code:
#===============================================================
# ? [VX] ? Custom Title Screen Menu ? ?
#--------------------------------------------------------------
# ? by Woratana [woratana@hotmail.com]
# ? Version: 1.0
# ? Released on: 04/04/2008
#--------------------------------------------------------------

#-----------------------------------------
# [+ FEATURES +]
#---------------------------------------
# - Easy to Edit window's appearance (size, position, skin, opacity)
# - Easy to Add/Arrange commands
# - Included built-in method to help you make new command easier
#------------------------------------------

class Scene_Title < Scene_Base
  #====================================================================
  # +[START SETUP SCRIPT HERE]+
  #--------------------------------------------------------------
  #--------------------------------------------------------------------------
  # ** Command Window Appearance Setup
  #----------------------------------------------------------------------
  # * Type the integer number to use that value,
  # e.g. COMMAND_WINDOW_X = 200
  # * or type script in '...' to use number calculate by script.
  # e.g. COMMAND_WINDOW_X = '(544 - @command_window.width) / 2'
  # Note: You can use script in COMMAND_WINDOW_X and COMMAND_WINDOW_Y
  #--------------------------------------------------------------------------
  COMMAND_WINDOW_X = '(544 - @command_window.width) / 2'
  COMMAND_WINDOW_Y = 288
  COMMAND_WINDOW_WIDTH = 172
  COMMAND_WINDOW_HEIGHT = nil # Type integer, or 'nil' for autosize.
  
  COMMAND_WINDOW_COLUMN_MAX = 1 # Type integer, minimum is 1
  COMMAND_WINDOW_ROW_MAX = 0 # Type integer, or 0 for auto row count.
  COMMAND_WINDOW_SPACING = 32
  
  COMMAND_WINDOW_SKIN = 'Window' # Windowskin file must be in folder 'System'
  COMMAND_WINDOW_BACK_OPACITY = 200 # Window Background Opacity (0 - 255)
  COMMAND_WINDOW_OPACITY = 255 # Window Opacity (0 - 255)
  #--------------------------------------------------------------------------
  # ** Commands List Setup
  #----------------------------------------------------------------------
  # ** Template **
  # COMMAND[Command Index] = ['Text', 'Script']
  # e.g. COMMAND[1] = ['Test Command', 'scene("Scene_Test.new")]
  
  # ** Description **
  # Command Index
  # << Command Index start from 0. The lower index will show above higher index
  # 'Text'
  # << Text you want to show for that command, type text in '...'
  # 'Script'
  # << Script to run when player choose that command, type script in '...'
  
  #-------------------------------------------------------------------------
  # ** Built-in Method
  # * List of built-in method, you can put this in 'Script' in Template
  #-------------------------------------------------------------------------
  # 'command_new_game' : New Game
  # 'command_continue' : Continue Game
  # 'command_shutdown' : Shut down Game
  
  # 'scene("Scene_Name.new")' : Change Scene to 'Scene_Name.new'
  # e.g. 'scene("Scene_End.new")'
  # e.g.2 'scene("Scene_Menu.new(2)")'
  
  # 'new(Map ID, X, Y, Members)' : New Game in specific location and members
  # e.g. 'new(1, 10, 8, [1,2,3])'
  # << New Game in Map ID 1 at coordinate (10,8) with Actor ID 1,2,3 in party
  # Note: You may use this method for Game Tutorial
  #--------------------------------------------------------------------------
  COMMAND = Array.new
  #--------------------------------------------------------------------------
  COMMAND[0] = ['New Game', 'command_new_game']
  COMMAND[1] = ['Load Game', 'command_continue']
  COMMAND[2] = ['End Game', 'command_shutdown']
  
  LOAD_GAME_COMMAND_INDEX = 1 # COMMAND index that use to Load Game.
  # (This command will unable to use if there's no save file available)
  #-------------------------------------------------------------------------
  # +[END SETUP SCRIPT HERE]+
  #-------------------------------------------------------------------------
  
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
	command_list = []
	COMMAND.each {|i| command_list.push (i[0]) }
	@command_window = Window_Command.new(COMMAND_WINDOW_WIDTH, command_list, COMMAND_WINDOW_COLUMN_MAX, COMMAND_WINDOW_ROW_MAX, COMMAND_WINDOW_SPACING)
	@command_window.x = COMMAND_WINDOW_X.is_a?(String) ? eval(COMMAND_WINDOW_X) : COMMAND_WINDOW_X
	@command_window.y = COMMAND_WINDOW_Y.is_a?(String) ? eval(COMMAND_WINDOW_Y) : COMMAND_WINDOW_Y
	@command_window.height = COMMAND_WINDOW_HEIGHT if !COMMAND_WINDOW_HEIGHT.nil?
	@command_window.windowskin = Cache.system(COMMAND_WINDOW_SKIN)
	@command_window.back_opacity = COMMAND_WINDOW_BACK_OPACITY
	@command_window.opacity = COMMAND_WINDOW_OPACITY
	
	if @continue_enabled   # If continue is enabled
	  @command_window.index = LOAD_COMMAND_INDEX  # Move cursor over command
	else  # If disabled
	  @command_window.draw_item(LOAD_GAME_COMMAND_INDEX, false) # Make command semi-transparent
	end
	@command_window.openness = 0
	@command_window.open
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
	super
	@command_window.update
	if Input.trigger?(Input::C)
	  eval(COMMAND[@command_window.index][1])
	end
  end
  #--------------------------------------------------------------------------
  # * Call Scene
  #--------------------------------------------------------------------------
  def scene(scene_name)
	Sound.play_decision
	$scene = eval(scene_name)
  end
  #--------------------------------------------------------------------------
  # * New Game in Other Location
  #--------------------------------------------------------------------------
  def new(map_id, x, y, member_ary)
	Sound.play_decision
	$game_party.custom_starting_members(member_ary)
	$game_map.setup(map_id)
	$game_player.moveto(x, y)
	$game_player.refresh
	$scene = Scene_Map.new
	RPG::BGM.fade(1500)
	close_command_window
	Graphics.fadeout(60)
	Graphics.wait(40)
	Graphics.frame_count = 0
	RPG::BGM.stop
	$game_map.autoplay
  end
end

class Game_Party < Game_Unit
  #--------------------------------------------------------------------------
  # * Custom Party Setup
  #--------------------------------------------------------------------------
  def custom_starting_members(member_ary)
	@actors = []
	member_ary.each {|i| @actors.push(i) }
  end
end


Instruction
- Setup script between this line...
Code:
  #====================================================================
  # +[START SETUP SCRIPT HERE]+
  #--------------------------------------------------------------
and this line...
Code:
  #-------------------------------------------------------------------------
  # +[END SETUP SCRIPT HERE]+
  #-------------------------------------------------------------------------

Here are the setup guides from script:
Code:
  #--------------------------------------------------------------------------
  # ** Command Window Appearance Setup
  #----------------------------------------------------------------------
  # * Type the integer number to use that value,
  # e.g. COMMAND_WINDOW_X = 200
  # * or type script in '...' to use number calculate by script.
  # e.g. COMMAND_WINDOW_X = '(544 - @command_window.width) / 2'
  # Note: You can use script in COMMAND_WINDOW_X and COMMAND_WINDOW_Y
  #--------------------------------------------------------------------------

Code:
  #--------------------------------------------------------------------------
  # ** Commands List Setup
  #----------------------------------------------------------------------
  # ** Template **
  # COMMAND[Command Index] = ['Text', 'Script']
  # e.g. COMMAND[1] = ['Test Command', 'scene("Scene_Test.new")]
  
  # ** Description **
  # Command Index
  # << Command Index start from 0. The lower index will show above higher index
  # 'Text'
  # << Text you want to show for that command, type text in '...'
  # 'Script'
  # << Script to run when player choose that command, type script in '...'
 
Code:
  #-------------------------------------------------------------------------
  # ** Built-in Method
  # * List of built-in method, you can put this in 'Script' in Template
  #-------------------------------------------------------------------------
  # 'command_new_game' : New Game
  # 'command_continue' : Continue Game
  # 'command_shutdown' : Shut down Game
  
  # 'scene("Scene_Name.new")' : Change Scene to 'Scene_Name.new'
  # e.g. 'scene("Scene_End.new")'
  # e.g.2 'scene("Scene_Menu.new(2)")'
  
  # 'new(Map ID, X, Y, Members)' : New Game in specific location and members
  # e.g. 'new(1, 10, 8, [1,2,3])'
  # << New Game in Map ID 1 at coordinate (10,8) with Actor ID 1,2,3 in party
  # Note: You may use this method for Game Tutorial


Compatibility
This script rewrite methods update and create_command_window

so it may not work with scripts that need to edit those methods.


Author's Notes
Free for use in your non-commercial work if credit included. If your project is commercial, please contact me.

Please do not redistribute this script without permission. If you want to post it on any forum, please link to this topic.
 

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