Giter Club home page Giter Club logo

jasm's Introduction

JASM - Just Another Skin Manager

JASM is a skin manager for a certain game. Made using WinUI 3 with WinAppSDK. I made this for fun, for myself and to learn WinUI, but it kinda took off over time.

There may be some "GIMI-ModManager" references throughout the app, that is what I originally called this project. I'll change them eventually.

Download link and images are also available over at GameBanana

This is still in an early stage of development. Make backups and use at your own risk โš ๏ธ

Unhandled exceptions are written to the Logs file as well. Debug logging can be enabled in appsettings.json

Features

  • Pretty UI ๐Ÿ‘€
  • Drag And Drop files directly into the app
  • Automatically sort unsorted mods into respective character's folders
  • Move Mods between characters
  • Start a 3Dmigto launcher and/or a certain game straight from the app
  • The app watches character folders and automatically updates if skins are added or removed from folders.
  • Edit merged.ini keys
  • Export (copy) all mods managed by JASM to a user specified folder
  • Refresh mods using F10 or the refresh button in app. (Requires an elevated side process, see description bellow)

Hotkeys

  • "SPACE" - In character view, toggles selected mods on/off
  • "F10" - Refresh Mods in the game, if the elevator process and a certain game is running
  • "F5" - In character view, refresh the character's mods from disk
  • "CTRL + F" - In character overview, focus on the search bar
  • "ESCAPE" - In character view, Go back to character overview
  • "F1" - In character view, opens selectable in-game skins

Download

Latest release can be downloaded either from GameBanana or from the Releases page. To start the app run JASM - Just Another Skin Manager.exe in JASM/ folder, I suggest creating a shortcut to it.

Latest development release can be downloaded from Actions Tab these are automatically built from the main branch and are '''usually stable''' but not necessarily โš ๏ธ

  1. Link to the latest successful build
  2. Select the latest build (top of the list)
  3. Scroll down to the "Artifacts" section and click the "Upload JASM" link to download.

Requirements

If you don't have these downloaded the application will prompt you to download necessary dependencies and provide links.

Elevator process

The elevator process is a small program that can be started as an elevated process from the app. It is completely optional and is kind of a niche feature. It is used to send the F10 key to the game to refresh the mods. Enabling and disabling mods in JASM will also automatically refresh the mods. This is done through named pipes. The process does not listen for keybinds it only waits for a simple "1" command from the app. This makes it send the F10 key to the game.

The H.InputSimulator library is used to send keyboard input.

Limitations and Acknowledgements

  • The Json file that stores the the game characters is a modified and stripped down version of this genshin-impact-tools and some of the images are also from the same repository.
  • The Json file that stores the weapons is a modified and stripped down version of this genshin-impact-tools and the weapon images are also from the same repository.
  • 7-Zip is bundled with the app, 7-Zip is licensed under the GNU Lesser General Public License (LGPL). You can find the full license details and source code at www.7-zip.org.
  • SharpCompress is used if the bundled 7-zip is not found. SharpCompress is licensed under the MIT license. You can find the full license details and source code at SharpCompress's GitHub Page
  • WinUI3Localizer is used for localization. WinUI3Localizer is licensed under the MIT license. You can find the full license details and source code at WinUI3Localizer's GitHub Page
  • I have tested this app mostly on two machines running Windows 11. I have tested it on Windows 10 in a virtual machine.
  • There are definitely bugs. I have not tested this app enough and there are not tests written for it.
  • Drag and drop is really finicky for some reason. It works but it's not perfect. So the code for it is still quite messy and it involved time consuming trial and error until it worked.
  • Changing the app's theme causes instability and usually it crashes when navigating to another page. This means it needs to restart after changing the theme
  • I made everything in dark mode theme, so light mode does not look good.
  • App settings are stored here C:\Users\<username>\AppData\Local\JASM\ApplicationData
  • Mod specific settings are stored within the mod folder themselves and are prefixed with .JASM_. When exporting mods, these files can be ignored.

Contributing

If you want to contribute to this project, feel free to do so. I am not a professional developer when it comes to WinUI and I am still actively learning. Contributing CONTRIBUTING.md

The code has progressively gotten more spaghettified over time ;_;

So be aware that the code is not super clean...

Building from source

  • I suggest following the Install tools for the Windows App SDK tutorial.
  • From then on it should be a simple git clone https://github.com/Jorixon/JASM
  • Then inside the cloned folder, click on JASM\src\GIMI-ModManager.sln or open it trough Visual Studio.
  • Then right click GIMI-ModManager.WinUI project in the sidebar and then click publish and click publish again.
  • In the target location the application should have been built.

FAQ

JASM does not start anymore

I believe this is due to some oddity with WinAppSdk not installing correctly. I do not know what causes this. A temporary (permanent?) solution is to use the self contained version of JASM that does not require WinAppSdk or .NET. See the releases page SelfContainted_JASM_vx.x.x.7z. Ref #72 and #171

Another potential fix if JASM used to work, is to delete the JASM user settings folder. This will wipe your settings i.e. presets, folder paths etc. However, your mods will be untouched as well as the mod settings like custom display name and images. JASM settings are stored here: %localappdata%\JASM / C:\Users\<username>\AppData\Local\JASM. You can start by deleting each game settings folder to see if it helps, alternativly just delete the entire folder. Presets are stored inside the preset folder. Might be a good idea make a backup first.

jasm's People

Contributors

jorixon avatar github-actions[bot] avatar jeffvli avatar pyrageis avatar abdei1 avatar yuukidach avatar davoleo avatar effortlessfury avatar rasan147 avatar kanonmelodis avatar

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.