#Space Warp - KSP Mod Manager
1 messages · Page 1 of 1 (latest)
why not use an off the shelf unity modloader?
Im thinking mostly because it'd be nice to have a standard for stuff like custom parts
although I guess having that as a separate mod could work too
Better not reinvent the wheel but make a new car out of it
yeah a common pattern in unity game modding these days is building a common library for a stock modloader
a partloader mod for BepInEx seems like it would be fairly easy to implement
why BepInEx over like melonloader?
I have a personal dislike for MelonLoader because of the people behind it
oh?
and what they have done over the years
tl;dr melonloader was built on stolen code and only apologised for when they were called out
omg yes
they've also been know to harass other modloader devs
BepInEx can do everything MelonLoader can (including loading ML mods lmao)
and in many ways does it better
How would I go about setting up a development environment / building to run in KSP?
New to C# modding so still figuring things out.
Been able to copy KSP dlls to /external_dlls but not sure what to do from there
we're still working on it 😅 but I can ping you when its semi useable :)
haha no worries, thanks!
{
"mod_id": "[SHOULD BE THE SAME AS FOLDER NAME]",
"author": "",
"source": "",
"version": "",
"dependencies": [
{
"id": "example_mod",
"version": {
"min": "0.0.0",
"max": "9.9.9 (can be * for no max version)"
}
}
],
"ksp2_version": {
"min": "...",
"max": "... (can be * for no max version)"
}
}
in gamedata/mods i assume?
This will be the structure of "modinfo.json" that Space Warp will assume
{
"APIVersion":"0.0.1.1",
"ModVersion":"1.0",
"ModName":"second KSP2 Mod",
"ModAuthor":"Matteo_fey",
"ModDescription":"second KSP2 Mod",
"Catalog":""
}
Thats KSPs in built mod manager
this is the ksp2 structure
does it work?
you should make the json somewhat similar to how fabric minecraft modding does it
probably don't need everything though like mixins for example in your config but doesn't seem like a terrible way to base it off of
@unborn kettle
wat
#archive-space-warp
Can make a better logo at some point if needed
I have a little bit of experience in illustrator
Aight
Just going to throw a few things to consider:
- Mod order, as some mod core might be needed before loading other depending mods
- Mods loaded count when we initialize the mod loader
- Support for KSP2 DLL overrides, maybe do it in a way it uses the dnSpy to edit specific files
- Support for editing base game config files, without having to use a mod for it
- Make an example mod
Not sure if those are tackled but that’s what comes to mind
moved to #archive-space-warp
unpinning since it moved to it's own channel
Compiled the latest master branch and tried to load the BepInEx version, log says "Skipping type [SpaceWarp.BepInExEntrypoint] because its version is invalid."
Odd
You targeted it to BepInEx?
ran build.bat -a and grabbed the build/BepInEx folder
I'll look into this
@royal belfry is the one who made the bepinex stuff
seems like I know where the issue is, BepInExEntrypoint takes the version information from MyPluginInfo.PLUGIN_VERSION, MyPluginInfo gets generated from project settings, and the project has no version setting
so version is null
Where is this set?
in the class attribute in BepInExEntrypoint.cs:
[BepInPlugin("com.github.x606.spacewarp", "SpaceWarp", MyPluginInfo.PLUGIN_VERSION)]
public class BepInExEntrypoint : BaseUnityPlugin
...
Hmm?
namespace SpaceWarp
{
public static class MyPluginInfo
{
public const string PLUGIN_GUID = "SpaceWarp";
public const string PLUGIN_NAME = "";
public const string PLUGIN_VERSION = "1.0.0.0";
}
}
yeah but when you build the project, PLUGIN_VERSION gets rewritten to ""
seems to be a feature of /packages/BepInEx.PluginInfoProps.2.1.0
Where do I change the project version
Created a PR for it
You say as pushes to SpaceWarp.csproj were just added...
I noticed that it suddenly jumped from green to conflicts lol
Lol, I'll fix it
Or you can
I'll just push a version of it with the correct version and close your PR @zenith moon ?
I just reforked it and edited the file again, takes a minute on the website
@zenith moon care to test current version with BepInEx?
just did, works
moved SpaceWarp to an organization! https://github.com/SpaceWarpDev/SpaceWarp
Niiice
i thought it would auto-generate it as i was trying to have an easy compatibility with bepinex (as doorstop was primary for easy maintainence) :p
I'm still getting this using space-warp-release-0.2.5-bepinex.zip for some reason.
[Warning: BepInEx] Skipping type [SpaceWarp.BepInExEntrypoint] because its version is invalid.
Odd the version should be fixed
<Version>0.2.0</Version>
Is there any way for me to verify that on the compiled library? Otherwise i'll try building from source
found it
changing the version number there fixes it
It's also an empty const string in the MyPluginInfo class, where it's supposed to grab the version number from when building
not sure what went wrong there
that's weird, I haven't had that issue since submitting the PR that added the <version> tag to the project