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.

Changing map tone

Hey,
I'm creating a CMS, and I'd like to set a tone on the map when I open the CMS, like I would with an event. And then, when I exit the menu, I'd like to fade back to the previous, stored, map tone.
How do I do this via script?

In the CMS, the back is set as Spriteset_Map
If you need any other info, just ask.

Thanks in advance
-abreaction
 
I guess the easiest way would be to do something like this:
Code:
class Scene_Menu

  Menu_Tone = Tone.new(r, g, b, gray)

  Duration = 20

  alais_method :seph_screentonechange_main, :main

  def main

    @map_tone = $game_screen.tone.dup

    $game_screen.start_tone_change(Menu_Tone, Duration)

    seph_screentonechange_main

    $game_screen.start_tone_change(@map_tone, Duration)

  end

end

Just make sure $game_screen.update is also being called from your update method.
 
I'm not sure if it has anything to do with this, but now, whenever I open my menu, the default menu shows up. I can see my menu is behind it, because when it fades out to exit to the map, you can sort of see it.
I'm not sure what it is, but I tested this out in a new project, and I had the same problem.

Here's the script:
Code:
class Scene_Menu

  def create_background

    @back = Spriteset_Map.new

  end

  Menu_Tone = Tone.new(40, 3, -10, 60)

  Duration = 20

  alias_method :seph_screentonechange_main, :main

  def main

    @map_tone = $game_screen.tone.dup

    $game_screen.start_tone_change(Menu_Tone, Duration)

    seph_screentonechange_main

    $game_screen.start_tone_change(@map_tone, Duration)

    create_background

    s1 = 'Inventory'

    s2 = 'Skills'

    s3 = 'Equipment'

    s4 = 'Status'

    s5 = 'Save'

    s6 = 'End Game'

    @command_window = Window_Command_WcW.new(0, 0, 160, [['Item', s1], ['I_BookSmall', s2], ['Sword', s3], ['I_ScrollSmall', s4], ['I_FeatherSmall', s5], ['Escape', s6]])

    @command_window.back_opacity = 125

    if $game_system.save_disabled

      @command_window.disable_item(4)

    end

    @gold_window = Window_Gold.new

    @gold_window.x = 0

    @gold_window.y = 320

    @playtime_window = Window_PlayTime.new

    @playtime_window.y = 224

    @playtime_window.x = 0

    @status_window = Window_MenuStatus.new

    @status_window.x = 160

    @status_window.y = 0

    

    @command_window.back_opacity, @playtime_window.back_opacity, @gold_window.back_opacity, @status_window.back_opacity = 125, 125, 125, 125, 125

    Graphics.transition(10)

 

    loop do

      Graphics.update

      Input.update

      update

          $game_screen.update

      if $scene != self

        break

      end

    end

 

    @command_window.dispose

    @gold_window.dispose

    @playtime_window.dispose

    @back.dispose if @back != nil

    @status_window.dispose

    Graphics.transition(10)

  end

    def start_tone_change(tone, duration)

    @tone_target = tone.clone

    @tone_duration = duration

    if @tone_duration == 0

      @tone = @tone_target.clone

    end

  end

end

class Game_Party

  def add_actor(actor_id)

    actor = $game_actors[actor_id]

    if @actors.size < 4 and not @actors.include?(actor)

      @actors.push(actor)

      $game_player.refresh

    end

  end

end

#----------------------------------------------------------------------------

# * Window Command (WcW)

#     Displays options w/ icons. Feel free to use this in your own script.

#----------------------------------------------------------------------------

