RMRK is retiring.
Registration is disabled. The site will remain online, but eventually become a read-only archive. More information.

RMRK.net has nothing to do with Blockchains, Cryptocurrency or NFTs. We have been around since the early 2000s, but there is a new group using the RMRK name that deals with those things. We have nothing to do with them.
NFTs are a scam, and if somebody is trying to persuade you to buy or invest in crypto/blockchain/NFT content, please turn them down and save your money. See this video for more information.
Help with Modifying KGC Custom Menu Command Script

0 Members and 1 Guest are viewing this topic.

**
Rep:
Level 84
Live it up!
Alright, so I am using the following KGC Scripts along with the Tankentai SBS (which by the way does not have any compatibility issues):
>Map Lightening
>Limit Break
> Interface For Win32 API
> File Encryption 2
> Compress Save File
> Screen Capture
> Change System Terms
> Help Extension
> Draw Format Text
> Frame Shadow Text
> Mat Reinforce
> Old Event Commands
> Continue BGM
> Special Transition
> Custom Menu Command
> Cursor Animation
> Location/PlayTime Window
> Enemy Guide w/ Tankentai FIX
> Outline
>Extra Drop Item
> Day/Night
> Large Party
> Dash/8 Directional Movement
> Mini Map
> Categorize Item
> Add Equipment Options
> Extended Equip Scene
> Equip Extension
> Compose Item
> Categorize Skill
> Equip Learn Skill
> Skill CP System
> Overdrive
> MP Cost Alter
> Counter
> Battle Count 2
> Distribute Parameter
> Separation Command

Yes, I know that's quite a lot of KGC Scripts but they work so well together that I wanted to implement them on my game.

What I want to do is this:

1.) I want the custom menu to have an option called Journal and in the Journal option there would be 'sub-options' such as 1.) Books and 2.) Bestiary. When I select Journal > Books it would open the KGC_Outline Scene and when I select Journal > Bestiary it would open the KGC_EnemyGuide Scene.

2.) I want the custom menu to have an option called System and in the System option there would be (like in the above example) 'sub-options' such as: 1.) Save, 2.) Load, and 3.) Quit where Save calls the save scene when available (i.e if on the world map), Load calls on the load scene and quit exits the game.

Can someone help me do this?
Thank you. Below is the KGC_CustomMenuCommand Script that I am using:
Spoiler for KGC Custom Menu Command Script:
Code: [Select]
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/   ? Command Menu Customization - KGC_CustomMenuCommand ? VX ?
#_/   ?   Last Update: 2008/08/28   ?
#_/   ?   Translation & Extended Updates by Mr. Anonymous   ?
#_/   ? KGC Site: ?
#_/   ? http://f44.aaa.livedoor.jp/~ytomy/tkool/rpgtech/techlist_vx.html   ?
#_/   ? Translator's Blog: ?
#_/   ? http://mraprojects.wordpress.com   ?
#_/----------------------------------------------------------------------------
#_/  Installation: This script should be inserted above most custom scripts -
#_/   specifically scripts that add items to the main command menu.
#_/   Insert below KGC_HelpExtension, DrawFormatText, MathReinforce, Win32API,
#_/   LimitBreak, and ScreenCapture.
#_/============================================================================
#_/   This script allows you to customize the order in which items in the main
#_/  command menu are displayed. Also, it extends the ability of easily creating
#_/  additional menu commands and adding them into the command menu, with a
#_/  little scripting skill.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

#=============================================================================#
#    ? Customization ? #
#=============================================================================#

