#Runtime Icons
1903 messages · Page 2 of 2 (latest)
I think my first thought is that it could be GraphicsAPI breaking things, that mod changes a setting that it should not be changing
but I'll check if I can repro on this latest code and then check that after
wait diversity enables that landing cutscene by default??
bruh
I figured for sure that would be opt in or a separate mod
looks like things are maybe fine without diversity/graphicsapi
im going to be honest ive been playing for like a month, and I only played vanilla for like 4 days
I thought the cutscene was vanilla
im gonna disable that
ah I see lol
being able to move around the ship during landing is vital for some strats in vanilla so I don't understand why they would do that
it looks cool but I definitely would never want to be locked out of moving around the ship during landing
now I gotta figure out what the hell GraphicsAPI was doing to us again because I cannot remember everything it screwed with
that mod has been endless trouble for RuntimeIcons, but I had thought that the latest version of the transparent background rendering was immune to its shenanigans
hey if you find any other things that cause a lot of errors and can be disabled, just lmk
oh I'm on my testing profile now tbh
ive been trying to find the causes to a lot of them so if you could lmk thatd be sick
well there's this..........
they should not be including my dll in their "mod" instead of making it a mod pack
it makes BepInEx print this
[Warning: BepInEx] Skipping [OpenBodyCams 1.3.0] because a newer version exists (OpenBodyCams 3.0.3)
reading through the logs with the amount of AccessTools spam from people using it for soft compat is painful, I can't look at this anymore 
one of my biggest pet peeves
I don’t really understand what a lot of that means lol
Does this just go back to mod creators not making their stuff correctly or what
yea
well, the AccessTools thing does
that API is dumb
but the BetterMonitors thing.. that shouldn't exist
it is on an ancient version of OpenBodyCams
for GoAwayModList
oh I see
ancient mod for when LC_API was still relevant

and my friends wonder why i keep my mod pack the way i do, not including various things i "should" to them
since it listed all the mods when you entered a save 😭
the description doesn't even mention those two mods
I also don't understand the logic behind going through the work to put those deps into the manifest instead of just depending on the versions of the mods you want
that is bizarre as hell
if lethal company is held by sticks and glue, this shit is held by one sheet of paper
a string
I don't think there's anything holding it together
definitely not the original author
mental fortitude
its held by the wind deciding if it fully tumbles or not
I wonder if this was made by one of the people that wants their mod list to be shorter for no apparent reason
just shove the mods into a zip file that'll solve it
weirdly enough, installing Diversity in my test profile didn't result in the black background appearing on icons, I'll have to look into this some more
buh
LC_API as a dependency for GoAwayModList is crazy
GoAwayModList only exists because LC_API lists all your mods when you join for no reason
lol
I mean was no point in having it if you didn't have LC_API
Yeah but almost everyone was using LC_API at the time
maybe i was just late to the party but i dont ever remember a time everyone was using lc api
there is nothing in its feature list that is remotely necessary
even when i started playing in early december i never saw any mods using it
unless it was october-november
BiggerLobby had it as a Dep
I assume other bigger mods also had it as a Dep
OG Brutal Company
lol well i guess that is about the only example that comes to mind
HDLethalCompany? I don't recommend using that ever
it would not surprise me if it screws something in RuntimeIcons up
because it touches more than it should and there are alternatives that do what it does better
what are you using it for?
the only thing HD has that no other mod has done for some reason is no pixelization
oh that IS a feature?
Should I use that instead?
i thought it was some weird thing with high resolution stretching out the pixelization filter
if you're using HDLC to increase the render resolution, then I would recommend LCUltrawide instead of that
but don't run them at the same time or things will be broken
Sure
only if you misconfigure it
You should just disable a few of the HD and skybox mods and see if that fixes the issue, then just keep narrowing it down from there
I forget which dimension it is, but you should only set one and it will automatically choose the other
It's probably Height or it doesn't matter which 1
I think I wished it was height but I believe it may not be
I would have to check
oh god the way it sets the fog quality is so cursed
hd lethal company?
doesnt it do resources.findobjectsoftype every single scene load
yes
not only that, but volumes can be added at any time, so there is no guarantee that there won't be some that will be missed
i wouldnt say there's a much better way to do it
outside of not using resources.findobjectsoftype
object.findobjectsbytype with find inactive would be better
it's setting the quality as an override
I would have to imagine that is overriding some global setting in the HDRP asset
oh
right
i forgot that fog had overrides like that in hdrp
i thought it was just a property of the volume
then ya definitely
anyways findobjectsbytype<volume> on scene load isn't always terrible
i use it for a couple things in chameleon
but hdlc is definitely a little scuffed
the volume patch actually causes the ship to fail to land usually
which is the main reason it's deprecated now
huh I see
I just really dislike it because it changes parameters for all cameras in the entire game for no reason
it could just change the gameplay cameras, but no, it's gotta screw with every single camera and break random stuff
ima remove HD lethal then
come to think of it, there's a good chance that is part of the reason that RuntimeIcons is breaking
im removing it, then ill lyk if it fixes it
because for some reason, instead of letting the defaults stay when you're not changing them, it sets the custom pass to enabled even if it is already enabled
give me a minute
that was my immediate thought as soon as you mentioned it touches the cameras
I'm gonna lose it
testing rn
at this point maybe I should just make RuntimeIcons patch out that entire function
stupid mod
god
Im trying it rn give me a second
I kinda wonder if maybe your graphics chip might have issues with graphics fences, do you know if that's possible?
The values you're getting back look completely bogus, but I'll have to try and repro to confirm that it's a hardware/drivers issue
I guess if you have others playing on that profile and they also have the same problem then it couldn't be that, too
@haughty furnace
holy shit removing HDlethal company might have completely fixed it
let me find some more items to see
zagster 😼
yup it fixed it
it's very curious to me that it only breaks when both custom passes are forced on for the icon camera, and diversity sets the custom buffer format to not include alpha
because I had the impression that the vanilla custom pass didn't support transparency anyway
although maybe we are excluded from the custom pass via layer mask..... hmm I forget
it's always HDLC and Diversity man

