You will need to have BepInExPack and R2API installed before you can use other mods.
Saves your progress at the start of the stage so you can load later
Last updated | 2 weeks ago |
Total downloads | 77421 |
Total rating | 45 |
Dependency string | KingEnderBrine-ProperSave-2.6.1 |
Dependants | 34 other mods depend on this mod |
Unified BepInEx all-in-one modding pack - plugin framework, detour library
Preferred version: 5.3.1Saves your progress at the start of each stage. You can leave run as soon as the stage started.
Only 1 save file for each profile for a singleplayer. If you die, the save will be deleted.
Only the host must have this mod for it to work.
A Load
button will be active if you are host and was found suitable save file (if save file has the same set of players as in the current lobby).
Each game mode (for now Classic
and Eclipse
) has it's own save files, so that you can switch between game modes and not losing your progress.
To save data you need to subscribe to ProperSave.SaveFile.OnGatgherSaveData
. It will be called every time the game is saved (this happens on RoR2.Stage.onStageStartGlobal
) to gather info from mods that needs to be saved. You can add any value with any key, but remember that other mods can do the same thing, so keep keys unique (maybe add a mod name in front or something).
I would suggest adding only one object per mod because the type of the object is also stored to be able to deserialize objects, and it can take a lot of space in comparison with stored value.
An object that you add in the dictionary will be serialized to JSON. Here is some info about serialization:
[DataMember()]
attribute from System.Runtime.Serialization
to specify custom name for property/field in json file.[IgnoreDataMember]
attribute from System.Runtime.Serialization
to specify that this public property/field should be ignored on serialization.Once save file is loaded you can get data you've previously saved and apply it anytime you want. Here are some things that will help you with that:
ProperSave.Loading.IsLoading
- you can use this to check if the ProperSave
is loading.ProperSave.Loading.FirstRunStage
- you can use this to check if run is starting. Is set to true
on RoR2.Run.Start
, is set to false
on RoR2.Stage.onStageStartGlobal
ProperSave.Loading.OnLoadingStarted
- event, fired when IsLoading
set to true (this happens after save file is loaded into memory, before run started).ProperSave.Loading.OnLoadingEnded
- event, fired when IsLoading
set to false (this happens after RoR2.TeamManager.Start
because this is the last step of loading process).ProperSave.Loading.CurrentSave
- current save file, you can access it after OnLoadingStarted
. Will be overwritten every time game is saved.CurrentSave.GetModdedData<Type>("")
- use this method to get data that you've saved.ProperSave.Data
- under this namespace you can find classes used to save some of vanilla data. I tried to save all necessary data so that when you load the game would continue as it should have been without saving.
2.6.1
2.6.0
Load
button or hold load button on a gamepad.2.5.3
2.5.2
2.5.1
2.5.0
2.4.5
StartingItemsGUI
support. Hopefully, this is the last time. Thanks Phedg1
for making changes to StartingItemsGUI
that will make my mod support last longer.2.4.4
StartingItemsGUI
support.2.4.3
2.4.2
2.4.1
StartingItemsGUI
support.2.4.0
1.0.1.1
version. Old saves are not compatible with new version!2.3.2
StartingItemsGUI
support. (This time for real)2.3.1
TemporaryLunarCoins
support.StartingItemsGUI
support.2.3.0
ShareSuite
support. (No longer reseting gold to 0 when loading run).BiggerBazaar
support.2.2.2
Load
button being active when returned to lobby after death.2.2.1
2.2.0
RoR2
release.Continue
button from the main menu (for game modes support).2.1.1
2.1.0
StartingItemsGUI
support. (Items adding disabled while loading the game). Requested by Thunderer1101
on GitHub.2.0.0
lockbox
from Rusted key
not spawned when loading game.1.1.0
TemporaryLunarCoins
mod support. When loading game lunar coins will be restored.1.0.1
1.0.0
Please note that the install buttons only work if you have compatible client software installed. Otherwise use the zip download links instead.