[Savestates] Rewrite Savestate-Indexer#270
Merged
ScribbleTAS merged 19 commits intoMinecraftTAS:developfrom Oct 17, 2025
Merged
[Savestates] Rewrite Savestate-Indexer#270ScribbleTAS merged 19 commits intoMinecraftTAS:developfrom
ScribbleTAS merged 19 commits intoMinecraftTAS:developfrom
Conversation
Reimplements AbstractExtendStorage into SavestateStorageExtensions - Add JsonUtils for quickly storing Objects to json - Rename SavestateMotionStorage to ClientMotionStorage
- Hide saveXML & saveJson and exclusively use save/load as public functions - Add comment to first line in json format - [Config] Switch to json format
This indexer came originally from LoTAS-Light as a way to seperate the indexing portion from the technical side of savestating. This reduces the complexity of the, at this point, massive SavestateHandlerServer. This indexer also has the following advantages for the player: - Able to store names of savestates - New savestate folder structure, seperating the saves by worlds - Able to save the date of creation
- Update log4j config to make trace messages purple - Add savestate saving guis
- Add SubtickGuiScreen to use a GUI while in tickrate 0 - [Networking] Add writeEnum to Bufferbuilder and remove special TASmodBufferBuilder cases involving enums
5a104df to
90e7c43
Compare
- Add command help if no savestates are available and running /savestate
- Change registering of keybinds - Fix error some error messages
PancakeTAS
approved these changes
Oct 17, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Splits the indexing portion of the SavestateHandlerServer into it's own file.
The implementation is the same as LoTAS-Light with a few improvements.
All advantages of this system are outlined in my proposal to LoTAS,
which aims to unify all different indexing systems into one.
Differences to LoTAS-Light
/savestatewith no savestates shows a help text on how to get started/folder savestateswill try to open the current savestate folder for the world that the player is in:saves/savestates/<worldname>-Savestates/API changes
writeEnum()andreadEnum()to the BufferBuilder to send enums via networking. Removed specialized methods in TASmodBufferBuilder as a result.keyTypedandmouseClickedmethods in that gui, without recording themKeybindManager.getKeybind(). Changed how keybinds are regiestered as a result.Componentbuilder, a "backport" of the 1.20 library of the same name, to build ITextComponents. This made backporting all messages from LoTAS-Light a lot easierUpgrading
To use old savestates from the previous format, simply move all savestates in their own folder:
should be moved to
Then ingame, load the
Worldname-world (or type /savestate reload) and all savestates are converted to the new formatCaution
When doing this, you can't downgrade the savestates to the old format
TODO