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)

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 - Lukas04

Pages: 1 [2]
16
The hullmod picker filters doesnt take the new 0.96a method called "showInRefitScreenModPickerFor" in to account. This causes them to show that there are a certain amount of hullmods in a category, even if there arent.

For example, in this case i have a phase hullmod that only shows up if the ship has another hullmod installed, one that essentialy signifies that its part of a lineup.
In the following screenshot im looking at a Medusa, that of course doesnt ahve that built-in hullmod, so my other hullmod doesnt appear in the list, the filter however will still say that 3 hullmods are available.


17
Bug Reports & Support / Bug in BaseEntity class
« on: September 02, 2023, 11:19:02 PM »
When the "customData" variable in "BaseEntity" is null, the "getCustomData()" method returns a new LinkedHashMap, it however does not assign that map to the Entities customData, so if you were to add something to it, it wouldnt actually be added to the entities customData. This causes scenarios where adding something to that list directly does not work, but using the "setCustomData()" method does, as that method handles it correctly.

18
Adding hullmods through "ShipVariantAPI.addPermaMod(ID, true)" seems to be broken.
It adds the Smod as it is supposed to, however the added smod does not count towards the limit of smods on the ship.

Tested this with only Lazylib + Console Commands active, using the following runcode
Code
RunCode
import com.fs.starfarer.api.combat.ShipVariantAPI;
import com.fs.starfarer.api.fleet.FleetMemberAPI;
import com.fs.starfarer.api.impl.campaign.ids.HullMods;
import com.fs.starfarer.api.loading.VariantSource;
import com.fs.starfarer.api.util.Misc;

for (FleetMemberAPI member : Global.getSector().getPlayerFleet().getFleetData().getMembersListCopy())
        {
            ShipVariantAPI variant = member.getVariant().clone();
            variant.setOriginalVariant(null);
            variant.setHullVariantId(Misc.genUID());
            variant.setSource(VariantSource.REFIT);
            member.setVariant(variant, false, true);

            member.getVariant().addPermaMod(HullMods.ADVANCED_TARGETING_CORE, true);
            member.updateStats();
        }
Example Video showcasing the issue
Tested on 0.96a RC10

In case this is as i expect a bug and not just missing the execution of some other code, is there any way for modders to fix the behaviour before a patch is released?

19
1. The Problem

Starsector lategame has a few issues, and while its generaly a variety of things (lack of new exploration content, basicly having found all the loot you need), Colonies are often an aspect that seem more broken in design than in lack of content.

Colonies, while really cool, are often also some of the weakest gameplay out of an otherwise great package. but despite that, due to the large power boost they give, they start taking up a significant part of the gameplay loop in the lategame. While this isnt an issue by itself, as moving the primary way the player gets put in to battles from exploration to colony management makes sense, it often fails to actually put the player in to the combat gameplay as it is supposed to. This is improved with things like the Hostile Activity event now, but at its root it slowly expands to take up all your time.

A player has to make a choice on where they spend their credits on. In the lategame, this is often:
1. Expanding the Colony.
2. Expanding the players fleet.

The issue with this is, that putting money in to the fleet is wasteful. Why ever spend money on something that makes far less money than the simple upgrade you could purchase for the colony. Just upgrade the colony, wait a few months, and boom, now you have even more money, which you can use to make a stronger fleet!....but you spot another upgrade that could improve your cashflow even more, so you decide to go for it first, and repeat. This is an extremely passive playstyle which the game heavily encourages. This is not an issue every player will run in to, but it is an easy trap to find yourself in. You will often see people that reach this part of the game, waste a year on colony, and then stop their run.

2. Proposed Solution

My personal solution to this would be to split the players currency and the player factions currency in to seperate inventories.
Implementing this basicly means:

- Faction Currency is used for expanding colonies and the faction.
- Player Currency is used to expand the players fleet.

The player of course would still get their own share from colony income, but not a cut that breaks the games scaling, becoming a late-game variation of a faction commission, which will help you keep your fleet afloat, rather than paying for all of its expansion. This removes the feedback loop that pressures players in to hyperfocusing on the colony improvement.

Now, keeping the two entirely seperate however would be a mistake too. The player should be able to move their own money in to the factions bank, but this should be something they only have to do early game to jumpstart their faction. This keeps the requirement of a certain amount of progress from the player to reach this part of the game, without forcing the player to give their credits away for ever.

It opens the door towards more Structures and Industries that either provide quality of life or incentives that arent displayed in forms of credits.
In the current game, this is basicly Heavy Industry, as it allows you to construct your own ships.
Meanwhile tech-mining, as it doesnt create money, unless you get really, really lucky with its rewards and sell them, is often a less desireable choice.
Mods like IndEvo already play in to this side of colonies, and i think this change would make it even more desireable to use those kinds of structures first, instead of immediately growing the factions growth.


3. Side Effects