module KGC
  module CustomMenuCommand
  #    ? Default Menu Items ?
  #  Each menu item is assigned a number. These can be rearranged to your liking
  #  in MENU_COMMANDS.
  #  0..Items  1..Skills  2..Equipment  3..Status  4..Save  5..Quit
  #
  # ? KGC Menu Items ?
  #   ** If the corresponding scripts are not installed, don't bother with
  #    using its listed option.
  #  10: Party (KGC_LargeParty)
  #  11: View AP    (KGC_EquipLearnSkill)
  #  12: Skill Slots    (KGC_SkillCPSystem)
  #  13: Difficulty (KGC_BattleDifficulty)
  #  14: Level Up   (KGC_DistributeParameter)
  #  15: Beastiary (KGC_MonsterGuide)
  #  16: Outline    (KGC_Outline)
  #
  # ? Extra Menu Items ?
  #   ** [ExMenu_CustomCommand]
  #   ** These are for future use for scripters.
  #  100: Extra Command 1
  #  101: Extra Command 2
  #  102: Extra Command 3
  #  (Up to 199 available slots.)
  # ? Menu Commands Order ? 
  #  Arrange your menu commands with the cooresponding number here.
  # Example: MENU_COMMANDS = [0, 1, 2, 3, 12, 14, 11, 10, 13, 100, 15, 4, 5]
MENU_COMMANDS = [0,  1, 12,  2, 11,  10,  3,  16, 5]

  #    ? Menu Items Row Maximum ? 
  #  Designate the amount of command menu items are in use here.
  #   If there are more menu commands than is designated below, the menu command
  #   box effectively becomes a scroll box.
ROW_MAX = 10
  end
end

#=================================================#
# IMPORT    #
#=================================================#

$imported = {} if $imported == nil
$imported["CustomMenuCommand"] = true

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

module KGC::CustomMenuCommand
  # [ExMenu_CustomCommand] definitions
  EXMNU_CTCMD_OK = defined?(EXMNU_CTCMD_COMMANDS)
end

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

#==============================================================================
# ? KGC::Commands
#==============================================================================

module KGC
module Commands
  module_function
  #--------------------------------------------------------------------------
  # ? Call Item Scene
  #--------------------------------------------------------------------------
  def call_item
return if $game_temp.in_battle
$game_temp.next_scene = :menu_item
$game_temp.next_scene_actor_index = 0
$game_temp.menu_command_index = {}
  end
  #--------------------------------------------------------------------------
  # ? Call Skill Scene
  # actor_index : Actor index in the database
  #--------------------------------------------------------------------------
  def call_skill(actor_index = 0)
return if $game_temp.in_battle
$game_temp.next_scene = :menu_skill
$game_temp.next_scene_actor_index = actor_index
$game_temp.menu_command_index = {}
  end
  #--------------------------------------------------------------------------
  # ? Call Equip Scene
  # actor_index : Actor index in the database
  #--------------------------------------------------------------------------
  def call_equip(actor_index = 0)
return if $game_temp.in_battle
$game_temp.next_scene = :menu_equip
$game_temp.next_scene_actor_index = actor_index
$game_temp.menu_command_index = {}
  end
  #--------------------------------------------------------------------------
  # ? Call Status Scene
  # actor_index : Actor index in the database
  #-------------------------------------------------------------------------- 
  def call_status(actor_index = 0)
return if $game_temp.in_battle
$game_temp.next_scene = :menu_status
$game_temp.next_scene_actor_index = actor_index
$game_temp.menu_command_index = {}
  end
end
end

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

class Game_Interpreter
  include KGC::Commands
end

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

#==============================================================================
# ? Game_Temp
#==============================================================================

class Game_Temp
  #--------------------------------------------------------------------------
  # ? Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :menu_command_index    # Menu Command Index
  attr_accessor :next_scene_actor_index   # Next Scene (Actor) Index
  #--------------------------------------------------------------------------
  # ? Initialization
  #--------------------------------------------------------------------------
  alias initialize_KGC_CustomMenuCommand initialize
  def initialize
initialize_KGC_CustomMenuCommand

@menu_command_index = {}
@next_scene_actor_index = 0
  end
end

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

#==============================================================================
# ? Scene_Map
#==============================================================================

class Scene_Map < Scene_Base
  #--------------------------------------------------------------------------
  # ? Update Scene Change
  #--------------------------------------------------------------------------
  alias update_scene_change_KGC_CustomMenuCommand update_scene_change
  def update_scene_change
