public

Rpg Maker Developers Group

Simple enough for a child, powerful enough for a developer

2 Followers

VXACEFast Travel Script

BMM Archive · July 15, 2026

Preserved forum archive. This topic stores the original first post and locally mirrored RPG Maker Web attachments when available. It is posted by the BMMPlay archive account, not by the original creator.

Original Source

  • Original title: Fast Travel Script
  • Original author: BlackMage
  • Original date: May 4, 2017
  • Source thread: https://forums.rpgmakerweb.com/threads/fast-travel-script.78185/
  • Source forum path: Game Development Engines > Ruby Game System (RGSS) Scripts > RGSS3 Scripts (RMVX Ace)

Summary

Fast Travel Script 1.1 by Black Mage​Introduction Fast travel is a concept where you have several locations in a map (Usually this map is called an overworld map) and by selecting one of those locations, you’re transported to their respective location. That's this script's main function. 1. Allow you to fast travel between location.

Archived First Post

Fast Travel Script 1.1
by Black Mage
Introduction
Fast travel is a concept where you have several locations in a map (Usually this map is called an overworld map) and by selecting one of those locations, you’re transported to their respective location. That's this script's main function.

Features
1. Allow you to fast travel between location.
2. You can use big map for your overworld.
3. Customizable BGM & SFX for the map.
4. Several additional windows for the map.
5. Animated location icon.

Screenshots
I'll put a video instead. It's showing how the map selection works.


How to Use
1. Put the script on your game.
2. Put the map graphic inside Graphics/System folder. Make sure you named the graphics “Map_Select”.
3. Put the location selection window graphic inside Graphics/System folder. Make sure you named the graphic “Window_Map”.
4. Put an empty graphic named “Empty”. This graphic is needed to run the script, mostly as a placeholder.
5. Put the locations on the script.
6. Customize where each location will transfer the player when they're selected.
7. Customize a lot of other variables found within the script.
8. Call the map using this script call:
SceneManager.call(Scene_Map_Select)

Demo
Demo using Script V-1.0 (Mediafire)
Demo using Script V-1.1 (Mediafire)

Script
Code:
#----------------------------------------------------------------------------
# Fast Travel Script By Black Mage (Credit required to use)
# Version: 1.1
#----------------------------------------------------------------------------
#
# * The script creates a map that hovers through listed locations.
#
# * The background image is named "Map_Select", and placed inside
#   Graphics/System folder.
#
# * The image named "Empty" is required as dummy and placeholder in several cases.
#   You can use an empty PNG file for it.
#   The image is placed inside Graphics/System folder.
#
# * The image named "Window_Map" is used as the location selection window.
#   The image is placed inside Graphics/System folder.
#
#----------------------------------------------------------------------------
#
# * How to use:
#
# * Enlist every available location into MAP_LIST.
#
# * Assign a switch for each location. Put them on SWITCH_LIST.
#
# * When you want a map is listed on the Map Select menu, simply turn their
#   respective switch value to "true".
#
# * Assign x and y variables for the screen to hover when a location is
#   highlighted. Put them on LOCATION_COORDINATE
#
# * Assign where to teleport when a location is selected. Put them on
#   TELEPORT_LIST.
#
# * Enjoy your map select menu.
#
#----------------------------------------------------------------------------
#
# * There's several additional option below. Feel free to edit them.
#
#----------------------------------------------------------------------------

