• ⚠️ Mod Release Rules now apply to this board.

    All mods must include a license, source code (for executable mods), and proper attribution.

    Read the full rules here before posting.

StarMap Mod Loader

KlaasWhite

New Member
Nov 14, 2025
2
7
StarMap is a POC/Prototype arbitrary code modloader.
Currently it will just work as a simple mod loader for loading code modes, but in the future, the goal is to achieve a mod experience like Factorio, where mods can be downloaded from within the game, and the game is automatically restarted with new mods.
It can be downloaded from Github with more info in the Readme on how to set it up.
An example mod and how to create and compile mods can be found in the example mods repo.

License: MIT
Download link: GitHub
Source code: GitHub
Dependencies: None
 
Last edited:
SarMap has already reached version 0.3.0
Download link

Changelog since 0.2.0:
Features:
  • New attribute StarMapBeforeMain for executing code before main method of KSA
  • Provide installer for StarMap
Bug fixes:
  • Resolve issue in attribute resolution
  • Resolve mods never being unloaded
  • Fixed issue with StarMap.API forcing dummy KSA dll
  • Fix issue with ALCs unloading after initialization
Edit: Now version 0.3.1 - Fixed issue with mock KSA having wrong interface
 
Last edited:
SOLUTION, maybe helps the next person...

Code:
{"GameLocation": "D:\\Games\\Kitten Space Agency","RepositoryLocation": ""}

I'm giving KSA mod use a try but I'm struggling with StarMap. Specifically, my KSA installation is at "D:\Games\Kitten Space Agency". I put that in "StarMapConfig.json" and I get the error below.

Is there a special way to enter this path or can StarMap only handle drive C?

Code:
Unhandled exception. System.Text.Json.JsonException: 'D' is an invalid start of a value. Path: $.GameLocation | LineNumber: 1 | BytePositionInLine: 16.
 ---> System.Text.Json.JsonReaderException: 'D' is an invalid start of a value. LineNumber: 1 | BytePositionInLine: 16.
   at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes)
   at System.Text.Json.Utf8JsonReader.ConsumeValue(Byte marker)
   at System.Text.Json.Utf8JsonReader.ReadSingleSegment()
   at System.Text.Json.Utf8JsonReader.Read()
   at System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1.OnTryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value)
   at System.Text.Json.Serialization.JsonConverter`1.TryRead(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options, ReadStack& state, T& value, Boolean& isPopulatedValue)
   at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, T& value, JsonSerializerOptions options, ReadStack& state)
   --- End of inner exception stack trace ---
   at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, JsonReaderException ex)
   at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, T& value, JsonSerializerOptions options, ReadStack& state)
   at System.Text.Json.Serialization.Metadata.JsonTypeInfo`1.Deserialize(Utf8JsonReader& reader, ReadStack& state)
   at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 utf8Json, JsonTypeInfo`1 jsonTypeInfo, Nullable`1 actualByteCount)
   at System.Text.Json.JsonSerializer.ReadFromSpan[TValue](ReadOnlySpan`1 json, JsonTypeInfo`1 jsonTypeInfo)
   at System.Text.Json.JsonSerializer.Deserialize[TValue](String json, JsonSerializerOptions options)
   at StarMap.Types.LoaderConfig.TryLoadConfig()
   at StarMap.Program.SoleModeInner()
   at StarMap.Program.Main(String[] args)

UPDATE:

I did a symlink to make the path C:, resulting in a my .json being as below. Same error except now C is the offending character.


Code:
{
"GameLocation": C:\\Games\\Kitten Space Agency\\,
    "RepositoryLocation": ""
}

UPDATED UPDATE:

Tried with single forward slash rather than double backslash, same errors.

Homer
 
Last edited: