Jump to content

[1.12.3] KISS - Kerbal Improved Save System


Aerospike

Recommended Posts

What is KISS?

Kerbal Improved Save System (KISS) is a small plugin that provides an improved "Save game as..." mechanic while in flight.

It is intended as a replacement for the stock "Quicksave as..." dialog and provides a filename selector for existing quicksaves similar to the stock MOD+F9 alternate quickload "Choose an SFS file to load" dialog.
In addition the default suggestion for the quicksave name is the current date and time plus the name of the active vessel ("YYYYMMDD_hhmmss_{activeVessel}") instead of using an automatically increasing number to differentiate quicksaves.

BONUS feature (discovered by @Apollo13) : KISS allows you to quicksave while moving on the ground!

(KISS is not intended to be an automated quicksave system. Such plugins already exist.)

Why?

We have all been in the situation where we are creating many quicksaves during a critical mission before every important event/maneuver so that we can backtrace to (almost) any point in the mission in case something goes wrong.
However after a few quicksaves simply numbering them isn't enough because it becomes hard to remember which one is which. Giving them names is an option, but once you reload an old quicksave and want to overwrite another (no longer useful) quicksave at a later time in the mission, you then have to remember the name of the quicksave in order to overwrite it, AND you have to type it in manually.

KISS makes finding and overwriting an existing quicksave easy!

Screenshots

M9kthAN.jpg

http://imgur.com/a/d7tzM

Current Version 2.4.2
For KSP 1.9.1 - 1.12.3

Download from SpaceDock  | Download from GitHub | Sourcecode also on GitHub

Release notes

Spoiler

2.4.2, 2020-06-04

  •     Compiled against KSP 1.9.1.

2.4.1, 2019-10-21

  •     Compiled against KSP 1.8.0.
  •     Changed: updated Unity .dll references for Unity 2019.2

2.4.0, 2018-11-14

  •     Compiled against KSP 1.5.1.
  •     Fixed: added custom logic to make GameTime timestamps sortable

2.3.0, 2018-03-31

  •     Compiled against KSP 1.4.1.
  •     Fixed:        Settings icon was not loaded in KSP 1.4.x.
  •     Fixed:        When using KISS to delete a savegame, the corresponding ".loadmeta" file is now properly deleted as well.
  •     Changed:    In order to avoid textures being loaded multiple times, KISS is now started only once and kept alive from that moment on.

2.2.0, 2017-03-11

  • Compiled against KSP 1.2.2.
  • Added:        KISS is now also available while at the space center!
  • Added:        A few log statements during startup to help people with troubles getting KISS to work.
  • Changed:    Moved GUI Initialization stuff into Load() (from Update()).

2.1.0, (2016-11-20)

  •     Added:         Possibility to customize the keybinding!

2.0.0, (2016-09-11)

  •     Added:        Allow deletion of savegames directly from KISS.
  •     Added:        KISSDialog class for creating modal dialogs.
  •     Added:        Settings panel and a button (with icon) to toggle it.
  •     Added:        Option to require confirmation before overwriting existing files.
  •     Added:        Option to require confirmation before deleting existing files.
  •     Added:        Option to choose between system time and game time for the timestamp.
  •     Added:        Option to reverse the list of existing savegames.
  •     Added:        Three choices for the filename suggestion: "{timestamp}_{vesselName}"; "{vesselName}_{timestamp}" or "quicksave".
  •     Added:        Quicksave mode: save current game with the suggested filename without showing GUI (requires "MOD + F8" to show window again).
  •     Fixed:        KISS now reacts properly to "ESC" and "ENTER/RETURN" in every situation.
  •     Fixed:        Width of buttons in list not adjusting properly to long filenames.

1.1.1, (2016-06-24)

  • Compiled against KSP 1.1.3 binaries.
  • Migrated Project from Xamarin Studio to Visual Studio 2015.

1.1.0, (2016-04-24)

  • Fixed: Quicksaves created with KISS no longer put the player at the space center after loading them in KSP 1.1.
  • Changed: Rebuilt the GUI code to work with KSP 1.1 and Unity 5. (Fortunately everything still works with KSP 1.0.5, yay!)
  • Changed: Adjusted the yellow textcolor of window caption and highlighted list items to a slightly darker/more orange shade.

1.0.0, (2016-04-08)

Initial public release. Built for KSP 1.0.5.

  • Added: Select and immediately overwrite an existing savegame using double-click.

 

Instructions

Press F8 to bring up the KISS dialog (you can reconfigure the shortcut in the settings panel of KISS).

You can:

  • store a quicksave with the provided default filename.
  • store a quicksave with any name you want.
  • get the name of a previous quicksave from the list by clicking it once. Now you can overwrite that quicksave by clicking "Save", or modify the filename to store a new quicksave with a similar name.
  • directly overwrite an existing quicksave by double clicking it.
  • reload the default filename suggestion by clicking the "Default" Button.
  • Click on the sprocket button in the upper right corner to show settings panel where you can configure the behavior of KISS.

Attention: When you enable the "Quicksave mode" to save the game without showing the GUI, you have to press MOD + F8 (or MOD + <yourCustomKeyBinding>) to show the interface again!


Note: the standard "persistent" savegame is excluded from the list. As I understand it, saving into this file that makes little sense as it gets overwritten every time you load another save.

Planned features ("soon" :tm: ):

Spoiler
  • replace the old hard-coded UI with the new Unity GUI.
  • multi language support.

Possible future extensions:

  • provide a similar functionality for saving crafts in the editor (VAB/SPH), since the default save mechanic there annoys me similarly to the stock quicksave dialog. :wink:
  • make KISS replace the stock quicksave entirely.

 

 

License

KISS is licensed under the MIT License

Acknowledgements

While I do have a background in software engineering, this project started as:

My first Mod for any game (not just KSP);
My first C# project (first time using MonoDevelop);
My first time using git/GitHub;
My first Unity related project (only did a beginner tutorial once sometime back when Unity 3 was the current version)...

So without the following people, I could not have done this (small) project!

@cybutek- for his plugin tutorial videos that told me the basics of how and where to start.
@TaranisElsu - for his example plugin projects that helped me a lot.
@magico13 - for his "Dated QuickSaves" modlet that provided inspiration.
@Nereid -  for his S.A.V.E automatic backup system that also helped me along the way.
and last but certainly not least
@Z-Key Aerospace / @Bodrick - for the "[x] Science!" mod that showed me how to create a dynamic list of GUI elements and how to handle tooltips.

As well as everybody else in the great KSP modding community!

Edited by Aerospike
compatible with KSP 1.12.3
Link to comment
Share on other sites

Love this mod.  It came along at just the right time to resolve an issue I'm having on Mun.

My favorite feature?  Being able to quicksave when I'm in a moving rover.  the damned stock Quicksave requires that you be absolutely still.  Asinine!!

Suggestion:  please do NOT require confirmation to overwrite an existing file.  In fact, I'd like to see fewer clicks, not more.  For instance, if I click on an existing file, then just overwrite it.  I don't even want to have to click the Save button.  That said, the double-clicking works as well.  If you do go forward with a confirmation, let it be configurable in a CFG file, so I can turn it off.

Suggestion:  Provide a Delete Save game feature

Suggestion:  Provide a Load Save game feature (so the player does not need to return to the Space Center)

Replacing the stock quicksave function with this is a great idea.

Edited by Apollo13
Link to comment
Share on other sites

On 24.4.2016 at 1:44 AM, Apollo13 said:

Love this mod.  It came along at just the right time to resolve an issue I'm having on Mun.

My favorite feature?  Being able to quicksave when I'm in a moving rover.  the damned stock Quicksave requires that you be absolutely still.  Asinine!!

Suggestion:  please do NOT require confirmation to overwrite an existing file.  In fact, I'd like to see fewer clicks, not more.  For instance, if I click on an existing file, then just overwrite it.  I don't even want to have to click the Save button.  That said, the double-clicking works as well.  If you do go forward with a confirmation, let it be configurable in a CFG file, so I can turn it off.

