mtkennerly / ludusavi-playnite

Playnite plugin for save backups via Ludusavi
MIT License
141 stars 9 forks source link

[Feature Request] Option to generate `.ludusavi.yaml` for selected games in playnite #54

Closed rosystain closed 6 months ago

rosystain commented 1 year ago

I really like the secondary manifests that were implemented in the latest update. Now I can use a text editor to link the game to the save path easily. It would be very cool if I could bind the savedata location with a game directly in Playnite and then generate .ludusavi.yaml in its installation directory.

mtkennerly commented 1 year ago

Hi! Do you want an interface where you can type in the details that should go into .ludusavi.yaml, and then be able to save that information to the file?

Ludusavi itself does have the custom games screen where you can type that information in (you can also click the thee dots by a game and choose "customize" to auto-populate a custom entry with the existing info), but it lives in Ludusavi's config file rather than in separate .ludusavi.yaml files (although you can certainly manage the config file with a text editor if you like).

If Ludusavi had an option to export a custom game into its own file, would that give you what you're looking for? I think this feature would belong in Ludusavi itself rather than in the Playnite plugin, although the plugin could certainly have an option to quickly open Ludusavi's custom games screen.

rosystain commented 1 year ago

Thank you for the reply.

A Playnite plugin can get the exact title and installation path of the game from Playnite. That is the main difference compared to standalone Ludusavi.

If I can generate .ludusavi.yaml from Playnite, it would save a lot of time from copying the yaml template to the game folder or copying the game title from Playnite to the yaml.

Then the only thing I need to do is to specify a save path for a game, and that could be the only part of interaction in Playnite.

mtkennerly commented 1 year ago

That makes sense. I think something like this could work and give you the same benefits:

(Internally, this would need some new CLI options, like ludusavi customize "Game Title" --install-dir ... and ludusavi gui --show custom-games)

For your use case, does it specifically matter whether it's stored in Ludusavi's config.yaml or in a separate .ludusavi.yaml? Just want to make sure I understand your needs. For example, maybe you want to share the custom game entries on multiple computers, but you don't want to share the entire Ludusavi config? I'm curious if there are other ways to solve the same need, like having a custom-games.yaml separate from config.yaml.

rosystain commented 1 year ago

Both config.yaml and .ludusavi.yaml are fine.

I prefer .ludusavi.yaml because it is more flexible.

Some indie games and visual novels store savedata to their own installation folder and many of them are not recorded in PCGamingWiki. I made a script to detect them and generate config for Ludusavi. In my case, making a .ludusavi.yaml is much easier than rebuilding the config.yaml.

mtkennerly commented 1 year ago

I made a script to detect them and generate config for Ludusavi.

Ah, nice. That's a cool way to use the feature :+1:

When I get a chance, I'll try prototyping ways to streamline this workflow.

ArreCapClassique commented 1 year ago

That makes sense. I think something like this could work and give you the same benefits:

  • In Playnite, right click on a game and choose "Ludusavi -> Create custom entry"
  • Ludusavi automatically opens to the custom games screen
  • A new custom entry is automatically added with the game's name, installation folder, and any known save paths

(Internally, this would need some new CLI options, like ludusavi customize "Game Title" --install-dir ... and ludusavi gui --show custom-games)

For your use case, does it specifically matter whether it's stored in Ludusavi's config.yaml or in a separate .ludusavi.yaml? Just want to make sure I understand your needs. For example, maybe you want to share the custom game entries on multiple computers, but you don't want to share the entire Ludusavi config? I'm curious if there are other ways to solve the same need, like having a custom-games.yaml separate from config.yaml.

is this function implemented in the latest version?

mtkennerly commented 1 year ago

No, it's not implemented yet. I'm still planning on it, but I can't say for sure when it will be ready.

rosystain commented 1 year ago

I made a simple plugin to build .ludusavi

That makes sense. I think something like this could work and give you the same benefits:

  • In Playnite, right click on a game and choose "Ludusavi -> Create custom entry"
  • Ludusavi automatically opens to the custom games screen
  • A new custom entry is automatically added with the game's name, installation folder, and any known save paths

(Internally, this would need some new CLI options, like ludusavi customize "Game Title" --install-dir ... and ludusavi gui --show custom-games) For your use case, does it specifically matter whether it's stored in Ludusavi's config.yaml or in a separate .ludusavi.yaml? Just want to make sure I understand your needs. For example, maybe you want to share the custom game entries on multiple computers, but you don't want to share the entire Ludusavi config? I'm curious if there are other ways to solve the same need, like having a custom-games.yaml separate from config.yaml.

is this function implemented in the latest version?

I have made a simple script ludusavi-generator to generate the .ludusavi.yaml , hoping it will be helpful for you.

mtkennerly commented 6 months ago

I'll close this for now in favor of your plugin. It looks like a good solution :)