module BLACK_MAP_LIST
 
  #--------------------------------------------------------------------------
  # Map name list. This is needed for metaprogramming.
  #--------------------------------------------------------------------------
  MAP_LIST = ["Australia",
             "Russia",
             "America"]
 
  #--------------------------------------------------------------------------
  # Switches that enable the map.
  #--------------------------------------------------------------------------
  SWITCH_LIST = [1, # When switch 01 is on, you can transfer to Australia.
                3, # When switch 03 is on, you can transfer to Russia.
                2] # And so on.

  #--------------------------------------------------------------------------
  # Assign each map name where to teleport.
  #--------------------------------------------------------------------------
  #                 Map ID, x,  y,  player direction
  TELEPORT_LIST = [[2,      8,  1,  2], # This is where "Australia" is going to be.
                  [3,      8, 11,  8], # "Russia".
                  [1,     15,  7,  4]] # and so on.
  
  #--------------------------------------------------------------------------
  # Assign overworld location coordinate.
  #--------------------------------------------------------------------------
  LOCATION_COORDINATE = [[-470,-100], #The map will move here when "Australia" is highlighted
                        [-120,560],
                        [880,300]]

  #--------------------------------------------------------------------------
  # Assign text color for location selection. The color depends on Window
  # graphic that you use. 0 is the default color.
  #--------------------------------------------------------------------------
  TEXT_LOCA_COLOR = [0,
                    3,
                    2]

  #--------------------------------------------------------------------------
  # Position of the background image.
  #--------------------------------------------------------------------------
  MAP_POSITION = [0,0] #[x,y]
  #--------------------------------------------------------------------------
  # How far the background image is zoomed out.
  #--------------------------------------------------------------------------
  MAP_ZOOM_OUT = [0.25, 0.25] #[zoom_x, zoom_y]
  #--------------------------------------------------------------------------
  # How far the background image is zoomed in when a location is selected.
  #--------------------------------------------------------------------------
  MAP_ZOOM_IN = [1, 1] #[x, y]
  #--------------------------------------------------------------------------
  # Maximum magnify speed when the scene is started.
  #--------------------------------------------------------------------------
  MAX_ZOOM_SPEED = 0.01
 
  #--------------------------------------------------------------------------
  # Position of the available choices.
  #--------------------------------------------------------------------------
  CHOICE_POSITION = [0,0] #[x,y]
  #--------------------------------------------------------------------------
  # Position of the window that holds list of the available choices.
  #--------------------------------------------------------------------------
  WINDOW_POSITION = [0,10] #[x,y]
  #--------------------------------------------------------------------------
  # The width for location selection choices.
  #--------------------------------------------------------------------------
  MAP_WINDOW_WIDTH = 132
  #--------------------------------------------------------------------------
  # The height for location selection choices.
  #--------------------------------------------------------------------------
  MAP_WINDOW_HEIGHT = 10 # Amount of visible choices in the window.
  #--------------------------------------------------------------------------
  # Maximum scroll speed when scrolling through the map.
  #--------------------------------------------------------------------------
  MAX_SCROLL_SPEED = 20
  #--------------------------------------------------------------------------
  # The map won't scrolled until the zoom is above this number for x and y.
  #--------------------------------------------------------------------------
  SCROLL_BOUNDARY = [0.5, 0.5] #[zoom_x, zoom_y]

  #--------------------------------------------------------------------------
  # Position of location selection window picture.
  #--------------------------------------------------------------------------
  WINDOW_PIC_POSITION = [0, 0] #[x, y]
  #--------------------------------------------------------------------------
  # Opacity of location selection window picture.
  #--------------------------------------------------------------------------
  WINDOW_PIC_OPACITY = 200
 
  #--------------------------------------------------------------------------
  # Map Menu BGM.
  #--------------------------------------------------------------------------
  MAP_MENU_BGM = ["Field3", 100, 100] #["BGM name", Volume, Pitch]
 
  #--------------------------------------------------------------------------
  # SFX played when the selection is changed.
  #--------------------------------------------------------------------------
  MAP_MENU_SFX = ["Wind1", 100, 100] #["SFX name", Volume, Pitch]
 
 
  #--------------------------------------------------------------------------
  #
  # * Below is the configuration of additional information window.
  #
  #--------------------------------------------------------------------------
 
  #--------------------------------------------------------------------------
  # Location name.
  #--------------------------------------------------------------------------
  ADD_LOC_NAME = true # Set this to true to enable the location name info
  #--------------------------------------------------------------------------
  # Location name info position.
  #--------------------------------------------------------------------------
  ADD_LOC_NAME_POS = [347,0]
  #--------------------------------------------------------------------------
  # Location name info width & height.
  #--------------------------------------------------------------------------
  ADD_LOC_NAME_W_H = [200,100] # [width, height]
  #--------------------------------------------------------------------------
  # Location name font size.
  #--------------------------------------------------------------------------
  ADD_LOC_NAME_F_SIZE = 20

 
  #--------------------------------------------------------------------------
  # Location description.
  #--------------------------------------------------------------------------
  ADD_LOC_DESC = true # Set this to true to enable the location description info
  #--------------------------------------------------------------------------
  # Location description position.
  #--------------------------------------------------------------------------
  ADD_LOC_DESC_POS = [347,155] # [x, y]
  #--------------------------------------------------------------------------
  # Location description width & height.
  #--------------------------------------------------------------------------
  ADD_LOC_DESC_W_H = [300,100] # [width, height]
  #--------------------------------------------------------------------------
  # Location description font size.
  #--------------------------------------------------------------------------
  ADD_LOC_DESC_F_SIZE = 20
  #--------------------------------------------------------------------------
  # Description for each location.
  #--------------------------------------------------------------------------
  ADD_LOC_DESC_VALUE = ["Australia is, well," + "\n" + "Australia.",  # Desc. for Australia.
                       "Russia..." + "\n" + "Yeah, Russia.",         # Desc. for Russia.
                       "America is America."]                        # and so on.
                      
  #--------------------------------------------------------------------------
  # Location thumbnail.
  #--------------------------------------------------------------------------
  ADD_LOC_THUMB = true # Set this to true to enable the location thumbnail.
  #--------------------------------------------------------------------------
  # Location description position.
  #--------------------------------------------------------------------------
  ADD_LOC_THUMB_POS = [376,47] # [x, y]
 
  #--------------------------------------------------------------------------
  # Location quests.
  #--------------------------------------------------------------------------
  ADD_LOC_QUEST = true
  #--------------------------------------------------------------------------
  # Location quests switches.
  #--------------------------------------------------------------------------
  ADD_LOC_QUEST_S = [[],
                    [6],
                    [4,5]]
  #--------------------------------------------------------------------------
  # Location quests text.
  #--------------------------------------------------------------------------
  #                 [switch number,   text to show when the value is true]
  ADD_LOC_Q_TEXT = [[4,               "* Find a way to" + "\n" + "Russia!"],
                   [5,               "* Get the package!"],
                   [6,               "* Deliver the package"]]
  #--------------------------------------------------------------------------
  # Location quests position.
  #--------------------------------------------------------------------------
  ADD_LOC_QUEST_POS = [347,200] # [x, y]
  #--------------------------------------------------------------------------
  # Location quests width & height.
  #--------------------------------------------------------------------------
  ADD_LOC_QUEST_W_H = [300,300] # [width, height]
  #--------------------------------------------------------------------------
  # Location quests font size.
  #--------------------------------------------------------------------------
  ADD_LOC_QUEST_F_SIZE = 20
 
  #--------------------------------------------------------------------------
  # Information Window Picture.
  #--------------------------------------------------------------------------
  ADD_WIN_PIC = true # Set this to true to enable the information window picture.
  #--------------------------------------------------------------------------
  # Position of additional information window picture.
  #--------------------------------------------------------------------------
  ADD_WIN_PIC_POS = [350, 3] #[x, y]
  #--------------------------------------------------------------------------
  # Opacity of additional information window picture.
  #--------------------------------------------------------------------------
  ADD_WIN_PIC_OPA = 200
 
  #--------------------------------------------------------------------------
  # Current Party Window.
  #--------------------------------------------------------------------------
  ADD_CUR_PARTY = true
  #--------------------------------------------------------------------------
  # Location quests position.
  #--------------------------------------------------------------------------
  ADD_CUR_PARTY_POS = [352,340] # [x, y]
  #--------------------------------------------------------------------------
  # Location quests width & height.
  #--------------------------------------------------------------------------
  ADD_CUR_PARTY_W_H = [180,80] # [width, height]

  #--------------------------------------------------------------------------
  # * This is an instruction if you want to use an icon for your location.
  # * First, the icon canvas mus be as big as the overworld canvas. This is
  #   the case to make sure the scrolling is as smooth as possible.
  # * Second, the icon must be named after the location found in MAP_LIST.
  # * Third, after the icon name, put the frame number of the icon. The number
  #   starts from 0.
  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  # * Location animated icon.
  #--------------------------------------------------------------------------
  LOC_ANI_ICON = true
  #--------------------------------------------------------------------------
  # * Location animated icon delay.
  #   You can call this animation speed. Decrease the value to make the animation
  #   faster.
  #--------------------------------------------------------------------------
  LOC_ANI_ICON_DELAY = 10
 
 
