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: Simulator Enhancements (03/13/24)

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Wispborne

Pages: [1] 2
1
General Discussion / [Guide] HDR for Starsector
« on: February 20, 2024, 04:14:39 PM »
What is this?
Nvidia came out with a GPU driver that adds HDR to SDR videos, most notably on YouTube.
Modders quickly found out it can be used to add HDR to (almost) any game, not just videos.

Paired with a good HDR screen, especially an OLED, this brings combat to life. Explosions pop, lasers shine, missiles blaze, and engines burn bright. It's not worth going out and buying a whole new monitor to experience, but if you already have one, it's 100% worth spending a few minutes setting this up.

Compatible with GraphicsLib. I had trouble using Special K with GraphicsLib last time I tried getting HDR.

Requirements
- HDR monitor
- NVidia RTX GPU
- Windows 11+

Example
With the regular Nvidia RTX HDR for videos on, just watch any YouTube video with Starsector gameplay; your game will look like that.
https://youtu.be/pLb-5SEHgsQ?t=427

Instructions

0. Make sure your drivers are updated and you have the Nvidia HDR thing on (Nvidia Control Panel - Adjust video image settings - RTX Video Enhancement - High Dynamic Range). You don't need Super Resolution on, personally I think it uses GPU power to make videos look worse.

1. Save and extract this: https://www.nexusmods.com/site/mods/781?tab=files
2. Run it, then drag and drop the java.exe file at`<starsector>/jre/bin/java.exe` into the cmd window.
3. Hit enter and then type in your graphics option, I just did "low".
4. Open Nvidia Control Panel, select Starsector's java.exe, scroll to the bottom and change `Vulkan/OpenGL present method` to `Prefer layered on DXGI Swapchain`.

Then run Starsector.exe as normal.


credit to this YouTube video for the tip about the DXGI Swapchain, which is what gets OpenGL games to work with this:
Caveats
- Using the xbox game bar to take a jxr screenshot does not properly capture the HDR, unlike when you use it on games with native HDR or Windows Auto-HDR. The jxr and png look rather lifeless compared to what you saw ingame. That's why I haven't included any screenshots here.
- It does slightly blow out highlights. You can see that the inner part of some engine glows lose a bit of color. imo this is easily worth it, but it's worth mentioning.
- This is not native HDR. It maps lighter pixels to more brightness. Text and HUD elements don't have any special treatment - that'd require built-in HDR, which will never happen.


edit: Nvidia App
The Nvidia App beta came out right after publishing this guide, and it adds official game HDR support. Read about and download it here.
However. It doesn't support multiple monitors at all. I use two monitors and the HDR option in the Nvidia App is disabled, whereas RTX HDR is working fine for me with two monitors using the "hack" in the walkthrough above.
tldr; Nvidia is working on a less hacky way of doing this but for now, follow this guide for better compatibility.

2
Modding / [Tool] Rules Reloader
« on: February 05, 2024, 01:26:44 AM »


Rules Reloader 1.0.0
A utility program for rules.csv hot-reloading.
windows/mac

Download

Problem: When editing rules.csv for a mod, you either need to re-save vanilla's rules.csv or else relaunch the game for your changes to appear.

How to use:
1. Launch Rules Reloader.
2. Launch Starsector.
3. Enable devmode. This will not work if it is disabled.

Now, edit your mod's rules.csv.
As soon as you save, the vanilla rules.csv will be "modified" (Last Updated changed without changing the file itself), which will trigger the game to reload all rules.


MacOS version not tested, let me know if it doesn't work.
source: https://github.com/wispborne/starsector_rules_helper

3
Modding / [0.97a] Magic Achievements: Vanilla Pack v1.2.4
« on: December 30, 2023, 04:45:02 PM »

Magic Achievements: Vanilla Pack
This mod adds 30+ achievements to MagicLib's MagicAchievement framework and 20+ paintjobs, some as achievement rewards, some freely unlocked.


