{"id":14960907,"url":"https://github.com/jonasdem/quicksave","last_synced_at":"2025-10-24T19:30:36.082Z","repository":{"id":179975073,"uuid":"236361075","full_name":"JonasDeM/QuickSave","owner":"JonasDeM","description":"State saving for Unity DOTS","archived":false,"fork":false,"pushed_at":"2023-12-04T13:28:32.000Z","size":119,"stargazers_count":55,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-10T10:24:10.672Z","etag":null,"topics":["dots","ecs","unity","unity-dots","unity-scripts","unity3d"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JonasDeM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.MD","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-01-26T19:03:36.000Z","updated_at":"2024-10-10T06:15:20.000Z","dependencies_parsed_at":"2023-12-04T14:54:33.061Z","dependency_job_id":"80508ca6-368d-444b-8df1-d85201a8b1be","html_url":"https://github.com/JonasDeM/QuickSave","commit_stats":null,"previous_names":["jonasdem/quicksave"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonasDeM%2FQuickSave","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonasDeM%2FQuickSave/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonasDeM%2FQuickSave/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonasDeM%2FQuickSave/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JonasDeM","download_url":"https://codeload.github.com/JonasDeM/QuickSave/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219868063,"owners_count":16555878,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dots","ecs","unity","unity-dots","unity-scripts","unity3d"],"created_at":"2024-09-24T13:23:24.433Z","updated_at":"2025-10-24T19:30:35.655Z","avatar_url":"https://github.com/JonasDeM.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"![quicksavebanner](https://user-images.githubusercontent.com/23634827/218306750-7084d9a7-b36d-42c8-872b-dc86b690cfb5.png)\n*For any commercial work you can buy the asset on the Unity Asset Store [here](https://assetstore.unity.com/packages/tools/utilities/quicksave-state-saving-for-dots-246695).\nThis repository comes with a restrictive [non-commercial license](LICENSE.MD).*\n\n## In Short\nThis Unity DOTS-related package enables you to asynchronously load and save state on entities without the need for any feature-specific code.  \nThe highly optimized implementation makes it a solid foundation for ambitious features since it can easily run on every frame.  \n\n\nThis version of the package supports Entities 1.0.11, it will get updated as unity releases new versions of their Entities package.\n\n## Getting Started\n* [Package Manual](PackageManual.md)\n* [Demo Project](https://github.com/JonasDeM/QuickSaveDemo)  \n\n## Potential Use Cases\nDepending on what state you choose to save, anything is possible.  \nYou can choose to save the whole state of your application (given it is in ECS), maybe you choose to only save a handful of gameplay entities for a certain game mechanic, or you can do anything inbetween!  \nHere are some ideas:\n* Replay System\n* Level Reset without reloading scenes\n* World Streaming \u0026 World State Saving\n* Time-rewind Gameplay\n* User Generated Content\n* QA Testing \u0026 Bug Reproduction\n* Networking\n\n## Project Pillars\n\n#### Easy to Use\n* Stores the state from any set amount of entities into one simple array\n* No need for any state-specific saving or loading code\n* ECS API with all the benefits of Unity's safety systems\n\n#### Performant\n* All code is Burst compiled \u0026 most of the work is done in async jobs\n* Single schedule call per container\n\n#### Scalable\n* Partitions savedata by subscenes (or by any other GUID)\n* Stores user-defined state in binary format\n* (Planned for 2.0) LZ4 + Delta Compression\n\n#### Extendable\n* Make \u0026 Manage your own QuickSaveSystems\n* Make \u0026 Manage your own Containers\n\n## Current Limitations\n* No support for quicksaving SharedComponentData, ChunkComponentData or any components with references/pointers.  \nThe Package Manual helps with working with this limitation.  \nSupport for this is technically possible, but would come with additional complexity \u0026 loss of performance.  \n* No support for quicksaving destruction/creation of entities. Use the 'Disabled' component \u0026 quicksave that.  \nThe QuickSave Demo Project gives an example on how to implement a constant-size pool for dynamically spawnable prefabs.  \nSupporting variable-sized containers is being looked at, but not guaranteed to see the light of day.\n\n## Goals for 2.0 release:\n* Compression in the default serialization implementation.\n* Versioning \u0026 Upgradability of serialized state.\n* Improved support for dynamically spawned entities.\n* Inspector for containers.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonasdem%2Fquicksave","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonasdem%2Fquicksave","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonasdem%2Fquicksave/lists"}