Suggestion:  Provide a Delete Save game feature

Suggestion:  Provide a Load Save game feature (so the player does not need to return to the Space Center)

Replacing the stock quicksave function with this is a great idea.

Thank you for your feedback @Apollo13 and also @brusura! :)

Regarding deleting savegames: that has already been on my mind, I don't know why I forgot to add it on the todo list.

As for the other points you brought up:

  • "favorite feature": Ha, I didn't even know that this was a limitation of the stock quicksave. (I haven't had a rover in my career game yet). To be honest I don't understand the reason why SQUAD allow quicksaves while in atmospheric flight, but not while moving on the ground? Maybe this could be an issue with how savegames are loaded and there could be issues with the colliders of moving objects when loaded? Dunno. Unless someone reports that moving vessels get destroyed on loading, I'll definitely keep the behavior of KISS (I pause the game before showing the Window, I guess that is the reason why KISS can quicksave with moving vessels)
  • confirmations before overwriting and number of clicks: Don't worry, I hear you. :) Confirmations won't be added until I add a settings panel to KISS, there it will be possible to toggle confirmations (for overwriting and deleting files separately) and choose between game time and system time for the timestamp. For confirmations I'll first have to figure out how to handle Yes/No dialogs in KSP anyway. Since I'm going to be a father in a few days, my time is currently quite limited :wink:
    However, I'll keep the current "double-click for saving" behavior. Single-click is required for selecting a quicksave to alter the name. Imagine having a Craft "MunProbe1" and you have a quicksave called "MunProbe1-mun_orbit_before_descent" and you are not happy with where you landed. You might reload that save, stay in orbit longer and try again at a different spot, but not before creating a new save "MunProbe1-mun_orbit_before_descent_location2" - and you really don't want to type all that in a second time! (A scenario like this was my primary motivation for writing KISS in the first place).
  • Load Save: Hm, your profile tells me that you have been registered for quite some time so I assume you are a "veteran" KSP player, so that suggestion surprises me. You do know that you can load quicksaves while in flight using the alternate quickload dialog? Just press MOD+Quickload (default: "ALT+F9"). Maybe I'm missing something, but I really don't see why I should replicate that functionality?

 

I'll hope to implement the features on the ToDo list as soon as possible, but as mentioned above, my time is quite limited currently.

Link to comment
Share on other sites

3 hours ago, Aerospike said:
  • Load Save: Hm, your profile tells me that you have been registered for quite some time so I assume you are a "veteran" KSP player, so that suggestion surprises me. You do know that you can load quicksaves while in flight using the alternate quickload dialog? Just press MOD+Quickload (default: "ALT+F9"). Maybe I'm missing something, but I really don't see why I should replicate that functionality?

You also cannot QuickSave if your kerbal is moving on the ground.

ALT-F9 has never worked for me.  I've got 1600 hours in KSP and am a modder myself (I need to update my more popular mods for 1.1).  But, ALT-F9...not mine.  However, ALT-F5 works like a charmer.

Congrats on the the impending fatherhood.  Your first?

Edited by Apollo13
Link to comment
Share on other sites

2 hours ago, Apollo13 said:

ALT-F9 has never worked for me.  I've got 1600 hours in KSP and am a modder myself (I need to update my more popular mods for 1.1).  But, ALT-F9...not mine.  However, ALT-F5 works like a charmer.

That is seriously strange! :confused:

2 hours ago, Apollo13 said:

Congrats on the the impending fatherhood.  Your first?

Thank you! Yes, it is our first -> I'm equally excited and terrified about the coming months! :wink:

Link to comment
Share on other sites

I really like that one of the save file options is quicksave.sfs.  This way I can quickly restore with the F9 function key.  Saving to quicksave.sfs take about two seconds and doesn't require that my rover or kerbal stop moving.  I can even save when a kerbal is on a ladder (another stock quicksave failing).

Suggestion:

1)  When player presses F8 key, mod saves game to quicksave.sfs.  It does NOT display the mod dialog box.  It just saves like F5

