Fractal Softworks Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Starsector 0.97a is out! (02/02/24); New blog post: Planet Search Overhaul (07/13/24)

Pages: [1] 2 3 ... 5

Author Topic: SMOL: The big mod manager & utility  (Read 45402 times)

Wispborne

  • Captain
  • ****
  • Posts: 467
  • Discord: wispborne
    • View Profile
SMOL: The big mod manager & utility
« on: March 29, 2022, 11:28:38 PM »


A full-featured mod manager and toolkit.



This is not being further developed (but still works)
I have switched development to TriOS instead, due to unfixable performance issues in SMOL caused by the underlying platform, Jetbrains Compose.

SMOL is licensed under GPLv3, so anybody is free to make their own version.


For Windows 10+ only. Unix users, see if AtlanticAccent's MOSS will work for you.

Download

To use the in-app web browser*
1. Download the JCEF exe from https://github.com/wispborne/SMOL/releases/download/smol-0.12.0/jcef-v1.0.18.exe.
2. Run the exe and choose the libs folder in your SMOL folder to extract it to.
3. Launch or relaunch SMOL.



Source Code



* The self-updater uses git, and libcef.dll is > 50mb so it requires LFS, which is a giant pain, and so CEF is a standalone download instead.




Screenshots
Album: https://imgur.com/a/XL8FIVG
Spoiler
Home screen
Theme: Starfarer (default)


Mod Browser
Theme: One Dark


Mod Profiles
Theme: Tidal


Settings
Theme: Sigma


Quick open


Please help I can't stop making themes

[close]

Features
- Mod Browser to view and install mods from the Forums and Discord's #mod_updates without leaving SMOL.
- Quickly switch between mod versions.
- Mod Profiles allow swapping between different groups of mods/versions easily.
  - Make a new profile for a new save, or keep a barebones profile for mod development.
- Easily assign more (or less) RAM to the game.
- Auto-install JRE 8 for better performance and switch JREs with a click.
- VRAM impact estimates for each mod.
- Version checker support.
  - Supports Direct Download, for mods that have added it.
  - Displays Changelogs, for mods that support it via the .version file.
- Drag'n'drop or file browser mod installation.
  - Detects and fixes incorrect mod folder nesting.
- Warns and provides fixes for missing mod dependencies.
  - eg. if LazyLib is disabled, a button is shown to enable it. If it is not found, a button appears to search for it online.
- Works alongside manual mod management; you are not locked into using SMOL.
- Delete Tips and see which mod added which tip.
- Built-in and easily configurable themes.
- Self-update downloads only what's needed.


Known Issues
There will be bugs: If you find one that isn't listed here, let me know!
- Doesn't start at all.
    Fix: move it out of your Starsector folder or put it in another folder.
    Fix: Run it as Admin.
- Browser is on top of everything and doesn't immediately disappear when switching tabs.
    I don't have a way to fix this. JetBrains is aware of the issue: https://github.com/JetBrains/compose-jb/issues/1087
- The window just shows a white screen.
    Your computer doesn't support DirectX 12. Follow the instructions here, BUT instead of typing "SOFTWARE", type "OPENGL" (opengl is much faster):
Spoiler
[close]

FAQ
Why is it so huge? 400 MB?!
Two main reasons.

- First, because the embedded browser, JCEF, is 219 MB on its own. You can delete this (remove the jcef folder from libs) and SMOL will work, but you won't be able to use the Mod Browser.
- Second, because the UI framework, Compose for Desktop (by JetBrains), is about 100 MB on its own.