end

#----------------------------------------------------------------------------
# * Beyond this is the sacred land of code. You need programming qualification
#   to delve deeper, or it'll cause many unnecessary problems. Proceed on your
#   own risk.
#----------------------------------------------------------------------------

class Scene_Map_Select < Scene_Base
 
  include BLACK_MAP_LIST
  
  def start
   super
   @last_map = "placeholder"
   @first_sfx = false

   @last_position = [MAP_POSITION[0], MAP_POSITION[1]]
   @distance_x = 0
   @distance_y = 0
  
   @last_zoom = [MAP_ZOOM_OUT[0], MAP_ZOOM_OUT[1]]
  
   @icon_max = 0
   @icon_current = 0
   @icon_delay_cur = 0
  
   create_maplist
  
   create_information_window
   create_command_window
  
   create_background
   create_map_icon
   create_map_window
   location_update_index
   RPG::BGM.new(MAP_MENU_BGM[0], MAP_MENU_BGM[1], MAP_MENU_BGM[2]).play
  end
  
  def create_information_window
   if ADD_LOC_NAME
     @information_window_1 = Window_Information_1.new
     @information_window_1.opacity = 0
   end
   if ADD_LOC_DESC
     @information_window_2 = Window_Information_2.new
     @information_window_2.opacity = 0
   end
   if ADD_LOC_THUMB
     @information_window_3 = Sprite.new
     @information_window_3.bitmap = Cache.system("Empty")  
     @information_window_3.ox = 0
     @information_window_3.oy = 0
     @information_window_3.x = ADD_LOC_THUMB_POS[0]
     @information_window_3.y = ADD_LOC_THUMB_POS[1]
     @information_window_3.z = 2
   end
   if ADD_LOC_QUEST
     @information_window_4 = Window_Information_4.new
     @information_window_4.opacity = 0
   end
   if ADD_WIN_PIC
     @info_window = Sprite.new
     @info_window.bitmap = Cache.system("Window_Info")  
     @info_window.ox = 0
     @info_window.oy = 0
     @info_window.x = ADD_WIN_PIC_POS[0]
     @info_window.y = ADD_WIN_PIC_POS[1]
     @info_window.z = 2
     @info_window.opacity = 0
   end
   if ADD_CUR_PARTY
     @current_party_window = Window_Current_Party.new
     @current_party_window.opacity = 0
     @current_party_window.refresh
   end
  end
 
  def create_map_window
   @map_window = Sprite.new
   @map_window.bitmap = Cache.system("Window_Map")  
   @map_window.ox = 0
   @map_window.oy = 0
   @map_window.x = WINDOW_PIC_POSITION[0]
   @map_window.y = WINDOW_PIC_POSITION[1]
   @map_window.z = 2
   @map_window.opacity = 0
  end
  
  def create_maplist
   @map_list = []
   for i in 0..MAP_LIST.size - 1
     if $game_switches[SWITCH_LIST[i]] == true
       @map_list.push(MAP_LIST[i])
     end
   end
  end
 
  alias black_update update
  def update
   black_update
   if @map_list.size != 0
     icon_update if @map_window != nil
   end
  end
 
  def location_update_index
   if @command_window != nil
     @last_map = @map_list[@command_window.index].to_s
    
     if LOC_ANI_ICON
       @map_name = assigned_number(@map_list[@command_window.index].to_s)
       @map_name = @map_list[@command_window.index].to_s
       @map_icon.bitmap = Cache.system(@map_name + "0")
       @icon_max = pic_list_number
       @icon_current = 0
     else
       @map_icon.bitmap = Cache.system("Empty")
     end
    
   end
   if @first_sfx == true
     RPG::SE.new(MAP_MENU_SFX[0], MAP_MENU_SFX[1], MAP_MENU_SFX[2]).play
   end
  end
  
  def pic_list_number
   @map_name
   @pic_frames = []
   for index in 0..999
     begin
       picture = Cache.system(@map_name + index.to_s).nil?
     rescue
       nil
     else
       @pic_frames[index] = index
     end
     break if @pic_frames[index] == nil
   end
   return @pic_frames.size
  end
 
  def icon_update
   if LOC_ANI_ICON
     if @icon_delay_cur < LOC_ANI_ICON_DELAY
       @icon_delay_cur += 1
     else
       @icon_delay_cur = 0
       if @icon_current.to_i < (@icon_max - 1)
         @map_icon.bitmap = Cache.system(@map_name + (@icon_current.to_i + 1).to_s)
         @icon_current += 1
       else
         @map_icon.bitmap = Cache.system(@map_name + "0")
         @icon_current = 0
       end
     end
   end
  
   @map_window.opacity = WINDOW_PIC_OPACITY
   @info_window.opacity = ADD_WIN_PIC_OPA if ADD_WIN_PIC
  
   @map_index = assigned_number(@map_list[@command_window.index].to_s)
   map_move(@last_position[0], @last_position[1],
            LOCATION_COORDINATE[@map_index][0], LOCATION_COORDINATE[@map_index][1],
            255)
          
   #--------------------------------------------------------------------------
   # Define the magnifying speed.
   #--------------------------------------------------------------------------
   @magnify_x = (MAP_ZOOM_IN[0] - @last_zoom[0])/10
  
   if @magnify_x > 0
     @magnify_x = [MAX_ZOOM_SPEED, @magnify_x].min
   end
   if @magnify_x < 0
     @magnify_x = [MAX_ZOOM_SPEED, @magnify_x].max
   end
    
   if @magnify_x < 0.005 and @magnify_x > 0
       @magnify_x = 0.005
   elsif @magnify_x > -0.005 and @magnify_x < 0
       @magnify_x = -0.005
   end
          
   @magnify_y = (MAP_ZOOM_IN[1] - @last_zoom[1])/10
  
   if @magnify_y > 0
     @magnify_y = [MAX_ZOOM_SPEED, @magnify_y].min
   end
   if @magnify_y < 0
     @magnify_y = [MAX_ZOOM_SPEED, @magnify_y].max
   end
  
   if @magnify_y < 0.005 and @magnify_y > 0
       @magnify_y = 0.005
   elsif @magnify_y > -0.005 and @magnify_y < 0
       @magnify_y = -0.005
   end
      
   #--------------------------------------------------------------------------
   # Scrolling.
   #--------------------------------------------------------------------------
   if @background_sprite.zoom_x > SCROLL_BOUNDARY[0] and @background_sprite.zoom_y > SCROLL_BOUNDARY[1]
     if @first_sfx == false
       RPG::SE.new(MAP_MENU_SFX[0], MAP_MENU_SFX[1], MAP_MENU_SFX[2]).play
       @first_sfx = true
     end
     @background_sprite.x = @background_sprite.x + @distance_x
     @background_sprite.y = @background_sprite.y + @distance_y
     @map_icon.x = @map_icon.x + @distance_x
     @map_icon.y = @map_icon.y + @distance_y
   end
  
   @background_sprite.zoom_x = @background_sprite.zoom_x + @magnify_x
   @map_icon.zoom_x = @map_icon.zoom_x + @magnify_x
   if @magnify_x == 0.005
     if @background_sprite.zoom_x > MAP_ZOOM_IN[0]
       @background_sprite.zoom_x = MAP_ZOOM_IN[0]
       @map_icon.zoom_x = MAP_ZOOM_IN[0]
     end
   elsif @magnify_x == -0.005
     if @background_sprite.zoom_x < MAP_ZOOM_IN[0]
       @background_sprite.zoom_x = MAP_ZOOM_IN[0]
       @map_icon.zoom_x = MAP_ZOOM_IN[0]
     end
   end
  
   @background_sprite.zoom_y = @background_sprite.zoom_y + @magnify_y
   @map_icon.zoom_y = @map_icon.zoom_y + @magnify_y
   if @magnify_y == 0.005
     if @background_sprite.zoom_y > MAP_ZOOM_IN[1]
       @background_sprite.zoom_y = MAP_ZOOM_IN[1]
       @map_icon.zoom_y = MAP_ZOOM_IN[1]
     end
   elsif @magnify_y == -0.005
     if @background_sprite.zoom_y < MAP_ZOOM_IN[1]
       @background_sprite.zoom_y = MAP_ZOOM_IN[1]
       @map_icon.zoom_y = MAP_ZOOM_IN[1]
     end
   end
      
   #--------------------------------------------------------------------------
   # Adjust the position.
   #--------------------------------------------------------------------------
   @last_position[0] = @background_sprite.x
   @last_position[1] = @background_sprite.y
   @last_zoom[0] = @background_sprite.zoom_x
   @last_zoom[1] = @background_sprite.zoom_y
  
  end
 
  def map_move(f_x, f_y, x, y, opacity)

   @distance_x = (x - f_x)/10
   if @distance_x > 0
     @distance_x = [MAX_SCROLL_SPEED, @distance_x].min
   end
   if @distance_x < 0
     @distance_x = [(MAX_SCROLL_SPEED*(-1)), @distance_x].max
   end
  
   if @distance_x == 0
     if @last_position[0] == LOCATION_COORDINATE[@map_index][0]
     elsif (x - f_x) < 0
       @distance_x = -1
     else
       @distance_x = 1      
     end
   end
  
   @distance_y = (y - f_y)/10
   if @distance_y > 0
     @distance_y = [MAX_SCROLL_SPEED, @distance_y].min
   end
   if @distance_y < 0
     @distance_y = [(MAX_SCROLL_SPEED*(-1)), @distance_y].max
   end

   if @distance_y == 0
     if @last_position[1] == LOCATION_COORDINATE[@map_index][1]
     elsif (y - f_y) < 0
       @distance_y = -1
     else
       @distance_y = 1      
     end
   end
  
  end
  
  def create_command_window
   @command_window = Window_MapSelect.new
   @command_window.x = WINDOW_POSITION[0]
   @command_window.y = WINDOW_POSITION[1]
   for i in 0..MAP_LIST.size - 1
     @command_window.set_handler(MAP_LIST[i].to_sym, method(MAP_LIST[i].to_sym))
   end
   @command_window.set_handler(:cancel,    method(:return_scene))
   @command_window.information_window_1 = @information_window_1
   @command_window.information_window_2 = @information_window_2
   @command_window.information_window_4 = @information_window_4
   @command_window.information_1_update if ADD_LOC_NAME
   @command_window.information_2_update if ADD_LOC_DESC
   information_3_update if ADD_LOC_THUMB
   @command_window.information_4_update if ADD_LOC_QUEST
  end
 
  def information_3_update
   if @information_window_3 != nil and @command_window !=nil
     bitmap_pic = @map_list[@command_window.index].to_s + "_Thumb"
     @information_window_3.bitmap = Cache.system(bitmap_pic)
   end
  end
 
  def create_background
   @background_sprite = Sprite.new
   @background_sprite.bitmap = Cache.system("Map_Select")  
   @background_sprite.ox = @background_sprite.bitmap.width / 2
   @background_sprite.oy = @background_sprite.bitmap.height / 2
   @background_sprite.x = Graphics.width / 2
   @background_sprite.y = Graphics.height / 2
   @background_sprite.zoom_x = MAP_ZOOM_OUT[0]
   @background_sprite.zoom_y = MAP_ZOOM_OUT[1]
  end

  def create_map_icon
   @map_icon = Sprite.new
   @map_icon.bitmap = Cache.system("Empty")  
   @map_icon.ox = @background_sprite.bitmap.width / 2
   @map_icon.oy = @background_sprite.bitmap.height / 2
   @map_icon.zoom_x = MAP_ZOOM_OUT[0]
   @map_icon.zoom_y = MAP_ZOOM_OUT[1]
   @map_icon.x = Graphics.width / 2
   @map_icon.y = Graphics.height / 2
   @map_icon.z = 1
  end
 
  MAP_LIST.each do |map_name|
   define_method(map_name) do
     list_number = assigned_number(map_name)
     transfer_map(list_number)
   end
  end
 
  def assigned_number(map_name)
   for i in 0..MAP_LIST.size - 1
     if MAP_LIST[i] == map_name
       return i
     end
   end
  end
 
  def transfer_map(a)
   b = TELEPORT_LIST
   $game_temp.fade_type = 2
   $game_player.reserve_transfer(b[a][0],b[a][1],b[a][2],b[a][3])
   return_scene
  end
  
  def close_command_window
   @command_window.close
   update until @command_window.close?
   fadeout_all
   @command_window.dispose
   @background_sprite.bitmap = nil
  end
 
  def black_dispose
   @command_window.dispose
   @map_window.bitmap.dispose ; @map_window.dispose ; @map_window = nil
   @map_icon.bitmap.dispose ; @map_icon.dispose ; @map_icon = nil
  
   if ADD_WIN_PIC
     @info_window.bitmap.dispose
     @info_window.dispose
     @info_window = nil
   end
  
   if @background_sprite.bitmap != nil
     @background_sprite.bitmap.dispose
   end
   @background_sprite.dispose
   @background_sprite = nil
  
   @information_window_1.dispose if ADD_LOC_NAME
   @information_window_2.dispose if ADD_LOC_DESC
  
   if ADD_LOC_THUMB
     @information_window_3.bitmap.dispose
     @information_window_3.dispose
     @information_window_3 = nil
   end
  
   @information_window_4.dispose if ADD_LOC_QUEST
   @current_party_window.dispose if ADD_CUR_PARTY
  end
 
  def return_scene
   close_command_window
   black_dispose
   super
   RPG::BGM.fade(500)
   $game_map.autoplay
  end