class Window_Command_WcW < Window_Selectable

  #--------------------------------------------------------------------------

  # * Initialize

  #--------------------------------------------------------------------------

  def initialize(x, y, width, commands)

    # Calls original initialize method

    super(x, y, width, commands.size * 32 + 32)

    # Sets maximum items and commands variables

    @item_max = commands.size

    @commands = commands

    # Initializes the @disabled array, which is used for drawing disabled items

    @disabled = []; @commands.size.times { @disabled.push false }

    # Creates a new bitmap for the contents

    self.contents = Bitmap.new(width-32, commands.size * 32)

    # Sets the index to 0

    self.index = 0

    # Draws contents

    refresh

  end

  #--------------------------------------------------------------------------

  # * Refreshes Contents

  #--------------------------------------------------------------------------

  def refresh

    # Clears bitmap

    self.contents.clear

    # For each command in the @commands array....

    @commands.size.times {|i|

      # Get the icon from RPG::Cache

      self.contents.blt(4, 32 * i + 4, RPG::Cache.icon(@commands[i][0]),

          Rect.new(0, 0, 24, 24))

      # If the disabled array has this down for this disabled, draw it as

      # disabled, if not, draw it normal

      self.contents.font.color = @disabled[i] ? disabled_color : normal_color

      # Draw the command

      self.contents.draw_text(34, 32 * i, self.contents.width - 34, 32,

          @commands[i][1], 0)

    }

  end

  #--------------------------------------------------------------------------

  # * Disable Items

  #--------------------------------------------------------------------------

  def disable_items(*indexes)

    # For each index in the given argument array,

    indexes.each {|index|

      # Set that index to disabled in the @disabled array

      @disabled[index] = true

    }

    # Re-draw contents

    refresh  

  end

  #--------------------------------------------------------------------------

  # * Enable Items

  #--------------------------------------------------------------------------

  def enable_items(*indexes)

    # For each index in the given argument array,

    indexes.each {|index|

      # Set that index to enabled in the @disabled array

      @disable[index] = false

    }

    # Red-draw contents

    refresh

  end

end

 

class Window_Base

  def draw_actor_face(actor, x, y)

    bitmap = RPG::Cache.picture(actor.character_name)

    cw = bitmap.width

    ch = bitmap.height

    src_rect = Rect.new(0, 0, cw, ch)

    self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)

  end

end

class Window_MenuStatus

  def refresh

    self.contents.clear

    @item_max = $game_party.actors.size

    for i in 0...$game_party.actors.size

      x = 64

      y = i * 116

      actor = $game_party.actors[i]

      draw_actor_face(actor, x, y + 95)

      draw_actor_name(actor, x, y)

      draw_actor_class(actor, x + 144, y + 32)

      draw_actor_level(actor, x + 144, y)

      draw_actor_state(actor, x + 144, y + 64)

      draw_actor_exp(actor, x + 236, y + 64)

      draw_actor_hp(actor, x + 236, y + 0)

      draw_actor_sp(actor, x + 236, y + 32)

    end

  end

end

 

 

 

class Window_MenuStatus < Window_Selectable

  def initialize

    super(0, 0, 480, 480)

    self.contents = Bitmap.new(width - 32, height - 32)

    refresh

    self.active = false

    self.index = -1

  end

end

 
 
Try this:

Here's the script:
Code:
class Scene_Menu

  def create_background

    @back = Spriteset_Map.new

  end

  Menu_Tone = Tone.new(40, 3, -10, 60)

  Duration = 20

  def main

    @map_tone = $game_screen.tone.dup

    $game_screen.start_tone_change(Menu_Tone, Duration)

    create_background

    s1 = 'Inventory'

    s2 = 'Skills'

    s3 = 'Equipment'

    s4 = 'Status'

    s5 = 'Save'

    s6 = 'End Game'

    @command_window = Window_Command_WcW.new(0, 0, 160, [['Item', s1], ['I_BookSmall', s2], ['Sword', s3], ['I_ScrollSmall', s4], ['I_FeatherSmall', s5], ['Escape', s6]])

    @command_window.back_opacity = 125

    if $game_system.save_disabled

      @command_window.disable_item(4)

    end

    @gold_window = Window_Gold.new

    @gold_window.x = 0

    @gold_window.y = 320

    @playtime_window = Window_PlayTime.new

    @playtime_window.y = 224

    @playtime_window.x = 0

    @status_window = Window_MenuStatus.new

    @status_window.x = 160

    @status_window.y = 0

    

    @command_window.back_opacity, @playtime_window.back_opacity, @gold_window.back_opacity, @status_window.back_opacity = 125, 125, 125, 125, 125

    Graphics.transition(10)

 

    loop do

      Graphics.update

      Input.update

      update

          $game_screen.update

      if $scene != self

        break

      end

    end

 

    @command_window.dispose

    @gold_window.dispose

    @playtime_window.dispose

    @back.dispose if @back != nil

    @status_window.dispose

    Graphics.transition(10)

    $game_screen.start_tone_change(@map_tone, Duration)

  end

    def start_tone_change(tone, duration)

    @tone_target = tone.clone

    @tone_duration = duration

    if @tone_duration == 0

      @tone = @tone_target.clone

    end

  end