Requires MagicLib 1.4.1 or higher

Explanation

MagicAchievements work like Steam's Achievements. They are unlocked per-game-install, not per-save. If you unlock an achievement, then reload to before you unlocked it, it's still unlocked - just like Steam. New saves will have any previous save's achievements unlocked and you can keep working to unlock them.
Most achievements in this mod have no extrinsic reward (achievements added by other mods may have other rewards). The intent is to provide players with a sense of pride and accomplishment for unlocking different achievements - and avoid player power creep.
Some achievements unlock paintjobs, which are purely cosmetic.

MagicPaintjobs are cosmetic-only sprite swaps for your fleet. They are unlocked per-game-install, not per-save. If you unlock a paintjob, then reload to before you unlocked it, it's still unlocked - just like Steam. New saves will have the same paintjobs unlocked as previous ones.
Paintjobs use additional VRAM, but are loaded after the rest of the game, so if you have a GPU with limited VRAM, consider disabling MagicPaintjobs using LunaLib's settings to reduce VRAM usage.

Images
Spoiler


[close]

Modders, want to add your own achievement or paintjobs?
Documentation can be found on the Wiki. Mostly, the documentation is "copy this mod".
Paintjobs are dead simple; a csv file and your .png.
Achievements are a bit more involved; a csv file and a Java class that extends MagicAchievement.

What about adding an achievement for X???
Feel free to leave ideas, but keep in mind that detecting the action that unlocks an achievement has to be coded. Sometimes, this is easy to do (abandoning a colony) and sometimes it's surprisingly difficult (destroy an enemy with your own explosion).

I have a paintjob I'd like to contribute
Awesome! Post it here and I'll get back to you.


Credits
BirdWanderer (paintjobs)
Amazigh (paintjobs)
Selkie (paintjobs)
Tartiflette (one paintjob taken from his tutorial)

4
0.96a RC10.
Definitely extremely low priority.

The following code, run in the same method:

dialog.getVisualPanel().hideFirstPerson();
dialog.getVisualPanel().showPersonInfo(somePerson, true, true);

causes the person's portrait to be blank.
Removing the first line (which hides the person) shows the portrait as expected.


I only tested this using the same person (they were showing onscreen, and I then hid and showed them again in the same method/tick).
I only tested using the first person, not sure if this affects the second or third person methods.

Discord links:
Report: https://discord.com/channels/187635036525166592/512356777451323393/1118221306614255627
continued: https://discord.com/channels/187635036525166592/512356777451323393/1118237761376358441

Screenshot
[close]


edit: This should have been in (modded), my mistake. The bug is in vanilla but requires a mod to surface.

5
descriptor.xml currently saves the mods, and their versions, that the save was created with. Updating your mods later will not add the new versions to the descriptor file.

While there could be UI ingame to show the "last loaded mod set", the reason for my request is more selfish: my mod manager, SMOL, allows the user to quickly load the mods that were enabled for a save (specifically, it creates a mod profile aka loadout for that save).
Because the game only records the mod versions that the save was created with, it doesn't accurately reflect what they last played with, only what versions they used when they first started the save.

My suggestion/request is to save the full mod loadout, with versions, that the save was last loaded with, in descriptor.xml.

Keeping the original loadout is important, of course, because loading a save doesn't mean that it'll still work properly, and you want to be able to reference what first worked.


Below: I last saved the game with MagicLib 1.1.2, but descriptor.xml only has 1.1.1 tracked, which is what I show in SMOL.



...and yes, I probably could use SMOL to try and track when the user saves their game by watching their /saves folder for changes, then capture the mod loadout, but that's both a bit hacky/extra work and would be SMOL-specific, rather than something that other tools could potentially use.

6
I am not the user with a problem, they asked on Discord for someone else to make a post as they can't log in.

