RPG Maker Forums

I have a problem with four things in the modified version of Yanfly's System Options and the add-on for Custom Data add-on, Persistent Data:

1. I have modified areas where the script loads data from a separate file, Auto-Dash, Instant Text and Show Animations do not change at all. It does save the settings though.

2. OK, I don't understand how it saves the changes for BGM, BGS and SFX. I've splitted the volume settings into variables volume_bgm, volume_bgs and volume_sfx, but I can't find the change and load settings sections.

3. I tried to add a master volume (as shown on this tutorial: but it always crashes when the master_volume setting is present. Did I made something wrong? (I have removed it from that due to the crash)

4. Persistent Data crashes the game with error on line 56 unexpected "|", expecting "}" ...persistent_switches.each.do {|keyvalue|$game_switches[key...  (That's the actual error). I only want to store switches, and crashes regardless if I added variables or not.

Link to the Persistent Data script: http://pastebin.com/raw.php?i=bgYvz71j

Custom Data script: http://forums.rpgmakerweb.com/index.php?/topic/20304-game-custom-data-v120/?p=193656

My modified version of the script (call it with command_sysops via script):

Code:
#==============================================================================# # ▼ Yanfly Engine Ace - System Options v1.00# -- Last Updated: 2012.01.01# -- Level: Normal# -- Requires: n/a# #==============================================================================$imported = {} if $imported.nil?$imported["YEA-SystemOptions] = true#==============================================================================# ▼ Updates# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# 2012.01.01 - Started Script and Finished.# #==============================================================================# ▼ Introduction# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# This script replaces the "Game End" option in the Main Menu with a "System"# menu where the player can adjust various settings in the game. Of them, the# player can change the window colour, the volume for BGM, BGS, SFX, set# automatic dashing, message text to display instantly, and speed up battles by# hiding battle animations.# #==============================================================================# ▼ Instructions# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# To install this script, open up your script editor and copy/paste this script# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.# # -----------------------------------------------------------------------------# Script Calls - These commands are used with script calls.# -----------------------------------------------------------------------------# $game_system.volume_change(:bgm, x)# $game_system.volume_change(:bgs, x)# $game_system.volume_change(:sfx, x)# Unlike the previous Yanfly Engines, this version does not bind volume to a# variable. Use the script call to change the bgm, bgs, or sfx sound rate by# x increment. Use a negative value to lower the volume.# # $game_system.set_autodash(true)# $game_system.set_autodash(false)# Turns autodash on (true) or off (false).# # $game_system.set_instantmsg(true)# $game_system.set_instantmsg(false)# Turns instant messages on (true) or off (false).# # $game_system.set_animations(true)# $game_system.set_animations(false)# Turns battle animations on (true) or off (false).# #==============================================================================# ▼ Compatibility# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that# it will run with RPG Maker VX without adjusting.# #==============================================================================module YEA  module SYSTEM        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # - General Setting -    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # These are the general settings that govern the System settings. This will    # change the "Game End" vocab, and disable or enable autodash, instant    # messages, or animations by default.    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    COMMAND_NAME = "Options"      # Command name used to replace Game End.    DEFAULT_AUTODASH   = false   # Enable automatic dashing by default?    DEFAULT_INSTANTMSG = false   # Enable instant message text by default?    DEFAULT_ANIMATIONS = true    # Enable battle animations by default?        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # - Command Settings -    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # These settings adjust the commands shown in the command list. Add, remove    # or rearrange the commands as you see fit. Here's a list of which commands    # do what:    #     # -------------------------------------------------------------------------    # :command         Description    # -------------------------------------------------------------------------    # :blank           Inserts an empty blank space.    #     # :window_red      Changes the red tone for all windows.    # :window_grn      Changes the green tone for all windows.    # :window_blu      Changes the blue tone for all windows.    #     # :volume_bgm      Changes the BGM volume used.    # :volume_bgs      Changes the BGS volume used.    # :volume_sfx      Changes the SFX volume used.    #     # :autodash        Sets the player to automatically dash.    # :instantmsg      Sets message text to appear instantly.    # :animations      Enables battle animations or disables them.    #     # :to_title        Returns to the title screen.    # :shutdown        Shuts down the game.    #     #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    COMMANDS =[      #:window_red,   # Changes the red tone for all windows.      #:window_grn,   # Changes the green tone for all windows.      #:window_blu,   # Changes the blue tone for all windows.      :volume_bgm,   # Changes the BGM volume used.      :volume_bgs,   # Changes the BGS volume used.      :volume_sfx,   # Changes the SFX volume used.      :blank,      :autodash,     # Sets the player to automatically dash.      :instantmsg,   # Sets message text to appear instantly.      :animations,   # Enables battle animations or disables them.      :switch_1,     # Custom Switch 1. Adjust settings below.      :switch_2,     # Custom Switch 2. Adjust settings below.    # :variable_1,   # Custom Variable 1. Adjust settings below.    # :variable_2,   # Custom Variable 2. Adjust settings below.    # :blank,    # :to_title,     # Returns to the title screen.    # :shutdown,     # Shuts down the game.    ] # Do not remove this.        #--------------------------------------------------------------------------    # - Custom Switches -    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -    # If you want your game to have system options other than just the ones    # listed above, you can insert custom switches here to produce such an    # effect. Adjust the settings here as you see fit.    #--------------------------------------------------------------------------    CUSTOM_SWITCHES ={    # -------------------------------------------------------------------------    # :switch    => [Switch, Name, Off Text, On Text,     #                Help Window Description    #               ], # Do not remove this.    # -------------------------------------------------------------------------      :switch_1  => [ 97, "Region Effects", "ON", "OFF",      "Enables or disables effects triggered in some areas (eg. Bridges)." +      "May provide some performance boost when disabled."                    ],    # -------------------------------------------------------------------------      :switch_2  => [ 98, "Battle Mode", "APR ATB", "Classic ATB",              "Turns on or off Active Defence and Active Attack in battles."+              "Turning this off may make the game more difficult."                    ],    # -------------------------------------------------------------------------    } # Do not remove this.        #--------------------------------------------------------------------------    # - Custom Variables -    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -    # If you want your game to have system options other than just the ones    # listed above, you can insert custom variables here to produce such an    # effect. Adjust the settings here as you see fit.    #--------------------------------------------------------------------------    CUSTOM_VARIABLES ={    # -------------------------------------------------------------------------    # :variable   => [Switch, Name, Colour1, Colour2, Min, Max,    #                 Help Window Description    #                ], # Do not remove this.    # -------------------------------------------------------------------------      :variable_1 => [ 1, "Custom Variable 1", 9, 1, -100, 100,                      "Help description used for custom variable 1."                     ],    # -------------------------------------------------------------------------      :variable_2 => [ 2, "Custom Variable 2", 10, 2, -10, 10,                      "Help description used for custom variable 2."                     ],    # -------------------------------------------------------------------------    } # Do not remove this.        #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # - Vocab Settings -    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    # This hash adjusts the vocab used for both the commands and the help    # description that appears above the command window. Note that for the    # command help descriptions, you may use text codes. Use \n to linebreak.    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-    COMMAND_VOCAB ={    # -------------------------------------------------------------------------    # :command    => [Command Name, Option1, Option2    #                 Help Window Description,    #                ], # Do not remove this.    # -------------------------------------------------------------------------      :blank      => ["", "None", "None",                      ""                     ], # Do not remove this.    # -------------------------------------------------------------------------      :window_red => ["Window Red", "None", "None",                      "Change the red colour tone for windows.\n" +                      "Hold SHIFT to change increment by 10."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :window_grn => ["Window Green", "None", "None",                      "Change the green colour tone for windows.\n" +                      "Hold SHIFT to change increment by 10."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :window_blu => ["Window Blue", "None", "None",                      "Change the blue colour tone for windows.\n" +                      "Hold SHIFT to change increment by 10."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :volume_bgm => ["BGM Volume", 12, 4, # Options 1 & 2 are Gauge Colours.                      "Change the volume used for background music.\n" +                      "Hold SHIFT to change increment by 10."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :volume_bgs => ["BGS Volume", 13, 5, # Options 1 & 2 are Gauge Colours.                      "Change the volume used for background sound.\n" +                      "Hold SHIFT to change increment by 10."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :volume_sfx => ["SFX Volume", 14, 6, # Options 1 & 2 are Gauge Colours.                      "Change the volume used for sound effects.\n" +                      "Hold SHIFT to change increment by 10."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :autodash   => ["Auto-Dash", "Walk", "Dash",                      "Automatically dash without holding the run button."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :instantmsg => ["Instant Text", "Normal", "Instant",                      "Set message text to appear one-by-one or instantly."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :animations => ["Battle Animations", "Hide", "Show",                      "Hide animations during battle to speed up battles?"                     ], # Do not remove this.    # -------------------------------------------------------------------------      :to_title   => ["Return to Title Screen", "None", "None",                      "Go back to the title screen."                     ], # Do not remove this.    # -------------------------------------------------------------------------      :shutdown   => ["Shutdown Game", "None", "None",                      "Turns off the game."                     ], # Do not remove this.    # -------------------------------------------------------------------------    } # Do not remove this.      end # SYSTEMend # YEA#==============================================================================# ▼ Editting anything past this point may potentially result in causing# computer damage, incontinence, explosion of user's head, coma, death, and/or# halitosis so edit at your own risk.#==============================================================================#==============================================================================# ■ RPG::BGM#==============================================================================class RPG::BGM < RPG::AudioFile    #--------------------------------------------------------------------------  # overwrite method: play  #--------------------------------------------------------------------------  def play(pos = 0)    if @name.empty?      Audio.bgm_stop      @@last = RPG::BGM.new    else      volume = @volume      volume *= $game_system.volume(:bgm) * 0.01 unless $game_system.nil?      Audio.bgm_play('Audio/BGM/' + @name, volume, @pitch, pos)      @@last = self.clone    end  end  end # RPG::BGM#==============================================================================# ■ RPG::ME#==============================================================================class RPG::ME < RPG::AudioFile    #--------------------------------------------------------------------------  # overwrite method: play  #--------------------------------------------------------------------------  def play    if @name.empty?      Audio.me_stop    else      volume = @volume      volume *= $game_system.volume(:bgm) * 0.01 unless $game_system.nil?      Audio.me_play('Audio/ME/' + @name, volume, @pitch)    end  end  end # RPG::ME#==============================================================================# ■ RPG::BGS#==============================================================================class RPG::BGS < RPG::AudioFile    #--------------------------------------------------------------------------  # overwrite method: play  #--------------------------------------------------------------------------  def play(pos = 0)    if @name.empty?      Audio.bgs_stop      @@last = RPG::BGS.new    else      volume = @volume      volume *= $game_system.volume(:bgs) * 0.01 unless $game_system.nil?      Audio.bgs_play('Audio/BGS/' + @name, volume, @pitch, pos)      @@last = self.clone    end  end  end # RPG::BGS#==============================================================================# ■ RPG::SE#==============================================================================class RPG::SE < RPG::AudioFile    #--------------------------------------------------------------------------  # overwrite method: play  #--------------------------------------------------------------------------  def play    unless @name.empty?      volume = @volume      volume *= $game_system.volume(:sfx) * 0.01 unless $game_system.nil?      Audio.se_play('Audio/SE/' + @name, volume, @pitch)    end  end  end # RPG::SE#==============================================================================# ■ Game_System#==============================================================================class Game_System    #--------------------------------------------------------------------------  # alias method: initialize  #--------------------------------------------------------------------------  alias game_system_initialize_so initialize  def initialize    game_system_initialize_so    init_volume_control    init_autodash    init_instantmsg    init_animations  end    #--------------------------------------------------------------------------  # new method: init_volume_control  #--------------------------------------------------------------------------  def init_volume_control    @volume = {}    @volume[:bgm] = 100    @volume[:bgs] = 100    @volume[:sfx] = 100  end    #--------------------------------------------------------------------------  # new method: volume  #--------------------------------------------------------------------------  def volume(type)    init_volume_control if @volume.nil?    return [[@volume[type], 0].max, 100].min  end    #--------------------------------------------------------------------------  # new method: volume_change  #--------------------------------------------------------------------------  def volume_change(type, increment)    init_volume_control if @volume.nil?    @volume[type] += increment    @volume[type] = [[@volume[type], 0].max, 100].min    #CustomData.set([type], @volume)  end    #--------------------------------------------------------------------------  # new method: init_autodash  #--------------------------------------------------------------------------  def init_autodash    @autodash = YEA::SYSTEM::DEFAULT_AUTODASH    CustomData.get(@autodash)  end    #--------------------------------------------------------------------------  # new method: autodash?  #--------------------------------------------------------------------------  def autodash?    init_autodash if CustomData.get("AutoDash") == nil    return CustomData.get("AutoDash")  end    #--------------------------------------------------------------------------  # new method: set_autodash  #--------------------------------------------------------------------------  def set_autodash(value)    @autodash = value  end    #--------------------------------------------------------------------------  # new method: init_instantmsg  #--------------------------------------------------------------------------  def init_instantmsg    CustomData.set("InstantMsg", false)  end    #--------------------------------------------------------------------------  # new method: instantmsg?  #--------------------------------------------------------------------------  def instantmsg?    init_instantmsg if CustomData.get("InstantMsg") == nil    return CustomData.get("InstantMsg")  end    #--------------------------------------------------------------------------  # new method: set_instantmsg  #--------------------------------------------------------------------------  def set_instantmsg(value)    @instantmsg = value  end    #--------------------------------------------------------------------------  # new method: init_animations  #--------------------------------------------------------------------------  def init_animations    @animations = YEA::SYSTEM::DEFAULT_ANIMATIONS    CustomData.set("ShowAni", @animations)  end    #--------------------------------------------------------------------------  # new method: animations?  #--------------------------------------------------------------------------  def animations?    init_animations if CustomData.get("ShowAni") == nil    return CustomData.get("ShowAni")  end    #--------------------------------------------------------------------------  # new method: set_animations  #--------------------------------------------------------------------------  def set_animations(value)    @animations = value  end  end # Game_System#==============================================================================# ■ Game_Player#==============================================================================class Game_Player < Game_Character    #--------------------------------------------------------------------------  # alias method: dash?  #--------------------------------------------------------------------------  alias game_player_dash_so dash?  def dash?    if $game_system.autodash?      return false if @move_route_forcing      return false if $game_map.disable_dash?      return false if vehicle      return !Input.press?(:A)    else      return game_player_dash_so    end  end  end # Game_Player#==============================================================================# ■ Scene_Battle#==============================================================================class Scene_Battle < Scene_Base    #--------------------------------------------------------------------------  # alias method: show_fast?  #--------------------------------------------------------------------------  alias scene_battle_show_fast_so show_fast?  def show_fast?    return true unless $game_system.animations?    return scene_battle_show_fast_so  end    #--------------------------------------------------------------------------  # alias method: show_normal_animation  #--------------------------------------------------------------------------  alias scene_battle_show_normal_animation_so show_normal_animation  def show_normal_animation(targets, animation_id, mirror = false)    return unless $game_system.animations?    scene_battle_show_normal_animation_so(targets, animation_id, mirror)  end  end # Scene_Battle#==============================================================================# ■ Window_Message#==============================================================================class Window_Message < Window_Base    #--------------------------------------------------------------------------  # alias method: clear_flags  #--------------------------------------------------------------------------  alias window_message_clear_flags_so clear_flags  def clear_flags    window_message_clear_flags_so    @show_fast = true if $game_system.instantmsg?  end  end # Window_Message#==============================================================================# ■ Window_SystemOptions#==============================================================================class Window_SystemOptions < Window_Command    #--------------------------------------------------------------------------  # initialize  #--------------------------------------------------------------------------  def initialize(help_window)    @help_window = help_window    super(0, @help_window.height)    refresh  end    #--------------------------------------------------------------------------  # window_width  #--------------------------------------------------------------------------  def window_width; return Graphics.width; end    #--------------------------------------------------------------------------  # window_height  #--------------------------------------------------------------------------  def window_height; return Graphics.height - @help_window.height; end    #--------------------------------------------------------------------------  # update_help  #--------------------------------------------------------------------------  def update_help    if current_symbol == :custom_switch || current_symbol == :custom_variable      text = @help_descriptions[current_ext]    else      text = @help_descriptions[current_symbol]    end    text = "" if text.nil?    @help_window.set_text(text)  end    #--------------------------------------------------------------------------  # ok_enabled?  #--------------------------------------------------------------------------  def ok_enabled?    return true if [:to_title, :shutdown].include?(current_symbol)    return false  end    #--------------------------------------------------------------------------  # make_command_list  #--------------------------------------------------------------------------  def make_command_list    @help_descriptions = {}    for command in YEA::SYSTEM::COMMANDS      case command      when :blank        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]      when :window_red, :window_grn, :window_blu        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]      when :volume_bgm, :volume_bgs, :volume_sfx        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]      when :autodash, :instantmsg, :animations        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]      when :to_title, :shutdown        add_command(YEA::SYSTEM::COMMAND_VOCAB[command][0], command)        @help_descriptions[command] = YEA::SYSTEM::COMMAND_VOCAB[command][3]      else        process_custom_switch(command)        process_custom_variable(command)      end    end  end    #--------------------------------------------------------------------------  # process_custom_switch  #--------------------------------------------------------------------------  def process_custom_switch(command)    return unless YEA::SYSTEM::CUSTOM_SWITCHES.include?(command)    name = YEA::SYSTEM::CUSTOM_SWITCHES[command][1]    add_command(name, :custom_switch, true, command)    @help_descriptions[command] = YEA::SYSTEM::CUSTOM_SWITCHES[command][4]  end    #--------------------------------------------------------------------------  # process_custom_variable  #--------------------------------------------------------------------------  def process_custom_variable(command)    return unless YEA::SYSTEM::CUSTOM_VARIABLES.include?(command)    name = YEA::SYSTEM::CUSTOM_VARIABLES[command][1]    add_command(name, :custom_variable, true, command)    @help_descriptions[command] = YEA::SYSTEM::CUSTOM_VARIABLES[command][6]  end    #--------------------------------------------------------------------------  # draw_item  #--------------------------------------------------------------------------  def draw_item(index)    reset_font_settings    rect = item_rect(index)    contents.clear_rect(rect)    case @list[index][:symbol]    when :window_red, :window_grn, :window_blu      draw_window_tone(rect, index, @list[index][:symbol])    when :volume_bgm, :volume_bgs, :volume_sfx      draw_volume(rect, index, @list[index][:symbol])    when :autodash, :instantmsg, :animations      draw_toggle(rect, index, @list[index][:symbol])    when :to_title, :shutdown      draw_text(item_rect_for_text(index), command_name(index), 1)    when :custom_switch      draw_custom_switch(rect, index, @list[index][:ext])    when :custom_variable      draw_custom_variable(rect, index, @list[index][:ext])    end  end    #--------------------------------------------------------------------------  # draw_window_tone  #--------------------------------------------------------------------------  def draw_window_tone(rect, index, symbol)    name = @list[index][:name]    draw_text(0, rect.y, contents.width/2, line_height, name, 1)    #---    dx = contents.width / 2    tone = $game_system.window_tone    case symbol    when :window_red      rate = (tone.red + 255.0) / 510.0      colour1 = Color.new(128, 0, 0)      colour2 = Color.new(255, 0, 0)      value = tone.red.to_i    when :window_grn      rate = (tone.green + 255.0) / 510.0      colour1 = Color.new(0, 128, 0)      colour2 = Color.new(0, 255, 0)      value = tone.green.to_i    when :window_blu      rate = (tone.blue + 255.0) / 510.0      colour1 = Color.new(0, 0, 128)      colour2 = Color.new(0, 0, 255)      value = tone.blue.to_i    end    draw_gauge(dx, rect.y, contents.width - dx - 48, rate, colour1, colour2)    draw_text(dx, rect.y, contents.width - dx - 48, line_height, value, 2)  end    #--------------------------------------------------------------------------  # draw_volume  #--------------------------------------------------------------------------  def draw_volume(rect, index, symbol)    name = @list[index][:name]    draw_text(0, rect.y, contents.width/2, line_height, name, 1)    #---    dx = contents.width / 2    case symbol    when :volume_bgm      rate = $game_system.volume(:bgm)    when :volume_bgs      rate = $game_system.volume(:bgs)    when :volume_sfx      rate = $game_system.volume(:sfx)    end    colour1 = text_color(YEA::SYSTEM::COMMAND_VOCAB[symbol][1])    colour2 = text_color(YEA::SYSTEM::COMMAND_VOCAB[symbol][2])    value = sprintf("%d%%", rate)    rate *= 0.01    draw_gauge(dx, rect.y, contents.width - dx - 48, rate, colour1, colour2)    draw_text(dx, rect.y, contents.width - dx - 48, line_height, value, 2)  end    #--------------------------------------------------------------------------  # draw_toggle  #--------------------------------------------------------------------------  def draw_toggle(rect, index, symbol)    name = @list[index][:name]    draw_text(0, rect.y, contents.width/2, line_height, name, 1)    #---    dx = contents.width / 2    case symbol    when :autodash      enabled = $game_system.autodash?    when :instantmsg      enabled = $game_system.instantmsg?    when :animations      enabled = $game_system.animations?    end    dx = contents.width/2    change_color(normal_color, !enabled)    option1 = YEA::SYSTEM::COMMAND_VOCAB[symbol][1]    draw_text(dx, rect.y, contents.width/4, line_height, option1, 1)    dx += contents.width/4    change_color(normal_color, enabled)    option2 = YEA::SYSTEM::COMMAND_VOCAB[symbol][2]    draw_text(dx, rect.y, contents.width/4, line_height, option2, 1)  end    #--------------------------------------------------------------------------  # cursor_right  #--------------------------------------------------------------------------  def draw_custom_switch(rect, index, ext)    name = @list[index][:name]    draw_text(0, rect.y, contents.width/2, line_height, name, 1)    #---    dx = contents.width / 2    enabled = $game_switches[YEA::SYSTEM::CUSTOM_SWITCHES[ext][0]]    dx = contents.width/2    change_color(normal_color, !enabled)    option1 = YEA::SYSTEM::CUSTOM_SWITCHES[ext][2]    draw_text(dx, rect.y, contents.width/4, line_height, option1, 1)    dx += contents.width/4    change_color(normal_color, enabled)    option2 = YEA::SYSTEM::CUSTOM_SWITCHES[ext][3]    draw_text(dx, rect.y, contents.width/4, line_height, option2, 1)  end    #--------------------------------------------------------------------------  # draw_custom_variable  #--------------------------------------------------------------------------  def draw_custom_variable(rect, index, ext)    name = @list[index][:name]    draw_text(0, rect.y, contents.width/2, line_height, name, 1)    #---    dx = contents.width / 2    value = $game_variables[YEA::SYSTEM::CUSTOM_VARIABLES[ext][0]]    colour1 = text_color(YEA::SYSTEM::CUSTOM_VARIABLES[ext][2])    colour2 = text_color(YEA::SYSTEM::CUSTOM_VARIABLES[ext][3])    minimum = YEA::SYSTEM::CUSTOM_VARIABLES[ext][4]    maximum = YEA::SYSTEM::CUSTOM_VARIABLES[ext][5]    rate = (value - minimum).to_f / [(maximum - minimum).to_f, 0.01].max    dx = contents.width/2    draw_gauge(dx, rect.y, contents.width - dx - 48, rate, colour1, colour2)    draw_text(dx, rect.y, contents.width - dx - 48, line_height, value, 2)  end    #--------------------------------------------------------------------------  # cursor_right  #--------------------------------------------------------------------------  def cursor_right(wrap = false)    cursor_change(:right)    super(wrap)  end    #--------------------------------------------------------------------------  # cursor_left  #--------------------------------------------------------------------------  def cursor_left(wrap = false)    cursor_change(:left)    super(wrap)  end    #--------------------------------------------------------------------------  # cursor_change  #--------------------------------------------------------------------------  def cursor_change(direction)    case current_symbol    when :window_red, :window_blu, :window_grn      change_window_tone(direction)    when :volume_bgm, :volume_bgs, :volume_sfx      change_volume(direction)    when :autodash, :instantmsg, :animations      change_toggle(direction)    when :custom_switch      change_custom_switch(direction)    when :custom_variable      change_custom_variables(direction)    end  end    #--------------------------------------------------------------------------  # change_window_tone  #--------------------------------------------------------------------------  def change_window_tone(direction)    Sound.play_cursor    value = direction == :left ? -1 : 1    value *= 10 if Input.press?(:A)    tone = $game_system.window_tone.clone    case current_symbol    when :window_red; tone.red += value    when :window_grn; tone.green += value    when :window_blu; tone.blue += value    end    $game_system.window_tone = tone    draw_item(index)  end    #--------------------------------------------------------------------------  # change_volume  #--------------------------------------------------------------------------  def change_volume(direction)    Sound.play_cursor    value = direction == :left ? -1 : 1    value *= 10 if Input.press?(:A)    case current_symbol    when :volume_bgm      $game_system.volume_change(:bgm, value)      CustomData.set("BGMVol", value)      RPG::BGM::last.play    when :volume_bgs      $game_system.volume_change(:bgs, value)      CustomDate.set("BGSVol", value)      RPG::BGS::last.play    when :volume_sfx      $game_system.volume_change(:sfx, value)      CustomData.set("SFXVol", value)    end    draw_item(index)  end    #--------------------------------------------------------------------------  # change_toggle  #--------------------------------------------------------------------------  def change_toggle(direction)    value = direction == :left ? false : true    case current_symbol    when :autodash      current_case = $game_system.autodash?      $game_system.set_autodash(value)      CustomData.set("AutoDash", $game_system.autodash?)    when :instantmsg      current_case = $game_system.instantmsg?      $game_system.set_instantmsg(value)      CustomData.set("InstantMsg", $game_system.instantmsg?)    when :animations      current_case = $game_system.animations?      $game_system.set_animations(value)      CustomData.set("ShowAni", $game_system.animations?)    end    Sound.play_cursor if value != current_case    draw_item(index)  end    #--------------------------------------------------------------------------  # change_custom_switch  #--------------------------------------------------------------------------  def change_custom_switch(direction)    value = direction == :left ? false : true    ext = current_ext    current_case = $game_switches[YEA::SYSTEM::CUSTOM_SWITCHES[ext][0]]    $game_switches[YEA::SYSTEM::CUSTOM_SWITCHES[ext][0]] = value    Sound.play_cursor if value != current_case    draw_item(index)  end    #--------------------------------------------------------------------------  # change_custom_variables  #--------------------------------------------------------------------------  def change_custom_variables(direction)    Sound.play_cursor    value = direction == :left ? -1 : 1    value *= 10 if Input.press?(:A)    ext = current_ext    var = YEA::SYSTEM::CUSTOM_VARIABLES[ext][0]    minimum = YEA::SYSTEM::CUSTOM_VARIABLES[ext][4]    maximum = YEA::SYSTEM::CUSTOM_VARIABLES[ext][5]    $game_variables[var] += value    $game_variables[var] = [[$game_variables[var], minimum].max, maximum].min    draw_item(index)  end  end # Window_SystemOptions#==============================================================================# ■ Scene_Menu#==============================================================================class Scene_Menu < Scene_MenuBase    #--------------------------------------------------------------------------  # overwrite method: command_game_end  #--------------------------------------------------------------------------  def command_sysops    SceneManager.call(Scene_System)  end  end # Scene_Menu#==============================================================================# ■ Scene_System#==============================================================================class Scene_System < Scene_MenuBase    #--------------------------------------------------------------------------  # start  #--------------------------------------------------------------------------  def start    super    create_help_window    create_command_window  end    #--------------------------------------------------------------------------  # create_command_window  #--------------------------------------------------------------------------  def create_command_window    @command_window = Window_SystemOptions.new(@help_window)    @command_window.set_handler(:cancel, method(:return_scene))    @command_window.set_handler(:to_title, method(:command_to_title))    @command_window.set_handler(:shutdown, method(:command_shutdown))  end    #--------------------------------------------------------------------------  # command_to_title  #--------------------------------------------------------------------------  def command_to_title    fadeout_all    SceneManager.goto(Scene_Title)  end    #--------------------------------------------------------------------------  # command_shutdown  #--------------------------------------------------------------------------  def command_shutdown    fadeout_all    SceneManager.exit  end  end # Scene_System#==============================================================================# # ▼ End of File# #==============================================================================

Latest Threads

Latest Profile Posts

Our latest feature is an interview with... me?!

People4_2 (Capelet off and on) added!

Just beat the last of us 2 last night and starting jedi: fallen order right now, both use unreal engine & when I say i knew 80% of jedi's buttons right away because they were the same buttons as TLOU2 its ridiculous, even the same narrow hallway crawl and barely-made-it jump they do. Unreal Engine is just big budget RPG Maker the way they make games nearly identical at its core lol.
Can someone recommend some fun story-heavy RPGs to me? Coming up with good gameplay is a nightmare! I was thinking of making some gameplay platforming-based, but that doesn't work well in RPG form*. I also was thinking of removing battles, but that would be too much like OneShot. I don't even know how to make good puzzles!
one bad plugin combo later and one of my followers is moonwalking off the screen on his own... I didn't even more yet on the new map lol.

Forum statistics

Threads
106,034
Messages
1,018,447
Members
137,820
Latest member
georg09byron
Top