2)  When player presses ALT-F8 (or CTRL-F8 or SHIFT-F8; choose one), the mod dialog box is displayed.

3)  When the mod dialog is displayed, when player double-clicks a file name, the game is saved to that file.  This is the behavior you have now.

4)  If the player single-clicks a file name in the dialog and presses the Save button, then display the Confirmation dialog.

Link to comment
Share on other sites

  • 1 month later...

Hello dear users of KISS!

Despite my absence, I have not abandoned this project. But having a child and an unusual high workload at the office at the same time has eaten up most of my spare time in the last few weeks.

Unfortunately KSP 1.1.3 seems to have broken KISS. I'm trying to figure out what is causing the problem to fix it.
I tried to solve the problem yesterday, but unthinkingly updated Xamarin Studio to Version 6, which now seems to be broken for "regular" .NET projects (apparently Xamarin now focuses on their android, iOS, WIndows cross Plattform stuff), as none of the project dependencies could be resolved any longer. So I spend yesterday evening getting rid of that trash and switching everything over to Visual Studio 2015.

As of now the projects compiles fine against KSP 1.1.3 but at runtime KISS no longer responds to the F8 key and the Log is full of errors about "Missing function FlightDriver.SetPause" (Not sure about the exact words, because I'm at work currently).

Please be patient, I'm hoping to have a fix ready by the end of the week.

 

Link to comment
Share on other sites

Turns out a simple recompile against KSP 1.1.3 fixed the problem and the "SetPause" error messages where totally unrelated to KISS.
Of course because of me going into panic mode after the Xamarin update, I didn't notice that yesterday -I made a mistake in setting up VS2015's post build command and therefore the new .dll never actually got copied to the game directory... *facepalm* :D

 

First post updated, KISS 1.1.1 for KSP 1.1.3 is now available.

Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...

After a lot of bugfixing I think the new version should be almost ready for release. I would appreciate if anybody could give the beta a try and provide me some feedback about the new features and any possible bugs that I might have missed.

Just make sure to backup your savegames before you give it a try!

h9FXngh.jpg

Download Kerbal Improved Save System v2.0.0-beta1 from GitHub

 

@Apollo13

You will probably be happy to read that you can now delete savegames AND there is now a "quicksave mode" where the GUI doesn't show up at all as you suggested! :)

Edited by Aerospike
fixed image
Link to comment
Share on other sites

I don't follow this thread (though I will after posting this, as I love this mod), so I missed the post or I could have tested yesterday. I just downloaded the beta, it may be a couple days before I play again but I'll be sure to give it a try!

Link to comment
Share on other sites

Thank you for your efforts trying to break it. I really appreciate your help!

After spending several hours implementing features and changing/fixing things that just do not work as you originally imagined them, you reach a state of mind where you are almost blind to your own errors. Testing your own code is a bit like proof reading your own text.

 

Thank you again! Since nobody else reported any issues, I'll probably release version 2.0.0 over the weekend. :)

Link to comment
Share on other sites

KISS v2 released on spacedock and first post updated. :)

 

Changelog

v2.0.0, 2016-09-11

  •     Added:        Allow deletion of savegames directly from KISS.
  •     Added:        KISSDialog class for creating modal dialogs.
  •     Added:        Settings panel and a button (with icon) to toggle it.
  •     Added:        Option to require confirmation before overwriting existing files.
  •     Added:        Option to require confirmation before deleting existing files.
  •     Added:        Option to choose between system time and game time for the timestamp.
  •     Added:        Option to reverse the list of existing savegames.
  •     Added:        Three choices for the filename suggestion: "{timestamp}_{vesselName}"; "{vesselName}_{timestamp}" or "quicksave".
  •     Added:        Quicksave mode: save current game with the suggested filename without showing GUI (requires "MOD + F8" to show window again).
  •     Fixed:        KISS now reacts properly to "ESC" and "ENTER/RETURN" in every situation.
  •     Fixed:        Width of buttons in list not adjusting properly to long filenames.

 

Edited by Aerospike
changelog
Link to comment
Share on other sites

  • 4 weeks later...