--------
 I registered on forum, and for some obscure reason it doesn't allow me to log in. I activated my account, changed password several times (to a point of thinking that I am a lunatic) and tried a different browser, but the result is the same: when I try to log in, it says "Password incorrect", and when I try again, it shows message on a screenshot. Can someone please DM an administrator on a forum to help to fix this?
The profile link is https://fractalsoftworks.com/forum/index.php?action=profile;u=22977.

--------

Their discord id is Aer#0584.
Their computer clock is correct.
The username "Aer" is already taken; my guess would be that the ae symbol broke things. They'd like to use the same email address, rather than making a new account.
Since a new browser didn't fix it, clearing cookines or using incognito probably won't help.

7
Lore, Fan Media & Fiction / Story NPCs + AI Art
« on: March 12, 2023, 02:02:58 PM »
There are many like this but this one is mine :) I started and couldn't stop myself from doing more. These took maybe 7 hours of generation and tweaking in total (I can't bring myself to call it 'work').

Full album (but without commentary): https://imgur.com/a/I7rOEs7

Baird: Not too hard, glasses took a bit, and I think it captured her well.


Sebestyen: Was tricky to keep his expression, lost a bit of it. He's a little too saturated but overall it captures him.
Spoiler
[close]

CEO Sun: Eyes and making her not completely Caucasian were kinda tricky, otherwise fine.
Spoiler
[close]

Young Andrada: I spent AGES on Andrada and this is the best I could do. The AI really really wanted to make him look like a Civ leader. Something about his vanilla sprite.
Not thrilled with this one.
Spoiler
[close]

Current Andrada: Same as above.
Spoiler
[close]

Daud: Doesn't perfectly capture him but I was getting tired.
Spoiler
[close]

Cotton: Making photo-realistic ones is hard when they have sci-fi things that aren't really in training models. Rather than try for photoreal, I left it at this, with most of the vanilla features (headset band, scar even though it's awful) intact.
Spoiler
[close]

Coureuse: Same as above. Had to balance realistic with the green doodad.
Spoiler
[close]

Zal: Fairly happy with this one.
Spoiler
[close]

Gargoyle: They are a really hard one because of all the gadgetry and atypical style, so I'm proud of how this came out. Still a bit stylized, but it keeps almost all of their features intact while being a bit creative (like the visor shape).
Spoiler
[close]

Jaspis: Fastest of them all to make, one or two minutes. I'm sure I spent over an hour on the Andradas.
Spoiler
[close]

Kanta: Similar to Gargoyle, very tricky subject and I "rerolled" individual parts a lot to get it to where it is. Pretty pleased with the result.
Spoiler
[close]

Loke: Scars are hard. The face shape and expression was hard. One of the worst of the bunch.
Spoiler
[close]

<SUPER REDACTED>
Spoiler
[close]

Volta: Astonished that it could do this at all.
Spoiler
[close]

<redacted> captain: This one was a lot of fun. Ended up with a lot of cool-looking images, but this had a lot of floaty energy and doesn't show too much face.
Spoiler
[close]


Methodology
I am by no means an expert on this and have taken the "screw around and find out" approach to learning.
Ran on my own PC using Automatic1111's Web UI.
Model: Mostly Deliberate v2. Used Liberty just for the Andrada ones because Deliberate was making them even more video game looking.
Hypernetwork: none for most, Midjourney for the zig captain.
Sampling Method: usually DPM++ SDE Karras. Euler a was sometimes better for initial upscale.
25-50 steps for each. 7 or 8 CFG. Using img2img, start with a low Denoising Strength as an upscale, then increase the denoising on the result. Used inpainting for tweaking.
Prompts almost always included "8k, ultra realistic" and negative prompts were "cartoon, 3d, blurred".

I did no manual editing or post-processing (so imagine what an artist could do).