end

class Game_Party

  def add_actor(actor_id)

    actor = $game_actors[actor_id]

    if @actors.size < 4 and not @actors.include?(actor)

      @actors.push(actor)

      $game_player.refresh

    end

  end

end

#----------------------------------------------------------------------------

# * Window Command (WcW)

#     Displays options w/ icons. Feel free to use this in your own script.

#----------------------------------------------------------------------------

class Window_Command_WcW < Window_Selectable

  #--------------------------------------------------------------------------

  # * Initialize

  #--------------------------------------------------------------------------

  def initialize(x, y, width, commands)

    # Calls original initialize method

    super(x, y, width, commands.size * 32 + 32)

    # Sets maximum items and commands variables

    @item_max = commands.size

    @commands = commands

    # Initializes the @disabled array, which is used for drawing disabled items

    @disabled = []; @commands.size.times { @disabled.push false }

    # Creates a new bitmap for the contents

    self.contents = Bitmap.new(width-32, commands.size * 32)

    # Sets the index to 0

    self.index = 0

    # Draws contents

    refresh

  end

  #--------------------------------------------------------------------------

  # * Refreshes Contents

  #--------------------------------------------------------------------------

  def refresh

    # Clears bitmap

    self.contents.clear

    # For each command in the @commands array....

    @commands.size.times {|i|

      # Get the icon from RPG::Cache

      self.contents.blt(4, 32 * i + 4, RPG::Cache.icon(@commands[i][0]),

          Rect.new(0, 0, 24, 24))

      # If the disabled array has this down for this disabled, draw it as

      # disabled, if not, draw it normal

      self.contents.font.color = @disabled[i] ? disabled_color : normal_color

      # Draw the command

      self.contents.draw_text(34, 32 * i, self.contents.width - 34, 32,

          @commands[i][1], 0)

    }

  end

  #--------------------------------------------------------------------------

  # * Disable Items

  #--------------------------------------------------------------------------

  def disable_items(*indexes)

    # For each index in the given argument array,

    indexes.each {|index|

      # Set that index to disabled in the @disabled array

      @disabled[index] = true

    }

    # Re-draw contents

    refresh  

  end

  #--------------------------------------------------------------------------

  # * Enable Items

  #--------------------------------------------------------------------------

  def enable_items(*indexes)

    # For each index in the given argument array,

    indexes.each {|index|

      # Set that index to enabled in the @disabled array

      @disable[index] = false

    }

    # Red-draw contents

    refresh

  end

end

 

class Window_Base

  def draw_actor_face(actor, x, y)

    bitmap = RPG::Cache.picture(actor.character_name)

    cw = bitmap.width

    ch = bitmap.height

    src_rect = Rect.new(0, 0, cw, ch)

    self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)

  end

end

class Window_MenuStatus

  def refresh

    self.contents.clear

    @item_max = $game_party.actors.size

    for i in 0...$game_party.actors.size

      x = 64

      y = i * 116

      actor = $game_party.actors[i]

      draw_actor_face(actor, x, y + 95)

      draw_actor_name(actor, x, y)

      draw_actor_class(actor, x + 144, y + 32)

      draw_actor_level(actor, x + 144, y)

      draw_actor_state(actor, x + 144, y + 64)

      draw_actor_exp(actor, x + 236, y + 64)

      draw_actor_hp(actor, x + 236, y + 0)

      draw_actor_sp(actor, x + 236, y + 32)

    end

  end

end

 

 

 

class Window_MenuStatus < Window_Selectable

  def initialize

    super(0, 0, 480, 480)

    self.contents = Bitmap.new(width - 32, height - 32)

    refresh

    self.active = false

    self.index = -1

  end

end

 

You were aliasing the old main method, as well as rewriting it, so it called the old one, then the new one. :thumb:
 
Great! It worked! Thanks :)

EDIT: Now when I go into the menu, then access another scene, like the inventory (which all have transparent windows as well) once I get back into the map, the screen tone doesn't go away.
I think it's because I don't call the map tone again, but I would need th @map_tone to be global, and have the
Code:
    $game_screen.start_tone_change(@map_tone, Duration)

  end

    def start_tone_change(tone, duration)

    @tone_target = tone.clone

    @tone_duration = duration

    if @tone_duration == 0

      @tone = @tone_target.clone

    end