return if $game_player.moving?  # Return if the player is in motion.

case $game_temp.next_scene
when :menu_item
  call_menu_item
when :menu_skill
  call_menu_skill
when :menu_equip
  call_menu_equip
when :menu_status
  call_menu_status
else
  update_scene_change_KGC_CustomMenuCommand
end
  end
  #--------------------------------------------------------------------------
  # ? Call Item Menu
  #--------------------------------------------------------------------------
  def call_menu_item
$game_temp.next_scene = nil
$scene = Scene_Item.new
  end
  #--------------------------------------------------------------------------
  # ? Call Skill Menu
  #--------------------------------------------------------------------------
  def call_menu_skill
$game_temp.next_scene = nil
$scene = Scene_Skill.new($game_temp.next_scene_actor_index)
$game_temp.next_scene_actor_index = 0
  end
  #--------------------------------------------------------------------------
  # ? Call Equip Menu
  #--------------------------------------------------------------------------
  def call_menu_equip
$game_temp.next_scene = nil
$scene = Scene_Equip.new($game_temp.next_scene_actor_index)
$game_temp.next_scene_actor_index = 0
  end
  #--------------------------------------------------------------------------
  # ? Call Status Scene
  #--------------------------------------------------------------------------
  def call_menu_status
$game_temp.next_scene = nil
$scene = Scene_Status.new($game_temp.next_scene_actor_index)
$game_temp.next_scene_actor_index = 0
  end
end

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

#==============================================================================
# ? Scene_Menu
#==============================================================================

class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # ? Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
commands = create_command_list
@command_window = Window_Command.new(160, commands)
@command_window.height = [@command_window.height,
  KGC::CustomMenuCommand::ROW_MAX * Window_Base::WLH + 32].min
@command_window.index = [@menu_index, commands.size - 1].min
set_command_enabled
  end
  #--------------------------------------------------------------------------
  # ? Create Command List
  #   Defines command list names for command selections.
  #--------------------------------------------------------------------------
  def create_command_list
commands = []
index_list = {}
@exmenu_command_scene = {}
@disabled_command_index = []

KGC::CustomMenuCommand::MENU_COMMANDS.each_with_index { |c, i|
  case c
  when 0 # Item
index_list[:item] = commands.size
commands << Vocab.item
  when 1 # Skill
index_list[:skill] = commands.size
commands << Vocab.skill
  when 2 # Equip
index_list[:equip] = commands.size
commands << Vocab.equip
  when 3 # Status
index_list[:status] = commands.size
commands << Vocab.status
  when 4 # Save
index_list[:save] = commands.size
commands << Vocab.save
  when 5 # Game End
index_list[:game_end] = commands.size
commands << Vocab.game_end
  when 10 # Large Party
next unless $imported["LargeParty"]
index_list[:partyform] = commands.size
@__command_partyform_index = commands.size
commands << Vocab.partyform
  when 11 # AP Viewer
next unless $imported["EquipLearnSkill"]
index_list[:ap_viewer] = commands.size
@__command_ap_viewer_index = commands.size
commands << Vocab.ap_viewer
  when 12 # CP Skill System
next unless $imported["SkillCPSystem"]
index_list[:set_battle_skill] = commands.size
@__command_set_battle_skill_index = commands.size
commands << Vocab.set_battle_skill
  when 13 # Battle Difficulty
next unless $imported["BattleDifficulty"]
index_list[:set_difficulty] = commands.size
@__command_set_difficulty_index = commands.size
commands << KGC::BattleDifficulty.get[:name]
  when 14 # Distribute Parameter
next unless $imported["DistributeParameter"]
index_list[:distribute_parameter] = commands.size
@__command_distribute_parameter_index = commands.size
commands << Vocab.distribute_parameter
  when 15 # Enemy Guide
next unless $imported["EnemyGuide"]
index_list[:enemy_guide] = commands.size
@__command_enemy_guide_index = commands.size
commands << Vocab.enemy_guide
  when 16 # Outline
next unless $imported["Outline"]
index_list[:outline] = commands.size
@__command_outline_index = commands.size
commands << Vocab.outline    
  when 100..199  # ExMenu_CustomCommand
next unless KGC::CustomMenuCommand::EXMNU_CTCMD_OK  # ExMenu Comm enable
excommand = EXMNU_CTCMD_COMMANDS[c - 100]    # ExMenu Comm index
unless command_visible?(excommand) || command_inputable?(excommand)
  next   # Invisible commands
end
index_list[excommand[2]] = commands.size
commands << excommand[2]
@exmenu_command_scene[excommand[2]] = excommand[3]
  end
}
$game_temp.menu_command_index = index_list
return commands
  end
  #--------------------------------------------------------------------------
  # ? Set Command Enabled
  #--------------------------------------------------------------------------
  def set_command_enabled