I'm stealing this fucking emoji
do you got any mods that make the lighting/fog/whatever look better
just ambient stuff
chameleon will let you increase the fog quality
closest thing I know of is Chameleon, which has an option to unable reprojection
but fog quality has an enormous performance cost
but that's probably not exactly the same
oh I see nice
reprojection is just a backup (since it was implemented first)
does it do it the same way as HDLC?
uhh it definitely doesnt do resource.findobjectsoftype
well just any Find<Volume> I mean
i can take it
all good
they tank those
im just tryna make the environment as scary as possible
sus
I will have to figure out if there's an alternative
I am not a fan of that
Watch Aloe.. and millions of other Lethal Company videos captured using Medal.
¯_(ツ)_/¯
when I was just testing, an aloe snatched me and stepped on a land mine and died
pretty goofy
i can look for you
i dont use the fog quality settings myself because im definitely not on powerful enough hardware to support it
but it's super duper easy to test
the visual improvement is immediately apparent on the ship if it works
what you could potentially do worst case is adjust the preset values for the fog settings
not sure if it's public api, but it's one modification site instead of trying to catch all fog volumes in the world
probably
i should mention that the default setting doesn't force fog quality to low
it just doesn't apply any overrides
so that is always an option to avoid breaking mods
the problem, iirc, is that several vanilla volumes have fog overrides set
tyty
so i'd probably have to cache a list of vanilla volumes that have known values i can override (or disable overrides on) or the feature will barely work even when it's enabled
and you'd still be hung out to dry for modded stuff
yee definitely glad that is the case at least
lethal snap?
yes
you should made a secondary mod that applies runtime icons to that
because theyve got similar art to the vanilla gear for the items in ur hotbar, and not a 3d image
well
it's on my todo list to take over maintenance of that mod so I should be able to fix it at the source
problem is I keep getting more and more other things to do
when youve got the chance you should really do that
another thing for the to do list
should be easy enough, I can just remove the icon and then generate one with RuntimeIcons and bundle it
think you'd be able to make it so each of the photos display what's on them in the hotbar too?
well
I definitely could, but that is a fair amount of work on both sides to make that work
i can look into it but im sort of concerned this is going to be necessary to make the mod work in vanilla
but i think the way it's set up is already decent enough it is not a major concern
int? qualityValue = Configuration.fogQuality.Value switch
{
Configuration.FogQuality.Medium => 1,
Configuration.FogQuality.High => 2,
_ => null
};
if (qualityValue.HasValue)
{
fog.quality.Override(qualityValue.Value);
Plugin.Logger.LogDebug($"Changed fog quality mode on \"{volume.name}\" to \"{fog.quality.value}\"");
}
it only overrides the fog quality and doesn't actually override if fog is enabled
and if you use the default setting, this will return null and be skipped, and nothing gets changed
i could maybe add a warning to "use at your own risk with other mods" if there is concern, or an example of a mod that this does conflict with
wait I don't get what's wrong with the patch there exactly
you can't assign materials[1]
zeekerss did it the right way in vanilla
Material[] sharedMaterials = this.flashlightMesh.sharedMaterials;
if (on)
{
sharedMaterials[1] = this.bulbLight;
}
else
{
sharedMaterials[1] = this.bulbDark;
}
this.flashlightMesh.sharedMaterials = sharedMaterials;
why not? is the length 1?
no, [1] is the second index
I know
you can only assign to index 0 with .sharedMaterial = or you have to change the whole array
anyways shaosil's patch breaks all flashlight items
both of the ones in vanilla and the elite flashlight item in the mod that reuses that class
and it's a prefix cancel
it looks like it's using sharedMaterials plural to me
and it's not configurable
if it was trying to assign to an index of a single material that would be a compiler error
sharedMaterials[1] = will not assign to the renderer
you have to do this
it is the only way to assign a material to any index other than the first
in unity
this is for each fog volume in the world?
yeah, run once after the dungeon generates
the code that was in that patch assigns the array back to the renderer does it not?
whats the watcher
you are probably looking at the wrong patch
his Start() patch works
// Copied and optimized from vanilla method
if (__instance.changeMaterial)
{
__instance.flashlightMesh.materials[1] = on ? __instance.bulbLight : __instance.bulbDark;
}
but this does not work
and this is what his SwitchFlashlight prefix cancel does
idk I don't use Diversity lol
oh ok
theres this guy in the vent, it's just a pair of eyes
and if you walk by he snatches you
very well made
oh I was looking at the wrong code then
that is so bad
your link sent me to lunxara's post lol
yeah, that's my bad
anyways it's a prefix cancel that breaks all flashlight items
with no config setting
so the only way to fix it is to
- not use generalimprovements
- write a patch to cancel his prefix cancel (is this even possible? i actually have no idea)
yyyyy
but not only was he changing it to assign to the array directly as an "optimization", he also was using materials instead of sharedMaterials, which would have caused the material to be cloned every time the flashlight is toggled
yeah...
was there a point to the patch other than "optimization"?
that is so concerning if that was all it was for and it wasn't even measured first
Probably not, but we wouldn't know since Shaosil is MIA
the difference is probably completely unmeasurable
shaosil changed a lot more about flashlights than just this
Someone will strike gold if they make a monitor mod that's on par with GI's implementation
iirc the main thing is that he wanted to fix the bug where you can't stack pocketed flashlights
That's all we need honestly, GI touches too much shit imo
like, if you have a laser pointer turned on, switch to a pro flashlight that's turned on, and then scroll off, you will only see one or the other and not both
in vanilla
i also tried to fix this bug and my patch is less destructive but IIRC it is not as watertight as whatever shaosil did with his
i assume he was just prefix canceling everything and had to copy this logic over at the same time
and he made changes to it not being aware of unity's underlying weirdness with the materials API
certainly I wouldn't mind making a monitor mod with an API that does things better but I can't really take the time to do it for free at the moment
and then it sat undiscovered for almost a year now
Just hard to do since probably not many people want/have the time to put in the work and can't fork GI since no license lol
Yeah the better thing would probably be to make a patch that fixes GI breaking Flashlight Bulbs
if I were to make such a thing it would be from scratch
For the time being
there was another mod called openmonitors that is open source i believe
cus knowing Shaosil he will return eventually
yeah that one seems decent on the surface, but I haven't delved into its code
It's abandoned though, and the time display constantly errors for people
it doesn't exactly do everything either
well yeah but it is at least not a dead-end if it's licensed
Yeah it's MIT Licensed
no hate to shaosil, he's a cool guy and i used to use his mod in everything
but i think generalimprovements shot itself in the foot by expanding to encompass so many additional features immediately before he went on hiatus
i am in the unique position where i can just take all the bugs i remember generalimprovements fixing, rewrite those patches, and then release a mod for it and get by without using GI anymore
but for everyone else that got beached with "GI or the highway" it is really unfortunate
Buttery, you could potentially change your fog patch to change
((HDRenderPipeline)RenderPipelineManager.currentPipeline)?.currentPlatformRenderPipelineSettings.lightingQualitySettings
modifying the Fog_ControlMode, Fog_Budget and Fog_DepthRatio arrays that are used to look up the settings for the selected quality level
Someone give me my wake up call and I just do custom monitor shit myself
does this work even if vanilla sets low quality overrides on its volumes?
uhh
like, are you just overriding the default settings for the volume, or are you overriding the qualities themselves
im a bit fuzzy on those details
it is used to look up the fog quality, so if the override is just a simple integer then yes
because several vanilla volumes have a quality override set to force it to low quality
I would expect all of them to be
you can just set each index of those arrays to the maximum quality between their current value and the selected quality level from your config to ensure that it doesn't go below the selected option
then you never reduce quality, only increase it
certainly is a bit fiddly doing it there, but I don't see another option, other than hooking into the getters for the Fog class
feels kind of intrusive
which also wouldn't be terrible
but i can give it a go
what you're doing is inherently intrusive, at least this covers all users
i guess that's fair enough
forcing quality down is arguably worse
yeah
that's true
i thought i added a check to make sure the quality level wasn't higher first
it's also easier for you to make the option changeable at runtime without tracking every single modified value
but the fog stuff went through so many iterations it might have gotten lost at some point
(which would be a very good function to provide to allow people to dial in their settings without restarting)
anyways i havent been touching chameleon in a while but i'll try this once im back to it