end

#--------------------------------------------------------------------------
# * Map Command List Window
#--------------------------------------------------------------------------
class Window_MapSelect < Window_Command
 
  include BLACK_MAP_LIST
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
   create_maplist
   super(0, 0)
   self.openness = 0
   open
   self.opacity = 0
  end
  
  #--------------------------------------------------------------------------
  # * Get Window Width
  #--------------------------------------------------------------------------
  def window_width
   return MAP_WINDOW_WIDTH
  end
  #--------------------------------------------------------------------------
  # * Create Command List
  #--------------------------------------------------------------------------
  def make_command_list
   for i in 0..@map_list.size - 1
     if @map_list.size != 0
       add_command(@map_list[i], @map_list[i].to_sym)
     end
   end
  end
 
  #--------------------------------------------------------------------------
  # * Get unlocked map list
  #--------------------------------------------------------------------------
  def create_maplist
   @map_list = []
   for i in 0..MAP_LIST.size - 1
     if $game_switches[SWITCH_LIST[i]] == true
       @map_list.push(MAP_LIST[i])
     end
   end
  end
 
  def index=(index)
   super
   SceneManager.scene.location_update_index
   information_1_update if ADD_LOC_NAME
   information_2_update if ADD_LOC_DESC
   SceneManager.scene.information_3_update if ADD_LOC_THUMB
   information_4_update if ADD_LOC_QUEST
  end
 
  #--------------------------------------------------------------------------
  # * Draw Item
  #--------------------------------------------------------------------------
  def draw_item(index)
   font_color = assigned_number(command_name(index))
   change_color(text_color(TEXT_LOCA_COLOR[font_color]), command_enabled?(index))
   draw_text(item_rect_for_text(index), command_name(index), alignment)
  end
  
  #--------------------------------------------------------------------------
  # * Get Window Height
  #--------------------------------------------------------------------------
  def window_height
   fitting_height(MAP_WINDOW_HEIGHT)
  end
 
  #--------------------------------------------------------------------------
  # * Information Window
  #--------------------------------------------------------------------------
  def information_window_1=(information_window)
   @information_window_1 = information_window
  end
 
  def information_window_2=(information_window)
   @information_window_2 = information_window
  end
 
  def information_window_4=(information_window)
   @information_window_4 = information_window
  end
 
  def information_1_update
   if @information_window_1 != nil
     @information_window_1.clear
     text = @map_list[self.index].to_s
     @information_window_1.set_text(text)
   end
  end
 
  def information_2_update
   if @information_window_2 != nil
     @information_window_2.clear
     text = ADD_LOC_DESC_VALUE[assigned_number(@map_list[self.index].to_s)]
     @information_window_2.set_text(text)
   end
  end
 
  def information_4_update
   if @information_window_4 != nil
     @information_window_4.clear
     text = ""
     map_num = assigned_number(@map_list[self.index].to_s)
     for i in 0..ADD_LOC_QUEST_S[map_num].size - 1
       if ADD_LOC_QUEST_S[map_num].size != -1
         if $game_switches[ADD_LOC_QUEST_S[map_num][i]]
           quest_desc = assigned_quest(ADD_LOC_QUEST_S[map_num][i])
           text = text + "\n" + ADD_LOC_Q_TEXT[quest_desc][1]
         end
       end
     end
     @information_window_4.set_text(text)
   end
  end
 
  #--------------------------------------------------------------------------
  # * Return location number from location name
  #--------------------------------------------------------------------------
  def assigned_number(map_name)
   for i in 0..MAP_LIST.size - 1
     if MAP_LIST[i] == map_name
       return i
     end
   end
  end
 
  #--------------------------------------------------------------------------
  # * Return quest number from quest switch
  #--------------------------------------------------------------------------
  def assigned_quest(quest_switch)
   for i in 0..ADD_LOC_Q_TEXT.size - 1
     if ADD_LOC_Q_TEXT[i][0] == quest_switch
       return i
     end
   end
  end
 