disable_items = []
# If Party Members = 0, disable buttons.
if $game_party.members.size == 0
  disable_items.push(:item, :skill, :equip, :status, :partyform,
:ap_viewer, :set_battle_skill, :distribute_parameter)
end
# Disable save
if $game_system.save_disabled
  disable_items.push(:save)
end

# Disable partyform
if $imported["LargeParty"] && !$game_party.partyform_enable?
  disable_items.push(:partyform)
end

# [ExMenu_CustomCommand] disablement
if KGC::CustomMenuCommand::EXMNU_CTCMD_OK
  disable_items += get_exmenu_disable_commands
end

# Set up disabled items
disable_items.each { |i|
  if $game_temp.menu_command_index.has_key?(i)
index = $game_temp.menu_command_index[i]
@command_window.draw_item(index, false)
@disabled_command_index << index
  end
}
  end
  #--------------------------------------------------------------------------
  # ? Obtain Disabled [ExMenu_CustomCommand] Commands
  #--------------------------------------------------------------------------
  def get_exmenu_disable_commands
disable_items = []
$game_temp.menu_command_index.each { |k, v|
  next unless k.is_a?(String)
  # Assign commands
  command = EXMNU_CTCMD_COMMANDS.find { |c| c[2] == k }
  next if command == nil
  # Disable commands
  unless command_inputable?(command)
disable_items.push(k)
  end
}
return disable_items
  end
  #--------------------------------------------------------------------------
  # ? Update Command Selection
  #--------------------------------------------------------------------------
  def update_command_selection
if Input.trigger?(Input::B)
  Sound.play_cancel
  $scene = Scene_Map.new
elsif Input.trigger?(Input::C)
  index = @command_window.index
  unless command_enabled?(index)  # Unless Command is enabled, cancel
Sound.play_buzzer
return
  end
  Sound.play_decision

  # [ExMenu_CustomCommand]
  excommand = nil
  if KGC::CustomMenuCommand::EXMNU_CTCMD_OK
excommand = @command_window.commands[index]
  end

  # Set up @command_window.index
  case index
  when $game_temp.menu_command_index[:item]   # Item
$scene = Scene_Item.new
  when $game_temp.menu_command_index[:skill], # Skill, equip, status
  $game_temp.menu_command_index[:equip],
  $game_temp.menu_command_index[:status]
start_actor_selection
  when $game_temp.menu_command_index[:save]   # Save
$scene = Scene_File.new(true, false, false)
  when $game_temp.menu_command_index[:game_end]  # Game End
$scene = Scene_End.new
  when $game_temp.menu_command_index[excommand]  # [ExMenu_CustomCommand]
$game_party.last_menu_index = index
$scene = eval("#{@exmenu_command_scene[excommand]}.new")
  end
end
  end
  #--------------------------------------------------------------------------
  # ? Command Enabled Flag
  # index : command_window index
  #--------------------------------------------------------------------------
  def command_enabled?(index)
# Save
if $game_system.save_disabled &&
index == $game_temp.menu_command_index[:save]
  return false