how can I get this in all the Scene_(...)s I have?
 
Here you go:
Code:
class Scene_Menu

  def create_background

    @back = Spriteset_Map.new

  end

  Menu_Tone = Tone.new(40, 3, -10, 60)

  Duration = 20

  def main

    @@restore_map_tone = $game_screen.tone.dup

    $game_screen.start_tone_change(Menu_Tone, Duration)

    create_background

    s1 = 'Inventory'

    s2 = 'Skills'

    s3 = 'Equipment'

    s4 = 'Status'

    s5 = 'Save'

    s6 = 'End Game'

    @command_window = Window_Command_WcW.new(0, 0, 160, [['Item', s1], ['I_BookSmall', s2], ['Sword', s3], ['I_ScrollSmall', s4], ['I_FeatherSmall', s5], ['Escape', s6]])

    @command_window.back_opacity = 125

    if $game_system.save_disabled

      @command_window.disable_item(4)

    end

    @gold_window = Window_Gold.new

    @gold_window.x = 0

    @gold_window.y = 320

    @playtime_window = Window_PlayTime.new

    @playtime_window.y = 224

    @playtime_window.x = 0

    @status_window = Window_MenuStatus.new

    @status_window.x = 160

    @status_window.y = 0

   

    @command_window.back_opacity, @playtime_window.back_opacity, @gold_window.back_opacity, @status_window.back_opacity = 125, 125, 125, 125, 125

    Graphics.transition(10)

 

    loop do

      Graphics.update

      Input.update

      update

          $game_screen.update

      if $scene != self

        break

      end

    end

 

    @command_window.dispose

    @gold_window.dispose

    @playtime_window.dispose

    @back.dispose if @back != nil

    @status_window.dispose

    Graphics.transition(10)

    $game_screen.start_tone_change(@@restore_map_tone, Duration) if @@restore_map_tone != nil

  end

end

 

class Game_Party

  def add_actor(actor_id)

    actor = $game_actors[actor_id]

    if @actors.size < 4 and not @actors.include?(actor)

      @actors.push(actor)

      $game_player.refresh

    end

  end

end

#----------------------------------------------------------------------------

# * Window Command (WcW)

#     Displays options w/ icons. Feel free to use this in your own script.

#----------------------------------------------------------------------------

class Window_Command_WcW < Window_Selectable

  #--------------------------------------------------------------------------

  # * Initialize

  #--------------------------------------------------------------------------

  def initialize(x, y, width, commands)

    # Calls original initialize method

    super(x, y, width, commands.size * 32 + 32)

    # Sets maximum items and commands variables

    @item_max = commands.size

    @commands = commands

    # Initializes the @disabled array, which is used for drawing disabled items

    @disabled = []; @commands.size.times { @disabled.push false }

    # Creates a new bitmap for the contents

    self.contents = Bitmap.new(width-32, commands.size * 32)

    # Sets the index to 0

    self.index = 0

    # Draws contents

    refresh

  end

  #--------------------------------------------------------------------------

  # * Refreshes Contents

  #--------------------------------------------------------------------------

  def refresh

    # Clears bitmap

    self.contents.clear

    # For each command in the @commands array....

    @commands.size.times {|i|

      # Get the icon from RPG::Cache

      self.contents.blt(4, 32 * i + 4, RPG::Cache.icon(@commands[i][0]),

          Rect.new(0, 0, 24, 24))

      # If the disabled array has this down for this disabled, draw it as

      # disabled, if not, draw it normal

      self.contents.font.color = @disabled[i] ? disabled_color : normal_color

      # Draw the command

      self.contents.draw_text(34, 32 * i, self.contents.width - 34, 32,

          @commands[i][1], 0)

    }

  end

  #--------------------------------------------------------------------------

  # * Disable Items

  #--------------------------------------------------------------------------

  def disable_items(*indexes)

    # For each index in the given argument array,

    indexes.each {|index|

      # Set that index to disabled in the @disabled array

      @disabled[index] = true

    }

    # Re-draw contents

    refresh  

  end

  #--------------------------------------------------------------------------

  # * Enable Items

  #--------------------------------------------------------------------------

  def enable_items(*indexes)

    # For each index in the given argument array,

    indexes.each {|index|

      # Set that index to enabled in the @disabled array

      @disable[index] = false

    }

    # Red-draw contents

    refresh

  end

