#Space Warp
1 messages ยท Page 3 of 1
I made a new thread in #1078701690762571866 : #1082003765185495162
btw is "dependencies": [] in swinfo.json still a thing?
or just the BIE attribute now?
It's only metadata now
Realistically it only gets displayed in the mod menu
got it, so not completely deprecated, but not functional right now
I changed their Instancing and it looks like it is resolved. Weird that it needs a GameManager reference
Not worth it right this second
@mossy kraken on that last issue, actually close it, I was dumb and didn't realize there was such a function even though I looked 10 times to find it lol
And I just did trying to make sure I wasn't dumb
Closed
Can we merge this?
https://github.com/SpaceWarpDev/SpaceWarp/pull/143
Will do
Awesome, that cleaned up all the files in the root directory.
Looks way better now
I am off to bed now
I am spending the rest of the night to myself
Definitely deserved, great job
huh
I've never seen anyone put the md files in .github
I didn't even know you could do that
seems... odd
oh yeah that's my first time seeing it too
but it seems nice to clean up your root
actually that seems to have broken some things
the license is no longer properly displayed on the repo page
@static mural Do the build script files assume that the user has a python interpreter installed?
I didn't see any mentions in the installation instructions about installing python3 or any automation scripts to do it for the user. I've always had python installed from previous projects, so it didn't affect me but I am curious about it.
good point
It does. Interesting.
Should prob fix that lol
Hey can we merge the docs pr #3? I fixed the missed pun opportunity :p
@sacred jasper can look at pr?
also can i change the docs url from spacewarpdocs.readthedocs to spacewarp.readthedocs
will need to change up some of hte links in the readmes
@static mural created a PR with a windows executable to do the work of build.bat and build.sh for windows users who don't have python installed. (builder.py packaged as executable)
Hey can I get maintainer on the Space-Warp-Installer repo? I think I'm the only one actually doing anything on the repo rn
i would really like to give you access im gonna try rn
i keep forgetting every time xd
i dont think i can though
like physcially dont have acess
@sacred jasper
- can you rename the repo to wormhole
- can you give redstone member, or just acess to the repo?
if the person is advanced enough to do mod development for this, dont you think they would have python installed? or either make an sha key for exe cuz very sus
i dont like the idea of an exe because it ruins the idea of open source
Yea, but it's just autopytoexe so not really
i dont like the idea of an exe because it ruins the idea of open source
I can't argue with that.
make an sha key for exe cuz very sus
As the author of the commit, I could include the sha256 checksum in the readme but then you have to ask "Do you trust the person who provides it?"
if the person is advanced enough to do mod development for this
We could assume that, but maybe new modders entering the scene aren't quite adept to python and want to focus on C#
yeah i see what you mean, i understand the point of the exe
but i still feel like it ruins some very needed aspects
Alr I gtg for the night. Gn everyone!
^ cya
Regardless, I certainly respect your concern for security and I'm glad you asked those kinds of questions! ๐
:D
if you ever think of a better solution id be happy to use
maybe a virtenv of some kind
or a docker
Hmmmmm... ok, I think I can work with this. I'll get back to you.
I'm aware of docker on a high-level, but I wouldn't know where to start. ๐ฌ I'd be willing to learn
whatever you choose, if it works :P, ill use
Let's not get crazy with dockerizing and all that jazz
You can install Python via the Microsoft Store nowadays, I think that installing python to develop is reasonable
I have done some reconsideration and thought about it and concluded with:
- This is really stuff you should learn as a developer anyways.
- Bundling an EXE with our source code opens up a lot of security risks.
- I know a lot of people who refuse to clone projects with EXE files in them.
- It creates more maintenance as we need to rebuild the exe file with the latest version of our project, which can be time-consuming and require additional resources.
- They are in general larger in terms of file size
- Could potentially create legal issues as we may need to obtain the necessary licenses or permissions before bundling external dependencies required to run the exe with your project.
- It creates more maintenance as we need to rebuild the exe file with the latest version of our project, which can be time-consuming and require additional resources.
Since it was built from the builder.py script it shouldn't need to be rebuilt each release unless that python script needs maintained every update.
- Could potentially create legal issues as we may need to obtain the necessary licenses or permissions before bundling external dependencies required to run the exe with your project.
Can you elaborate on this a bit more? I'm not challenging this, I'm just genuinely curious and want additional perspective!
- This is really stuff you should learn as a developer anyways.
Agreed, at the very least, I'll update the README.md to include python installation prerequisites.
I will also work on adding some defensive coding to the build scripts that validate python's installation and recommend an update if their version does not meet our specs with a link to python.org/downloads
I know that Python installation seems trivial and overcomplicated to most of us here for what it is.
I'm thinking about the new Modder's experience.
I'm ok with making them install python if that's what everyone here agrees with, I respect the security, legal, and community concerns around the exe.
I just don't want to lose the young Modders because they run a script for the first time and then have to troubleshoot why the terminal flashes briefly and blanks out without generating the folders they need for their own plugins without any human readable feedback.
I'll get to work on these things tomorrow ๐ด , and then @mossy kraken , and @timber cedar I look forward to getting your feedback on what I come up with!
FWIW, from my perspective as a tech-savvy heavy mod user who has only dabbled a teeny, tiny bit in mod creation (and it wasn't for KSP), I feel like a mod requiring users to have another program completely separate from the game and mod in question installed is a bad idea.
I do agree with this.
Just not sure if we should bundle this project with a EXE or not before we have come to an agreement.
Not everyone on the team is awake right now, so we are waiting for everyone to voice their opinion.
I'd rather not put a .exe in the source code myself.
As for the build script, maybe we could look at rewriting it in powershell and bash?
The templates are also outdated and need updating fwiw
honestly this
afaik, this doesn't require users to have python, only the modders
and they already need to have a development environment set up so just installing Python3 with one click in the Microsoft Store isn't going to hurt them
honestly, as long as the docs clearly say that you need Python installed for project generation and tell you exactly how to do it (for which having .bat and .sh files and pointing the modders to them should be fine)
and as an alternative, just keeping the example mod project up to date
so that if they don't want to install python, they can just download and adapt the example project to their needs
So the script is for generating a project skeleton or building Space Ward itself?
Oh yeah actually my bad, it seems the project generation script is no longer there, it's just the build script now
Then I guess my point stands even stronger, not only do users not need to be building SpaceWarp, since they have releases to download, the same goes for modders
Only SpaceWarp contributors technically need to use the build script
^^ literally this
@sacred jasper can i just merge to v1.0.0?
is this the new unstable-testing?
i made script to autocopy extrenal dlls :p
Consider - that only works for steam
i frogro add pd support brb
uhhh where is pd launcher
private_division_dir = os.path.join(os.getenv("LOCALAPPDATA"), "PrivateDivision", game_name)
```is this it
idk ill just add it can change later
wait ebic games also
I have but one question, how hard is it for someone to copy dlls
hmm yes
Verily, 'tis a task more arduous than the running of a lone python script whilst eschewing the quest for its installation directory.
i think i sleep now
im starting to see sound
Look in installer code
I did this already
O yea go to sleep gn
I'd suggest https://nuke.build/ or https://cakebuild.net/ at that point
either one would let you write a build script in C#
no python, no dealing with bash
a win win, really
(BepInEx 5 uses cake, 6 uses nuke, that's how I know of them)
No
I've seen many people who have never touched programming before try to mod unity games
And do it successfully at that
still, would they really need to build SpaceWarp themselves?
(I also have no idea what "ruins the idea of open source" means, most runnable open source projects need to be compiled into an exe)
if they can just reference the released dll or use NuGet
I mean I would hope not, no one making a mod should need to do anything more than download SW from SD and then start setting up a new mod
Almost none open source projects have you run an EXE in your project folder to build.
You can create a Release that ships a EXE file
oh, yeah
but its not normal to include one in the project
but also SpaceWarp... doesn't really need a build script at all anymore
it's a single DLL
it's mostly to package it up into a zip automatically
a script to package it, sure
I can add a check that auto downloads python and uses it if it isn't found in the path - only problem is cpython is GPL 2
Thats ... even worse?
Auto downloading a program?
Honestly yeah something like this might be helpful
Automation is king
tbf there's no need to get rid of the python script for those who want to test their mod compatibility before release or something like that, but I don't see a point in worrying about any other use cases
that would require... people to have docker installed?
which I'm pretty sure is way less common than python is
No, no docker
it's a utility thing - you have python, you can use it, you don't - you just hit "Build" in your IDE
Does the project build without modification on a fresh clone?
yep
well yeah
that's what he was asking
yeah nvm I just forgot that step since I've had them in that folder since I cloned 0.1 lol
but that single extra step (which asks for a path to the game anyway if it doesn't find it in the default one) can easily be just as well taken care of by a single .bat/.sh file that just asks for game path and copies the dlls over
without any external dependencies like Python needed
It can also be taken care of by the csproj using msbuild
I must still have that solution around somewhere
well, I found a custom ITask for it, but I swear I reworte this gamefinder task as a pure Msbuild solution
I have one
I'd say thats probably one of the btter solutions to the issue, that or CI
msbuild is a good setup because it requires nothign
I mean the best option is just... nuget
(I bumped bepis about that by the way, he's looking into it)
yeah publicized stripped api
ah your version doesn't discovert he steam lib folder
wouldn't work on my machine
yeah but you could pretty easily make it use SteamUtils from tcli I think
it doesn't work on my machine either, I have to use that Custom.props file that you see conditionally included
I just never bothered to make it better

I always forget about the AssemblySearchPaths property
I should use that more often
If someone wants to make a PR to make the building better, be my guest, otherwise I shall look at it later this week
instead of having HintPaths everywhere https://github.com/SpaceWarpDev/SpaceWarp/blob/main/SpaceWarp/SpaceWarp.csproj#L14-L42
What do we do about this issue?
https://github.com/SpaceWarpDev/SpaceWarp/issues/152
Is anyone on linux? I guess if you are on linux your should know how to build it on linux anyways ๐
Its trying to copy the files from the Kerbal Space Program 2\KSP2_x64_Data\Managed ๐ right?
So if any of these files update in the future, will it be able to override them with the new ones?
by linking them to the documentation that already exists that they didn't read https://docs.bepinex.dev/articles/advanced/proton_wine.html
:p
Nice, did not know we had that doc
Would be cool to have our NuGet Package listed here
I don't think you can do that
I think that window is exclusively for GitHub packages
which is a really weird system
What about makefiles or other build systems? It's pretty clear we need a build system
that will still require extra setup on Windows if I'm not mistaken, but the Cake/Nuke stuff looked pretty promising
Thats what id suggest
https://nuke.build/ says it has native support for both Rider and VS/VS Code
Id be happy to toss a PR up later today with some exception handling in the bat/shell scripts in the mean time until the team settles on a build approach.
In context of what I wrote bellow this would really be a Quality of Life thing for SpaceWarp contributors.
Reading through everyone's comments, I realize I was approaching it an ass-backwards way. I was under the impression that the build scripts also created mod packages using a config file provide by the "SpaceWarpUser-ModDeveloper".
The "SpaceWarpUser-ModDeveloper" ideally should not need to build SpaceWarp themselves. Instead they would download the pre-built zip and just copy the ExampleMod package structure as @wicked wyvern stated prior.
I think the only thing preventing this, however, is the dependency of KSP2 external_dlls being copied in.
@timber cedar I saw you make a couple of PRs to implement automatically finding install locations, do you think that same technology could work in the built version of SpaceWarp so that it can make a reference to the user's KSP2 install location?
This might be a solution to not requiring the "SpaceWarpUser-ModDeveloper" to build SpaceWarp, AND cover us from redistributing the KSP DLLs
Ooo
seems like all you need to use it is dotnet tool install Nuke.GlobalTool --global
and you need .NET to build the project anyway
so the CLI should always be present
How long before SpaceWarp is stable? I wish to write documentation, but currently it's changing everyday. Maybe after release of v1.0.0?
Currently, not much is planned on breaking going into 1.0.0
I can't think of anything off the top of my head
so now is the right time to write the documentation?
Yes
https://spacewarpdocs.readthedocs.io/en/latest/index.html
this is the current documentation, right?
mhm
yep
Okay, so what should the documentation contain?
Overview
Examples
Code Snippets
Reference Documentation
Troubleshoot
and error handling of C#?
you were typing @wicked wyvern
specifically I'd say what most people will be interested in is: basic mod structure, swinfo.json structure, how to use the SpaceWarp UI skin, how to add OAB/Flight app bar buttons, how to load assets and addressables, how to add configuration (that can just point to the BepInEx config docs)
that's off the top of my head
remember to pull the en branch
yep
but it'd be nice to have it in one place, and not two wikis with different amounts of information
Indeed
basic mod structure, swinfo.json structure
these two are already covered here: https://github.com/SpaceWarpDev/SpaceWarp/wiki/Porting-pre-v0.4-to-post-v0.4
This is a conversion guide
still, like I said
if the readthedocs wiki is meant to be the main one going forward, it would be nice for it to have all the info
not half there and half on GitHub
that's just convoluted
Give me 5 minutes
The swinfo.json file is a configuration file used by the BepInEx framework, which is a used by SpaceWarp.
The swinfo.json file is used by BepInEx to identify the plugin and provide information about it, such as its name, version, and dependencies. (?This information is used by BepInEx to manage plugins, check for updates, and resolve dependencies.?)
The file is typically located in the root folder of a BepInEx plugin and is named after the plugin's assembly. For example, if the plugin's assembly is named MyPlugin.dll, the configuration file would be named swinfo.json.
Here's an example of swinfo.json:
{
"name": "MyPlugin",
"version": "1.0.0",
"author": "John Doe",
"description": "A plugin that adds new features to the game.",
"source": "https://github.com/myplugin",
"dependencies": {
"SpaceWarp": "1.0.0"
}
}
smth like this?
actually BepInEx has nothing to do with these, only SpaceWarp uses them
and I don't think that "MyPlugin.swinfo.json" works, it needs to be just "swinfo.json" in the mod root next to the .dll
alright, let me read about BepInEx.
missing ksp version
which sw should use in the future
swinfo should prob contain the mods license in the future also?
"license: "MIT"
etc
I don't know if it's necessary, since forums and other places require the LICENSE file to be placed in both GitHub repo AND mod release zip
Alright
That we could display it ingame in the Mods menu if we added it there.
It can be optional
I mean the "license" field in the json could point to the LICENSE file instead I guess?
Sure, that works
in case they weren't in the same folder
What is swinfo.json and how is it used in SpaceWarp?
swinfo.json is a file used by the SpaceWarp Modding API. This file contains metadata about your mod, such as the mod ID, name, author, description, version, dependencies, and game compatibility. SpaceWarp utilizes this file to identify and display your mod's entry in the Main Menu Mods Section of the game.
How to create a swinfo.json file for your mod?
To create a "swinfo.json" file for your mod, you can use the following template:
{
"mod_id": "your_mod_id",
"name": "Your Mod Name",
"author": "Your Name or Team Name",
"description": "A brief description of your mod",
"source": "The URL of your mod's source code repository",
"version": "1.0.0",
"dependencies": [
{
"mod_id": "dependency_mod_id",
"version": "dependency_mod_version"
}
],
"ksp2_version": {
"min": "minimum_supported_game_version",
"max": "maximum_supported_game_version"
}
}
Where to place the swinfo.json file?
The swinfo.json file should be placed in the root directory of your mod, along with the DLL file for your mod.
@wicked wyvern
I'd suggest removing any notions of SpaceWarp loading anything, it doesn't do that anymore, it only uses the swinfo.json file currently to display an entry in the main menu Mods section
remember to write it all in rst format
but then again I'm not the best person to give this the go-ahead, since I'm just a mod dev, not even a SpaceWarp contributor
it looks good just write it in rst format :D ex.
modinfo.json
=========================================
The modinfo.json file for a mod follows the following structure:
::
{
"mod_id": "example_mod", // Should be the same as the folder name for the mod
"author": "cheese3660",
"name": "Example Mod",
"description": "An example mod for spacewarp",
"source": "https://github.com/SpaceWarpDev/SpaceWarp", // Link to the source repository, none for no source
"version": "0.0.1",
"dependencies": [
{
"id": "example_dependency",
"version": {
"min": "0.0.1",
"max": "*" //any field in the semantic version can be replaced with star, or if there is no ., the '*' is implied
}
},
.
.
.
],
"ksp2_version": {
"min": "0.0.0",
"max": "*"
}
}
I assume it is crucial without it the mod will not work or merely the entry will not be displayed int he main menu section?
I'm not 100% sure, but I think that if your mod doesn't require OnPreInitialized/OnInitialized/OnPostInitialized to be run for it to work, then it would load fine without swinfo.json
still, I agree that the file should be used in any case if you're referencing SpaceWarp stuff
Slightly unrelated but is the, mod_id, the bepinplugin guid, and the id under dependencies all supposed to be the same set of values?
technically I think that the BepinPlugin GUID could be different and nothing would happen
where? i see xd didnt read message
at least I can't find any sort of reference to it in SpaceWarp code
but I'd say that it should be the same for consistency anyway
The bepinplugin guid is used by the chainloader for resolving bepindependency chains
I was curious just because I'm Ultimately going to be building something to generate the swinfo.json
As part of my toolkit for ksp
var modInfoPath = Path.Combine(folderPath!, "swinfo.json");
if (!File.Exists(modInfoPath))
{
Logger.LogError($"Found Space Warp plugin {plugin.Info.Metadata.Name} without a swinfo.json next to it. This mod will not be initialized.");
spaceWarpPlugins.Remove(plugin);
continue;
}
it will not load
well, to be precise
it will be loaded by BepInEx
the component will exist, it'll get events like Awake and Update
but none of the SpaceWarp stuff will work
OnInitialized, the assetbundles stuff, etc
yeah that's what I meant
we could also Destroy the component maybe? that sounds like even weirder behavior though
^
people may still want to use pure BIE mods
unless you mean destroying the component if it is a subclass of BaseSpaceWarpPlugin but doesn't have a swinfo.json
but it does sound weird
that is what I meant, yes
Isn't it possible to tell bepinex to not load a mod?
Or is it just too late in this context
nah, SpaceWarp does it's thing too late for that
@static mural amazing pull request
just into the wrong branch
main branch for archive
use the lang specific branches
i fixed it
Lol ok
Does space warp need the configuration manager dll it builds?
Why does the intended spacewarp install method obliterate my BepInEx.cfg file?
what does that mean?
It includes a BepInEx.cfg which will overwrite mine
you either install just SW if you already have BepInEx, or grab the zip that packages them both if not
The zip for standalone has BepInEx.cfg
oh sorry, didn't notice that
I'd say it probably sets logs to be more verbose by default to help figure out people's bugs?
but idk
it sets hide and save on manager to true
which is necessary
thanks for the clarification
@lime plaza
Is that just the 'HideManagerGameObject' setting?
yes
Cool, I've updated my config, and now I have to selectively install files if I want to use the spacedock zip
I wouldn't even know what a compromise in this scenario would look like between making sure that everyone has that setting and allowing users to keep the rest of their own config
Isn't there a call in game to solve the issue the setting is fixing?
hmm, maybe
ok @here ANYONE should I make a auto installer or not
dont ping here for this
isn't there already one?
i dont think so
#1082003765185495162 message here's the thread for it btw
@sacred jasper
Is there a way to toggle mods on/off in v0.4?
unfortunately, not yet
i have an idea how to do that, but its weird
gotcha
Make a feature request for it if you really want it
What is the 0.4 equivalent of MODS_FULL_PATH?
where did it refer to
no
BaseSpaceWarpPlugin.PluginFolder
Is that a constant I can reference?
It might not need to be constant, needs to be static though
I need what used to be {SpaceWarp.API.SpaceWarpManager.MODS_FULL_PATH}/<mod-id>/addressables/StandaloneWindows64
Path.Combine(PluginFolder, "addressables", "StandaloneWindows64")
PluginFolder is not static
Dunno if I can do that
Its a setting in the addressable build
Hence why I previously used MODS_FULL_PATH
yes, I'm saying that can't exist at compile time
Doesn't need to exist at compile time
because that depends on where it is at runtime
Needs to be static and exist at runtime
I thought you said it was a setting on the build
Yes
But the path isn't interpreted until runtime
the best you can do is {BepInEx.Paths.PluginsPath}/<mod-id>/addressables/WindowsStandalone64
public static string Path { get; private set; }
public CustomFlagsMod()
{
Path = PluginFolderPath;
}
this work?
what
you can't do that in the constructor, no
you'd have to do that in OnPreinitialized
Pre-init is before addressables loading right?
Found Space Warp plugin Space Warp without a swinfo.json next to it. This mod will not be initialized.
Any way we can make addressables load earlier?
Why?
I'm patching LocalizationManager.RegisterSourceInResources to load LanguageSourceAssets labeled "language_source" but modded assets do not load in time
I could always do some jank when addressables are done loading I guess
I've noticed that if you set a property incorrectly or leave it out of swinfo.json, the whole Mods menu gets bugged when you click on the mod
maybe it could check for its validity before and not load the mod in that case?
I just moved my stuff to right before init
Which base branch should I be using for my prs?
I figured this out after trying to set
...,
"dependencies": [
{
"id": "SpaceWarp",
"version": "0.4.0"
}
], ...
Which technically should be correct, right? From looking into ModInfo and DependencyInfo classes
oh yeah no, nvm, I didn't notice that version needs to be min + max
<@&1078770539688112168> <@&1079271050644303922> so basically, this guy (who is an admin at CF i checked their profile) is asking if they want Spacewarp-CF Mod Loader integration
yall can discuss
for reference, this is the CF Mod Loader
Space Warm
๐
i can invite him to the dc
Space Cold when
anyway, I feel like this has pretty much already been answered with #1080296644475629589
tl;dr being: no, we're sticking with SpaceDock and CKAN
well it is a different platform, but I still strongly suspect that the answer would be the same
it's kinda the same pitch
if curseforge starts being used then they will have to use bepinex, in which they use spacewarp, in which they download mods
thunderstore is like ckan but like
it has pros and cons
like them being owned by amazon
one issue I could see is that CurseForge seems to pay mod authors
fr should pay space warp authors
I don't think that would fly well
going from thunderstore to CF would get an even worse reaction, I feel
since all the same negatives and more apply
I agree
it also depends on how benevolent PD is
I mean, if you guys think it's better I'm in no place to choose for you
I'm just saying
since if they wanted to, they could technically take down all mods right now
according to the EULA
we offered the same
Hmm, I don't really know how I feel about CF
and got turned down fairly hard
personally, i like manual modding without something like ckan
at least for ksp modding
so I don't think CF will fare better
honestly I feel like it might not be a bad question to pose to someone like Dakota on the forums/here
and also i fucking hate using ckan
you seem to be in the minority there
and i doubt ckan will update to ksp 2 within the year
^
it's literally all ready for it
we are getting an offer for a partnership right now
all they need to do is merge the PRs into the main codebase
.
i think its a good idea
an offer that has been made before (like a few days ago), and turned down
I'm not sure much has changed
i inved the person who dm'ed me on CF to here
I guess Max likes Bezos better than you 
when they join, yall can talk to them
I am sobbing
nah bezos is a cuntass
if you're going to be considering other platforms again, just don't leave thunderstore out of it :p
aight but it can be on cf and ts
I feel like, from my perspective the reaction will be worse than thunderstore for CF
this is a terrible idea
it kills communities
I still feel like this is a bad idea to be making decisions about without the official support of the game publisher
either one of them dies or users have a terrible time
especially when they very kindly allow us to make mods when they don't have to
for example, Valheim is split between TS and Nexus
modding it is a pain in the ass because of it
most mods are on both (I think? I haven't looked into it, not like I could use Nexus's API to do so anyway, since their API isn't free)
some are not
it's already painful enough with KSP 1 where some mods are on forums/GitHub only, some are on SpaceDock only, etc
I can't imagine more fragmentation being a good thing
because I guarantee there will be a lot of modders who won't want their mods on CF/TS
and for those who would, it's already painful enough to have to push stuff to GitHub, create a GitHub release, create/update SpaceDock page, and post on forums
especially if you want some reasonable formatting, screenshots, etc, it takes a shit ton of time
my point is in short: I don't see any advantages to this
fr i just manage docs and shit
although i would say no
Where was
SpaceWarp.API.UI.Skins.ConsoleSkin
moved to?
I saw someone using it but cant find it now
it's there in the latest commit
:P
public static class Skins
{
public static GUISkin ConsoleSkin => SpaceWarpManager.Skin;
}
I made a SpaceWarp project template for myself because I was tired of doing the same steps when creating new projects, and thought it might be useful for others as well
it works as a Visual Studio template or can be used with the .NET CLI
Full documentation is on GitHub
it could also potentially be uploaded to NuGet for ease of access
It probably isn't a one-size-fits-all solution, since it follows how I structure my projects and builds, but it can definitely help if someone needs a quick start, especially since now the python project generator is gone
Gonna put this in useful resources
hey
Just posting my msg again from the general page :
Hey everyone nice to meet you. I'm from CurseForge. We're looking to ramp up support for the game especially with proper mod loader support on our client.
Would love to hear the community approach at this time, I know there are a few options as always. Also open to maybe work with SpaceWarp to help make sure the client support is up to par.
๐
ive been studying for exam tomorrow all week so i wont be available, but u guys discuss.
I'd suggest making a thread for this discussion just like the last similar offer: https://discord.com/channels/1078696971088433153/1080296644475629589
Also, another suggestion - since the discussion here will be with mostly modders, you might as well try to gauge the interest of users on the forums, since that's the platform most players probably use: https://forum.kerbalspaceprogram.com/index.php?/forum/129-ksp2-mod-discussions/ (for example, see similar discussion here: https://forum.kerbalspaceprogram.com/index.php?/topic/214563-how-would-modders-feel-about-posting-to-nexus-mods/)
A general discussion place for talk of all KSP2 mods, and the place to request them.
I am a big fan of KSP and would like to see modding for the new game reach a wider community.
thanks, will take a look at those
don't know if I'm allowed to open threads here?
or staff onlly
I don't think it's staff only, I can do it too
Hi, me here, I'm making a launcher that's better than what CF will do
CKAN?
LOL
fr
Wormhole
O yeah @timber cedar can I have maintainer on the official repo so I can commit directly
@static mural like i said before i canโt give that
like literally
ask cheese
you have my approval :D
But even if u get invited into the organization. Do not push directly to major branches. Always make a PR.
^
Why not CKAN?
because it's not a launcher I assume
Click button, game open
you can't change game settings in it, but it has a "launch KSP" button
I mean you can launch the game from it I guess but it's very far from being its main purpose
that just triggers the game .exe directly
CKAN is great but in my opinion the UI is a bit ugly, and I think it deserves more love and work. Wormhole is going to kinda be a successor to CKAN in a way. I plan to implement the CKAN querying API.
Why not just fork ckan and rebuild the ui
You'll get more community support that way
Bc SpaceWarp already had one made with tauri and it's easier for me to use rust and typescript than c#
you could even just make a frontend app that runs ckan.exe in cli mode as backend
with some combination of API
there seems to be a trend of some people who had used SpaceWarp 0.1, deleted it, verified game files, some even reinstalled the game and deleted the user data, and SpaceWarp 0.4 is still broken for them
in one case I verified that BIE-only mods were loading fine
and another had the apparently the weirdest thing happen - 0.3 mods (with modinfo.json and bin folder) loaded when put into BepInEx/plugin, while the 0.4 mods didn't
in both cases BIE was loading SW 0.4 fine
and it's 3 in just one evening who had (most of) this happen
I couldn't be more confused by what's happening here
idk? never heard a vaguer problem
if you reinstalled the game
then thatโs not a space warp issue
i would like to point out that verifying the game does not delete sw
Hey, is there still a need for a class with [ModConfig] anotation, I use the new dll of spacewarp and "SpaceWarp.API.Configuration" cannot be found, nor "ModConfig" ?
No, as we are using bepinex's config system
Ok, thanks.
Bruh
I'm gonna say thats gonna go over as well as a plane experiencing decompression and wings falling off at 40000 feet
omg every mod site jumping on SpaceWarp train lol
I am a big fan of KSP and would like to see modding for the new game reach a wider community.
they are the person who made that thread
they seriously can't read the room lol
pretty much every response is very negative
The fact that someone said nexus is nice to navigate bothers me on a deep foundational level
I mean, I'm a child of the 80sz the internet i grew up with were single page crimes against humanity with blinking Marque text
And I would rather go back to the 90s than surf nexus
let's distribute mods on floppy disks 
Anyone can open threads
has anyone been able to add new parts on SpaceWarp 0.4? the bundle gets loaded but the part isnt in the parts manager....
well idk since there aren't any mods that add parts yet
at least not released...
also cheese redirected me to @lime plaza
apparently he knows more about the parts managment of spacewarp
Ah well idk how to help ye
im glad you tried tho! <3 thx
All i can think of is make sure none of the code is fucked up and you have your mod in the right folder
well, i can show u that just to be sure, but it really is just the base dll, a bundle and an image
structure
0 bytes is a little sus
You need an addressable, not a bundle
oh lmao i put the spacewarp version
tried that with no luck... the addressable gets loaded but the part still doesnt appear on VAB
will try again tho
You labelled the part json file?
name of prefab is wrong
huh what should it be?
it should be just gridfin_S.prefab
Why?
and btw dependencies is in this format:
"dependencies": [
{
"id": "SpaceWarp",
"version": {
"min": "0.4.0",
"max": "*"
}
}
]
but it's not important, since it's only used to display in-game, doesn't do any checking for now afaik (BepInEx does that based on its attribute on your class)
because that is what the game looks for
keep the json as is? with the path?
json just needs the label
So you mean for an override right?
What about when you wana make a new part entirely, or is that not known yet?
now just build and add all of the built files into mod_id/addressables right?
It uses the part name from the parts_data json, and looks for a prefab with that name
Tutorial is slightly out of date, load path needs fixed
I definitely need to do some auto config for this stuff
Streamline that part creation process
I was hoping someone would
I don't know enough about unity to do it
I gotta lot of stuff I wana do around it
Best thing you can do is digest the information down into a way I can build a process out of it
Enabling content creators is what I do
hmm, ok so built it, added do adressables and still nothing... also
[Info :Space Warp] Attempting to load D:\SteamLibrary\steamapps\common\Kerbal Space Program 2\BepInEx\plugins\SOCK\addressables\catalog.json
[Info :Space Warp] Loaded addressables catalog D:\SteamLibrary\steamapps\common\Kerbal Space Program 2\BepInEx\plugins\SOCK\addressables\catalog.json
[Info :Space Warp] D:\SteamLibrary\steamapps\common\Kerbal Space Program 2\BepInEx\plugins\SOCK\addressables\catalog.json ----- D:\SteamLibrary\steamapps\common\Kerbal Space Program 2\BepInEx\plugins\SOCK\addressables\catalog.json
[System] Loading addressables for Spaceplace Orbital Corporation (Kerbalized) completed in 0,0100s.
[Info :Asset Loader] Did not load asset bundles for Spaceplace Orbital Corporation (Kerbalized) as no asset bundles folder existed!
Add
public static string Path { get; private set; }
public override void OnPreInitialized()
{
Path = PluginFolderPath;
}
to your mod class, then your load path is
{Modnamespace.ModClass.Path}/addressables/StandaloneWindows64
hmm
Failed to read data for the AssetBundle 'SOCK.SOCKPlugin.Path\addressables\StandaloneWindows64\defaultlocalgroup_unitybuiltinshaders_637c83d3b41e176e37ad2a752708b847.bundle'.
it doesnt seem to convert the reference to its value....
Unable to open archive file: SOCK.SOCKPlugin.Path/addressables/StandaloneWindows64/defaultlocalgroup_unitybuiltinshaders_637c83d3b41e176e37ad2a752708b847.bundle
Unable to open archive file: SOCK.SOCKPlugin.Path/addressables/StandaloneWindows64/defaultlocalgroup_assets_all_0730bfdf20a4b93a94e4b2f49e6f2b6e.bundle
That happens when it can't find the variable
Dunno why it can't tho
trying to rebuilding seems to fix it... no errors now but still no part
"partName": "gridfin_S",
"author": "Paul Z Kerman",
"category": "Aero",
"family": "0400-Control Surface",
json was copied from control surface light, just removed the procedural part thing
You put that into CorePartData as well?
yup, but idk if its 100% equal
family not set ie, is that enough for it to not load?
Try setting the family
ok, also, modules order is not the same, is that a problem?
Dunno
did my best to make the json and the prefab equal... no luck...
it was missing attachNode and it had a couple mismatched in mass and drag, all that is equal now
[Info :Addressables Loader] Loading addressables for Spaceplace Orbital Corporation (Kerbalized)
[Info :Addressables Loader] Found addressables for Spaceplace Orbital Corporation (Kerbalized)
[Info :Space Warp] Attempting to load D:\SteamLibrary\steamapps\common\Kerbal Space Program 2\BepInEx\plugins\SOCK\addressables\catalog.json
[Info :Space Warp] Loaded addressables catalog D:\SteamLibrary\steamapps\common\Kerbal Space Program 2\BepInEx\plugins\SOCK\addressables\catalog.json
[Info :Space Warp] D:\SteamLibrary\steamapps\common\Kerbal Space Program 2\BepInEx\plugins\SOCK\addressables\catalog.json ----- D:\SteamLibrary\steamapps\common\Kerbal Space Program 2\BepInEx\plugins\SOCK\addressables\catalog.json
[System] Loading addressables for Spaceplace Orbital Corporation (Kerbalized) completed in 0,0105s.
[Info :Asset Loader] Did not load asset bundles for Spaceplace Orbital Corporation (Kerbalized) as no asset bundles folder existed!
logs just in case
Dunno tbh
has anyone been able to do it on 0.4.0?, from what i see Sticks Armory is on 0.3.0 at least from mod structure
I can load parts in 0.4
can you share your addressables/mod to see if i can load them too?
Addressable here, loads from {SOCK.SOCKPlugin.PATH}/addressables
what part am i looking for?
medium square truss
There should be two
One of them will either be named [TBD] or Custom Truss
The icons are identical
yup there she is.... wierd... probably something to do with my addressables config then
well tried updating addressables to the last version, no luck too,
whats your load path?>
instresting, so the problem is with the part that im trying to add, probably it has some critical mismatches
I ripped the truss that you sent me and it addressed well, but the gridfin didnt
currently {SOCK.SOCKPlugin.Path}/addressables/StandaloneWindows64
Wait nvm, I thought the standalonewin64 was wrong, mb
whats your mod class look like?
hmm
with the path added
but i think that its the part problem, since the truss loaded correctly but my part didnt.......
so the mod configuration must be correct, the part probably not
i thnk a prefab to json converter would be helpful, to avoid mismatches
i'll try with a couple other parts that i plan to add
i rather code every mod myself than use nexus
inb4 someone actually does that just like those "so i made minecraft in a week" videos
^
fr
thats what wormhole is
but instead of a week
its like
4 years
@topaz jetty is the current spacewarp-ui repo up to date?
ye, could you update it?
or is there some way of reverting the .bundle
i want to add the borders
it says last update was last week?
is the x button in the top right corner part of the ui?
Thats the last time I worked on the ui
ah
because its not in the repo
And the x button is genned programatically
k
hm ok then cool
ill finish this up and pr
just want to make sure im not modifying something else
Im currently on spring break which is why im not doing much btw
damn you have it so early
mine starts in a month
@sacred jasper
more border?
less border?
i should round it
Less border, round it
less???
its already 5 pixels
rounded
how do i compile to .bundle
nvm
@sacred jasper
do i run Build AssetBundle on the swconsoleui folder, the GUI file, or what?
i tried to compile the folder, and it wouldnt load
Use the editor
There should be a button in the assets menu of the editor
Make sure you added the asset to the bundle as well
soo, which files?
do i just press the button?
i think im being dumb
plz hlep
ah
how to compile
js i am renaming to .bundle
maybe try the Thunderkit bundle? its pretty easy to use
does it have the same product?
Addressables are easier to build
For regular asset bundles yes, but there's no tooling for building addressable bundles in tk yet
And when/if I make tooling, it will likely just use the addressables system
yeah but i was just wondering how you guys made the swconsoleui.bundle in the first place
because when i try to compile it, sw doesnt recognize it
I think the file name had to match an internal name so you can't rename it?
I'm not positive on that one
Regular addressables build just fine
they have a fundamental misunderstanding of what ckan does
i must agree with you
however
that really shouldn't say "A KSP Modloader" anymore
(it should've said "KSP2" in the first place, but its not a modloader anymore)
that has been bugging me
i just find the 2 bundles thing a bit uncessessary?? thunderkit leaves it nice and neat with only 1 bundle and with the name that you want
im thinking, wouldnt a prefab to json be as easy as using reflection to get all public properties of the modules and writing them to a json?
or am i missing something here?
because the properties name seems to be the same, and all values seem to be in either strings, bools or floats... maybe ksp wouldn't read them correctly tho... hmmmm
I just meant that thunderkit doesn't provide anything for it
true, only reason that im now using the addressables package instead of thunderkit, thunderkit is way easier and mroe intuitive tho
@sacred jasper ??? Model is not the problem, just frankensteined it from the gridfin prefab to the dockingPort/shroud prefab and it loaded fine....... must have to do with modules/values in the modules.....
its more fitting to talk about it here since its a spacewarp thing
Odd
narrowed it down to 2 possibilities
Category and family were wrong somehow
Or, the one that i'm more optimistic about
The path/adressable name can't have spaces in it...
got it to load after changing those 2 things... gonna test which one it is
also changed version from 0.1 to 0.3 but i dont think that should affect it at all
im going insane... i think its the version
@sacred jasper version............. this little shit can't be changed... thought that they used to mark versioning of the part but ig not?
btuh
bruh
Perhaps its an api version of some kind
likely actually
@late condor Itโs the version of the JSON schema
Ah yep that makes sense
i'm curious, if i dont set a property on the json, will it be invalid/corrupted when loaded? or will it assume the default value?
Thats a good question
apart from indetifier properties like partName etc, cuz the json seems to have way too much info
i'll try it...
It does, now idk if the part works correctly... removed this and it loaded, tried removing family and category first but it didnt load...
Awesome
whats the problem?
has anyone sucessfully created an control surface part? or will i have to pioneer this too ๐ญ
the module adds well, but no movement on the part, even if i press "deploy"
the fact that currently all control surfaces are proceduraly generated doesnt help at all ngl
another addition to json/module knowledge
Control Surfaces:
- "CtrlSurfacePivotTransformName": "pivotEmpty"
This field, even tho its on json, its read from the prefab module config
btw is there anywhere where i can document this findings? so that new modders don't have to go through this?
i mean in spacewarp doc or similar
make a pr for the sw docs repo?
Can anyone tell me what the f this issue is about? ๐
|
https://github.com/SpaceWarpDev/SpaceWarp/issues/162
I have read this so many times now and I still don't know what its about
Wow, same
its a troll
I feel like I'm having a stroke reading it
troll
I don't get the joke ๐
I closed it and said "Ur banned @ftilly"
gud
Btw since I'm already here, has anyone here used the localization API yet? I've tried putting together a .csv and put it into the mod/localizations folder
and it seems to have loaded in-game but with 0 terms
Nope not yet
any idea on the format?
I've found the docs here: http://inter-illusion.com/assets/I2LocalizationManual/Features.html
but they're not very specific about it
(oh and btw in the SpaceWarp README it says "localization" folder but in code it's in plural)
I mean, it's kinda important, since if people put their files into the localization folder as instructed, it won't load
(that is if we manage to figure out the format lol)
Np, I'll try to figure it out and if I do, I'll post it somewhere here
alr
If we can resolve the the remaining issues in the issue tracker we should be on good pace to release v1.0.0
It is not that much left https://github.com/SpaceWarpDev/SpaceWarp/issues
True that
i have no clue how to do the click through blocker
litearlly
the dumbest thing ever created
We don't have to solve it right now, if it to messed up just ignore it for now
yeah
i did the ui border, and i asked sh box about it
and we found the error
basiclly the build assets builds it to a "path" of Assets/swconsoleui
and sw tries to access it at spacewarp/swconsoleui
nah i showed my "fix" ss
wait, no that is incorrect
doesnt work
We remove the Assets/
basically, when registering it in the asset manager we remove the first parts of Assets/swconsoleUI in the name, and register it at spacewarp/swconsoleui/...
So we know that the assets part of the path exists, but remove it
ok, well its not working so how
oh
wait
do you want me to place the swconsoleui into a folder called spacewarp
no
one sec
sorry for the off-topic, but I just got the localization working
WOO! ๐ฅณ๐ฅณ
correct?
ok
where do you put the bundle?
Alright
ok
And whats going wrong
[ERR 04:48:56.738] Unable to read header from archive file: C:/Program Files (x86)/Steam/steamapps/common/Kerbal Space Program 2/BepInEx/plugins/SpaceWarp/assets/bundles/swconsoleui.bundle
[ERR 04:48:56.739] Failed to read data for the AssetBundle 'C:\Program Files (x86)\Steam\steamapps\common\Kerbal Space Program 2\BepInEx\plugins\SpaceWarp\assets\bundles\swconsoleui.bundle'.
The bundles built incorrectly I presume
how to build then xdd
Its nothing wrong with space warps loading
Also why the fuck is there a
/UI/AssetBundles/toggle_normal.png path?
Looks indeed like the bundle is messed up in some way
then undo it?
yeah sure
Everything should be under swconsoleui/...
there are two toggle_normal
remove one
remove the one in the weird path
This is my example .csv:
Key,Type,Desc,English[en]
KerbonautManager/NotificationEvent/KerbalAlreadyExists,Text,,Kerbal with this name already exists
Key is anything you want to refer to your term in code, Type is probably always going to be "Text" when using the .csv but there are many other types like Sprite etc., Desc or Description I don't think does anything other than info for translators, and the columns after that need to be in the format Language[LanguageCode] and contain the translated terms
pretty much any type of asset can be localized using the library it seems, although for the other types you'd need to build a bundle instead of importing from .csv
Assets:
- Assets/swconsoleUI/borderRadiusDark.png
- Assets/swconsoleUI/GNUUnifont9FullHintInstrUCSUR.ttf
- Assets/swconsoleUI/bgDark.png
- Assets/swconsoleUI/bgLight.png
- Assets/swconsoleUI/borderRadiusLight.png
- Assets/swconsoleUI/toggle_hover.png
- Assets/swconsoleUI/toggle_on_active.png
- Assets/swconsoleUI/toggle_active.png
- Assets/swconsoleUI/genNormal.png
- Assets/swconsoleUI/spacewarpConsole.guiskin
- Assets/swconsoleUI/toggle_on_hover.png
- Assets/swconsoleUI/genActive.png
- Assets/swconsoleUI/toggle_on_normal.png
- Assets/swconsoleUI/toggle_normal.png
built
renamed
same exact error
okay, thats correct
I have no clue whats going wrong
I am tired though, so I'll look at this tomorrow
if I do well within the next week, I'll be a mod, if not, I'll be sacrificed to the kraken ๐

Thats odd
LUL
fixed
wooowwww
Nice
i feel happier in life now
I feel cooler ๐
so many bitches in my dms
Eh, I'm still the coolest, the only pink name in the whole server 
U just ban em
ban you if you're naughty
Let the ban hammer do the talking
i think i would make a great mod
I am off to bed ๐ด
cya tomorrow
cya
I'm simply cooler than you
I setup a python script that gets all the SpaceWarp downloads from both Space Warp and Space Warp + BepInEx from SpaceDock and our Github releases and sort and groups em by version so we can keep track of the total downloads for the project and what version most people are on. Here are the results.
We could have the script run every hour or so and create new images of the graph that can be used in a README file to display stats
oh that's nice, I expected 0.4 to have a lot smaller share
good to see people are updating
So for this data I did not bother to include CurseForge for now as the total downloads there is only 300.
+1 more person having the "mods won't load" issue with sw0.4.0 over on the IG server. ๐ซค
did they try the "delete game folder completely and reinstall game" thing?
(also, I've seen people who just download the SpaceWarp 0.4 zip without BepInEx, and assume it's fine because it has the BepInEx folder, too)
3 times, supposedly
I assume that isn't the case here?
but honestly it seems to be confusing people, having 2 different downloads where one is complete and the other requires you to install something else
at least from what I've seen
I checked on spacewarp-release-0.4.0+bepinex.zip and they said yes, that's what they're using
People need to remember that we are no longer a mod loader and Space Warp itself is just another plugin.
All the cases I have looked into is all user error where the user either has
- Download the wrong versions of mods and tired running it on 0.4.0
- Download an earlier version of Space Warp and tired run 0.4.0 mods on it.
- Forgot to download BepInEx
- Still uses the old folder structure
- Fucked up their KSP2 folder in some weird way
I'd like to add that the last point usually leads to having had SpaceWarp 0.1 installed
^
but from what Silvia is describing, it's difficult to judge what could be going wrong, if they deleted and reinstalled the game, that should take care of the last point, they seem to be downloading the correct version of SpaceWarp, and BepInEx is included in that zip
so my best guess would be wrong mod versions
How to fix:
- NUKE the entire KSP2 folder ๐๐ฅ
- Reinstall the game
- Install only the spacewarp-release-0.4.0+bepinex.zip
- Launch the game and see if it works
If it does not work after this. We are going to need the logs or something
start of my conversation with them, if anyone wants to double-check me:
#1078697132875317358 message
"im on this server, an guy tried to help me, but it didn't worked" heh yeah that was me I remember them
To be fair I don't think I've heard back from anyone who was recommended to delete the whole game folder and reinstall on whether it worked or not
So I just kinda assumed that it did, or they would mention it
I've had that work for one person I was helping
haven't heard yea or nay from anyone else, as best I can remember
yeah, so it leads me to believe that this person is just not following one of the steps correctly somehow
its worked for at least 2 other people who've asked
I think they just drop their 8 mods back into the plugin folder and 1 of the mods is either broken, incompatible or has the wrong version
Honestly, this issue should resolve itself at the next update if anything lol, if they at least remove spacewarp.dll from the managed directory
that shouldn't kill all the mods though
Idk, It potentially could, its hard to say
Steam seems to suck at removing extra files honestly
we have failsafes if a mod has a bad swinfo
or no swinfo
plus bepinex should still notify that they are being loaded
We should provide our own KSP2 Folder nuker ๐ฅ
Alright, issue fixed
Honestly might not be a bad idea
it seems to be the root of most issues here
It doesn't bother. It never has. It just removes the files that it knows it added.
In this instance I wish it did, since we could just tell people to verify the game files in it
That would solve a lot
It would also kinda make sense, added .dlls and other stuff can mess up the game
so why not delete it when you're trying to make the game work ๐คฆโโ๏ธ
If we look at the graphs in #๐ดmod-dev not to many people should be having the issue as there was not that many downloads on the earlier versions.
They should all be on 0.4.0+ and it should be easier and less reports about this
I guess it's for cases like when save files/screenshots/other user data is stored in the game folder
it'd be nice if it'd at least ask.
Delete? Y/n```
could you give me the script? ill setup an api to do that
:O
It needs an Github API token to run as parameter
:D dw
gh = github.Github(access_token)
AttributeError: module 'github' has no attribute 'Github'
@mossy kraken u sure this runs
oh
you're using pygithub
not github
ok it works
Yeah, I had to change cause the flywheel thingy was broken for py 3.11 on windows 11 or something so
``pip install Github` crashed every time for me..
๐
i keep getting these dumbass permission error
ahhhh
@mossy kraken https://vortan.dev/spacewarp/statistic/out/bar_chart.png
very nice
no clue if the cron job is working
Woo! NIcew
*/2 * * * * ~/miniconda3/bin/python var/www/sinon.us.to/html/spacewarp/statistic/stats.py
i have this
which is every 2 minutes
dunno how to check if tho
guess we wait
Yeah ๐ Wait and see if someone downloads ๐
ye
ok well its been at least 2 minutes
i think no update
im gonna run manually
and it works when i run manually
ok
images on github did not update :/ Might be cached?
then u have cache
Perhaps it updates after a while
i need to read some more on how to make "badges"
We could try something like this?
https://stackoverflow.com/questions/48402823/embed-openstreetmap-iframe-in-github-markdown