ultimately it's probably easier and cleaner to hook the getters, so up to you
either way would work, but getters means that you don't have to be statey
yeah i think if im changing the underlying values
just make sure you're not hitting the overhead of ConfigEntry every time it's called
i'd rather hook the getters if it will function
yea
it should work
it's at a more convenient level where you can just compare one integer instead of a few floats
come to think of it i dont think ive ever patched a getter with harmony before
i've always wanted to see if it'd work but i don't think that, before now, i've ever had a serious use case for it
you can pass MethodType.Getter to the annotation and it will Just Work
ah yeah nvm i remember
i think i saw that when i was trying to patch enumerator types
and found out about methodtype.enumerator
anyways yeah i'll look into it
i have been hopping back and forth between so many things these past 2 days
yeah lol it's sounded like it
Other people with that pack are also having that issue, so it's not the GPU. I've read the information above and just fyi I also have Diversity in the pack + the resolution is changed via LCUltrawide... I'll try without them, but I'm still wondering why the cached icons look completely fine in this case.
trying to load up the profile now to test that, it is nuking my pc from orbit
12gb and it hasn't finished loading 
@tawny crest couldn't repro any issues with icons on that pack on my machine, at least by landing a few times on exp/ass
might need you to narrow it down more
if you find a consistent way to repro the issue lemme know, especially if it happens without all these content mods that took so long to load lmao
Yo I had an idea
For like within the year or whatever you decide to work on lethal snap project
For the actual photo icon you can just have a blank polaroid paper with a black box there the picture is supposed to be
Oki, I'll get back to you when I test with a more lightweight pack, sorry about that 
To reproduce this I just used Imperium to spawn items in the lobby.
it still happens for me only with these mods
idk if this will help, but for some items (Rubber ducky) if i spawn them first, icon will appear, but if they are spawned after something else it doesn't
some items, like the sticky note work all the time (i think?)
items like big bolt or zed dog can never render their icon no matter what
think you could add CullFactory and get a seed for me to use to reproduce some broken items? that would make this vastly easier
you think spawning them with imperium is causing this?
uh possibly? hard to say for sure
I don't think so
I would definitely recommend checking this without spawning via any tool to make it less tricky to debug on my end
but if you are only able to get it to happen that way, you can send exact steps to reproduce the bug every time
Seed: 1891222
Profile code: 0194d7a0-dd63-3e9a-bb10-f0dc0b60467f
Land on Experimentation, go via the fire exit, go down the stairs, find Big bolt -> broken icon
Another way with Imperium:
Load onto the lobby, spawn Big bolt -> broken icon,
Spawn Rubber ducky -> broken icon.
BUT if you switch the order of their spawning after loading on a new save, then:
Rubber ducky -> working icon
Big bolt -> broken icon
Sticky note/Manual on the ship always has a working icon.
it's seems to be the way transparency is calculated, cause for all broken items i get more than 100% transparency reported in the log, sometimes even up to 500%
even though all cached icons look completely fine
yeah, it really shouldn't be possible for it to go over 100% the way it's set up, but I'll have to check if there's something screwy with the async setup for the compute
if you cannot reproduce this on your machine, i'm willing to test some debug builds if that will help
can't reproduce it here with the seed, trying with Imperium now
i have an idea but i'm not sure how you could test it:
we are using a single "count" buffer for all the computeShader executions. and there is a chance, if the gpu is slow, that we run two of them at the same time
thing is, we request the readback in the command buffer along with the execution of our kernels, so it should in theory push those results into the dictionary while they are correct and then continue to the next execution
unless the gpu runs then in parallel... can it? 🤔
the command buffers are run on each camera render's command buffer iirc, so it should be waiting for present and therefore force those to complete in order, but I don't know for sure
we do not have any kind of fence, forcing sequentiality
that's the only thing i can think of that could yield a transparent count of >100
this weekend i'll have to brainstorm with you to polish an idea i have for it
i encountered this issue with one of my friends, but they are using extremely old low power hardware and have no dedicated GPU
it was the same transparency error being printed, and they would hard crash very shortly after, and nobody else experienced that issue with the same profile
i'm not sure if that's of much help but figured i'd mention
wait they crashed 
do they crash regularly? or does it only happen with RuntimeIcons?
extremely old low power hardware
they gaming on a Pi board? /jk
i don't crash, thankfully 
runtime icons does contribute to the frequency of them crashing, but that's more a hazard of their environment than of the mod
i do use an integrated gpu, but i think it uses ram as its memory so there's no shortage of it (64Gb)
also it is not the sole contributor of their crashing
i just wanted to mention that the transparency error definitely replicates for them and might have its roots in hardware specs, rather than just the profile + repro steps
although it's obviously weird it would replicate in an environment like this
will try building something that you can try in a little bit voxx
are you sure that the RequestAsyncReadback will be complete before you run execute in UnpremultiplyAndCountTransparent again?
I am also not sure that countID in the callback will be the correct one in this case for the earlier readback
because if you dispatch two things at once they will run in parallel
we do dispatch only one each frame
and maybe your resetting to zero in the compute shader might not run properly?
well only one render
but is the compute shader readback complete on the next frame when you dispatch the next one?
that we do not check.
that's why i was saying there is a chance we have mutiple compute shaders running at the same time
my impression was that I have to dispatch with the Async postfixed method to have them run in parallel
it's not totally clear from the API though, maybe CommandBuffer.DispatchCompute is by default async and then the higher level APIs that I saw before with the Async postfix use a fence to ensure that they complete in order
I'm going to try putting a fence in
@tawny crest think you could check SystemInfo.supportsGraphicsFence on your machine?
I think it should be an exception for us to use fences without them being supported, but I can't say I know for sure
Dispatch is async by default afaik
ok, give me a minute
gotcha, then this fence should fix it, lemme test on my end and then send it
looks like based on my reading, accessing GraphicsFence.passed should throw an exception if fences aren't supported, so I think we're okay there
Yes, it supports it
@haughty furnace before you pull the trigger
do you remember we said there was something to fix thst was not yet worth a release?
uhhh was it the TZP thing? or something else?
I forgor
that's the point i forgot too 😅
I assume it should have already been committed at this point
ohh it was the fix for the try catch in the thread
oh huh
like putting it inside the iteration instead of around the loop?
oh no it's already there, idr then
no adding explicit handles for the interrupt exceptions so they do not print an error
i'm by mobile till tomorrow evening so i can't really check my uncommitted changes
we talked about it in VC. not sure if i ever sent a screenshot of it
ohh right
it was some extra catches before this line if i remember right
found it
not sure what all the exceptions where tho.. i remember there were at least two
I will add it real quick
ThreadAbortException and ThreadInterruptedException
update should be going out now if I haven't forgotten some step 😅
looks good on Thunderstore 👍
tzp finally fixed lets go
yea sorry it took so long, forgor that I hadn't pushed that commit out
btw you might also want to disable volumetric clouds (FrameSettingsField.VolumetricClouds), cause they are not exactly part of the skybox, so clear flags won't apply to them.
i think this is why one of the people above had some clouds in their icons visible
ah nvm i just saw that you do it 
yeah we got a whole bunch of stuff disabled now
volumetrics don't add to the alpha value in the output as far as I could tell though
but best not to waste time rendering that regardless
my lethal level loader just completely reset out of nowhere after runtime icons updated
anyone else have this or just me
just you
It's not even touching LLL so
Wouldn't be from Runtime Icons anyways
weird
i must have done something then
@haughty furnace
Do you still have my modpack installed?
If you do can you send me the config file for LLL
Mine completely reset and you’re the only person as of rn which has my updated LLL config files before it was wiped
You could also probably just check the chat for when you posted the code if you know what you said when you sent it
Don’t they reset after a day
No?
was it the coconut mall one?
I mean you could find your last profile code in your messages too, but if that's it I can grab it quick
That’s it
Im having a little difficulty finding the files rn
But yeah it’s just the LLL
thank you sm
i do not feel like spending 7 hours configuring everything again
oh that doesnt seem to be working
Delete the config in Gale if you use Gale, then copy paste it to your config directory
I use thunderstore
idk what gale is im gonna be real
is it better
is that a modding app
gale is another mod manager, like thunderstore mod manager
it is locally grown (and by that i mean one of the devs in the lethal company modding community created and maintains)
but mainly it's just nice because it's fully compatible with thunderstore profile codes & way more performant
oh sick
Could u consider compat with item skins
It's very jarring/confusing every time I pull out a scrap item that's different from its icon
Namely perfume bottles
there can only be one icon for each ItemType. that's a hard limit from zeekers.
the variant system was never intended to support completely different models.
having full replacement will also confuse mods like MattyFixes as the same itemType cannot have, for example, multiple vertical offsets or resting rotations.
i always wonder why people prefer to do reskins instead of simply creating new items
In this case, probably for vanilla compatibility
But yeah, thanks for the insight. Unfortunate that it's practically impossible
we could probably do it if we wanted but that would make our icons incompatible with any other mod reading the vanilla filed ( as there is only one for each item type )
Which is why I say practically, probably
@haughty furnace Is it intended for this mod to introduce ship lag when you have lots of scrap on the ship? I just did a test and found that when a lot of scrap is on the ship the ship feels way smoother with it disabled
intended? no, of course not
I had a feeling it wasn't, I wonder if it's just a generation thing upon loading up a save
wait
you mean for a brief period when you first load the save?
that is not unexpected at all
It was more like until I landed the ship and went back in Orbit for whatever reason
if it's permanent on the other hand, that is a different story
if you mean constantly then def unintended
So it lasts until you at least land the ship once which is odd
hmm
curious
well
you could try to send a save and profile code so I can see if I also notice the difference on my machine, but like I mentioned in dev general, it's kinda tricky to share saves these days given that there can be a whole bunch of files associated with one save file
so if you can't figure that out then I guess I recommend trying to repro by spawning items in a fresh save and then reloading it or something
If I had to guess it's probably due to items like the Chem Jug which can't be grabbed til you land
nah
it only does something with those when they spawn and then when they're grabbed, not between
or at least it seems incredibly unlikely
speculation doesn't do us much good anyway, we need to be able to profile this
0194e50d-b675-24f8-eaa0-36abef524d10
You should be able to just backup your ZeekerssRBLX folder under AppData LocalLow and then extract and put this in the directory lol
Then when you're done just swap things back out
I'm curious what you end up finding 
@haughty furnace Lmk if you ended up finding anything lol
haven't had a chance to look yet as I was away from home all day, I might have a look in a bit if I'm not too sleepy
@candid island Just tried out the profile code and save, and I do see a very rough increase in frame times during the initial second or so, but after that, the frame rate seems to be indistinguishable between having RuntimeIcons disabled and enabled
I am curious to profile the main thread and see what's happening that makes the frame rate so low initially, since I wouldn't have expected it to be anywhere near as rough as it is, but it seems normal otherwise
what kind of difference in frame rate are you seeing on your machine? and did you make sure to use the exact same steps to measure before and after disabling?
oh boy, opening this profile in debug build spams a million errors from trying to get the result of web requests off the main thread, fun
@candid island you silly goose
the dump icons option is for debugging, it is not meant to be performant
🙃 it's clearly in the Debug section if i remember right 😅
yep it is lol
it's probably really usefull for content creators if they need an icon for a video tbh
What's it do?
saves all icons to file. so they can be viewed in file explorer
it reads back the texture that was rendered to a texture on the GPU and then encodes and writes it to disk on the main thread
the readback is async, so that saves a little time, but the encoding and writing will be very slow
we could try to make those async as well, but there's really no motivation to do so since we don't use the dumped files as a cache, since we would then have to make invalidation, and generating the icons at runtime is so performant already that it doesn't really have a benefit
huh, looks like every item's update method is allocating
I don't think I ever saw this before, I wonder if someone's patch is wasting a bunch of time
I never turned that on what? I wonder if it was on in an earlier version
Thank you for letting me know lmao
I don't think we've ever shipped it defaulted on
Who knows, I don't remember touching the debug section but it's possible when I played with Matty really early on he had me enable it
And it got forgotten about
Cus we did run into some stuff with that initial build lol
i could have asked you to turn it on in the past to debug an issue. but i doubt as i could have done it myself instead 😅
Haha it's hard to say what happened but glad to know I need to disable that
Probably
Does it say what mod it originates from?
You probably turned it on when I gave you the overrides thing
I didn't I don't believe
I wonder if FinallyCorrectKeys hooks into that
Otherwise I would guess maybe something like GI or ReservedItemSlots
I would doubt HotbarPlus cus I have it's item grabbing patch disabled in it's config
Oh considering it's mentioning Potato0 Mel's cooking mod?
that's the item, I picked one at random
In what scenario would the patch not run?
I probably patch grabbable objects
Colour me surprised, I don't
hmm not sure what you mean
Nah I was just confused earlier
maybe just personal taste but i'd like if the icon for easter eggs was made to be upright again
like the one shown in the description
(i think this one shows off the weird polygons a bit too much)
but the egg looks really weird sitting on its side, with the shadow how it is too
In My Humble Opinion
agreed, but I'm also not as familiar with the rotation override system and especially the built-in set, so not sure if it should have already been like that
it seems possible that we just need to copy a rotation over from Matty's Fixes for an override
I think it was like that in earlier versions
Probably changed when doing the new config thing
yeah. we can add a default override or you could add one in your config folder 🤷
config/RuntimeIcons/Vanilla/Easter egg.json
learning the proper way of custom rotations was life changing 🙏
definitely wouldn't hurt to suggest vanilla item rotations here that would be worth including by default if you have any
for the egg, presumably we can find the old value that was lost, but I'm sure there are others that could look better
definitely. we're open for suggestions on vanilla items.
maybe i'd give opinions if I wasn't a neat freak (on top of using only stage_rotation with my overrides and having changed the drop rotation of like 80% of items)
though for egg I didn't change the drop rotation and used this for the egg
"stage_rotation": [-15, 0, 90]
seen people are using the stage_rotation i'll just give a small explanation on how it works:
item_rotation ( or the vanilla resting_rotation ) is applied centered around the object origin.
stage_rotation is applied after the item_rotation but is centered around the visual center of the object ( centroid computed from the mesh ).
in 99% of cases if you specify a stage_rotation you'll also want to lock the item_rotation 😅
For what reason
if an item changes it's resting_rotation. be it because an external mod ( eg: MattyFixes overrides ) o from a decision by it's dev. then your stage_rotation will be fucked up too.
if you instead have specified a item_rotation too then your icon will stay the same because it's ignoring the OG resting_rotation
ok
What was the process to make Runtime Icons generate icons for the entity plushies
not sure what you mean, we don't do anything special for any specific items
Huh
I read a while ago someone was debugging Runtime Icons to get it to replace the entity plushies’ default icons
Since they’re different from the gear icon
that would have probably been using the override system
Bepinex/config/RuntimeIcons/LethalLib/MonsterPlushies/item name.png
should be perfectly fine to upload custom icon overrides as mods that depends on RuntimeIcons, idk if whoever had done that for the monster plushies would want to share those
would items that already have icons like in monster plushies be overridden by this mod?
oh wait it was only for the basic gear icon right
you'd have to do overriding if a scrap has a custom icon already
i was in the middle of making a bunch of icons for a bunch of items i made, and then i realised this mod can just do it for me