In the first place, it doesnt really make sense that the player, as a sole person, has access to the entire factions funding for just their own fleet. It basicly paints the player as a dictator by default. of course they basicly are as they have total control anyways, but i think the other aspects are easier to ignore.

Bounties become more desireable again as the cut from the faction income may provide the fleets upkeep, but not enough to expand it.

I think another large benefit is that having a colony fail is a lot less punishing.
You will still loose that colony, but that will be the only punishment you have. If one of your colonies really messes up right now, it can quickly make your fleet bankrupt.
This also means that you can introduce stronger colony threats without it feeling bullshitty, as there is a bit less on the line.



20
Suggestions / [Modding Request] More Tools to work with Locations
« on: May 28, 2023, 11:34:01 PM »
For some time now i wanted to request a few things in terms of Modding Tools to make creating "new" things with Locations/Starsystems possible or easier.
They are probably asking for to much, but i felt like they are worth mentioning atleast.


Creating Locations without adding them to the Sector List

As far as i can tell, the only way to create a location as of now is to use "Global.getSector().createStarSystem()
This method does its job, but it would be beneficial if there was a way to add a Location without it being added to the list of starsystems.

This is partially because it makes compatibility easier in some places. For example, i tried to make a system that is totally isolated and only accessible from one place.
However, since its added to the list of Starsystems, another mod managed to spawn fleets of its own within it.
Usually you can fix it with the right tags, but not all mods do it as well. In this case the workaround i found was to set my system as not generated by procgen (despite it being so) because that was the only variable the other mod checked for to filter out systems.

While it sometimes works, the system not being accessible from the standard list would often be a much easier solution.
I think it would also be slightly beneficial for performance, if i plan to generate many systems, but none of them should be accessible, it would help if they dont get considered from any script that has to iterate through every entity for some reason.

However i can understand that this may be to complicated to implement, depending on how the game is currently structured.

Making Hyperspace-Lookalikes possible

Currently, making a location that replicates how hyperspace is explored doesnt feel quite possible, but i think it would be a great ability to have.
Creating new explorable areas that dont flood the already over-modded Hyperspace would be a great way to add more exploration content without creating to much bloat.

To make this possible it would require a way to enable fuel consumption in a location. It would need a way to tell the game to display the system in the "Sector" tab of the Map UI, instead of the "System" one. This would let it display things like the Fuel-Range. There would also need to be a way to set a locations width and heigth.

While not limited to this application, having a way to delegate the Background Rendering in to another class would be great.
Currently we can only set what texture the background has, not how its sprite is rendered. After looking through the code, the rendering seems to be done in the "BackgroundAndStars" class, but even if that were to be exposed to the API, the only thing you could do with it would be to enable the WarpingSpriteRenderer that the Hyperspace uses, instead i think it would be great if you could insert a delegate in to a location that takes over the "renderBG" function instead. This would allow creating more unique effects for any kind of location.


21
Suggestions / Improvements to the memory leak warning.
« on: May 16, 2023, 10:11:11 AM »
Currently starsector has two methods to inform for a possible campaign engine memory leak.

1. A popup that warns about multiple campaign engines existing, while also telling the user to save and restart to prevent possible crashes.
2. A devmode exclusive message in the bottom left that mentions multiple campaign engines existing, only stopping if the amount of campaign engine instances goes back to 1.


I think the second method is quite useful as a mod developer.
It helped me track down two memory leaks in one of my own and in another mod before. Its faster than using visualvm for initial debugging and you are more likely to notice it, as most modders probably dont check on their game with visualvm daily.


However, in my opinion the first method is often less useful, and is often just wrong about its assesment.
It often seems to false trigger after reloading a save, which becomes more likely with the more mods you have, even if none of them actualy do have a memory leak. It seems that even if forced to, the garbage collector just occasionaly fails to get rid of the old CampaignEngine immediately even without a leak present.

My personal issue with it is that it informs the user of a possible leak, but unlike the second method, it never tells them that it may have been a false assesment in case there is only one engine again.
This often leads to confusion and misinformation among users, you can frequently see cases where someone installs a new mod, they get the pop up and they link the issue towards one of the mods they just downloaded, which in turn causes concerns for that mods author and the users.

Another issue with those false flags is that it conditions people to simply clicking it away, it happens so often that people just ignore the warning entirely.

I dont have many solutions to the issue myself, but i think there should be a bit longer of a buffer between reloading a save and the message being able to appear. Instead of a pop up, i think it would also do better if it was a warning in some corner of the screen, which keeps the user updated in case it is actually a false flag, similar to the current devmode warning.
But after discussions on the discord ive seen people have differing opinions on solutions too, so im sure there will be more in the replies.

22
Suggestions / [API Request] Ability to hide Skill Aptitudes
« on: April 07, 2023, 08:23:29 AM »
It would be useful if there would be a way to hide skill aptitudes & all their includes skills.