end

#--------------------------------------------------------------------------
# * Map Additional Location Name Window
#--------------------------------------------------------------------------
class Window_Information_1 < Window_Base
 
  include BLACK_MAP_LIST
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
   super(ADD_LOC_NAME_POS[0], ADD_LOC_NAME_POS[1], ADD_LOC_NAME_W_H[0], ADD_LOC_NAME_W_H[1])
  end
  #--------------------------------------------------------------------------
  # * Set Text
  #--------------------------------------------------------------------------
  def set_text(text)
   if text != @text
     @text = text
     refresh
   end
  end
  #--------------------------------------------------------------------------
  # * Clear
  #--------------------------------------------------------------------------
  def clear
   set_text("")
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
   contents.clear
   draw_text_ex(4, 0, @text)
  end

  def reset_font_settings
   super # run's Window_Base's reset_font_settings
   contents.font.size = ADD_LOC_NAME_F_SIZE
  end

end

class Window_Information_2 < Window_Base
 
  include BLACK_MAP_LIST
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
   super(ADD_LOC_DESC_POS[0], ADD_LOC_DESC_POS[1], ADD_LOC_DESC_W_H[0], ADD_LOC_DESC_W_H[1])
  end
  #--------------------------------------------------------------------------
  # * Set Text
  #--------------------------------------------------------------------------
  def set_text(text)
   if text != @text
     @text = text
     refresh
   end
  end
  #--------------------------------------------------------------------------
  # * Clear
  #--------------------------------------------------------------------------
  def clear
   set_text("")
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
   contents.clear
   draw_text_ex(4, 0, @text)
  end

  def reset_font_settings
   super # run's Window_Base's reset_font_settings
   contents.font.size = ADD_LOC_DESC_F_SIZE
  end
 