end

 

class Window_Base

  def draw_actor_face(actor, x, y)

    bitmap = RPG::Cache.picture(actor.character_name)

    cw = bitmap.width

    ch = bitmap.height

    src_rect = Rect.new(0, 0, cw, ch)

    self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)

  end

end

class Window_MenuStatus

  def refresh

    self.contents.clear

    @item_max = $game_party.actors.size

    for i in 0...$game_party.actors.size

      x = 64

      y = i * 116

      actor = $game_party.actors[i]

      draw_actor_face(actor, x, y + 95)

      draw_actor_name(actor, x, y)

      draw_actor_class(actor, x + 144, y + 32)

      draw_actor_level(actor, x + 144, y)

      draw_actor_state(actor, x + 144, y + 64)

      draw_actor_exp(actor, x + 236, y + 64)

      draw_actor_hp(actor, x + 236, y + 0)

      draw_actor_sp(actor, x + 236, y + 32)

    end

  end

end

 

 

 

class Window_MenuStatus < Window_Selectable

  def initialize

    super(0, 0, 480, 480)

    self.contents = Bitmap.new(width - 32, height - 32)

    refresh

    self.active = false

    self.index = -1

  end

end
 
oops. that should be

Code:
class Scene_Menu

  Menu_Tone = Tone.new(40, 3, -10, 60)

  Duration = 20

  alias_method :seph_maptone_init, :initialize

  def initialize(*args)

    seph_maptone_init(*args)

    if $scene.is_a?(Scene_Map)

      @@restore_map_tone = $game_screen.tone.dup

      $game_screen.start_tone_change(Menu_Tone, Duration)

    end

  end    

  def create_background

    @back = Spriteset_Map.new

  end

  def main

    create_background

    s1 = 'Inventory'

    s2 = 'Skills'

    s3 = 'Equipment'

    s4 = 'Status'

    s5 = 'Save'

    s6 = 'End Game'

    @command_window = Window_Command_WcW.new(0, 0, 160, [['Item', s1], ['I_BookSmall', s2], ['Sword', s3], ['I_ScrollSmall', s4], ['I_FeatherSmall', s5], ['Escape', s6]])

    @command_window.back_opacity = 125

    if $game_system.save_disabled

      @command_window.disable_item(4)

    end

    @gold_window = Window_Gold.new

    @gold_window.x = 0

    @gold_window.y = 320

    @playtime_window = Window_PlayTime.new

    @playtime_window.y = 224

    @playtime_window.x = 0

    @status_window = Window_MenuStatus.new

    @status_window.x = 160

    @status_window.y = 0

   

    @command_window.back_opacity, @playtime_window.back_opacity, @gold_window.back_opacity, @status_window.back_opacity = 125, 125, 125, 125, 125

    Graphics.transition(10)

 

    loop do

      Graphics.update

      Input.update

      update

          $game_screen.update

      if $scene != self

        break

      end

    end

 

    @command_window.dispose

    @gold_window.dispose

    @playtime_window.dispose

    @back.dispose if @back != nil

    @status_window.dispose

    Graphics.transition(10)

    if $scene.is_a?(Scene_Map)

      $game_screen.start_tone_change(@@restore_map_tone, Duration) if @@restore_map_tone != nil

    end

  end

end

 

class Game_Party

  def add_actor(actor_id)

    actor = $game_actors[actor_id]

    if @actors.size < 4 and not @actors.include?(actor)

      @actors.push(actor)

      $game_player.refresh

    end

  end

end

#----------------------------------------------------------------------------

# * Window Command (WcW)

#     Displays options w/ icons. Feel free to use this in your own script.

#----------------------------------------------------------------------------

