#KSP2 Unity Tools
1 messages · Page 2 of 1
Hmmm... I changed it from everything (which is for making the zip I guess) to just Copy Assets Only and it forgot (?) all the JSON stuff, or is just not displaying it now.
It's just not displaying all of it
Intentional, as none of that matters for Copy Assets Only
only the modid
Should the In Game Mod Folder be where I have this go and the Build Path is therefore wrong above?
therefore a lot of the information in there is useless, so it hides it
For testing the in game mod folder is where it should go in game, the build path ideally points to your development mod folder
So perhaps this
And pressing Build and Test would build, place, and then launch?
Yep!
Nifty!
I am pleased. But I do still want a pony. Or failing that a working LFO
I am working on the latter, but it will not in fact be just a couple of hours
as I am doing basically a complete rewrite
Well that was easy!
and I know absolutely nothing about shaders, so red plumes it is, for now, I'm afraid
But build and test does the following
Build asset bundles to - Assets/assets/bundles
Build addressables
Copy Assets/localizations to mod/localizations
Copy Assets/assets to mod/assets
Copy Assets/patches to mod/patches
Copy Assets/libraries to mod/libraries
Runs KSP2_x64.exe
You tease! #1090450560114761749 message
I want to help with that part.
I mean fair, I can give you the version I currently have, but I can't guarantee it works
huh turns out the package does not actually need to be at the root @vague karma
I could maybe take a stab at it myself
though it would be a bit clunky to refer to the path in the repo
Huh
So this tells me I need to put a few more things into my Assets folder. No problem
Its meant to enable a complete part mod with possible patch manager patches to be built entirely within unity
For localizations, it's jsut my csv file in the proper folder?
Yep
What about this file?
could you maybe instead just have a plugin_template folder to make it match SW.Template, and just copy everything inside it?
(@ Cheese)
Ignore that for now, I will add a plugin_template folder into version 0.6.0
Ill write that tomorrow
Unless @teal cipher or someone wants to make the fix
Cuz Im about to get on vr for the night
Though I may just do it after I am off vr
its honestly leess code
and you can drop dlls in there
If those are the noise textures that the plumes use it would be good to include them if there will be an in game editor one day
thats why waterfall included all the textures
those ... are the mod specific profiles?
Oh
then yeah get those in the mods that use them
Yep, those are not noise, they are the plume profiles you helped us make! They're from your tool.
This may be a bug. I've applied KSP2UT 0.5.0 to my SPARK project and imported my swinfo. The dialog is reporting my mod's version as 0.1.0, but in the swinfo it's 0.2.0
Why for 0.1.0?
Am I being forcibly downgraded?
the CheeseAI decided your mod doesn't deserve the 0.2 version number
Is there some wild QC process that evaluates my mod and finds it unworthy of a mere 0.2.0?
Rats!
Foiled again.
Closeing the window and reopening gives the same result
It will be fixed in the next update
Or there's that
I forgot one field from the swinfo json object to copy and its version
Just set it to 0.2.0 manually for now
The Rat Strikes again! Can I get a QA role?
Screw it why not
Kidding!
<@&1168697563139031121>

What?
So yeah
Time to fix the json importer and create a plugin_template folder
@teal cipher ksp2unitytools 0.6.0 (the PR i just made) should have all the fixes for the various bugs
And also change to using a plugin_template folder
(For @grizzled herald to be able to put the LOABE.cfg into the folder)
This really should just be the standard for part modding, and honestly, I'd advise people to create a new project and copy the parts over
Alright, I might add an API into this for making stuff addressable under the mod group with a label or not, and with a name
On the dev branch now
though I need to fix some stuff
I really want y'know ... file scoped namespaces
yeah, that would be really nice
but I wouldn't expect Unity to upgrade Mono any further, I think they'll probably just go straight to .NET after the current version
which will be who knows how long
Truee
The fun part is going to be using that addressables API for LFO
the KSP2UTSettings file
I think this happened when I installed KSP2UT before importing the game, which of course causes all the compile errors
Ahh yeah
deleting the two KSP2UT files and clicking Reimport on KSP2UT regenerated the files correctly now
I'm really on a roll
that's when trying to either build or build and test
when I check the path, the file that it can't find does appear there
but only after the error
I got the engine into the game, just took the generated zip, extracted it into the game, and copied over the built addressables from the KSP2UnityToolsTempBuild folder
but when trying to build it automatically with KSP2UT, it just keeps throwing that same error
Thats uhh extremely odd
I think I may be starting to rival schlosrat as a QA rat
Can you copy the full path name it throws in the error into here
C:\Games\KSP Stuff\KSP 2 Modding\Mods\CommunityPartsPack\src\cpp_unity_project\KSP2UnityToolsTempBuild\BepInEx\Plugins\CommunityPartsPack\addressables\StandaloneWindows64\6aaefc5c0aeeb0c7d427bcdbbfa1ea5c_unitybuiltinshaders_35f82297a6512ae11437900d460e7995.bundle
why the hell does Unity need the builtin shaders bundle to have a 92-character filename, that's already 1/3 of the limit