In my case, it would be nice if there would be a column in the aptitude_data.csv that would let you toggle the Aptitude to only show up if any of the skills of it have been aqquired, and similarly another option to only show Skills that were aquiired, and not those that havent.

The use case is for skills that are unlocked outside of the skill point system, which some mods like to do, but having to give the skill some high cost and having it always display in the menu looks a bit odd, but the other option of making a skill npc_only doesnt give the player a way to view a skill that they have but doesnt show up in the menu.

There is a good chance that i may be missing something though, as i havent messed around to much with the skill system yet, if so please tell me.

23
Mods / [0.97a] Random Assortment of Things
« on: March 08, 2023, 08:06:26 AM »
Random Assortment of Things

About
A Megamod that adds Factions, Exploration Content, Quality of life and more to the game.
Every feature in the mod can be disabled by the user through the Lunalib Menu.

A short rundown of some of the content:
- An entire new "dungeon" of systems to explore and its own enemy faction.
- A new mini-faction to discover.
- An alternative to colonies.
- New exploration content across the sector.
- A bunch of new skills and AI cores with their own set of unique aspects.
- New Ships and Weapons
- A large amount of unique hullmods.
- Dozens of new stations and planetary conditions.
- More starting options with Nexerelin.





The mod requires LunaLib, MagicLib and GraphicsLib




Support
In case you are interested in supporting the mods development, you can do so in the belows Patreon link.
Any donations allow me to spend more time on creating and improving my mods instead of having to do a part time job.





Screenshots








Credits

Main Contributers
Lukas04: Code & Design.
SnazzyPantsMcGee: Spritework.
Haplogynae : Music & SFX.
Anulackk: Illustrations

Starsector Discord: For lots of feedback and bug reports.
KingAlfonzo: Helped write some of the interactions in Relics of the Past.
Selkie: Some background art & portraits.
Nes : Skin for a unique ship.
Loyse: For the 3D Render of the "Aboleth" ship used as a Banner on top of the post.
GMan: Did the sprites for previous versions of the mod.
Avanitia: Lots of feedback and bug reports.



Check out my other mods




24
Modding Resources / [0.97a] LunaLib
« on: November 17, 2022, 07:14:08 AM »
LunaLib
A Library mod for Mod Developers and other utility.
For users it adds ingame mod configs, a mod version checker and a debug panel.

WARNING: Version checker wont load if you use Java7. Click here for more information





Support
In case you are interested in supporting the mods development, you can do so in the belows Patreon link.
Any donations allow me to spend more time on creating and improving my mods instead of having to do a part time job.





For Users:

LunaSettings
An Ingame UI Solution for Mod Configurations.
Can be Opened in the campaign with F2 (Configurable) or from the main menu.
Settings persist between mod updates.

All Settings are saved in: starsector/saves/common/modname.json.data



Version Checker
Displays mod updates ingame, and provides links towards the download and displays changelogs if supported.
Originaly a mod made by LazyWizard.



Debug Screen
The debug screen contains multiple Tabs. One of them is for a feature called "Snippets", which are UI-based Alternatives to Console Commands that modders can expand upon.
The second screens include utilities for locating Entities (Planets, Fleets, Stations) and their Data, and the third screen contains tools for cheating in Ships, Commodities, Weapons and so on.
To access it, you need to set a Keybind in the Mod Settings menu.



For Modders:

LunaLibs' Github.
Documentation.

LunaLib Adds:

LunaSettings (An expandable UI Config Solution)
LunaDebug(An Debug screen for Entities and Items)
LunaUtils (A decent amount of utility classes.)
LunaExtensions (Kotlin-Extension Functions that add some much needed functionality to some of Starsectors APIs)

If you encounter any issues, have any questions or require some help, feel free to message me on Discord @Lukas04#0856

Credits:

LazyWizard: Allowed me to integrate Version Checker in to this mod.
SpeedRacer, President Matt Damon: Provided me with help for the Custom UI Screens.
Wisp: Gave lots of feedback and kotlin help.
Ruddygreat: Provided the code to render Planets & Stars in the Debug menu.

25
Modding / [0.95.1a] DevUtils 1.5.2 [Discontinued]
« on: October 30, 2022, 01:21:22 PM »
Mod has been discontinued, as most of it is now included within LunaLib:
https://fractalsoftworks.com/forum/index.php?topic=25658

You can find a legacy download of the mod below.

Download (Last Update: 30.10.22)
Requires LazyLib

26
Mods / [0.95.1a] Arkships V1.4
« on: August 10, 2022, 10:47:50 AM »
Currently not available due to some issues & the unability to properly maintain them.

27
Mods / [0.95.1a] Starfarers Workshop 1.5.1
« on: July 05, 2022, 04:01:56 PM »
Currently not available due to some issues & the unability to properly maintain them.

Pages: 1 [2]