end

class Window_Information_4 < Window_Base
 
  include BLACK_MAP_LIST
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
   super(ADD_LOC_QUEST_POS[0], ADD_LOC_QUEST_POS[1], ADD_LOC_QUEST_W_H[0], ADD_LOC_QUEST_W_H[1])
  end
  #--------------------------------------------------------------------------
  # * Set Text
  #--------------------------------------------------------------------------
  def set_text(text)
   if text != @text
     @text = text
     refresh
   end
  end
  #--------------------------------------------------------------------------
  # * Clear
  #--------------------------------------------------------------------------
  def clear
   set_text("")
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
   contents.clear
   draw_text_ex(4, 0, @text)
  end

  def reset_font_settings
   super # run's Window_Base's reset_font_settings
   contents.font.size = ADD_LOC_QUEST_F_SIZE
  end
 
end

#--------------------------------------------------------------------------
# * Window Current Party
#--------------------------------------------------------------------------
class Window_Current_Party < Window_Base
 
  include BLACK_MAP_LIST

  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
   super(ADD_CUR_PARTY_POS[0], ADD_CUR_PARTY_POS[1], ADD_CUR_PARTY_W_H[0], ADD_CUR_PARTY_W_H[1])
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #--------------------------------------------------------------------------
  def item_max
   return $game_party.members.size
  end
  def draw_all_items
   item_max.times {|i| draw_item(i) }
  end
 
  def draw_item(index)
   @actor = $game_party.members[index]
   if @actor != nil
     x_pos = 60
     draw_actor_graphic(@actor, index*40 + 20, 45)
   end
  end
 
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
   contents.clear
   draw_all_items
  end
 