I updated the registry value, guess I'll have to reboot to check if it worked, but first I just want to finally test adding the plume lol
Why does windows have such a short path length limit
It refreshes on the first win32 api call
probably some stupid backwards compatibility with 16-bit apps
well I tried twice and still the same error
The registry key will not be reloaded during the lifetime of the process.
Ahh
I misread something
A restart is likely best
do I dare close Unity
lol
now that it's actually all working
I'll test after I test the plume
Tbh I thought for sure the error couldnt be the path length at first but I had to check
It could have given a better error like path too long or sometjing
it really could have
I also keep getting these when saving part JSON
though it doesn't affect the saving itself
Cant fix that
no problem, just wanted to let you know
one thing I kinda neglected to think about when suggesting copying over the whole plugin_template folder is that now the release is filled with .meta files
huh
OHHHHH
FileInfo.Extension ... includes the .
Also, I already had long paths enabled lol
I should add a button in the SDK to enable long paths, that would be great
noticed a small bug in the KSP2 Unity Tools window
when the paths in the bottom text boxes are too long, the textboxes and the buttons next to them overflow (with no scrollbar or anything)
while the textboxes in the above section are correctly bound to the panel width
Ahh
@teal cipher could you review my PR
https://github.com/KSP2Community/KSP2UnityTools/pull/9
no fix for overflowing textboxes, sadge
I have no clue how to fix that tbh
if that top part is wrapped in a scrollview or something like that, then that's probably the issue
wait what
no the issue was with the bottom part
ignore me
lmao
Aaaaa I forgot the texture in there didn't I
Then I shall also add the texture and make a quick hotfix
And there a PR has been made for the hotfix
should I just push it through?
yeah
For the reentry shader, does each part need a separate material with it? Or is it for each LOD? Or one for all parts is ok?
Ask @little junco
This next update is certainly going to be a doozy
as I have to create a lot of baking tools
Like I need to bake the entirety of science regions for example
Meaning I'm going to have an editor for that
And I'm going to allow you to use a color map to bake it :3
There is so much that goes into making a planet aaaa
Honestly @teal cipher I actually think that putting the decompiled scripts into this package or a dependency (likely better), isn't a horrible idea, it would be kind of a pain to maintain though
the biggest issue would be getting them all to compile
I think I already tried at some point to get a project with the decompiled stripped assemblies to compile, and I got relatively close but there were still issues
and it needed a lot of work to get there
oh I was trying to do it for the documentation
to be able to fill in the doc comments directly into the source
and I gave up in the end
pain
It might become necessary though if we want to have a no headache way for users to do modding via unity
Anyways, LINQ is fun
is it, I just wish Mono didn't suck so much
if this was just .NET, I'd be using it everywhere
Yeah
In the editor though, if something takes a bit longer its not as much as an issue
yeah that's true
especially since you shouldn't be baking science maps every frame
That's very rust-y / functional, looks nice
I love using a lot of functional stuff where it makes sense
I mean patch manager itself for example is a very functional language
I should add streams into patch manager :3
when I add support for custom types (basically dictionaries with a @type field) maybe I will
I created and pushed tags for all version "releases" of this
so that it's for example possible to install a specific version with https://github.com/KSP2Community/KSP2UnityTools.git#0.8.3
Gotcha
@teal cipher can you make a version without the fix unity button?
I can try, but I can't promise anything, train wifi keeps going on and off
Though ... based off of main, as dev has a lot of planet stuff
PR is up
Thank you
UnityEngine.AddressableAssets.InvalidKeyException: Exception of type 'UnityEngine.AddressableAssets.InvalidKeyException' was thrown. No Location found for Key=localization
UnityEngine.AddressableAssets.Addressables:LoadAssetsAsync<I2.Loc.LanguageSourceAsset> (object,System.Action`1<I2.Loc.LanguageSourceAsset>)
KSP.Assets.AssetProvider:EditorLoadByLabel<I2.Loc.LanguageSourceAsset> (string,System.Action`1<I2.Loc.LanguageSourceAsset>,System.Action`1<System.Collections.Generic.IList`1<I2.Loc.LanguageSourceAsset>>)
I2.Loc.LocalizationManager:RegisterSourceInAddressables ()
I2.Loc.LocalizationManager:UpdateSources ()
I2.Loc.LocalizationManager:InitializeIfNeeded ()
I2.Loc.LocalizationManager:TryGetTranslation (string,string&,bool,int,bool,bool,UnityEngine.GameObject,string,bool,string)
KSP.Localization.PartLocalization:TryGetPartString (string,KSP.Localization.PartLocalization/PartPrefixedStrings,string&)
KSP.Localization.PartLocalization:TryGetPartDescription (string,string&)
KSP.Sim.Definitions.PartData:get_Description ()
System.Reflection.RuntimePropertyInfo:GetValue (object,object[])
Newtonsoft.Json.Utilities.ReflectionUtils:GetMemberValue (System.Reflection.MemberInfo,object)
Newtonsoft.Json.Serialization.ReflectionValueProvider:GetValue (object)
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter:CalculatePropertyValues (Newtonsoft.Json.JsonWriter,object,Newtonsoft.Json.Serialization.JsonContainerContract,Newtonsoft.Json.Serialization.JsonProperty,Newtonsoft.Json.Serialization.JsonProperty,Newtonsoft.Json.Serialization.JsonContract&,object&)
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter:SerializeObject (Newtonsoft.Json.JsonWriter,object,Newtonsoft.Json.Serialization.JsonObjectContract,Newtonsoft.Json.Serialization.JsonProperty,Newtonsoft.Json.Serialization.JsonContainerContract,Newtonsoft.Json.Serialization.JsonProperty)
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter:SerializeValue (Newtonsoft.Json.JsonWriter,object,Newtonsoft.Json.Serialization.JsonContract,Newtonsoft.Json.Serialization.JsonProperty,Newtonsoft.Json.Serialization.JsonContainerContract,Newtonsoft.Json.Serialization.JsonProperty)
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter:SerializeObject (Newtonsoft.Json.JsonWriter,object,Newtonsoft.Json.Serialization.JsonObjectContract,Newtonsoft.Json.Serialization.JsonProperty,Newtonsoft.Json.Serialization.JsonContainerContract,Newtonsoft.Json.Serialization.JsonProperty)
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter:SerializeValue (Newtonsoft.Json.JsonWriter,object,Newtonsoft.Json.Serialization.JsonContract,Newtonsoft.Json.Serialization.JsonProperty,Newtonsoft.Json.Serialization.JsonContainerContract,Newtonsoft.Json.Serialization.JsonProperty)
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter:Serialize (Newtonsoft.Json.JsonWriter,object,System.Type)
Newtonsoft.Json.JsonSerializer:SerializeInternal (Newtonsoft.Json.JsonWriter,object,System.Type)
Newtonsoft.Json.JsonSerializer:Serialize (Newtonsoft.Json.JsonWriter,object,System.Type)
Newtonsoft.Json.JsonConvert:SerializeObjectInternal (object,System.Type,Newtonsoft.Json.JsonSerializer)
Newtonsoft.Json.JsonConvert:SerializeObject (object,System.Type,Newtonsoft.Json.JsonSerializerSettings)
Newtonsoft.Json.JsonConvert:SerializeObject (object,Newtonsoft.Json.JsonSerializerSettings)
KSP.IO.IOProvider:ToJson (object,Newtonsoft.Json.JsonSerializerSettings)
KSP.IO.IOProvider:ToJson (object)
ksp2community.ksp2unitytools.editor.PartEditor:OnInspectorGUI () (at ./Library/PackageCache/ksp2community.ksp2unitytools@bc61e6a86a/Editor/PartEditor.cs:188)
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)
this is an interesting new error
(repeats for manufacturer, title, subtitle, description)
Is it related to the tk issue
it appears even when there are no ThunderKit errors (when you choose not to import KSP2 addressables)
so it's probably another isolated 0.2.1 issue
When you choose not to import addressables
I seeeee
And the error is relating to what?
ah it should have been obvious in hindsight
the ThunderKit one, or this one?
This one
well, saving the core part data json
Yes but its trying to go through addressables
it was just an empty Unity project, added an object, added a core part data component, clicked save JSON
that was it
to be fair I had no clue that it can go through some invisible hidden addressables that are imported by TK
Well given the error normally doesnt happen consistently I think that may be the case
How does TK's addressables import work actually
no clue at all
It copies the addressable catalog from the game directory into your project in the default location where you'd setup an addressable library and then asks the addressable system to load it
if that's the case, then yeah, these errors are definitely related
It also intercepts the loading process to redirect unity to the games install directory so that the addressable asset bundles don't need to be copied into the project. This is good because those assets are not editable and this removes one of a couple different things that would suggest they can be edited
If the game is having errors though that almost certainly has nothing to donwith tk
Since tk won't be involved at all st runtime
Or well it shouldn't be. And if somehow it is, thats tk not being used right
this error is in the editor
well either we have addressables loaded by tk and not have this error and be unable to build stuff, or we don't have them loaded and we have this error but I think able to build stuff?
Am I confused?
The issue last night was about the game itself failing to load correctly due to a breakdown in addressables, yeah?
oh
I'm referring to this one here
I don't know much about that other issue
Munix who I accidentally pinged may know more
Not exactly, the video I sent shows that ThunderKit has errors when trying to import the game's addressables
And then when we disable the import of addresables, that breaks building our own addressables, because the game code that we need to run in editor to serialize the part modules depends on the game addresables being loaded
So the workaround didn't really help
Oh I see you installed the addressable library
If you're going to install the addressable library, its certainly critical you install the same version as the game, AND do so before importing the game using ThunderKit
It should work in theory, I put im a fix for someone early on here
Or they submitted a pr?
I dont really recall, it was shortly after initial release
I'm not saying this will definitely fix anything
But its where to start
Alright, interesting, I'll try to look what the version the game uses is
But we've never had issues with this before (at least not since I've been here)
Its definitely strange, but always start with the basics
I'm working rn, but if you want me to look into it I can. After work.
It would be very helpful if you could setup a minimal sample
Lile you have errors on initial import, but also when trying to build
I cant test building well bexauee I dont have experience with mosding ksp2
Or if its really simple just give me a set of steps
So, the absolute minimum is to install TK and import KSP2, then create an empty object in the scene, add the Core Part Data component to it and press Save JSON
Actually, sorry, no
That specific error is caused by not importing addressables
Nevermind
I'll set it up when I get home
uhh probably stupid question
but how do I know what version the game uses 
the assembly version is just 0.0.0.0
You ask the devs
Thats why I had put that question in way back
Or, you make a ton of builds with different versions of addressables in it and do a hash code check
Which would probably take a few hours
jesus christ
Unfortunately unity never thought it was a good idea to add an assembly version to their packages
Which has some merit, but sucks
Its reasonable because devs can always modify those packages, and in doing so they would render the version number irrelevant, putting you right back to where you have to ask devs
Ror2 for instance uses a modified addressables, so you cant actually just use the addressables package
can we just use the game's addressables assembly instead then?
Thats typically what I recommend
Wont that like not have the editor code
:/
That is not feasible
In theory I could rebuild that for a modding environment
Do yall tale advantage of addressables
basically everything has to be in addressables
I always saw people just use normal bundles along side it
since the game loads stuff like parts and planets from labels
and we'd have to severely modify the game's asset management code to work around it
So that makes things a little difficult I suppose
You could try making a modified version of addressables that only includes the editor code
Not to suggest thatd be a simple endeavor, it may be
I guess I'll get started on this