Add in other dependencies (7zip to extract mods, json/xml parsing, Kotlin's standard libs, etc) and it ends up being...not very smol. The actual code I wrote is less than 3 MB.

SMOL or MOSS?
MOSS is much smaller and a bit less buggy, but doesn't have quite as many features (multiple mod versions, mod profiles).
Give them a shot and see what works best for you - maybe it's a combination of both.

Why make a second mod manager?
Ackchyually, this is the third - Vortex works as well.
- I wanted to learn JetBrains's new Compose framework, since I am an Android developer in my boring life.
- MOSS hadn't gotten an update in a while when I started, so I thought it was abandonware. Whoops.
- I wanted to try my hand at an user-friendly, clean, and intuitive UI, as UI design is somewhat of a passion.
    I'm pretty happy with the result on that front, but it's also clear that a career change to UI/UX design would not end well for me.
- I wanted to add a bunch of utility features that weren't in MOSS, such as integrating my VRAM checker, JRE switching/downloading, etc.
- I didn't want to learn Rust, which MOSS is coded in, nor share a codebase or vision with someone I didn't know.
    Hey, part of the draw of modding is that you can meet desires that aren't being filled by your real job, like creative freedom.
- The fragmentation of mods between various boards on this forum, the Unofficial Discord server and NexusMods has bugged me for a while and I thought I could help to address that.
    This is still in progress, but bringing together mods on the forum and Discord is a start that I'm pleased with.

Where's the data for the Mod Browser come from?
Nobody has asked this but I want to talk about it anyway.
Periodically (currently twice a day), a program I wrote scrapes the forum (with permission) and uses a Discord bot to collect all of the mods it can find. It's running on a Raspberry Pi. It then does its best to merge all of that data together so that mods in, say, the Index, Modding forum, and Discord are all combined to one mod and don't show up as three separate ones. This part isn't perfect, as the matching is done based on the mod name and author.

Then, it puts that into a json file on GitHub. When SMOL runs, it downloads that file and displays the contents on the Mod Browser page. This is why new mods won't show up in SMOL's Mod Browser immediately; it isn't searching live, as that would cause far more strain on the forums than necessary.

Can I use that big list of mods?
Another question nobody has asked yet, but yes. You can view it here: https://starmodder.pages.dev/mods/home/. New users are sometimes confused by how many different places there are to get mods - it's a very different system than Steam Workshop.

For Mod Authors: How to support SMOL (spoiler: no changes needed)
Spoiler
SMOL uses the existing files, primarily mod_info.json and Version Checker. As long as you support VC properly, SMOL will show updates.
That said, there is an unofficial, entirely optional, addition to VC that both SMOL and MOSS support, and that is "directDownloadURL", Direct Download URL.
Adding
Code
"directDownloadURL": "https://path/to/mod.zip" 
will give the user in SMOL and MOSS to download an update file directly without ever leaving the application. The user is heavily warned that the update may be save-breaking and they should read the changelog, but you know they won't.

If your mod is posted in the USC Discord and you do not want it included, reply to your mod post with the spiderweb emoji to opt out of being added to the Mod Browser.
[close]

Bugs? Suggestions? Questions? Want me to talk about why you should be coding in Kotlin instead of Java until you can't take it any more? Ping me on Discord @Wisp#0302, or just leave a comment in this thread.

Changelog
https://github.com/wispborne/SMOL_Dist/releases


Credits, listed chronologically by involvement
- Fractal Softworks for making Starsector and for permission to scrape the forum periodically.
- MesoTroniK for consulting and brainstorming the whole way through.
- Soren/Harmful Mechanic for feedback.
- rubi/RustyCabbage for feedback, QA, and morale/moral support.
- AtlanticAccent for open-sourcing his Mod Manager, allowing me to peek under the hood (I copied almost nothing, I swear!) and being a great competitor :)
- ruddygreat for feedback and QA.
- Tartiflette for the idea to disable mods by renaming the mod_info.json file, the SMOL icon, and other feedback.
- The rest of the USC moderator team for feedback.

Someone asked if I had a tip jar so now I do: https://ko-fi.com/wispborne

« Last Edit: August 08, 2024, 10:44:40 AM by Wispborne »
Logged
Mod Managers: TriOS & SMOL | Mod: Persean Chronicles | Tool: VRAM Estimator | Tool: Forum+Discord Mod Database | If I'm inactive for 3 months, anyone can use any of my work for anything (except selling it or its derivatives).