Saves you some time 🙂
where does the cache get dumped to though?
Oh when you have the setting for it enabled? It goes Under BepinEx > Cache > RuntimeIcons
ic ty
yw c;
perfect
aww 😍
😔
F
It should give you some details as to why it failed
oh issue is simple. it's the same reason why RuntimeIcons cannot generate an icon for the maneater.. there are no renderer on the GrabbableObject
it's an enemy with a GrabbableObject attached not vice-versa 😅
maybe we could look at meshes that are children of NetworkObject then? 
im confused, i have a grabbableobject with no renderer to it assigned (as its a child and a skinned mesh renderer and grabbableobject doesnt have a skinned mesh renderer field) and runtime icons generated an icon for it
we look at child renderers, not any field on GrabbableObject, if that's what you mean
if there are no children with a Renderer component, it's very likely that nothing will rendered, as it has no idea where to place it or point the camera
matty's response is what confused me, it has a renderer, a grabbable object and an enemyai
and the GrabbableObject is a parent of the Renderer?
yeah
(Cube is the renderer, idk why rodrigo left it called cube lol)
In that case, is...
Runtime Icon's icons stored anywhere?
turn on Dump Sprites To Cache
and then they're in the profile's cache when they're generated
Also these don't transfer with codes since png's
Buh
Not by file either?
(I think r2modman works for that but Gale doesn't because of its whitelist?)
maybe
i doubt it's a Layer issue:
LayerMask.GetMask("Default", "Player", "Water", "Props", "Room", "InteractableObject", "Foliage", "PhysicsObject", "Enemies", "PlayerRagdoll", "MapHazards", "MiscLevelGeometry", "Terrain")
that looks like a secondary error, we need the full log
the first question would actually be: do you have HDLethalCompany?
Runtime Icons seems to hide lava / other liquids from wesleys moons depending on the angle that I look at the lava from
The profile code is 0195670f-1821-587b-3b8c-eb0f197b0e05
I take it you tested with and without RuntimeIcons to come to this conclusion?
it's not clear if the screenshots there are demonstrating the angle difference or RuntimeIcons on/off
Yeah I tried disabling different mods and found that runtime icons was doing this
The screenshots are both with runtime icons but from a different angle
Not sure if it will help but heres the log
Is it possible to add modded items to the whitelist that allows you to see the icons? If so, how? I tried adding some scraps with utility from Wesley's Moons, such as the Stun Baton and Pickaxe, to the whitelist but I can figure out how.
format is : [API]/[ModName]/[ItemName]
eg: LethalLevelLoader/MagicWesleysMod/Bucket
Thank you :3
Might not be the same cause but on mortar moon from wesleys, the outside is really dark until I leave the moon. Sounds kind of similar a little bit
Did you try disabling runtime icons to see if it helps?
Because I was also getting issues on Fission C where the acid was invisible so jumping on the containers was difficult
trying to look at this now, what map is this?
Infernis from Wesley's Moons
tyty
hmm, not noticing anything like the screenshots yet
@real shore what is your hardware?
This is Lecaro
I also had this, but idk if this is from runtime icons (don't remember if I had it at that point, unfortunately)
oh, my bad :,]
hmm, I can repro, but I'm not sure yet what would be causing this
it's very strange
RTX 3060Ti, i5-11600K, 32G ram
The map was lecaro, but I also had a similar issue on Fission C
seems like there's some lingering effect of us turning off all the lights in the scene when rendering an item
very weird
I'm not sure where it's going wrong but it might be an HDRP bug 
thinking about it, might not be runtime but there is a weird lighting issue in distant objects. Could be something else but sounds similar so I'll mention it
Reminds me of that time I took a video of blackmesa lights flickering terribly in a tile and never sending it
could it be the way shadowmap was set to update? like OnDemand/OnEnable/EveryFrame
alternatively you could just dim them to zero intensity instead of disabling
I don't think it should be anything to do with that, but I'm really not sure what's going on
it's somehow view dependent
I guess one thing I ought to check is if something is getting misclassified in CullFactory, but I don't think that should be the case
if that is not the case, I can only imagine it's some bad frustum culling calculation due to the lights being disabled the first time they render or something
but that doesn't really make a whole lot of sense either
that or setting the range to zero, yeah, might be worth checking
@real shore found the issue, turns out HDRP is a silly and wasn't updating the light bounds correctly after we toggle them for item rendering
v0.3.2
- Fixed lights on some moons disappearing based on camera angle after items have been rendered
That's great! I find the mod really useful and would've hated to take it out of my modpack
How come icons are dark when cached while the ones in-game are brighter
(The hoarding bug is a cached icon, while the grapes are not)
do not use the PNGs from the cache. use the EXR and convert that to a PNG
to be fair the "dump to cache" is intended for debug purposes so use it at your own risk 😅
How do you do this without using a shady website
u can probably put it into an image editor like gimp or whatever and just export
^ gimp
make sure you change the format from 16-bit to 8-bit before you export
(iirc it goes to 16-bit when opening the exr and tries to save the png as that)
And if you don't like gimp, krita should support exr aswell 
i don't think that works ackshually
replace hdlc with something maintained
I'm assuming you're running that
it's an issue that happens in combination between those two
and not one that I'm interested in fixing given that they are both committing tomfoolery that they should not be
Hdlcpatch will break too or?
what do you need hdlc for?
if for better visuals LCUltrawide Community is the suggested alternative
I've never heard of it, but the issue with hdlc is not something I expect people to make a patch for, so I doubt it
uh
is it bad i use both
actually wait
do all of these do the same thing
bruh
i'm pretty sure that fixcamera and lcultrawide to almost the same things
and as of hdlcpatch 1.4.0 you don't really need hdlc anymore
I looked and HDLCPatch still does things that it should not be doing
I recommend against using it
use LethalSponge instead, you can change the game's graphics with that one too
until it specifically modifies only the options for the gameplay camera, and only the ones it actually needs to, it will almost undoubtedly screw up Runtime Icons
which is the best
ive used fixcamerares the most
but ultrawide seems nice for other players
LCUltrawide is the only one I know of that only modifies the gameplay cameras
but you may have no issues with FixCameraResolution, idk
Heyo, would y'all ever be interested in changing the default icon for the player body?
the mod that used to replace it is no longer working for whatever reason :(
uhhh what mod replaced it?
RuntimeIcons provides a way to override the icon without code, so if that mod wasn't using that, it probably should have, and if it was, sounds like we have a lil regression
I think they're referring to RuntimeIconsBodyReplacement
hmm lemme check it
I forget how the icon replacements are matched, but I would imagine the most likely culprit would be a rename
ok to be honest I have no idea how that mod ever worked
the folder structure doesn't match what Matty's code is looking for, and that code hasn't changed in a long time
only thing I can think is one of the mod managers saw the LethalCompanyModding-RuntimeIcons folder and moved it into the plugins folder instead of as a child of RetroModding-RuntimeIconsBodyReplacement, which would've caused it to be recognized
I have to assume it has worked in the past, but I'm not sure why
it works again by moving the RuntimeIcons folder out of the LethalCompanyModding-RuntimeIcons folder, into the root of the mod's plugin folder, as expected
ohhhh wait the folder structure of the mod's package is trying to place its body replacement into the RuntimeIcons plugin folder to replace its icon directly, I see lol
I'm guessing it "broke" because Gale started to match r2modman behavior better with a folder structure like this
anyways that method is wrong and RuntimeIcons, already at the time, provided a system to add your own overrides from inside your own mod folder.
should be a pinned comment but mobile does not help atm
yee
this suggestion makes it into a proper override
if they'd tested in r2modman it would've been apparent that it was done incorrectly from the beginning I believe
this is the folder structure your mod zip file should have
EDIT: wrong link
wrong image one sec
Body is classified as "Unknown"
overrides.json appears to be unnecessary in this case too, as the built-in override is below default priority
yeah all the json files are unnecessary for this specific usecase. the image is just the full spec
(thanks to that matty guy for making it so easy)
That's strange, I never used gale
will inform them ... if I even can LOL
hmm, then maybe r2modman changed too? not sure
it's a pretty easy change though, hopefully they can update it
I use base TS lol
or someone can upload a fork
I prolly could but idk if that'd be allowed
that could make more sense actually, their app lags far behind r2modman
as far as I'm aware anyway
depends on if they gave it a license I guess, but you could potentially also make your own icon and then it wouldn't be derivative
in theory it shouldn't be too hard to pose the ragdoll in editor and chroma key it
that IS true, I could just go into that one green screen move and kms and then I'd be able to key the img of the body out
or that lol
or that, that would be smarter
but I also want that Sweet Lethal Shader to apply so I may do it the dumb way LOL
hmm
worth noting that the vanilla icons and runtime icons both don't use it
might be worth comparing how they look
oh that do be true
easy fix for the dumb way, weheheh
anyway, thanks for the help fellas heheh
if i can't wrap my head around making my own replacement I'll ask questions here, I s'pose heheh
I notice this happens a lot where it just barely is unable to make icons for some scraps, should I drop the transparency down to 0.95 potentially?
I'm gonna test it if it looks wonky I'll revert
Okay this is just inconsistent, sometimes it fails and sometimes not wonderful
hm, you should send dumped renders of those, especially if you can replicate this inconsistency and grab multiple renders with different results
is it inconsistent in that sometimes it replaces the icon and sometimes not?
Yeah
yeah I'd recommend comparing a failed render to a successful one then using the dumping feature
RuntimeIcons is only partially working on V73 it seems
Doesn't auto gen icons but if a json is present to give a value that icon will work
hum interesting
Matty mentioned that it seemed okay, so I didn't have a look yet, but I'll try to later
It doesn't error at all, so not sure why it's behaving strangely
yeah hard to say, I'll try to look into it after I finish with work
Is anyone having problems with rendering vanilla scraps? After v73 most of the time they don't load
yeah
yea
ye
sorry I haven't had time to look into it for a bit, I'm investigating now
Unity update appears to have completely screwed up our compute shader, no clue why yet
it feels like HDRP changed so that it's not running our command buffer anymore
oh lol
i think zeekerss updated HDRP (or maybe it came with the unity version update?)
scoops mentioned it in the lethalsponge thread
He did yeah both Sponge and TME had to reference the new HDRP version via a transpiler
oh I'm aware they updated HDRP
oh you got to it first
I just had to figure out why that broke it
well, first confirm it was the cause, then figure out why
looks like Unity devs decided that letting the camera callback insert commands in their command buffers was illegal
(which it is actually not and is incredibly useful to be able to do)
yup
time to make another transpiler 
Btw I need to message you cus I feel like it might be something you or DiFFoZ could isolate, from what 1A3 told me something with the netcode update or the unity version bump is causing MoreCompany to fail to allow more than 5 players to join the lobby, perhaps you could isolate it and make a patch of some sort?
I don't really have time for that
I'm trying to maintain my own mods in my free time, that's about it 😅
cus 1A3 has been struggling lol
@lapis stag I suppose you might be interested in looking into it as well
u pinging a lot of people chief
desperate times call for desperate needs
I'll check it when I have time, if it hasn't been fixed yet.
It's been a few days and 1A3 and Swipez are still struggling so that's why I figured it would be worth bringing it up with some of you guys that frequently dig into this stuff lol
it's bein silly not sure why
I guess I should've trusted the CI when it said it failed, I couldn't remember whether that had worked in the past 😅
Uh I think your packages file needs to be rebuilt or something
It keeps the hashes of the last fetched file so this may be a case of deleting it and letting it regenerate? I've never seen this error before but it sounds like its being sent the latest version of those packages instead of the one you're requesting maybe? That could be an Aaron nuget thing?
you're talkin about packages.lock.json?
hmm I just regenerated it locally and it didn't change 
I assume you don't mean regenerating it on GH Actions
well the lock file is really more of a want than a need so if we can't figure it out then you could always set restore with lock file to false
Apparently if you push a new version without updating the version meta info it can confuse the nuget resolver so maybe one or more of those packages just straight up didn't update their version field?
You can try setting it to the latest with a wildcard, or setting it manually to the latest available on the feed for each one that is failing and regenerating the lock file
funny thing is it's failing for all of them, and the versions match
trying latest is an interesting idea just to see if it changes anything tho
a lot of the suggestions seem to be clearing the cache and junk but I have no idea how to do that in a GH runner
Worst case: You disbale lock file restore for a build or two and then turn it back on later when your old build runner dies so you know the cache is clear, I guess?
https://github.com/LethalCompanyModding/RuntimeIcons/actions/caches actually it seems that just using package.lock.json isn't enough to create the cache for the runner and none of the projects have a cache at all so I dunno
wat de hell
this one only complained about one package
presumably because it is the only one that hasn't updated
this is so annoying lmao
lemme try one more thing before I disable it all
I honestly don't know what its comparing the fetched file to at this point, there isn't a cache 
would you be able to give me direct push capability for a bit? this is a pain in the ass lol
I think my tag got put on the previous commit for some reason so it just didn't run
eh nvm lemme just turn off the --locked for one commit

wha...
do I need to delete the lock file and change the csproj despite it not being passed --locked-mode?
hmm don't tell me it's because I was confused about how tags work and it's been building a branch this entire time
surely not
nope
I got no clue
I can't keep banging my head against this tonight so if you want to try anything feel free
Honestly, I dunno either
well I got it to work by downgrading VertexLibrary
awesome
well i guess unity is trying make modding life harder... not that it's going to be too much harder as mods have the ability to edit any part of the code 😅
uh? err doesn't that cause issues on it's own?

only the linkage, not the manifest, so as long as it builds it shouldn't matter
not sure if that would be the reason but I certainly wonder what made them make such a fundamental change to it
I wonder if people were using it to grab camera output the old fashioned way and it wasn't working
not sure if this makes that use case work
Hey, dunno if you know about this issue already, but the Maneater cannot properly be given custom icons
For example, with HoneeItemIcons, you have to pick up a maneater and refresh their icon in LethalConfig to get the mod's custom icon for the maneater every time you run a new Lethal Company instance
It'd be nice if you were to take a little squiz at this, as this apparently isn't an issue on Debit Card's end :d
i saw it . but the ManEater is not a proper GrabbableObject so it's tricky. from what i can see we'd need to make a patch specific for the maneater entity and it would probably still not render :/
would be good to put an issue on GitHub for that @bitter rain , I might be able to look into it sometime if I have that as a reminder
@ripe drift not a major thing but wonder if there could be an adjustment for the utility slot? it has icons but they are slightly too high so some items overlap with the border
not sure about what we can do in Runtime Icons about that.
as demonstrated by Runtime Icons still working without changes in v81, the tool slot is effectively the same as a normal slot
so there isn't a separate icon we can use for it specifically
i think either making the slot itself larger or the icon within it smaller would work
quick side by side (i think making the slot larger would be ideal, since if the icon became smaller it might be rather hard to see from afar)
Oh this doesnt mean make a new icon
I just meant something that scales it
making the slot larger is out of scope
making the icon smaller is only in scope if it's our bug that it's not smaller I'd say, as well
making patches to the UI is a recipe for compatibility issues in the future
in other words, I'd personally only want to fix this issue if the vanilla icons are already shrinking to fit into the slot
I wouldn't necessarily doubt that it's our bug, sprites are screwy as hell, but I'd need to confirm that first
it's not a bug
vanilla just shrunk the utility slot non-relative to the icon inside (maybe the icon inside is the same scale as normal slots?)
even in vanilla, items occupy more of the "frame" in the utility slot
so this is more of a feature request, to make of that as you will
gotcha
yeah, I'm not inclined to do that as I mentioned before, but I won't say Matty can't do it
I would just not feel so good about it when it means it's more likely to break later down the line
i'm of your same opinion zaggy. i'd say that feature fits more as it's own separate mod
yeah thats what I said?
I wasn't replying to you with that message
but also, you weren't very clear about the issue either, you said the icons were too high, not too large
Meant too large sorry
early tests made it look too high but it being to big became more clear
with bigger objects
small little thing about the utility slot: manually refreshing the icon doesn't appear to work while an item is in the slot, and the new icon only shows after the item is taken out & put back into any slot
another jankyness to the util slot!
Yeah!
ah, that is something we probably need to address
we have code to refresh the icons in the hotbar when the async work finishes, so I suspect it's possible to get a permanent loading icon
you would have to pick up an item with a generated icon pretty much frame 1 though
I assume that's not even possible in vanilla nor with overrides, though
i encountered that by spawning in a shotgun shell with imperium (a modded one that was able to go into that slot)
