{"id":13785382,"url":"https://github.com/mtkennerly/ludusavi-playnite","last_synced_at":"2025-04-04T13:05:17.321Z","repository":{"id":38792316,"uuid":"283119552","full_name":"mtkennerly/ludusavi-playnite","owner":"mtkennerly","description":"Playnite plugin for save backups via Ludusavi","archived":false,"fork":false,"pushed_at":"2024-12-31T15:35:57.000Z","size":1609,"stargazers_count":199,"open_issues_count":6,"forks_count":11,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-28T12:01:43.728Z","etag":null,"topics":["backup","playnite","playnite-extension","saves","videogames"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mtkennerly.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-28T06:18:36.000Z","updated_at":"2025-03-25T16:19:12.000Z","dependencies_parsed_at":"2024-04-27T20:27:42.634Z","dependency_job_id":"f1319d5f-91dc-4283-b218-26be86427c6d","html_url":"https://github.com/mtkennerly/ludusavi-playnite","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtkennerly%2Fludusavi-playnite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtkennerly%2Fludusavi-playnite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtkennerly%2Fludusavi-playnite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtkennerly%2Fludusavi-playnite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mtkennerly","download_url":"https://codeload.github.com/mtkennerly/ludusavi-playnite/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247174454,"owners_count":20896078,"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":["backup","playnite","playnite-extension","saves","videogames"],"created_at":"2024-08-03T19:00:59.818Z","updated_at":"2025-04-04T13:05:17.262Z","avatar_url":"https://github.com/mtkennerly.png","language":"C#","funding_links":[],"categories":["Generic"],"sub_categories":[],"readme":"# Ludusavi for Playnite\nThis project is a [Playnite](https://playnite.link) plugin\nto back up your save data using [Ludusavi](https://github.com/mtkennerly/ludusavi).\n\n## Features\n* Known save locations for more than 10,000 games.\n* On-demand backup and restore for all saves.\n* Automatically back up a game when you finish playing it\n  and even periodically during play.\n\nThe [info on what to back up](https://github.com/mtkennerly/ludusavi-manifest)\nis ultimately sourced from [PCGamingWiki](https://www.pcgamingwiki.com/wiki/Home),\nso please contribute any new or fixed data back to the wiki itself,\nand your improvements will be incorporated into Ludusavi's data as well.\n\nIf you'd like to help translate this plugin into other languages,\n[check out the Crowdin project](https://crowdin.com/project/ludusavi-playnite).\n\n## Setup\n### Ludusavi\n**You must download and install Ludusavi itself in addition to this plugin.**\n\nRefer to the [Ludusavi project](https://github.com/mtkennerly/ludusavi)\nfor instructions on how to install Ludusavi itself.\nLudusavi 0.24.0 or newer is recommended for full functionality,\nbut version 0.7.0 or newer will work (albeit without some features enabled).\n\nBy default, the plugin will look for the Ludusavi executable in your `PATH` environment variable,\nbut you can also configure the plugin with the full path to the executable.\n\n### Plugin\nYou can download the plugin from the\n[releases page](https://github.com/mtkennerly/ludusavi-playnite/releases).\nThere are two ways to install it:\n\n* Using the `*.pext` file:\n  * Download `ludusavi-playnite-v*.pext`\n  * Drag and drop the file into Playnite\n* Using the `*.zip` file:\n  * Download `ludusavi-playnite-v*.zip`\n  * Extract it into a subfolder of the Playnite extensions directory\n    (e.g., `C:/Users/\u003cYOUR_NAME\u003e/AppData/Local/Playnite/Extensions/Ludusavi`)\n\n### Configuration\nThe plugin provides some of its own configuration (see the screenshots below),\nbut you'll also need to open Ludusavi to configure it as needed.\nFor example, at this time,\nthe plugin is not able to tell Ludusavi about your Playnite library sources,\nso you'll need to configure Ludusavi's roots separately.\n\nBehavior can be overridden for specific games by using tags:\n\n| Tag                                       | Back up after play  | Restore before play | Back up non-PC platform before play | Restore non-PC platform after play |\n|-------------------------------------------|---------------------|---------------------|-------------------------------------|------------------------------------|\n| `[Ludusavi] Skip`                         | No                  | No                  | No                                  | No                                 |\n| `[Ludusavi] Game: backup`                 | Yes, without asking |                     |                                     |                                    |\n| `[Ludusavi] Game: backup and restore`     | Yes, without asking | Yes, without asking |                                     |                                    |\n| `[Ludusavi] Game: no backup`              | No                  | No                  |                                     |                                    |\n| `[Ludusavi] Game: no restore`             |                     | No                  |                                     |                                    |\n| `[Ludusavi] Platform: backup`             |                     |                     | Yes, without asking                 |                                    |\n| `[Ludusavi] Platform: backup and restore` |                     |                     | Yes, without asking                 | Yes, without asking                |\n| `[Ludusavi] Platform: no backup`          |                     |                     | No                                  | No                                 |\n| `[Ludusavi] Platform: no restore`         |                     |                     |                                     | No                                 |\n\nFor example, if the global backup-after-play option is enabled,\nbut a game is marked with `[Ludusavi] Skip`,\nthen it will not be backed up after play.\nHowever, the game will still be included when doing a full backup of all games from the menu.\n\n`[Ludusavi] Skip` takes precedence over the other tags,\nand the `no` tags take precedence over their positive counterparts.\n\nThe following tags are only informational and do not have special behavior:\n\n* `[Ludusavi] Backed up`\n* `[Ludusavi] Unknown save data`\n\n## Screenshots\n### Prompt after exiting a game\n\u003e ![Screenshot of prompt after exiting a game](docs/prompt.png)\n\n### Main menu actions\n\u003e ![Screenshot of main menu actions](docs/actions.png)\n\n### Game menu actions\n\u003e ![Screenshot of game menu actions](docs/actions-per-game.png)\n\n### Notifications\n\u003e ![Screenshot of notifications](docs/notifications.png)\n\n### Settings\n\u003e ![Screenshot of settings](docs/settings.png)\n\n## Other notes\n* The backup and restore operations run in the background after you start them.\n  You'll get a notification in Playnite when they finish.\n  If you try to start another operation before the first one finishes,\n  you'll have to wait.\n* When processing specific games via the context menu,\n  the plugin will try to look them up a few ways,\n  in this order of precedence:\n\n  * Steam ID (if applicable)\n  * Title\n  * Normalized title (if enabled in the plugin settings)\n    * For example, \"Some Game: Special Edition (2022)\" normalizes to just \"Some Game\".\n\n  Playnite and Ludusavi don't always use the same name for each game,\n  so that's why these fallbacks are needed.\n  If a match is found with a different name than in Playnite,\n  then the notification will include `Playnite Title (↪ Ludusavi Title)`.\n* After doing a full backup/restore of all games, you can click the notification to see the list.\n  There, \"+\" denotes a newly found game, and \"Δ\" denotes a game whose saves have changed.\n* For backups, the plugin always sets Ludusavi's `--merge` flag.\n  This way, if you back up saves for one game,\n  it will not interfere with any backups you may have for another game.\n* Although Ludusavi only knows about PC games by default,\n  you can add custom entries in Ludusavi for non-PC games if you'd like.\n  The plugin provides a setting to either look up those custom entries\n  by the game's name on its own or with a suffix,\n  in case you need multiple custom entries for the same game name on different platforms.\n\n  Within the suffix, you can write `\u003cplatform\u003e`\n  and it will be replaced by the actual platform name.\n  For example, if you enable the default suffix\n  and you'd like a custom entry for `Some Game` on Nintendo 64,\n  then in Ludusavi you would create a custom entry called `Some Game (Nintendo 64)`.\n* If you want a single custom entry for all games on a particular non-PC platform\n  (such as when all of the saves for that platform are in a single memory card file),\n  you can enable the \"back up save data by platform name\" setting.\n  You will just need to create a custom entry in Ludusavi with the same name as the platform.\n\n## Development\nPlease refer to [CONTRIBUTING.md](./CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtkennerly%2Fludusavi-playnite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmtkennerly%2Fludusavi-playnite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtkennerly%2Fludusavi-playnite/lists"}