Ace Save Engine

Last Updated: 2012.01.23
Download Link
Github Link

This script provides a new save interface for the player. Along with a new interface, the player can also load and delete saves straight from the menu itself. This will in turn make the save command from the Main Menu always available, but the save option within the new save menu will be enabled depending on whether or not it is allowed or disallowed. From the interface, the player is given more information regarding the save file including the the location the player saved at, the amount of gold available, and any variables that you want to show the player as well.


And that’s all, folks!

133 comments on “Ace Save Engine

  1. # These variables will be shown in each of the two columns for those who
    # would want to display more information than just what’s shown. Input the
    # variables into the arrays below to designate what data will be shown.
    COLUMN1_VARIABLES = [1, 2, 3]
    COLUMN2_VARIABLES = [4, 5, 6]

    Didn’t understand how I do that.. :S

    • Under “Event Commands” window, there is the option of “Variable Operation…” where you can use variables to hold any sort of numeric value. When making your RPG, you may want to store how many quests you’ve completed for later use, or store values that you wish to operate on. That variable can be shown in the status area of the save screen by using the COLUMN1or2_VARIABLES arrays. Simply place the variable’s ID number in the array. You can see the variable’s ID number on the “Variable Operation…” window. In the VXAce Trial Demo, variable ID 1 has the name: “Use De-Petrify”.

  2. hmmm must i do something next to “plug&play” ? the standard save option goes well but i cant save with your script :/

      • i already tried to enable the save access over an event … it did not work :/ it just did not wand to make a savegame. There comes a denying tone at the savemenu.
        Sry for my poor english. With the normal save menu from ACE it works. I also have all ur engines installed

    • I’m getting the exact same issue. It is a script conflict (it works fine on a fresh project), but I have no idea which one. Please let me know if you find out! (I probably won’t be using this script anyway, but would still like to know.)

  3. May you add confirmation message when overwritting or erasing a saved data slot?

    “Are you sure to overwritte the data saved here?”
    “Yes – No”.

  4. Heya. My game doesn’t use the variables, so it would just be awkward
    to have zeros just sitting there on the save screen. I’ve tried deleting the COLUMN_VARIABLES, but I get an error screen. Any way I can get rid of those zeroes?

  5. I think I found something.

    When you save on a map (e.g. “Map1”) and you delete that map later in the editor, and you want to enter the Save Menu, it’ll crash.
    So if you want to get rid of this save without having a crash message, you need to create a new Map with the exact name of the map you deleted. (in this example “Map1”) Afterwards, you are able to delete the File.

    The Error-Line in this case is line 376.

  6. I have a Problem Im using all your scripts togheter and I don’t know why, but, the map location isn’t showing for me, I don’t have any idea why…

    It’s too hard to tell if its a compability problem, but I only have your scripts in my project. Could you please check if its getting a problem between your scripts?
    Everything between that is working nicely.
    Thanks in advance
    PS: Sorry for my bad English

    • I’ll echo this. I’ve been testing the script by itself to avoid conflicts and can’t manage to display the location’s name either. Unfortunately, I haven’t the Ruby skill needed to decipher where the script is pulling the location string from.

      I’ve also tried teleporting from the starting map in case this was some sort of freaky initialization bug, to no avail.

  7. Chiming back in to let you know I’ve fixed the issue by replacing Line 376:
    return if $data_mapinfos[@header[:map]].nil?
    return if @header[:map].nil?

    Of course for all I know this could be the worst frankenscripting ever, so I’d like some feedback if possible.

  8. Idk what I did wrong but this string doesn’t fit the context or so rmvxace says I’ve never had a problem with your scripts before and I have faith that it is correct but I think i may have grbled it upon copying.
    ACTION_DELETE = “Delete” # Text used for deleting games.

    • Look a few comments above. I had the same issue and solved it by replacing a line of code. It does seem to solve everything, but I can’t guarantee it to be bug-free since I know very little about RGSS.

  9. Your solution works, but sometimes the game broke down with a rgss dll error message.

    I tried the following, also being no fluent Ruby pro, but it didn’t crash the game so far and seems to work fine if you label your maps:

    return if $data_mapinfos[@header[:map]].nil?
    return if @header[:map].display_name.nil?

    Could be even more of a frankenscript monster, of course, but it works =)

    • After some study, I concluded the correct fix is:

      return if $data_mapinfos[@header[:map].map_id].nil?

      In other words, if you have a map saved in the header, but the map id doesn’t correspond to any existing map, it stops. I believe otherwise you’d get a crash two lines below when it checks for $data_mapinfos[@header[:map].map_id].name
      (It would try to pull a name of a nonexistent map and flip out.)

  10. When I have save set to disable, is there anyway to make the “Save” in the main menu disabled? Instead of “Save” in your engine, after you have to click Save in the main menu.

  11. If I want to delete/save/load a file I would like to take a text showing:
    “Do you really want to overwrite this data” when saving over a already saved data,
    “Do you really want to delete this saved data” when you delete a saved data and
    “Do you want to load this data” when you load.

    Is it possible someone could help me with this, would be really appreciated!

  12. I got an idea, but I don’t know how it would work, so someone back me up on this:

    Say I wanted to make an rpg that would last a certain amount of “chapters” or “discs”, and when the player reaches the end of the first part and save, they can open the “second chapter” program, open the 1st completed chapter save file through it, and continue with the 2nd part of the game with the same levels and items skills etc from the first chapter.

    This way, after I release the 1st chapter and people play it, I can work on the 2nd one.

    Now would something like that be possible with RPGMakerVXAce, or would it be too complicated?

    • …I believe that you’d simply need to have the player transfer the save from chapter x’s save folder to chapter x+1’s save folder in order to achieve such an effect.
      As long as the same basic data exists in both, no problems should arise, and no scripting should be necessary at all. Of course, it wouldn’t be as smooth as the procedure that you so lovingly described, but the basic function would most likely be present, although I can’t be absolutely certain. …I also apologize for any redundancy if you’ve already attempted to make use of such an approach.

  13. It’s a great script, but I have a problem; it doesn’t show Location on the save file. Has this happened before?

  14. Save isn’t disabled in my Game System section, but for some reason save is never enabled in-game while using this script, even when going directly up to save points I created (they work just fine normally). I didn’t edit this script at all. Any thoughts?

    • For this exact same reason I’ll quote Fafnir: Check ~his~ comments on the subject, just a few posts above. (How come no one looks for the error before posting?)

      • delete these line in script…
        103, 104, 405-437, 419-420 (Those all should be the variable parts in the script deleting them causes nothing to go there.)

  15. I’m having a problem, the second you click disable save it never will enable even when you enable it. So if you put ‘enable save’ then ‘open up save menu’ you can save. Then if you put ‘disable save’ and ‘open up save menu’ it won’t work (obviously) But if you ‘enable save’ and ‘open up save menu’ you still can’t save unless you exit the game and edit the game so that it never is ‘disables save’.

  16. Hi guys, i’ve a tip for a problem that i could resolve.
    In my game, i disabled the save, for save only when i set “call save menu”. But when i did it, it “calls menu” (itens, skill, etc), not “save menu”.

    I was reading all the scripts (including the defaults) i discovery that when we set “call save menu” is the same thing that “Call script >”. So, to resolve my problem, i’d create a Common Event named “Call Save”. It does:

    1st) Enables Save Menu
    2nd) Call Script:
    3rd) Disables Save Menu

    It’s important enable the save, because, else, when show the menu, the save option will be disabled. So, we enable it, call script, and disable again. When i need call the Save menu, a just call the Common event ;)

  17. This is probably a silly question, but how do I label the variables? I’m using the quest engine and I have it displaying the number of quests completed but all it displays is the number, where it should say Quests is just blank.

  18. i cannot seem to get the game to save, yes i am using other scripts, and it worked before. but once i take the script out, it saves. but upon putting it back in, it wont save. help please?

  19. it’s incompatibility with other script. you could try backing up your project. then remove one by one your other script to see which one that caused the conflict. when you found the culprit then post again with that info in here or any forum so people can help you.

  20. Awesome script! This is so much better than the default save system.
    If I could make a small request though, as mentioned above by Retoral:

    “If I want to delete/save/load a file I would like to take a text showing:
    “Do you really want to overwrite this data” when saving over a already saved data,
    “Do you really want to delete this saved data” when you delete a saved data and
    “Do you want to load this data” when you load.”

    I would really like to have confirmation messages (that could be disable/enabled).

    Thanks for such a great script!

  21. Online casino in the usa additionally holds your chosen typical Casino video games such as Texas holdem, Blackjack, Pai gow poker as well as Keno.

    Online casino in the usa comes with a amazing variety of bonuses pertaining to participants which include a couple great
    sign up advantage deals. If you want to start out registering with online casino in
    the usas the simple way, you should look into each of our online casino
    in the usa item listings with this webpage that offer this sort
    of bonus and begin actively playing on the casino’s penny, and not your own, inside a few minutes.

  22. This script does not work with any scripts that allow for custom actor data. The game simply refuses to show them on the load screen although they are fine once the game is loaded.

    • The text for the variables is the name you give to them when editing events.
      I don’t think you can remove levels without looking through the script and removing the code that draws them.

      • I found were the text for the variables is and if you make it long it will remove the variable number. I know you need to go in the script and need to remove something and I looked but could not find it. My question is where is it and how to remove it.

  23. I tried this but it says that there is an error
    Script ” line 91: NoMethodError occurred.
    undefined method “[]” for nil:NilClass
    What is wrong?

      • Just fiddled around with the script and solved the problem. For the “line 91” error, go into the script editor. Then navigate to line 91 it should look like this:
        unless $imported[“YEA-SaveEngine”]
        The [] are causing the error so change it to this:
        unless $imported; “YEA-SaveEngine”
        removing the [] and adding a ; and a space solved the problem for me. After doing this another error occurred with the “New Game+” script. It was in the same fashion on line 64.
        Line 64 looks like this:
        if $imported[“YEA-SaveEngine”]
        again, remove the [] and add a ; and a space and that should clear up the error.
        So the fixed version will look like this:
        if $imported; “YEA-SaveEngine”

        Hope that helped clear up some errors for you guys!

  24. Script works perfectly just like all the others just one question though.. I’m using Kread-EX’s synthesis script (which is compatible) and I want my synthesis level to be displayed in one of the columns. I looked through Kread’s script and couldn’t find a Variable linked to your synthesis level. Any help on the matter would be great and thank you in advance. .

  25. It would be very usefull to have a “journal” script in the menu where to insert step by step what my hero acomplish and put the last entry in place of the switch list of the save menu.
    And maybe put the playtime even in the main menu on the money tab.

  26. Hey,
    with the variables, I can’t figure out how to make the save menu columns with a ‘0’ by it go to ‘1’, if I’ve levelled up or collected something in the game, its always zero and when I collect the item, its supposed to go to ‘1’ when I save it instead of staying ‘0’, what do I do? any help please?

  27. Hey, I have an error popping up each time time I try to either save or load:

    Script “YEA – Save Sys” line 362: NoMethodError occurred.
    undefined method `group’ for {“Main”=>45}:Hash

    It’s never happened before and I haven’t changed any scripts or terminology in my game. Thanks for any help.

  28. How can I make the script to write a variable with a name and no number is written? The fact is that I have a system where I keep the time variable “TIME” with the following data:
    0 – Morning, 1 – Half Day 2 – Afternoon and 3 – night
    is there any way or need to tweak a lot?
    Thanks in advance

    • “COLUMN1_VARIABLES = [1, 2, 3]
      COLUMN2_VARIABLES = [4, 5, 6]”

      0 – Morning, 1 – Half Day 2 – Afternoon and 3 – night is that right??

      is easy… set the variable in the start of game or whereever… with var operation>script…in script use “” and type Half Day….

      example – variable 45 set “Half Day”…….

      • i checked it….
        yanfly has to update the script here… to read text….and not just numbers…

        untill then both me and you have to wait ….

  29. Hi, If i create too many save slots (like 30 or more) and enter the save menu (from title screen) , then returning to title screen (hitting esc) and then hit “new game”
    I get following error :

    Script ‘DataManager’ line 83: SecurityError occured.

    Insecure: can’t change global variable value

    If i have less save slots that bug doesn’t appear.
    I disabled all other scripts and the bug stil came up. Is there any way to fix this?

  30. Hey, so this is something interesting, and I’m not sure why this is happening.
    Every time I load up a save, all the player’s items get wiped back to what they started with.
    While I’m going for a pretty brutal difficulty, I’m not so cruel as to strip them of everything, so I could really use a fix for this.

    • Ahh, now here’s something. I have a feeling this isn’t your script, but something…is happening. I’m gonna try my luck on a few other forums. Seems the problem is in line 266 of Game Actor. item.etype_id == equip_slots[i] &&.
      Is that the same for everyone else, or has something gone horribly wrong?

  31. Pingback: Save Screens | The Iron Shoe

  32. Pingback: Friday Script / Dev Blog – Modifying Yanfly’s Save Script | The Iron Shoe

  33. Hi! hey there is an issue, when it comes to the title screen, and you go to the continue option, if try to cancel and go back to the toitle screen, it crashes with an error in window_base line 83 disposed window :( i hope someone can help me out with the problem.. thank you!

  34. I limited my party to 3 people using the party script and i want the reserve party members to also show up not just the active active battlers. line 348 has the section of code is there any way to mod this to include reserve party members too?

  35. I keep having this error; Script ‘Save_Engine’ line 90: NoMethodError occurred undefined method ‘[]’ for nil:NilClass what do I do to fix it? Thanks!

  36. Would it be possible to display a variable whose value is text rather than a number? When I try this (in this case my variable is set as “Test text”), I get the following error when I try to save:

    Script ‘Yanfly Save’ line 436: NoMethodError occurred.
    undefined method ‘group’ for “Test text”:String

    • hi

      if u try with an event to “enable save”, works? maybe u have deactivated by default your saves with another similar script.

      sry for my poor english.

  37. What script line should I delete for hiding the Level system for the save game thing?
    I mean, I made a game without level system (SaGa), but the level still shown on the save thing.

    • I found it! Hope you still need it. I was trying to figure it out for myself as well. Look right around line 400 (it was exactly 400 for me). You should see this under draw_save_characters:

      text =
      draw_text(dx-dw/2, dy-line_height, dw-4, line_height, text, 2)

      and just comment out the second line (like this):
      #draw_text(dx-dw/2, dy-line_height, dw-4, line_height, text, 2)

  38. If you {Set Move: Change Player graphic} the new sprite doesn’t appear in the save file, which is a real shame, I’ve been looking around for any solutions but haven’t found any.

  39. I’m a completion kinda guy. I wanna add an icon to a specific save file when the player has achieved 100% completion in the game on that file, and I can only assume it would be checked through a switch as part of the script.

    Would this be possible to do with the script as-is? Or would it require some kind of add-on or update?

    This is really frustrating me; I’ve searched for something that will do this for a while, only to come up empty-handed. Any help would be appreciated.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s