Wispborne

  • Captain
  • ****
  • Posts: 467
  • Discord: wispborne
    • View Profile

<reserved>
(i've always wanted to do this)
« Last Edit: April 04, 2022, 12:47:16 PM by Wispborne »
Logged
Mod Managers: TriOS & SMOL | Mod: Persean Chronicles | Tool: VRAM Estimator | Tool: Forum+Discord Mod Database | If I'm inactive for 3 months, anyone can use any of my work for anything (except selling it or its derivatives).

tomatopaste

  • Captain
  • ****
  • Posts: 316
    • View Profile
Logged

Wispborne

  • Captain
  • ****
  • Posts: 467
  • Discord: wispborne
    • View Profile

help i literally don't use that alias outside of spotify

congrats on the forum release :D

Whoops, fixed. Thank you!
Logged
Mod Managers: TriOS & SMOL | Mod: Persean Chronicles | Tool: VRAM Estimator | Tool: Forum+Discord Mod Database | If I'm inactive for 3 months, anyone can use any of my work for anything (except selling it or its derivatives).

Vundaex

  • Commander
  • ***
  • Posts: 148
    • View Profile

Boy, this looks absolutely fantastic.
I haven't tried it yet, and I'm not sure from the screenshots, but is it possible to delete mods directly from the Manager? Or open the mod folder from there?
Keep it up!
Logged

Wispborne

  • Captain
  • ****
  • Posts: 467
  • Discord: wispborne
    • View Profile

Boy, this looks absolutely fantastic.
I haven't tried it yet, and I'm not sure from the screenshots, but is it possible to delete mods directly from the Manager? Or open the mod folder from there?
Keep it up!

Both, yes.
You can right-click a mod to open a menu that allows you to open its mod folder or to delete the mod (choosing from between different versions if you have multiple installed).
There's also a shortcut in the main menu to open the game's /mods folder.

edit: pictures

« Last Edit: March 31, 2022, 10:03:12 AM by Wispborne »
Logged
Mod Managers: TriOS & SMOL | Mod: Persean Chronicles | Tool: VRAM Estimator | Tool: Forum+Discord Mod Database | If I'm inactive for 3 months, anyone can use any of my work for anything (except selling it or its derivatives).

Vundaex

  • Commander
  • ***
  • Posts: 148
    • View Profile

Well, great work! I wish this was part of the base game! :)
Logged

Wispborne

  • Captain
  • ****
  • Posts: 467
  • Discord: wispborne
    • View Profile

Fixed
  - Fixed Mod Browser dialogs appearing in center of screen where they get cut off.
  - Fixed version comparison for mods like Carter's Free Traders with 0.35 and 0.4 in modinfo but 0.3.5 and 0.4.0 in VC (thanks to Kosm).
  - Fixed version comparison for mods that use json object for version.
  - Fixes Mod Browser tags being wrong.
  - Fixed enabling/disabling a mod resetting your search.
  - Fix mods with invalid VC files not installing (now the VC file will be ignored).
  - Fixed version wrapping (and small perf improvement).