end

# [ExMenu_CustomCommand]
if KGC::CustomMenuCommand::EXMNU_CTCMD_OK
  command = @command_window.commands[index]
  if @disabled_command_index.include?($game_temp.menu_command_index[command])
return false
  end
end

# Disable commands if party size = 0
if $game_party.members.size == 0 &&
@disabled_command_index.include?(index)
  return false
end

return true
  end
  #--------------------------------------------------------------------------
  # ? Update Actor Selection
  #--------------------------------------------------------------------------
  def update_actor_selection
if Input.trigger?(Input::B)
  Sound.play_cancel
  end_actor_selection
elsif Input.trigger?(Input::C)
  $game_party.last_actor_index = @status_window.index
  Sound.play_decision

  case @command_window.index
  when $game_temp.menu_command_index[:skill]   # Skill
$scene = Scene_Skill.new(@status_window.index)
  when $game_temp.menu_command_index[:equip]   # Equip
$scene = Scene_Equip.new(@status_window.index)
  when $game_temp.menu_command_index[:status]  # Status
$scene = Scene_Status.new(@status_window.index)
  end
end
  end
end

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

#==============================================================================
# ? Scene_Item
#==============================================================================

class Scene_Item < Scene_Base
  #--------------------------------------------------------------------------
  # ? Return Scene
  #--------------------------------------------------------------------------
  def return_scene
if $game_temp.menu_command_index.has_key?(:item)
  $scene = Scene_Menu.new($game_temp.menu_command_index[:item])
else
  $scene = Scene_Map.new
end
  end
end

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

#==============================================================================
# ? Scene_Skill
#==============================================================================

class Scene_Skill < Scene_Base
  #--------------------------------------------------------------------------
  # ? Return Scene
  #--------------------------------------------------------------------------
  def return_scene
if $game_temp.menu_command_index.has_key?(:skill)
  $scene = Scene_Menu.new($game_temp.menu_command_index[:skill])
else
  $scene = Scene_Map.new
end
  end
end

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

#==============================================================================
# ? Scene_Equip
#==============================================================================

class Scene_Equip < Scene_Base
  #--------------------------------------------------------------------------
  # ? Return Scene
  #--------------------------------------------------------------------------
  def return_scene
if $game_temp.menu_command_index.has_key?(:equip)
  $scene = Scene_Menu.new($game_temp.menu_command_index[:equip])
else
  $scene = Scene_Map.new
end
  end
end

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

#==============================================================================
# ? Scene_Status
#==============================================================================

class Scene_Status < Scene_Base
  #--------------------------------------------------------------------------
  # ? Return Scene
  #--------------------------------------------------------------------------
  def return_scene
if $game_temp.menu_command_index.has_key?(:status)
  $scene = Scene_Menu.new($game_temp.menu_command_index[:status])
else
  $scene = Scene_Map.new
end
  end
end

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

#==============================================================================
# ? Scene_File
#==============================================================================

class Scene_File < Scene_Base
  #--------------------------------------------------------------------------
  # ? Return Scene
  #--------------------------------------------------------------------------
  alias return_scene_KGC_CustomMenuCommand return_scene
  def return_scene
if @from_title || @from_event
  return_scene_KGC_CustomMenuCommand
elsif $game_temp.menu_command_index.has_key?(:save)
  $scene = Scene_Menu.new($game_temp.menu_command_index[:save])
else
  $scene = Scene_Map.new
end
  end
end

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

#==============================================================================
# ? Scene_End
#==============================================================================

class Scene_End < Scene_Base
  #--------------------------------------------------------------------------
  # ? Return Scene
  #--------------------------------------------------------------------------
  def return_scene
if $game_temp.menu_command_index.has_key?(:game_end)
  $scene = Scene_Menu.new($game_temp.menu_command_index[:game_end])
else
  $scene = Scene_Map.new
end
  end
end
Thank you in advance for the help.
Courage is the magic that turns dreams into reality.

My Blogsite