class Window_Command_WcW < Window_Selectable

  #--------------------------------------------------------------------------

  # * Initialize

  #--------------------------------------------------------------------------

  def initialize(x, y, width, commands)

    # Calls original initialize method

    super(x, y, width, commands.size * 32 + 32)

    # Sets maximum items and commands variables

    @item_max = commands.size

    @commands = commands

    # Initializes the @disabled array, which is used for drawing disabled items

    @disabled = []; @commands.size.times { @disabled.push false }

    # Creates a new bitmap for the contents

    self.contents = Bitmap.new(width-32, commands.size * 32)

    # Sets the index to 0

    self.index = 0

    # Draws contents

    refresh

  end

  #--------------------------------------------------------------------------

  # * Refreshes Contents

  #--------------------------------------------------------------------------

  def refresh

    # Clears bitmap

    self.contents.clear

    # For each command in the @commands array....

    @commands.size.times {|i|

      # Get the icon from RPG::Cache

      self.contents.blt(4, 32 * i + 4, RPG::Cache.icon(@commands[i][0]),

          Rect.new(0, 0, 24, 24))

      # If the disabled array has this down for this disabled, draw it as

      # disabled, if not, draw it normal

      self.contents.font.color = @disabled[i] ? disabled_color : normal_color

      # Draw the command

      self.contents.draw_text(34, 32 * i, self.contents.width - 34, 32,

          @commands[i][1], 0)

    }

  end

  #--------------------------------------------------------------------------

  # * Disable Items

  #--------------------------------------------------------------------------

  def disable_items(*indexes)

    # For each index in the given argument array,

    indexes.each {|index|

      # Set that index to disabled in the @disabled array

      @disabled[index] = true

    }

    # Re-draw contents

    refresh  

  end

  #--------------------------------------------------------------------------

  # * Enable Items

  #--------------------------------------------------------------------------

  def enable_items(*indexes)

    # For each index in the given argument array,

    indexes.each {|index|

      # Set that index to enabled in the @disabled array

      @disable[index] = false

    }

    # Red-draw contents

    refresh

  end

end

 

class Window_Base

  def draw_actor_face(actor, x, y)

    bitmap = RPG::Cache.picture(actor.character_name)

    cw = bitmap.width

    ch = bitmap.height

    src_rect = Rect.new(0, 0, cw, ch)

    self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)

  end

end

class Window_MenuStatus

  def refresh

    self.contents.clear

    @item_max = $game_party.actors.size

    for i in 0...$game_party.actors.size

      x = 64

      y = i * 116

      actor = $game_party.actors[i]

      draw_actor_face(actor, x, y + 95)

      draw_actor_name(actor, x, y)

      draw_actor_class(actor, x + 144, y + 32)

      draw_actor_level(actor, x + 144, y)

      draw_actor_state(actor, x + 144, y + 64)

      draw_actor_exp(actor, x + 236, y + 64)

      draw_actor_hp(actor, x + 236, y + 0)

      draw_actor_sp(actor, x + 236, y + 32)

    end

  end

end

 

 

 

class Window_MenuStatus < Window_Selectable

  def initialize

    super(0, 0, 480, 480)

    self.contents = Bitmap.new(width - 32, height - 32)

    refresh

    self.active = false

    self.index = -1

  end

end

Ok. Important lines I have added an explanation:
Code:
  Menu_Tone = Tone.new(40, 3, -10, 60)

  Duration = 20
As you figured, map tone when in the menu and how long to fade in tone.

Code:
  alias_method :seph_maptone_init, :initialize

  def initialize(*args)

    seph_maptone_init(*args)

    if $scene.is_a?(Scene_Map)

      @@restore_map_tone = $game_screen.tone.dup

      $game_screen.start_tone_change(Menu_Tone, Duration)

    end

  end

When $scene = Scene_Menu.new is called, it checks the previous scene. If the old scene is Scene_Map, it creates a "class variable" that is shared between all Scene_Menu objects. Meaning, if you go to the item menu and come back, this variable is not changed however it is saved from the last time Scene_Menu was created.

Code:
    if $scene.is_a?(Scene_Map)

      $game_screen.start_tone_change(@@restore_map_tone, Duration) if @@restore_map_tone != nil

    end
When exiting the menu, if the next scene is map, it restores the tone.

Not in script but you know about:
$game_screen.update
- Updates the map tone change effects
@back.update
- Updates the spriteset so tone change is seen


How that helps a little bit.
 
That's great! Thanks for the help.

EDIT:
Well, now the tone doesn't even show up, and I'm getting the error:
Script ' ' line 58
can't convert NilClass into Tone

When exiting the menu.
 

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