end

FAQ
None yet.

Credit and Thanks
Black Mage.
Thanks to Sixth for reminding me that I forgot to put the dispose method inside the script. Also for several other contributions.

Author's Note
If you having trouble on using this script, and it seems that I rarely appeared here, you can go directly to my wordpress, and ask something there. I mostly roaming around there so there's no need to worry that your question will be left unanswered.

Here's a link to the pages of this script in my wordpress.
Fast Travel Script

Features Mentioned

  • 1. Allow you to fast travel between location.
  • 2. You can use big map for your overworld.
  • 3. Customizable BGM & SFX for the map.
  • 4. Several additional windows for the map.
  • 5. Animated location icon.

Downloads / Referenced Files

Log in to download

Log in, then follow the RPG Maker Developers Group to see these download links.

Log in to download

License / Terms Note

# Fast Travel Script By Black Mage (Credit required to use) # Version: 1.1 #---------------------------------------------------------------------------- #

Creator Claims / Removal

If you are the original creator and want this listing reassigned, edited, or removed, join BMMPlay and contact the moderators with proof that matches the original RPG Maker Web profile, linked GitHub, itch.io page, or another public creator identity.

#039#the#rgss3#script-archive

Replies (0)

No replies yet.

0 replies 1 view

Log in to reply.

User Avatar