Ultimately its going to be good to know if they made any changes
You may do that hash code thing and find no matches
Which means that they modified it and therefor you'll have no useful information out the other side
This is more a modding reality than anything
yeah, I love to hate on Unity but I can't imagine that other engines don't exactly make it much easier
alright I did ask, so we'll see if we get anything
but I'm kinda worried, since everything worked fine with 0.1.5 and 0.2.0
and with both of those, we were using the latest version of addressables (1.21.19)
and now, in 0.2.1 it suddenly doesn't work, but I can't imagine they for some reason downgraded the package
and there is no newer version to check
so I'm kinda suspecting some custom changes possibly
Thats also a possibility, but if ita only a problem in the editor it could be how tk is integrating it
yeah, seems to be an editor-only issue
because mods with addressables built for older versions work fine in the game (even those built with 2020.3)
alright, so I've been told the Addressables package version they're using is 1.19.19 (and no word about any custom modifications, so I assume there are none)
and still the same errors
when importing the game
this is weird, it looks like there's a reference to a file that doesn't exist, but if that was the case, then they also wouldn't be able to build the addressables, right?
It could be a configuration issue in addressables
What happens if you DONT install the addressable package
Can you do the import and use the browser?
Yep, that works
So then id say the issue is somewhere with addressables configuration
Unfortunately, I dont have sufficient experience with addressables to guess at what that could be
The error makes me think that the issue is an expectation of runtime assets being loaded in
Whichz we are technically doing
It may be that the best way to handle all this would be to do it purely through the addressables library
The tk browser would need to be adapted to handle that situation
In theoryz the stuff thunderkit does to import addressables is unnecessary/wrong
Wrong in the "way you do things with addressables" sense
Tk does stuff this way to not require the package be installed
I see
Ahh
I mean, hmm, if you used a compiled dll you could just use reflection to check for addressables, however feasible that is
Just to be clear if you can show me how to set things up the proper way (eg, without thunderkit) I'll adapt TK to work in that situation
My entire goal is to minimize barriers
I'm not entirely sure what you mean by that
(without thunderkit)
if you mean a setup for making parts (which is the main thing we use TK for), then we have never been able to do that without thunderkit
we need the game's components to make the parts, and we need the game's addressables imported in order for the game's JSON export code to work
ok I literally can't explain this
this is with a completely clean install of KSP2 0.2.0 (the previous version)
this exact process has worked for me like 20 times before, never with those issues
ThunderKit version is the same, Addressables version is the same, game version is the same, Unity version is the same
the last time I did this was literally 5 days ago with no issues on my laptop, and that had to have been with 0.2.1
I just checked
from my laptop, using KSP2 0.2.1
no, I mean load the games addressables
I think it should be doable
so, I'm not having any problem
It seems to be weirdly inconsistent
On my desktop, I had no issues in 0.2.0, then after updating to 0.2.1, it didn't work, after downgrading to 0.2.0 it didn't work, and even after deleting the whole game folder and installing version 0.2.0 from Steam again, it still doesn't work
Yet on my laptop, it worked in 0.2.0 and it works in 0.2.1
I have no idea why this would happen
And I'm not the only one with this issue
My first thought was that maybe the install that works fine had some leftover files from previous versions of the game that made it work, but that can't be the case, because I only bought the laptop recently and the first version of the game that I installed was 0.2.0, so having a clean version of 0.2.0 on my desktop should have the same exact results
Yet it doesn't
I'm honestly completely confused
@vague karma honestly we should remove (or at least hide) the option to save a .patch file for a part for now, it does more harm than good, I've seen multiple people who click it accidentally then have no clue why their part is not working properly when they change something and export the JSON
at least until we actually get the part duplication feature working in PM
until then it's basically useless
I ran into the same problem as above with ThunderKit able to browse assets in one project but not another.
I don't know the "correct" way to do this, but I found a workaround. Loading TK's imported catalog when entering playmode fixes the TK addressable browser, even after leaving playmode.
So maybe just needs something to check after editor load if the catalog is loaded and load it if it isn't?
namespace Klm.Unity.Editor
{
public class KlmPrevisGameShim : MonoBehaviour
{
public string kspAssetCatalogPath = "StreamingAssets/aa/catalog.json";
public List<GameObject> enableAfterCatalogLoad;
private IEnumerator Start()
{
var path = Path.Join(Application.dataPath, kspAssetCatalogPath);
var loadKspAssetTask = Addressables.LoadContentCatalogAsync(path, false);
yield return loadKspAssetTask;
var result = loadKspAssetTask.Result;
Debug.Log($"loaded {result.Keys.Count()} keys from locator {result.LocatorId}");
Addressables.Release(loadKspAssetTask);
foreach(var go in enableAfterCatalogLoad)
{
go.SetActive(true);
}
}
}
}```
Prints
loaded 8197 keys from locator F:/repos/Klm/src/Klm.Unity/Klm.Unity/Assets\StreamingAssets/aa/catalog.json
Interestingly, it now shows both addressables from my own project as well as ksp.
Domain reload clears it.
I created a quick and dirty asset postprocessor that reloads the catalog after domain reload. Seems to work. ```cs
class ImportKspAddressables : AssetPostprocessor
{
static readonly string kspAssetCatalogPath = "StreamingAssets/aa/catalog.json";
static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths, bool didDomainReload)
{
if (!didDomainReload)
{
return;
}
var currentLocators = Addressables.ResourceLocators.ToArray();
var path = Path.Join(Application.dataPath, kspAssetCatalogPath);
if (!currentLocators.Select(rl => rl.LocatorId).Contains(path))
{
var loadKspCatalogTask = Addressables.LoadContentCatalogAsync(path, false);
loadKspCatalogTask.WaitForCompletion();
var result = loadKspCatalogTask.Result;
Debug.Log($"loaded {result.Keys.Count()} keys from locator {result.LocatorId}");
Addressables.Release(loadKspCatalogTask);
}
else
{
Debug.Log($"Resource locator for {path} is already loaded.");
}
}```
loaded 8197 keys from locator F:/repos/Klm/src/Klm.Unity/Klm.Unity/Assets\StreamingAssets/aa/catalog.json
I like that this makes the ksp content visible to code that uses keys, but doesn't seem to make it visible to the addressable build system.
wait you can enter playmode with ThunderKit??
that would always just crash Unity for us
I can barely do anything else. 😆
can't run a player build. Can't debug ksp game dll code in the editor. I can use the addressable browser, but all of the behaviors when inspecting a prefab come up with "unknown behavior" errors.
Would you want a PR for this? I can probably clean it up and make it a settings option.
sure
Merged.
Wow that was fast 😄
I didn't make the setting in the menu because I've never used this editor before.
Turning on the option in the settings object and trigger a domain reload should do the trick.
very situational
yeah personally I was never able to, even with just an empty project and KSP2 imported
With the right work, you can get entire games to run
I just never found it particularly useful, so I never spent time trying to make it a thing
I think launching games to test mods is faster than running it in the editor with the domain reload shit
honestly this would probably be really useful at this point, for people who want to basically continue working on the game where the devs left it
typically you need to resolve a number of small issues
I think they would be better off trying to create a project that decompiles the source and organizes it appropriately
do the DevX thing
which is easier said than done, but so is getting games to run in the editor from a TK import
I got relatively close to making the C# source project compilable, but there were some issues I couldn't get past
for RoR2 it took a bit of doing, I had to completely rebuild a few scenes by hand to recreate them in the editor environment
since those scenes were loading environments and needed to run in order for the game to work
I don't really think its an automateable process
I think the biggest issue with that is not being able to work on anything like that publicly
and making it very difficult to distribute changes
yeah I mean that is going to be na issue for a continuance style situation
regardless of how you do it
unless its like
people distribut binary patches?
really the only option is Harmony and Mono.Cecil, or like you said, binary patches, yeah
yeah...
and other people
I'm really surprised by the whole thing, I expect Indie EA's to fail, I really didn't expect a AAA publisher to fail an EA title like that
My use case is building test rigs for faster iteration.
Waiting for the full game to load then load a savegame in the test situation takes several minutes. Domain reload and enter playmode only takes a few seconds.
For working on stuff like shaders, I can rip stuff out of renderdoc or an asset ripper and plop it in to see the effect instantly.
Not so much for behavioral overrides.
But I honestly think if I could get something that could load non-addressables assets, I could get ksp's pqs running in the editor. They left a bunch of test classes sitting in the player assembly, and some of their testing prefabs in addressables.
There are a lot of unity asset ripping applications. What I need is an asset reading library.
Don't we all
I have a prototype tool that extracts assets from assets files and packs them into bundles which allows you to load stuff from them in a readonly format
It's far from a functional tool but it is a valid poc
Its based on assets tools v2, so quite outdated
I couldn't successfully load everything
Ohh I think that might solve my problem.
My blocker is Resources.Load() calls with hard-coded paths from game code.
I have a PoC for intercepting these calls, just no way to actually get the assets.
Cube maps never worked
I selfishly encourage you to fork it, update it to v3, try to keep its workflow, since it's designed to be a modding utility as well
You can build bundles using it that depend on files in assets files
Where is the 3.0.0 dll from? Build off dev branch?
I think that's the part you would have to do
"update it to v3"
oh you mean the Asset Tools, of course
the Nuget is v3: https://www.nuget.org/packages/AssetsTools.NET
Thanks, just figured I'd nab the latest version as a basis.
The one in PP's repo is 3.0 already, code just needs update because the api changed.
yeah, that's what I would assume