This was a lot of fun to do and brought the NPCs to life in a different way, like seeing the movie after reading the book. I've used it to to guided upscaling of older game sprites, namely from EV Nova, and it's quite satisfying. Not useful in any way, but ...satisfying. For older game art, it sort of creates the image that we remember it as; back in the day it didn't matter that it was 64x64, that was the norm. Seeing it today, it looks dated, but upscaling it bridges that gap of years.


BONUS: Kanta's TriTinder pic.
Spoiler
[close]

I don't know if I have any rights to these images but if I do, I give them all to Fractal Softworks. Welcome to the new world of AI, where the rules are made up and copyright doesn't matter. They're coming for my job, too.

8
Suggestions / Add planets, jump points, stars, etc to combat background
« on: February 25, 2023, 10:40:13 AM »
Secrets of the Frontier adds stellar objects near the battlefield to the background of the battle. Not only does this just look awesome, imo it also adds extra context to the battle; it ties it more to the world outside of the battle.

Here are two examples, pulled from Discord:
Spoiler
.
and another
[close]

The objects may be a bit too prevalent in these, but in motion they blend into the background more (being stationary).
And you can imagine how neat black holes look...not that one would ever fight near one, of course. Who knows how many years that kind of maneuver would cost...

9
Mods / Adding mods to your game: first steps
« on: January 26, 2023, 11:16:16 AM »
There have been a number of these guides over the years but time passes, so here's one current for *checks watch* 2024.

Table of Contents
1. Installing Mods
2. Assigning more RAM
3. Updating Java

Greetings, Starfarer

Just starting to add mods to Starsector?
Added a few mods and are wondering if there's anything else you should do?
Got a PermGen or OutOfMemory crash?
Game suddenly slowing down after battles?

It takes less time to read this carefully than it does to fix a mistake caused by skimming ;)

This will take 5 - 20 minutes, depending on your download speed and familiarity with computers.


1. Installing Mods

Step 0. If you are updating from a previous version of the same mod, delete (or move) the old mod folder first. Otherwise, there is a chance it will crash when loading.

Step 1. To install a mod, download it and unzip it into the "mods" directory.
  A mod's folder path must look like this: "<starsector>/mods/<mod folder>/mod_info.json". Ensure the mod doesn't have an extra folder. For example, "mods/LazyLib/LazyLib" has an extra folder and won't show up in game.
  • On Windows, it's in the Starsector installation directory (default: C:\Program Files (x86)\Fractal Softworks\Starsector\mods).
  • On Mac, it's right inside the application package - right-click on the application and select "Show Package Contents" to see it.
  • On Linux, it's in the starsector directory.
You can then select which mod(s) you want to run with in the Starsector launcher.


Incorrect due to nested/doubled folders (the mod will not appear in game launcher)


Correct, no nested/doubled folders


Note: When updating to a new mod version, always remove the old mod folder first!
  Many crashes are caused by replacing the old folder but not deleting old files.

