RPG Maker Forums

Made a script that required one save file system in the request board awhile back
and found an urge to make the whole one save file script.
So here it is! Single Save File System!
 

 
Features:
[1] Able to change the default save file name to whatever you want.
[2] Save/Load without the need to enter save/load menu.
[3] Display Saving Message and Icon on save
[4] Hide Load Command in Title Scene when there is no save file
[5] Confirmation on Restarting a new game if save file exist.
[6] Auto delete save file when restarting a new game.
[7] Able to change all text message/command text in the script's Settings.
[8] Opening Save Menu using Eventing will directly save the game.
 
How to Use:
[1] Paste this script in your script editor below Material and above Main.
[2] Set up your preferences in the script's SETTINGS AREA
 
Note:
Event's Open Save Menu will directly save the game. Please use that if you wish to force save the game.
 
Compatibility:
This script overwrites how the save/load is handled in game as well as some of the GUI in Title Scene.
If you have custom script overwriting the methods this script uses, there's a chance of conflict.
 
Terms of Use:
Free for both commercial and non-commercial.
 
Script:

Code:
#==============================================================================# ■ Meow Face Single Save File System#------------------------------------------------------------------------------# Change the game save/load system to work on one save file only.#==============================================================================# How to Use:# [1] Paste this below Material and above Main# [2] Set your preferences save file name in the script's SETTINGS AREA#==============================================================================module MeowSaveFileManager #DO NOT REMOVE!!#==============================================================================# Settings Area#==============================================================================  #---------------#  # Save File Name  #  #---------------#  FILE_NAME = "meow.dat" #save file name and extension  #--------------#  # Saving a Game #  #--------------#  SAVE_MESSAGE = "Now Saving..." #save message to display  SAVE_ICON = 286 #(icon id) set which icon to be displayed with the save message  #----------------------#  # Restarting A New Game  #  #----------------------#  CONFIRM_MESSAGE = "Are you sure to restart a new game?" #Confirmation message  OVERWRITE_WARNING = "Warning!! You will lost your current progress!" #Warning Message  YES = "I'm Sure!"  NO = "No Way!"#==============================================================================# End of Settings Area# Edit anything past this line at your own risk!#==============================================================================endmodule DataManager  def self.save_file_exists? #overwrite    !Dir.glob(MeowSaveFileManager::FILE_NAME).empty?  end  def self.savefile_max #overwrite    return 1  end  def self.make_filename(index) #overwrite    sprintf(MeowSaveFileManager::FILE_NAME, index + 1)  endendclass Game_Map  attr_accessor :sm_show  alias meow_setup_sm setup  def setup(map_id) #alias    meow_setup_sm(map_id)    @sm_show = false  end  def show_sm    SceneManager.scene.show_save_message    @sm_show = false  end  alias meow_update_sm update  def update(main = false) #alias    meow_update_sm(main)     show_sm if @sm_show  endendclass Game_Interpreter  def command_352 #overwrite    return if $game_party.in_battle    if DataManager.save_game(0)      Sound.play_save      $game_map.sm_show = true    else      Sound.play_buzzer    end  endendclass Window_SaveMessage < Window_Base  def initialize    super(Graphics.width - window_width, Graphics.height - fitting_height(1), window_width, fitting_height(1))    self.opacity = 0    self.contents_opacity = 0    @show_count = 0    refresh  end  def window_width    return 240  end  def update    super    if @show_count > 0 && $game_map.name_display      update_fadein      @show_count -= 1    else      update_fadeout    end  end  def update_fadein    self.contents_opacity += 16  end  def update_fadeout    self.contents_opacity -= 16  end  def open    refresh    @show_count = 150    self.contents_opacity = 0    self  end  def close    @show_count = 0    self  end  def refresh    contents.clear    draw_background(contents.rect)    draw_icon(MeowSaveFileManager::SAVE_ICON, contents.rect.width-24, 0)    draw_icon(MeowSaveFileManager::SAVE_ICON, contents.rect.x, 0)    draw_text(contents.rect.x,contents.rect.y,contents.rect.width, fitting_height(0), MeowSaveFileManager::SAVE_MESSAGE, 1)  end  def draw_background(rect)    temp_rect = rect.clone    temp_rect.width /= 2    contents.gradient_fill_rect(temp_rect, back_color2, back_color1)    temp_rect.x = temp_rect.width    contents.gradient_fill_rect(temp_rect, back_color1, back_color2)  end  def back_color1    Color.new(0, 0, 0, 192)  end  def back_color2    Color.new(0, 0, 0, 0)  endendclass Window_TitleCommand < Window_Command  def make_command_list #overwrite    add_command(Vocab::new_game, :new_game)    add_command(Vocab::continue, :continue, continue_enabled) if DataManager.save_file_exists?    add_command(Vocab::shutdown, :shutdown)  endendclass Window_StartNewAsk < Window_Base  def initialize    super((Graphics.width - window_width)/2, (Graphics.height - fitting_height(5))/2, window_width, fitting_height(5))    create_message  end  def window_width    return Graphics.width - 40  end  def create_message    draw_text(contents.rect.x,contents.rect.y,contents.rect.width, fitting_height(0), MeowSaveFileManager::CONFIRM_MESSAGE, 1)    draw_text(contents.rect.x,contents.rect.y+fitting_height(0),contents.rect.width, fitting_height(0), MeowSaveFileManager::OVERWRITE_WARNING, 1)    draw_text(contents.rect.x,contents.rect.y+fitting_height(2),contents.rect.width, fitting_height(0), "/", 1)  endendclass Window_StartNewConfirm < Window_HorzCommand  def initialize    super(0, 0)    update_placement    self.opacity = 0  end  def window_width    return 240  end  def col_max    return 2  end  def spacing    return 12  end  def update_placement    self.x = (Graphics.width - window_width) / 2  end  def make_command_list    add_command(MeowSaveFileManager::YES, :ok)    add_command(MeowSaveFileManager::NO,   :cancel)  endendclass Scene_Title < Scene_Base  alias meow_st_start_sm start  def start    meow_st_start_sm    create_ask_window    create_confirm_window  end  def mf_start_new_game    DataManager.setup_new_game    close_command_window    fadeout_all    $game_map.autoplay    SceneManager.goto(Scene_Map)  end  def create_ask_window    @ask_window = Window_StartNewAsk.new    @ask_window.hide  end  def create_confirm_window    @confirm_select_window = Window_StartNewConfirm.new    @confirm_select_window.y = @ask_window.y + (24*3)    @confirm_select_window.set_handler(:ok,     method(:on_confirm_ok))    @confirm_select_window.set_handler(:cancel, method(:on_confirm_cancel))    @confirm_select_window.hide.deactivate  end  def on_confirm_ok    @ask_window.close    @confirm_select_window.close    DataManager.delete_save_file(0)    mf_start_new_game  end  def on_confirm_cancel    @ask_window.hide    @confirm_select_window.hide.deactivate    @command_window.show.activate  end  def command_new_game #overwrite    if DataManager.save_file_exists?      @command_window.hide.deactivate      @ask_window.show      @confirm_select_window.show.activate    else      mf_start_new_game    end  end  def command_continue #overwrite    close_command_window    if DataManager.load_game(0)      Sound.play_load      fadeout_all      $game_system.on_after_load      SceneManager.goto(Scene_Map)    else      Sound.play_buzzer    end  endendclass Scene_Map < Scene_Base  def create_save_message_window    @sm_window = Window_SaveMessage.new  end  def show_save_message    @sm_window.open  end  alias meow_sm_caw_sm create_all_windows  def create_all_windows #alias    meow_sm_caw_sm    create_save_message_window  endendclass Scene_Menu < Scene_MenuBase  def command_save #overwrite    if DataManager.save_game(0)      Sound.play_save      $game_map.sm_show = true      return_scene    else      Sound.play_buzzer    end  endend

Latest Threads

Latest Posts

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,035
Messages
1,018,455
Members
137,821
Latest member
Capterson
Top