Added
  - Opt out of Discord scraping by reacting with a spiderweb emoji (the forum doesn't let me post the emoji lol).
  - Added debug and download buttons for scraped mods.
  - Added a button to repair (restart) embedded browser.
  - Display vanilla vram use.
  - Added janky auto-complete for categories, (JetBrains please make a real one).
  - Dialog prompt to replace mod folder if the mod+version already exists.

Changed
  - Version Checker last lookup is now per-mod.
  - Remove margin on top of mod group header.
  - Check for app update after updater update is installed.
  - Remove direct launch option from SMOL entirely. It's too unreliable.
Logged
Mod Managers: TriOS & SMOL | Mod: Persean Chronicles | Tool: VRAM Estimator | Tool: Forum+Discord Mod Database | If I'm inactive for 3 months, anyone can use any of my work for anything (except selling it or its derivatives).

Jang

  • Lieutenant
  • **
  • Posts: 77
    • View Profile

Hello, I've been using SMOL for a few weeks now and it's been great! I do run into a small issue sometimes, where upon launch SMOL seems to get hung up on checking for mod updates. I'm able to make the update check succeed by navigating to the Mod Browser tab, so it doesn't really affect functionality for me. Here's all the console text from one of these incidents: https://pastebin.com/CmHjxz08 . I don't do anything except launch SMOL and, at the very end, navigate to the Mod Browser which stops the console spam.
Logged

Wispborne

  • Captain
  • ****
  • Posts: 467
  • Discord: wispborne
    • View Profile

Hello, I've been using SMOL for a few weeks now and it's been great! I do run into a small issue sometimes, where upon launch SMOL seems to get hung up on checking for mod updates. I'm able to make the update check succeed by navigating to the Mod Browser tab, so it doesn't really affect functionality for me. Here's all the console text from one of these incidents: https://pastebin.com/CmHjxz08 . I don't do anything except launch SMOL and, at the very end, navigate to the Mod Browser which stops the console spam.

Glad to hear it (mostly) works.

The update check being weird is something I've noticed as well, but you can kind of mess around with it and it'll work, as you've found out. Scrolling up and down and hitting the Refresh button (top-left) also seems to help.

Right now, I'm focused on an update to Persean Chronicles and SMOL development is on pause, but I plan to come back to it once that update is out. It'll be a while, though...
Logged
Mod Managers: TriOS & SMOL | Mod: Persean Chronicles | Tool: VRAM Estimator | Tool: Forum+Discord Mod Database | If I'm inactive for 3 months, anyone can use any of my work for anything (except selling it or its derivatives).

Cherubael

  • Ensign
  • *
  • Posts: 1
    • View Profile

Quick things I found somewhat annoying while first exploring the MM that I hope get improved:
~JRE8 link broke
~Overlay windows are opaque and block a lot of views (maybe a windows native mouse-hover might be better for some elements? also a clickable (?) icon for the mod browser would be better than pushing the whole description when hovering over it?)
~web browser can break
What I love about this mod:
~its very easy to view updates and install them esp. ones that have compatibility with the mod manager
~easily install mods from .zip and .rar files so I dont have to constantly search for the old mods in my folder
~its real easy to modify how much RAM Starsector has access to
~lots of different options for colors and a nice font

hopefully the UI elements get ironed out, but this has already become something I can't mod starsector without
Logged

Klokinator

  • Ensign
  • *
  • Posts: 39
    • View Profile

Just want to say, this is a cool tool, but the tooltips are suuuper annoying because they always appear right on top of whatever I'm mouse-hovering. Maybe you can have them offset a little, or even a way to disable them? They don't seem to be strictly necessary a lot of the time.

Here's a video example I recorded:

https://puu.sh/Ji8cz/fea1d5dc09.mp4

If you approach tool-tipabble items from their left, you can click them. If you approach from the right, the tooltip always blocks your clicks.

Hope this helps!
Logged

Wispborne

  • Captain
  • ****
  • Posts: 467
  • Discord: wispborne
    • View Profile

I hear the feedback on the tooltips and really wish there was a way to have them move to follow the cursor, but this UI framework is too complex for me :)

I'll see about simply moving them further away from the cursor, and if there's a way to make them not block clicking.

> JRE8 link broke
Weird, I'll take a look.

> web browser can break
Yeah, unfortunately it's incredibly unreliable. Not sure how much I can do about that.
This is not as convenient, since it doesn't auto-install the mod, but it's more reliable: https://starmodder.pages.dev/mods/home/.
Logged
Mod Managers: TriOS & SMOL | Mod: Persean Chronicles | Tool: VRAM Estimator | Tool: Forum+Discord Mod Database | If I'm inactive for 3 months, anyone can use any of my work for anything (except selling it or its derivatives).

Janster

  • Ensign
  • *
  • Posts: 6
    • View Profile

Doesnt seem to work anymore, or is broken. Nothing happens on start of app.
Logged
Pages: [1] 2 3 ... 5