Note: Some mods use .rar or .7z instead of .zip. You need a free program such as 7-zip (https://www.7-zip.org/download.html) or, for MacOS users, Keka (https://www.keka.io/en/) to extract them.

MacOS Note: Move your Starsector app to the Applications folder to avoid permissions issues!

Note: There are three primary places to find mods. Yes, it's pretty chaotic and old-school here.
  The Index. Mod authors request to have their mod added here: https://fractalsoftworks.com/forum/index.php?topic=177.0.
  Modding Subforum. Contains a mix of mods and other random posts: https://fractalsoftworks.com/forum/index.php?board=3.0.
  Unofficial Starsector Discord. The #mod_updates channel contains some mods and betas not found on the forum: https://fractalsoftworks.com/forum/index.php?topic=11488.0.


2. Assigning more RAM

Starsector has a limit on how much RAM it can use and adding mods can quickly hit that limit, causing crashes.

Step 1. To assign more RAM to Starsector, follow this guide: https://fractalsoftworks.com/forum/index.php?topic=8726.0.
The process has not changed since it was written and is as important today as it was then.


Note: RAM and VRAM are different. RAM is something you can buy more of and install yourself on most PCs. VRAM, however, is part of your graphics card and cannot be upgraded without buying a new GPU. Starsector automatically assigns VRAM as needed and we do not need to do anything with it.


3. Updating Java

Starsector comes with Java 7 and it runs well on that. However, mods use additional system resources and updating to Java 8 improves modded game stability and performance.
This updates only Starsector's version of Java and is fully reversible.
JRE (Java Runtime Environment) is Java.

Step 1. Go to your Starsector install and rename the "jre" folder to "jre7-backup".
      MacOS users: the "jre" folder is called "Home", so use that instead of "jre", and is located in "Starsector.app/Contents".
      Linux users: the "jre" folder is called "jre_linux", so use that instead of "jre".

Step 2. Download one of the following:
        Note: all are the same "JRE 8 v271".
      - Windows .zip (71 MB) https://github.com/wispborne/JRE/releases/download/jre8-271/jre8-271-Windows.zip
      - Windows .7z (48 MB, requires 7zip or equivalent) https://github.com/wispborne/JRE/releases/download/jre8-271/jre8-271-Windows.7z
      - Linux: https://github.com/wispborne/JRE/releases/download/jre8-271/jre8-271-Linux-x64.tar.gz
      - MacOS: https://github.com/wispborne/JRE/releases/download/jre8-271/jre8-271-MacOS.zip

Step 3. Extract that into your game folder so you have a folder named "jre". You'll now have both "jre" containing Java 8 and "jre7-backup".

Mac/Linux users, make sure to substitute the folder name as mentioned in Step 1.

Step 4. Read the Potential Issues section below (your game+launcher may be zoomed in/off-center).

Step 5. Launch the game as normal.


Potential issues
- Game+launcher is zoomed in/off-center.
    Fix: Right-click Starsector, Properties, Compatibility, Change high DPI settings, tick checkbox for "Override...Scaling performed by Application".
    This is caused by the game or JRE not handling Windows scaling properly.
Screenshot:
Spoiler
[close]

Note: We are using a specific version of Java 8 for a reason. I do not recommend using the most recent patch of Java 8, as it requires an extra step to make it work and doesn't seem to have any significant benefits.


Done!

Here are some useful links to hold on to.
Vanilla troubleshooting: https://fractalsoftworks.com/forum/index.php?topic=2106.0
Modded troubleshooting: https://fractalsoftworks.com/forum/index.php?topic=10931.0

Keep in mind that many things on the forum are outdated, even pinned posts, so make sure to check the Last Edited Date before following something.
For example, the pinned Newbie Guide Thread was last updated in 2013 and contains outdated gameplay information!
Oh, and avoid Beyond The Sector, it'll kill your save eventually :)

Have fun!


FAQ (hidden to make the guide seem less scary at a glance)
Spoiler
How do I change mod load order?
This ain't Skyrim; 99.5% of the time, you don't need to change load order.
There are few enough mods, and mod authors work well enough together, that any mod conflicts are automatically sorted for you.
The name (not the id) of the mod determines the load order; that's why GraphicsLib's name in the game launcher is "zz GraphicsLib".
[close]

Changelog
Oct 2023
- Added screenshots for nested mod folders.

Sept 2023
- Added a screenshot for the Windows scaling fix.

Early March 2023
- Fixed the MacOS Java 8 download, which was missing a crucial Mac-only file.
[close]

10
Apologies if you're already aware, wasn't sure quite what keywords to use to find an existing report.
Although this happens only in a modded game, it's caused by an issue in vanilla.

The documentation for the version field in mod_info.json says:
> A major version mismatch between the mod and another mod that depends on that version of it means the mod that depends on it can not be enabled. A minor/patch mismatch results in a warning.


That appears to only be the case if both mods use the longer Json object format; if either of them uses the older string format, the comparison doesn't work correctly.

I tested using Seeker and MagicLib.

If MagicLib's version is "0.45.2" and Seeker requires MagicLib version "0.42.0" then, theoretically, only a warning should be shown, as the minor version changed but not the major.
However, the game shows an error, not a warning, and doesn't allow Seeker to load.

But! If I change both of those to use the newer version schema: {"major":0, "minor":45, "patch":2} and {"major":0, "minor":42, "patch":0}
then behold, Seeker is shown with a warning but it is allowed to load, as it should be.

11
Modding Resources / [0.97a] MagicLib v1.4.3
« on: January 08, 2023, 12:19:09 PM »


The goal of MagicLib is to create a community-built library of useful (and well documented) scripts and plugins that can be leveraged and contributed to by every modder.




Requires latest LazyLib

Content Pack Downloads
MagicLib itself does not contain any achievements, paintjobs, or bounties.
Achievements Pack (30+ achievements, 20+ paintjobs)
Bounties Pack (20+ bounties)




View JavaDocs


MagicLib release history




If anyone wants to contribute you are more than welcome to do so as it is intended to be a community tool. Do check the Wiki to get a lot of details on the current content.


The magicSettings functions allow modders to easily access a shared data/config/modSettings.json file that can be used as a unified solution to integrate mods with each-others. I will try to provide a thorough blank modSettings.json sample file with each MagicLib update, so modders that will use the shared modSettings.json file and want their mod's settings to be added to MagicLib's sample file can post them in this thread. Modders can also document their inter-mod compatibility requirements, regardless of their usage of modSettings or not, on this wiki page.

 If you want to integrate your mod to all the ones using the shared modSettings.json solution, you can download a blank sample file here.


Mod Authors: v1.0.0 breaking changes
The package changed from `data.scripts` to `org.magiclib`.
For most authors, all you need to do is a find & replace in your imports.

Also, a number of deprecated methods have been removed. They all have replacements.
MagicCampaign.createFleet -> createFleetBuilder
MagicCampaign.createCaptain -> createCaptainBuilder
and more.
See all breaking changes in v1.0.0 here:
https://github.com/MagicLibStarsector/MagicLib/releases/tag/1.0.0


Current content:

Functions

    MagicSettings
Offers classes to load merged settings and lists from a shared modSettings.json file. Intended to make cross-mod integration and compatibility much easier to manage.

    MagicBounty framework
Offers a highly customizable yet easy to implement system to add unique bounties to a board present in bars.

    MagicCampaign
Offers classes to help enrich systems with recoverable hulks holding special cargo, or with stations with custom comm officers, etc.

    MagicIndustryItemWrangler
Allows AI colonies to upgrade their installed industry items if a better one is sold to them.

    MagicIncompatibleHullmod
A uniform solution for the "incompatible hullmod" issue with vanilla hullmods.

    MagicInterference
Adds a cross-mod mechanic to balance very powerful weapons.

    MagicAnim
A collection of functions to make smooth animations.

    MagicFakeBeam
Creates convincing punctual beams from arbitrary coordinates.

    MagicLensFlare
Creates "cinematic" lens flares.

    MagicRender
Draw arbitrary sprites on-screen with constraints to entities/camera when needed. (aka "SpriteRenderManager")

    MagicTargeting
Allows "smart" target selection for systems and missiles within distance and search cone parameters, plus it can use ship-class preferences.

    MagicTrails
Allows to create missile-style trails anywhere, from ships to bullets, with a lot of customization options. Also includes a CSV based manager that should be able to handle most projectile use cases with negligible overhead.

    MagicUI
Draws UI elements such as a system-like charge-bar/tick box next to the normal ship-system for special systems, or an extra status bar above the flux/hull bars.

    MagicAchievements framework
Offers a relatively easy to implement way add achievements for your mod.

    MagicPaintjobs framework
Offers a dead-simple way to add ship paintjobs.

    MagicSubsystems
Add up to five extra ship systems to a ship. Includes drone management.

Loose scripts
Scripts that can be used "as it is" or can be copied to individual mods to personalize the result.

    MagicVectorThruster
Manages vectoring or vernier-style attitude thrusters.

    MagicMissileAI
A very customizable and lightweight missile AI script usable without any java knowledge.

    MagicGuidedProjectileScript
A weapon script that allows regular projectiles to track their target.

Planned / considered content:
None at the moment

Changelog
View at https://github.com/MagicLibStarsector/MagicLib/blob/master/CHANGELOGS.md

Contributors
Tartiflette (creator)
Wisp (maintainer)
Amazigh (paintjobs and paintjob icon)
BirdWanderer (paintjobs)
Dark.Revenant (MagicUI)
Deathfly (MagicFakeBeam)
jtyotJOTJIPAEFVJ (MagicAnim.cycle)
Kitta Khan (bugfixes)
Nicke (MagicTrails, MagicGuidedProjectileScript)
Originem (bugfixes and a lot of optimization work)
President Matt Damon (MagicBounty, bugfixes)
CeruleanPancake (MagicBounty)
Schaf-Unschaf (MagicBounty)
SafariJohn (MagicAsteroids)
Selkie (paintjobs)
Snrasha (MagicUI)
Wyvern (MagicIndustryItemWrangler)

Generative "AI" was used in creating the achievement icons. Lora: sxz-2dicon, model: Deliberate v2.

MagicLib is licensed under a
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Any derivative work must also comply with Starsector's EULA

12
On the USC Discord server, we intermittently see the question of where to go for paid art/sounds/music/etc work, and the response is highly varied based on who happens to see the question at the time.

Having a place where those who take commissions can say so could be useful, ideally with the first post as an index.

13
Mods / SMOL: The big mod manager & utility
« on: March 29, 2022, 11:28:38 PM »

BETA
A full-featured mod manager and toolkit.

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

Download the beta

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


14
Modding / [Tutorial] IntelliJ IDEA setup
« on: September 03, 2021, 07:13:10 PM »
Based on the excellent guide by Kazi and comments from their thread, this guide, updated for 2021, covers:
   
  • Configuring IntelliJ for editing and compiling your mod's code into a .jar.
  • Setting up the Starsector/LazyLib/GraphicsLib javadocs from within IntelliJ.
  • Creating a one-click build & debug configuration for your mod and Starsector, including making code changes without restarting the game.
  • Learning some tips and tricks to impress the Notepad users.

The guide may be found on the wiki: https://starsector.fandom.com/wiki/IntelliJ_IDEA_Setup.

Differences from Kazi's guide:
- Replaces the missing batch file plugin with the new built-in Shell Script configuration.
- Adds a bunch of pictures.
- Includes the steps to set up debugging.
- Located on the Wiki so it may be updated as needed.

15
General Discussion / (Unofficial) Performance Survey
« on: July 28, 2021, 09:13:12 AM »
This short, anonymous survey will ask about which version of Java you use, your game's performance, and your PC specs.

This survey is not affiliated with Fractal Softworks (although the results may be provided to them). It is anonymous unless you write your name.
JRE is short for Java Runtime Environment. It's the version of Java that the game runs on.

A main goal of the survey is to see how large an impact switching to JDK8 is, and how many people experience problems with it.
A secondary goal is to simply gather information about what kind of setup people have (mods vs PC power) and how happy they are with it.

Link to survey: https://docs.google.com/forms/d/e/1FAIpQLSdMfaHd_RUQqBscw7UvS_s_V-wnetOCTt_x303Zy857jvFkPw/viewform?usp=sf_link

Screenshot of some results so far:


Raw results: https://docs.google.com/spreadsheets/d/1h-u9Z8OmGt_tv78JZC7zrB82APS3MLSPLmO4RzJwpr4/edit?usp=sharing

Pages: [1] 2