Clarification on the use of Space Age sprites in mods targeting both Base/SA

Place to post guides, observations, things related to modding that are not mods themselves.
User avatar
kirazy
Filter Inserter
Filter Inserter
Posts: 430
Joined: Tue Mar 06, 2018 12:18 am
Contact:

Clarification on the use of Space Age sprites in mods targeting both Base/SA

Post by kirazy »

I am the mod author for the Artisanal Reskins series and several other mods that are primarily reskin mods.

There are a variety of comments from Wube developers on the Space Age discord around the inclusion of Space Age assets in mods that do not require the Space Age executable.

The general sentiment of these comments summarizes to:
  • Inclusion of Space Age assets in mods that have a hard requirement on the Space Age executable is fine.
  • Inclusion of Space Age assets in mods that do not have that hard requirement is not fine, even if the use of those assets in-game would have a prototype/runtime check for the Space Age executable.
There seems to be an unclarified gray area around mods that would include Space Age texture assets, but restrict their use by the mod to if the Space Age executable is present, or if the Space Age mod is enabled.

The primary pain point with restricting even the inclusion of sprite assets in mods that have an optional dependency on Space Age is the need to create separate mods that include supplemental code files and the kit-bashed or otherwise Space Age derived assets to satisfy the restriction, while still supporting a mod that targets both vanilla and Space Age.

For a real world example, Space Age introduces another tier of belts which includes a new belt sprite sheet to support higher belt speeds. My mod Prismatic Belts would naturally want to include a sprite sheet derived from that Space Age asset to add a third tintable belt.

Under a conservative understanding of the current unclarified restrictions, I would need to create an entirely separate mod, say, Prismatic Belts: Space Age, whose only purpose is to 1) have a hard restricton on the Space Age executable, and 2) to have the derived sprite sheet. The main mod would then have an optional dependency on that mod and make those sprites available only under that circumstance.

Which would require a player who uses Prismatic Belts to a) know about this restriction, and b) go find and download the additional mod.

It would be significantly simpler if that restriction was only logical (main mod has all assets and a code check on the Space Age executable) and not so strict as to require an entirely separate mod.

This is only one example. I work alongside the mod teams that support Bob's and Angel's mods, and there is a concern that this constraint is going to require us to create effectively two mods for every single mod just to properly restrict the Space Age textures (and maintain our discrete domains).
Last edited by kirazy on Tue Oct 22, 2024 5:27 am, edited 1 time in total.
User avatar
kirazy
Filter Inserter
Filter Inserter
Posts: 430
Joined: Tue Mar 06, 2018 12:18 am
Contact:

Re: Clarification on the use of Space Age sprites in mods targeting both Base/SA

Post by kirazy »

As an addendum, I will note that:
  • There is nothing stopping a player without Space Age from finding the Space Age constrained mod on the Mod Portal and downloading it, and modifying it locally.
  • There is nothing stopping a player from finding the mod on its public repository (GitHub, GitLab) and downloading it from there.
The constraint seems overly burdensome on the mod author for how simple it would be to circumvent on the user side.

Also, absent official direction off the Space Age discord, I imagine that many smaller mod authors won't even think about this consideration.
User avatar
kirazy
Filter Inserter
Filter Inserter
Posts: 430
Joined: Tue Mar 06, 2018 12:18 am
Contact:

Re: Clarification on the use of Space Age sprites in mods targeting both Base/SA

Post by kirazy »

Now that the frenzy of dev work after the initial launch seems to be calming down... bump? :D

And I will note that as I mentioned, the bifurcated mod Prismatic Belts with a separate Prismatic Belts: Space Age that is just an asset mod, on which Prismatic Belts has an optional dependency, is as painful as expected. There's no way to indicate that a mod is required if Space Age, otherwise ignored, and the workaround is to throw an exception with instructions on what to do. But that hasn't stopped people reporting it as a bug when it happens and they didn't stop to read the error message.
User avatar
Khazul
Fast Inserter
Fast Inserter
Posts: 199
Joined: Fri Sep 03, 2021 4:47 am
Contact:

Re: Clarification on the use of Space Age sprites in mods targeting both Base/SA

Post by Khazul »

I must admit, as I have Space Age, I had assumed that assets would not be present if people didn't have SA and thus logically checked re-use would be OK. I never thought to actually install the latest base Factorio to check that SA assets are indeed not present as it seemed a reasonable assumption.

At this time I only have one SA mod that indirectly reuses assets (it triggers base code to cause the asset reuse) and that has a hard SA dependency anyway.
Post Reply

Return to “Modding discussion”