Requires Yanfly’s Ace Save Engine script
Put the below script after Yanfly’s in the script list.
#-------------------------------------------------------------------------------
# Yanfly's Ace Save Engine - Confirmation Add-on
# Requires Yanfly's Ace Save Engine. Includes New Game Plus add-on confirm.
# by GALV
# Put this script after Yanfly's Save Engine script
# Last updated 2014-04-03 - Fixed bug where loading greater than 9 save file
# index crashes the game
#-------------------------------------------------------------------------------
module YEA
module SAVE
CONFIRM_DELETE = "Delete this save file?"
CONFIRM_SAVE = "Overwrite this save file?"
CONFIRM_LOAD = "Load this save file?"
CONFIRM_NEW_GAME_PLUS = "Restart this game?" # For Yanfly's 'New Game Plus'
end
end
class Scene_File < Scene_MenuBase
alias galv_yf_save_scene_file create_all_windows
def create_all_windows
galv_yf_save_scene_file
create_confirm_window
end
def create_confirm_window
@confirm_window = Window_Confirm.new
@confirm_window.help_window = @help_window
@confirm_window.hide.deactivate
@confirm_window.set_handler(:ok, method(:on_confirm_ok))
@confirm_window.set_handler(:cancel, method(:on_confirm_cancel))
end
def on_confirm_ok
case @confirm_window.current_symbol
when :on_confirm_ok
case @action_window.current_symbol
when :load; on_action_confirmed_load
when :save; do_save; refresh_windows
when :delete; do_delete; refresh_windows
when :new_game_plus; on_action_ngp_confirmed
end
when :on_confirm_cancel
on_confirm_cancel
end
@action_window.activate
@confirm_window.hide.deactivate
end
def on_confirm_cancel
@action_window.activate
@confirm_window.hide.deactivate
end
def on_action_load
n = @file_window.index >= 9 ? "" : "0"
if SceneManager.scene_is?(Scene_Load)
if DataManager.load_game(@file_window.index)
on_load_success
else
Sound.play_buzzer
end
#elsif !Dir.glob('Save0' + (@file_window.index + 1).to_s + '.rvdata2').empty?
elsif !Dir.glob('Save'+ n + (@file_window.index + 1).to_s + '.rvdata2').empty?
confirm_choice
else
Sound.play_buzzer
end
end
if $imported["YEA-NewGame+"]
def on_action_ngp
confirm_choice
end
def on_action_ngp_confirmed
Sound.play_load
DataManager.setup_new_game_plus(@file_window.index)
fadeout_all
$game_system.on_after_load
SceneManager.goto(Scene_Map)
end
end
def on_action_confirmed_load
if DataManager.load_game(@file_window.index)
on_load_success
end
end
def on_load_success
Sound.play_load
fadeout_all
$game_system.on_after_load
SceneManager.goto(Scene_Map)
end
def confirm_choice
@action_window.deactivate
@confirm_window.select(0)
@confirm_window.show.activate
case @action_window.current_symbol
when :load; @help_window.set_text(YEA::SAVE::CONFIRM_LOAD)
when :save; @help_window.set_text(YEA::SAVE::CONFIRM_SAVE)
when :delete; @help_window.set_text(YEA::SAVE::CONFIRM_DELETE)
when :new_game_plus; @help_window.set_text(YEA::SAVE::CONFIRM_NEW_GAME_PLUS)
end
end
def on_action_save
header = DataManager.load_header(@file_window.index)
if header.nil?
do_save
refresh_windows
else
confirm_choice
end
end
def do_save
@action_window.activate
if DataManager.save_game(@file_window.index)
on_save_success
else
Sound.play_buzzer
end
end
def on_action_delete
confirm_choice
end
def do_delete
@action_window.activate
DataManager.delete_save_file(@file_window.index)
on_delete_success
refresh_windows
end
end # Scene_File
class Window_Confirm < Window_Command
def initialize
super(0, 0)
self.back_opacity = 255
update_position
end
def window_width
return 200
end
def update_position
self.x = (Graphics.width - width) / 2
self.y = Graphics.height / 2
end
def update_help; end
def make_command_list
add_command("Yes", :on_confirm_ok)
add_command("No", :on_confirm_cancel)
end
end # Window_Confirm < Window_Command
may I request? Can you make a feature for this script to be able to bring existing images or pictures by difolder system folder id, example: picture-1.png to map No. 1, so if the player save games on the docket no 1 it will display the image also picture-1 . png
Sorry, I am not doing requests at the moment.
I love you so much for this script<3
Hello.
I’ve encountered an odd problem with this script. Here’s what I know:
1) New project with just 2 scripts:
– Yanfly Engine Ace – Ace Save Engine v1.03
– Yanfly’s Ace Save Engine – Confirmation Add-on (this script)
And yes, the scripts are ordered just like that – Save Engine first, Confirmation Add-on second.
2) Settings for Yanfly’s script:
MAX_FILES = 99
SLOT_NAME = “File %s”
3) I start a new game. Creating saves and Deleting saves works just fine. However, Loading saves during gameplay works ONLY if the save is numbered 9 or less. If the save is numbered 10, 11, 12, 13, 14, etc. and I try to load it during gameplay I get the buzzer sound and the game stops responding. Loading the same save from the main menu works fine
4) If I remove the Confirmation Add-on loading starts working fine during game play
Any ideas what could be the problem and how to fix it?
That was indeed a bug! I believe I have fixed this now, grab the code again from above. Thanks for letting me know
Now everything works. Thank you for the quick fix! :)
I was coming here to ask about this same issue… Great to see I was beat by over a month. :)
How is this issue solved? I am also using it and I find out the same issue.
You need to copy the script from this page again and replace the one you are using. Make sure to start a new test game in your project.
I would like to thank you for this useful script. However, I do think it would be even better if it could also be used when screenshot features for YEA Save Engine are present. (By these I mean Tsukihime’s Map Screenshot + Gambit’s Save Game Screenshot scripts that add a picture of current location to the save file.) After reordering these for a while, it seems that as long as your script is placed above the screenshot scripts, it works just fine EXCEPT for the save confirmation (which just doesn’t appear – the saves happen the normal way). I know this may be a request, but I hope that maybe you will consider it at some point. And even if you don’t with this one, keep it up with scripting; some of your scripts are seriously awesome! :)
Its telling me stack level to deep then sends me to the end of the script.
Whats it mean?
It means you’ve done something wrong and I don’t know what.
You’re a legend galv<3
hello, we have our “pause” in our game and it works only once you press the “ALT” key the game will pause and it will display a “PAUSE” picture but the SE does not stop and but if you didn’t, it will not pause the game.
So what we need is your magnificent help on making our game pause automatically and display “PAUSE” picture, then pause the SE when the rpg project window is not active or when the player switch on other window. But when the window is active, it will continue the game.
I’m sorry, I do not know what you mean and do not currently have time to do free requests at the moment. (Also, this page is for help with the save engine add on script).