Coder Social home page Coder Social logo

naschorr / deep-rock-galactic-save-syncer Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 1.0 13.17 MB

Syncs the latest save file between your Steam and Xbox DRG installations with a handy GUI!

License: MIT License

C# 67.93% HTML 21.13% SCSS 8.70% CSS 0.76% JavaScript 1.47%
blazor deep-rock-galactic electronnet steam xbox save-file csharp electron

deep-rock-galactic-save-syncer's Introduction

Deep Rock Galactic Save Syncer

Build and Test

Easily keep your Steam and Xbox save files for Deep Rock Galactic synced up! That means no more lost progress when swapping between platforms to play with your friends.

Here's an example of the DRGSS interface

What?

In a perfect world, DRG would be fully cross platform, and people could play together without any issues. However, we don't live in a perfect world. Enter Deep Rock Galactic Save Syncer (DRGSS)!

Instead of dealing with the hassle of manually transferring save files and keeping track of names, DRGSS handles all of that automagically with a single click!

Features

Automatic DRG save file discovery for Steam and Xbox installations

There's no need to configure anything, just install and go!

Smart save file comparison

The save file that's progressed the most is automatically chosen to overwrite the other. In the screenshot above, the Steam save file's Driller has one more promotion than the Xbox save file, and so the Steam save file will be kept.

Granular save file comparison lets you see what's changed at a glance:

Notice that the Gunner on the left has been promoted once to Gold I, while the one on the right is still Silver III. Since the left Gunner has more promotions, it means that the left save file has likely been played more recently. The > operator in the middle confirms this.

One-click operation by default

The big button at the bottom lets you know what's going to happen when you click on it:

Override the defaults and choose the save you want to keep

Don't agree with DRGSS' choice? Click the save you'd like to keep to override it!

Quickly open your save file's directory in the explorer

Access the save files yourself with a single click! Each save file has a button that'll open it for you.

Save files are backed up during the sync operation

Chose the wrong file accidentally? Just delete the invalid one, and rename the *.backup file back to the original name. Alternatively, check out the wiki page that goes over restoring backups.

Refresh the save files

Has something changed? Hit the refresh button to update your save files before syncing.

Safe save file manipulation

DRGSS won't try to interfere with a save file while it's being written to by the game, so just hold tight until the all clear is given.

Divergent save file detection

If you've made progress with both save files separately, DRGSS will alert you of this via the button at the bottom:

To fix this, simply pick a save file to keep, and the button will become enabled again.

Kudos

This project depends on these neat projects:

Assets:

deep-rock-galactic-save-syncer's People

Contributors

naschorr avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

michaelayoub

deep-rock-galactic-save-syncer's Issues

Update main sync button to be a bit more descriptive of the operation it's performing

Usually when I recommend the app to someone, I need to give a quick rundown of how to get the saves synced up. I think this could be improved by updating the sync button to be a bit more descriptive.

"Sync Steam save with Xbox Save" might be better written as "Overwrite Steam save with Xbox save", as that's more accurate to what's happening.

Fix app update modal's button styling

The last release included some changes to the button component styling, which has (minorly) broken the "Download" button's styling in the AppUpdate modal. The button now fills its parent, and lacks any margin leading to a cramped interface with a massive button at the bottom.

Refreshing should be mandatory before a sync can happen

Right now, whenever a save file updates, the UI will prompt for a refresh to load the new values in to be inspected by the user. This is fine and dandy, however there can arise situations where a the app is prompting a sync, and then the save file is updated. Clicking the sync button before refreshing might not work as expected, as the files being synced won't necessarily align with what's being shown in the UI.

To address this, I think modifying the sync button to say "Refresh" or similar when the files have changed and then perform the refresh on click before returning to the normal sync button would be ideal.

Streamline OmniButton status to be immutable

Right now, the omni button has several methods used to control what happens to it when it should display text, is clicked on, whether or not it should be disabled, etc. I think unifying these concepts into a single immutable status that's generated after some event would be a better way forward for safety and avoiding bugs where the text of the button doesn't align with the action done when clicked.

Implement a simple GUI

Right now, using the app is a bit clumsy sometimes. Having a simple GUI for it would alleviate these issues nicely:

  1. Getting information back to the user in a cleaner, more traditional way
  2. Handle (optional) configuration smoothly
  3. Handle edge case save file comparisons, where the user should make the final decision

Update app to follow C# style guide

Really just make sure methods are in PascalCase, private members have a _ prepended to them, and const members are capitalized. There's some inconsistencies that don't look good.

Handle highly promoted dwarves better

At the moment it just renders a bunch of stars on the right, but that's not viable for a fully promoted dwarf. Maybe color coding, or a prestige number could be used to reduce the number of stars?

Improve logging output

The logging is pretty minimal at the moment, and it would be nice to have discrete files to aid in troubleshooting, should that be necessary.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.