I could not find any problems with KISS v2.0.0 and the officially released KSP 1.2.0.

I would update the compatible version number on spacedock, but version 1.2.0 is not yet available there.

 

Edit: KISS is now flagged as compatible with KSP 1.2 on SpaceDock! :)

Edited by Aerospike
Link to comment
Share on other sites

  • 4 weeks later...

I'm happy to announce that KISS v2.1 is almost available. What is new in this version?

Configurable keyboard shortcut! :cool:

Anyone want to give the pre-release a try? https://github.com/KerbalSpike/KerbalImprovedSaveSystem/releases/tag/v2.1.0-beta1
I'm especially interested in feedback from people with non English (US) and non German keyboards, and people who run KSP on a Mac or on Linux!

Why? Because Unity only knows about US Keyboards. Detecting which key was pressed is easy, labelling it correctly depending on the actual keyboard used is a whole different story...
Using Windows input language switching I tested with German, English(us) and Spanish(Spain) layouts and most things work.

Known Issue (will be fixed before release):
*) if CAPSLOCK is on, all character keys that are not letters get the wrong label. I just figured out while writing these lines, that I forgot to check for capslock...

Known limitations:
*) the "Print" key is for some reason not detected by my code (although it is listed as a viable KeyCode in Unity).
*) you can not use any modifier keys (Shift, Ctrl, Alt, Command,...) and you also can't have any key combinations for KISS, just simple keys.
*) on international keyboards, you have to hit the accent keys (like " ´ " and " ^ " on the German Keyboard) twice, because they do not produce a character when hit for the first time, but I need the character to label the key correctly.
*) all keys that to not produce characters like Backspace, Arrow Keys, etc. are labeled with their English names, regardless of keyboard language used.
*) numpad keys always get their "Keypad..." label, regardless of NumLock state. For example numpad 8 will always be shown as "Keypad8" and never as "ArrowUp".
 

Link to comment
Share on other sites

  • 2 weeks later...

I have just released KISS v2.1.0 with configurable keybinding. :)

First post updated or get it directly on spacedock.

Turns out detecting if Capslock is on seems to be impossible in Unity at the moment, so make sure you disable capslock before re-assigning the keybinding or the button might get a wrong label!
Once again the known limitations:

Known limitations of the keybinding feature:
* you can't bind any modifier keys (Shift, Ctrl, Alt, Command,...) and you also can't have any key combinations for KISS, you can only pick a simple, single key.
* you have to disable Capslock before assigning a new key if you want to make sure it is labeled correctly in the UI. Unfortunately it is currently impossible in Unity to check if Capslock is on.
* on international keyboards, you have to hit special keys twice (like the accent keys " ´ " and " ^ " on the German keyboard), because they do not produce a character when hit for the first time, but I need the character to label the key correctly.
* all keys that to not produce characters like backspace, arrow keys, etc. are labeled with their English names, regardless of keyboard language used.
* the "Print" key is for some reason not detected by my code (although it is listed as a viable KeyCode in Unity).

Link to comment
Share on other sites

  • 1 month later...
1 hour ago, Seik said:

Hi there,

I dunno how to start/activate KISS - none of the shortcuts open a dialog beside the normal KSP-ones.

Greetings
Seik

 
On 4/24/2016 at 1:32 PM, Aerospike said:

Instructions

Press F8 to bring up the KISS dialog (you can reconfigure the shortcut in the settings panel of KISS).

You can:

  • store a quicksave with the provided default filename.
  • store a quicksave with any name you want.
  • get the name of a previous quicksave from the list by clicking it once. Now you can overwrite that quicksave by clicking "Save", or modify the filename to store a new quicksave with a similar name.
  • directly overwrite an existing quicksave by double clicking it.
  • reload the default filename suggestion by clicking the "Default" Button.
  • Click on the sprocket button in the upper right corner to show settings panel where you can configure the behavior of KISS.

Attention: When you enable the "Quicksave mode" to save the game without showing the GUI, you have to press MOD + F8 (or MOD + <yourCustomKeyBinding>) to show the interface again!

 

Welcome to the forums!

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...