#LethalLib

1 messages · Page 1 of 1 (latest)

lofty nymph
devout glacier
#

shit right that is a point

lofty nymph
#

Okay so, this:

Well I'm saying that because I had problems adding a custom item due to me not having the right components and scripts and stuff. I'd lean toward automating that part of the process if this was an issue that the end user could face, but it's probably not gonna be a problem with the custom moon

I personally deem user error

hollow needle
#

should just rename this section to Eva-and-Eba cuz its basically your section

lofty nymph
#

I don't expect the API to set up your prefabs and stuff for you

#

What we really need is documentation

#

and a modding wiki

devout glacier
#

like I said that's not really relevant to the moon discussion anyway

fresh folio
#

Forwarding from modding discussion

I mean if you want I can focus on code based development and you can focus on unity based development that way both bases are covered

devout glacier
#

You are right thought documentation would make it far easier

fading socket
#

so for a custom moon api my ideal solution is:

  • map creator can download some sdk/unitypackage on the right unity version
  • put together whatever visuals in-editor, then add some component like a MoonDescriptor that you can fill all the metadata in

the sdk would export all of this as an assetbundle, and in a normal case you'd never need to touch code
if you need code you can always add some plugin extension or something

fresh folio
#

I’m more for the whole impossible to break method type approach than figure it out yourself approach

#

I’ve always been that way

#

Think I said awhile ago I design my utils in my mods to theoretically be transferrable to other projects if someone needs it

fading socket
#

it's possible to setup a second "editor-only" assembly that only contains the MonoBehaviours you want to show up in editor

like here
https://github.com/Vadix88/MonkeMapLoader
so you don't have to worry about breaking references

fresh folio
#

And they should be self explanatory

lofty nymph
#

I want development to feel as close as working on the original game project inside unity as possible myself

#

rather than doing a bunch of function calls to make stuff

devout glacier
#

Yeah honestly despite my problems with unity and its stability I'm with you on that

lofty nymph
#

that was my intention

fresh folio
fading socket
lofty nymph
#

it would go for any API and stuff, so we'd need a wiki for that

devout glacier
fading socket
#

95% of people who wanna make a custom moon don't need or want code

#

or most visuals

fresh folio
#

It’s how spikestrip was laid out whenever the fuck I was working on that

#

So the workflow is similar

fading socket
fresh folio
#

I’ve worked in both workflows though so personally I’m not picky but I will say dealing with unity errors is quite annoying

#

However this isn’t as unstable as thunderkit/msu so thank god for that

lofty nymph
#

If I take the item creation part into account

fresh folio
#

Msu makes me want to kill myself whenever I interface with it

lofty nymph
#

sorry i keep straying away from the moon api

#

This is basically my design standpoint

fresh folio
#

Moonapi should be a separate thread tbh

lofty nymph
#

i put 4 assets (made in unity) in a bundle, load it and register it

#

and it just works

fresh folio
#

I’m all for it as it’s easier to interface with in the long run but also visual studio people don’t always want to learn unity

devout glacier
#

One big thing in favor of leveraging unity for the custom moon: knowing where certain things are

lofty nymph
#

i think

fresh folio
#

If you want though I can use my experience of making unity tools for ror2 and try to apply it to making more tools for that instead of just scripts

devout glacier
#

currently I haven't changed the ship's landing location or the item dropship's landing location, and so I had Laz just make the fbx and then I'd match the relevent meshes to their locations on vow

fresh folio
#

Like the wizard systems we have which will literally generate prefabs for you (actually foolproof)

fading socket
devout glacier
#

in theory if I can find out how to change the ship's landing location, etc, like I already have with the doors, it should be fine

#

but at the same time having the level open to help visualize is probably just superior

lofty nymph
#

not sure what you are thinking

fresh folio
#

Yeah that’s basically what it did

#

I’m

#

I don’t have a example on hand

fading socket
fresh folio
#

But it’s like fill out information about an object and it’ll generate a prefab with that information filled in with every component you need for that kind of content

lofty nymph
#

i just use the actual game classes

fading socket
#

oh i see, i thought you were adding custom behaviour

lofty nymph
#

oh yeah that too

fresh folio
#

Also could probably polish up the enemy side of lethallib I suppose since I’m going to be working on that hard soon enough

lofty nymph
#

some of my items have custom behaviours

lofty nymph
fresh folio
#

I can figure out the rest hopefully

lofty nymph
#

Also need to rethink the way you choose what moons to spawn enemies/items on, currently it is a flag enum

#

but that would not work with custom moons

devout glacier
#

My biggest concern with enemies right now is that idk if navmeshes can be regenerated dynamically

fresh folio
#

Yeah that’s probably relegated to an array or list in code

devout glacier
#

I know in unreal that's a flag you have to check per-project

fresh folio
#

But that’s an issue with new moons

lofty nymph
#

they mean

fresh folio
#

I just said that

devout glacier
#

oh sorry, im totally thinking in terms of what I need for WTO

lofty nymph
#

But yeah baking navmeshes are runtime is definitely a thing because procedural generation is a thing

fresh folio
#

The issue is unless you make some kind of node painter tool you have to make something that prebakes a navmesh

#

Baking at runtime fucking sucks don’t do it please

lofty nymph
devout glacier
#

yeah

#

cuz of the dungeons

#

but idk if it does that outside

lofty nymph
#

yup

devout glacier
#

I guess if it's on for the project it's on for the project

lofty nymph
#

probably not but it should be referencable

devout glacier
#

and I can just manaually trigger it

fresh folio
#

Why does zeeks do that it’s so fucking heavy for no reason aaa

#

Making navmeshes at runtime hurts my soul

devout glacier
#

well youd need to for the enemy navigation inside the dungeons to work, wouldn't you?

lofty nymph
#

how else would you have AI navigation in randomly generated dungeons

#

lol

fresh folio
#

Yeah that’s fair

devout glacier
#

idk I know OYH uses runtime nav gen but that's just because I'm an asshole and like it when things are easy

fresh folio
#

Still wanna avoid that as much as possible

#

Personally some sort of painter is better than a baker cause you can fine tune the nodes

devout glacier
#

Anyway, next week I've set aside completely for custom AI stuff

fresh folio
#

We used to have a baker for ror2 and switched to a painter and holy shit did that fix so many issues you couldn’t solve otherwise

devout glacier
#

I'd love to compare notes and hopefully getting it to work in the context of the custom moons

lofty nymph
devout glacier
#

I really should look at stuff from ror2 modding i see it brought up a lot

fresh folio
#

Don’t

lofty nymph
fresh folio
#

We have horrible tools

devout glacier
#

sure but they at least have an implementation

fresh folio
devout glacier
#

specifically this is ideally a christmas gift for my friends who worked on the game with me

fresh folio
#

The grind is real

devout glacier
#

moon, enemies, items

fresh folio
#

I’m thinking about maybe being able to reverse engineer the painter we use for ror2

devout glacier
#

hopefully a couple custom item scripts now that I know its possible

fresh folio
#

To work for lc

lofty nymph
fresh folio
#

The painter we have now is kinda generic

fading socket
#

is the plan for custom moon API to have it be its separate thing or integrate it back into lethallib

fresh folio
#

It places a gameobject for a node and then bakes them all together into a mesh when you are done

devout glacier
fresh folio
devout glacier
#

are you working a custom moon too?

fresh folio
#

No but first enemy on thunderstore is something I’ve been striving for

devout glacier
#

I'll let you have it

lofty nymph
devout glacier
#

provided it's done quickly

#

ok well eva won't

fresh folio
#

Do not do it with the roomba

#

I beg

devout glacier
#

but I want first moon >:)

lofty nymph
#

I had my enemy basically done

fresh folio
#

I do not deserve to go out like this

lofty nymph
#

boomba will be real

fresh folio
#

I am split between working on first enemy for lethal company and first major rorr port mod for ror2

#

Both kinda are time sensitive

#

Fuck my life

lofty nymph
#

i thought you were porting risk of rain to lethal company and was wondering how that would work

fresh folio
#

I do have work so I probably lose the race to boomba

#

Also I go on vacation at the end of this week lmao

#

I’ve made enemies in like 2 days though

#

Can’t be that bad right

devout glacier
#

anyway im way past late for dnd but when I get home ill start on proper implementation for these moon tools

#

going to for now go with a "do as much as you can in unity" workflow

fresh folio
#

If only this game used entity states I’d be all over the enemy modding

devout glacier
#

add some documentation to explain that part of the process

fading socket
#

yeah, if you need any help let me know, i've implemented a custom map mod or two in my day
willing to help with whatever sdk/tooling/smoothness/docs

devout glacier
#

appreciated

fresh folio
#

Ror2 enemy creation is something I’ve always been very passionate about (even though it generally blows)

#

I do not mind writing/setting up a modding wiki

#

I will probably do as such soon

fading socket
#

i've already started one

#

still very early if there's massive changes to make

fresh folio
#

Through a GitHub site I’m assuming?

fading socket
#

just hosted through github pages right now yeah

fresh folio
#

I hope you aren’t just hosting it on GitHub’s wiki tools

#

Those blow

fading socket
#

no lol i'm trying to move the current docs away from those

#

you can't even PR

fresh folio
#

Ror2 modding wiki is the one thing I enjoy about it so if we can get it similar that’d be great

#

Iirc it uses GitHub wiki tools to upload new pages

fading socket
#

yeah it should be able to get pretty similar, i'll probably mention you whenever it's a bit more setup if you were interested in starting to document things

just uses .md files

fresh folio
#

Basically I think it’s rigged with an action to add all the pages from the original wiki to the new site we are using

#

Makes contributing a lot easier

#

Vs having to pr

#

I will document things but I would hopefully not have to pr everything I write

#

Gets super annoying if you need to say edit a thing cause it looked wrong

fading socket
#

have there not been problems with just giving full access to the github wiki

fresh folio
#

No not at all

#

There’s the weird issue of like having 3 pages on the same topic but that wasn’t caused by that

#

Most people don’t care to interface with GitHub to that level

#

And then surface level moderation fixes anything else

fading socket
#

hmm, i'll see if i can think about lower-barrier-to-entry ways to contribute like that

fresh folio
#

Either that or id just request perms so I can push my shit to the wiki

fading socket
#

ideally i'd like to be able to retain translation through crowdin

fresh folio
#

Do not think prs need to be analyzed cause it’s just markdown files

#

Can’t do too much damage pushing those to main

fading socket
#

idk there's like, images
and the site updates pretty instantly

#

i don't think it would be too bad if there was a delay so people could catch things though

fresh folio
#

Yeah even the ror2 one has a delay

#

It’s like once every couple of hours it updates I think

#

Anyway luckily I’m used to writing unity guides so I should be able to provide documentation quite easily

fading socket
#

yeah i'll see what i can do, need to talk to max, get all that ported over
i do agree there should probably be some non-PR way to contribute for normal people that don't wanna make 12 PRs
and the PR setup is probably not ideal rn i think it's mostly org defaults

fresh folio
#

If I don’t pr stuff soonish just remind me cause I’m kinda busy most of the time and I still wanna like play games and shit sometimes so my time management is like boned

solemn wadi
#

Might be a lot to ask, but i'm completely lost trying to use this and I'd love for someone to make a template vs project that adds just a single item

I'm really new to all this and I feel like there's a lot i'm missing and a lot of stupid questions I could ask and usually I can understand stuff pretty fast when using a base template to learn from. but the mods available using the lib have a ton of content in it and I haven't been able to reproduce anything.

If anyone could do this i'd be really grateful and if not i'll just do it myself when I understand how this whole thing works 🙏

devout glacier
#

substantive progress on custom moon stuff being translated to the API

#

some testing on it to do tmr

fresh folio
#

So @lofty nymph I was thinking of what exactly would make a good modded terminal system to separate content and also not flood the vanilla terminal with a ton of modded things and I kinda settled on an idea I think?

Opening up the terminal instead opens to a “boot menu” where you can pick an “operating system” and ideally each mod would have its own system so you can separate your content into its own section.

Downside is this Might require a rewrite of the terminal system cause I can’t think of something that’d just let it be done with a hook so prolly some icky code

lofty nymph
#

yeaaa i'm not sure

fresh folio
#

Especially cause the store is like already pretty cluttered in vanilla

#

I feel like majority of people will want to add equipment/scrap

#

Also a good way to sort out modded moons

#

Only other issue I think there might be is unless you completely separate the keyword lists there’s bound to be overlap

#

Hell theres bunkbed and bunker spider in the base game

devout glacier
#

I feel like if youre making a custom moon you'd want it to appear at the bottom of the moon list with all the vanilla ones tbqh

#

but regardless I feel like this is a bit too much for the API to be shouldering especially automatically

#

out of scope

lofty nymph
#

i'd love some kind of waila type thing where you can see what mod something belongs to, but i'd have no idea how to implement that in a generic way

fresh folio
fresh folio
#

Just remembered chatting about it

devout glacier
#

oh in that case go for it theres no reason not to

fresh folio
#

Like I fucking hate addition into base lists for games cause ror2 does that and then you get pages and pages of content in the same section cause it’s all shoved into one section

#

This was the way to solve the issue imo

devout glacier
#

mod creators would have to opt into it though

#

which I think is how it should be

lofty nymph
#

i'm unsure how you'd even determine what is added by which mods

#

unless the mods directly tell your api

fresh folio
#

Cause I shouldn’t have to scroll for 3 seconds through all the modded equipment to see my furniture options

fresh folio
devout glacier
fresh folio
#

I’m kinda thinking ror2 here for implementation, since I do enjoy the expansion system

devout glacier
#

Like right now WTO adds a node for the moon itself and then adds definitions for the route verb and info verb

#

all of this added to the base terminal

fresh folio
#

Yeah issue being

#

Imagine 5 moons being added onto the list

devout glacier
#

here hang on let me draft up something

fresh folio
#

I would assume it would be like Load and then the name of the mod section the dev sets

#

This way you can switch easily without having to back out

#

I can whip up some scriptable objects and stuff when I get home but the issue is implementation into the existing terminal system

#

If at all using the existing system

#

Cause it kinda blows from what I’ve seen of it

devout glacier
#

Hmm

#

so for this "custom OS" are you going to be using the base terminal object, or are you going to make a new one?

#

because if youre using the base terminal class, I can just create an overload that lets you specify what terminal youre adding the new moon nodes to

#

assuming youre using the custom one

fresh folio
#

I can’t tell if I should be using the base terminal system or writing a new one

#

Idk how flexible the existing one is

#

Also writing a new one would allow for more customization from developers

#

Potentially worthwhile

#

The terminalnode/keyword system isn’t horrible though

keen fractal
#

im guessing the enemy creation is still a wip

fresh folio
#

It works

#

Idk what people expect

#

You are doing a lot of work making an enemy regardless

#

Can’t really trim that down a ton without making a unity tool

#

Which ig I could do

lofty nymph
#

the api only registers it with the game

fresh folio
#

There’s no way to trim the manual labor really

#

I can’t wave a fairy wand and generate your ai

lofty nymph
#

nah, it is the same labor the game dev would do lol

fresh folio
#

Also you need art direction and a general understanding of animators ect ect

#

Fucking got beat by the roomba cause the ai took too long to code

#

Fail

#

😭

lofty nymph
fresh folio
#

alright hopping on that first high quality enemy mod bandwagon ig

fresh folio
#

So it doesn’t really matter

#

Don’t think a carpet stalls a week

lofty nymph
#

true

#

i already implemented unlockables api so most of the work is done

fresh folio
#

Just scope creep yourself idk

lofty nymph
#

hacking tool i doubt i am gonna finish before i release what i have because it requires UI work

#

ihateUIihateUIihateUIihateUIihateUIihateUI

#

guh

fresh folio
#

Canvas is free

lofty nymph
fresh folio
#

Idk what you mean unity ui is intuitive

lofty nymph
#

and shit

fresh folio
keen fractal
#

do you have a repo for adding an enemy i saw you say you managed to get an enemy to spawn but thats it

fresh folio
lofty nymph
#

and need to caculate mouse positions based on the mesh

#

tho i will probably give up on that part

#

lol

fresh folio
#

It’s the exact same process

#

Which is a lot of work if you didn’t know

#

Especially depending on how unique your ai is

lofty nymph
#

yeah i basically just copied the game's enemy prefabs lol

#

with a custom behaviour

fresh folio
#

Cause as far as I’m aware boomba just kinda runs towards you and explodes?

lofty nymph
#

lmao

keen fractal
fresh folio
#

It’s in the unity project itself

#

Meanwhile I’m twiddling my thumbs over here writing 2 separate ais

#

For the same enemy

#

The pharaohs curse

lofty nymph
#

i am not making another enemy after this

fresh folio
#

Yay I get enemy creation ownership

#

This is not a good thing

lofty nymph
#

probably done modding this game after i finish adding my current backlog

fresh folio
#

I will be dealing with 1 billion questions from people who will give up after 2 days

lofty nymph
#

burnt myself out so quick

#

lmao

fresh folio
#

Yeah happens to the best of us

#

I’m still running on some random motivation I pulled out of my ass so

lofty nymph
#

i got to play the game for like 2 sessions total that i consider real sessions 😭

#

none of my friends are ever around at the same time

fresh folio
#

Yeah happens

#

Every one of my close friends has a fucked up evil sleep schedule and I have to defeat their 7 evil sleep paralysis demons to get them online together

#

Also not to mention convincing them to try another game is a whole fucking hassle

#

I suggested lethal company to my friends literally a day or two after it came out before the popularity surge and like nobody could decide if they actually wanted to play it

#

So instead I just gifted it to a friend and we played it cause we were bored

fresh folio
#

Then again at this point it’ll be refreshing having a competent game codebase

#
  • my friends got me back into warframe my free time is COOKED
lofty nymph
#

unity is doing the thing again where it won't let me rename a prefab

#

waaah

fresh folio
#

I’m assuming cause something in your code also depends on it

lofty nymph
#

nope restarting unity fixed it

#

lol

fresh folio
#

Oh it was just visual bug epic

#

You can also just reimport the folder iirc

#

If you really a psycho

lofty nymph
#

@fresh folio Do you happen to know if
[CreateAssetMenu] works on a managed plug-in in unity?

#

i ran into an issue where there is no button to create a UnlockableItem scriptable object, because zeekerss just defines them directly in the unlockables list.
so i was trying to add my own like this

#

However it does not appear to show up in unity

fresh folio
#

I mean it still needs to be an so

#

create assetmenu only works if its attached to a SO

lofty nymph
#

i thought it was one

#

oh nvm

#

it is not

#

that explains that

#

guh

#

it is just serializable

fresh folio
#

just make an object then?

lofty nymph
fresh folio
#

yeah

#

thats my best idea for it

#

make a wrapper object and then transfer values is probably the best way to do that

lofty nymph
#

alr ill just make the api accept either or

#

thanks that was a good idea

fresh folio
#

@lofty nymph hey so question\

#

Do we know what the "type" definitions are actually like comparable

#

like what each number actually means

#

cause Id suggest putting that in as a dropdown instead

lofty nymph
#

1 is other

#

lmao

#

it is exclusively used for save file stuff as far as i could tell

#

and entirely unnecessary

#

because could have just had a checkbox

#

having suits and ship unlockables in the same list is kinda goofy anyway

fading socket
#

honestly I might use a monobehaviour instead, it would let you export the whole thing as one prefab

lofty nymph
#

a scriptableobject that holds all your other stuff

#

otherwise you have useless stuff on your prefab lol feels dirty

fresh folio
#

make a content holder scriptable object its free

#

thats what ror2 does

lofty nymph
#

fading socket
#

as long as it's really intuitive to new users It Works™️

#

you could prob get rid of a few properties there too, nobody is ever going to need to modify Placed Position/Rotation in-editor i assume

lofty nymph
#

there was something i forgot to do

#

and i remembered what it was

#

for a second

#

and now i forgot again

fading socket
#

oh no sorry if that's my fault

fresh folio
#

honestly

#

if your willing to put in the effort

#

I could help chip in a little

#

but we should probably make a wrapper for every base game so

#

at least content so

fading socket
#

IMO you should be able to create most custom content without importing the game assemblies

#

and just using wrappers

#

definitely willing to make some fancy in-unity editors/sdk stuff if yall need the help

fresh folio
#

same here

lofty nymph
#

I am just sticking with vanilla stuff myself but tools to make things easier for others i guess are always welcome

bold thorn
#

I'm trying to make a really basic creature with this API, like a copy of an existing enemy or something that can spawn but just stands still. I have coding experience but not modding experience, so just injecting a new creature into the game is my first goal.
I watched the tutorial by Miinxx but it landed me at adding new lines of codes, not full classes. So how far away am I and where could I get some examples to better understand how to mod this game? Currently looking at LateGameUpgrades for some pointers

lofty nymph
#

and yeah resources in terms of tutorials and such are kind of limited at the moment, this modding community is very much still in it's infancy lol

fresh folio
#

groan I dont want to make an enemy tutorial cause its like super broad

#

and also because it generally requires a lot of time and effort

#

as well as a good understanding of coding

bold thorn
#

There's a few mods that do that, so I think I can figure stuff out

fresh folio
#

I dont frankly have the time to tell everyone how to make their specific enemy

#

Id just fucking rot away if I did

lofty nymph
#

@fresh folio Another L moment for this game

#

The upgrades list is defined in text

fresh folio
#

its MANUALLY FORMATTED

#

WHAT

lofty nymph
#

the others are generated at runtime

fresh folio
#

dude

lofty nymph
#

ONLY THE UPGRADES ONE WAS MANUALLY WRITTEN

#

WHYY

fresh folio
#

so we just override that and make a new one that is generated at runtime

#

shrimple

lofty nymph
#

I can't exactly reformat it myself because mod compatibility

#

idk

#

sounds like a bad idea lol

#

i could regex it

#

surely this won't go wrong

fresh folio
#

No like genuinely would help mod compat if we made it generated at runtime

lofty nymph
#

and you'd have two mods/apis fighting over the display text

#

depending on how that other mod does things

fresh folio
#

just do it first

#

big win

#

no better way to do it that isnt deranged

lofty nymph
#

i'll just hook TextPostProcess and add things after SHIP UPGRADES:

#

shrug

fresh folio
#

I dont want to do that

#

so fake

#

anyway I thought you were just making a decor item wuh

lofty nymph
#

and i guess upgrades are part of that

#

lol

lofty nymph
#

I am not sure how to find an insertion point in a way that won't break

fresh folio
#

this game is good

#

I swear

lofty nymph
#

especially when mines make noise

fresh folio
#

it logs every tick of every ai's pathing

lofty nymph
#

i love abundant logging!!

#

i have a few of those myself probably

#

Cool, unlockables API seems to be working

#

it also is able to add stuff under ship upgrades now

#

in a very shit way

#

lmao

fresh folio
#

misery

devout glacier
#

custom moon integration is kicking my ass, made a substantive amount of progress on it but it's not exactly working yet

junior hedge
#

A number of things are, sadly

lofty nymph
junior hedge
#

What

#

I did not see that

#

Yikes

lofty nymph
#

just copied code from different mods and changed the variable names basically lol

junior hedge
#

Got references for this?

lofty nymph
#

i don't really mind because my lib is open source and they at least credited me in the item api file but still feels kind of shitty for someone to make yet another api mod which is basically just other mods stitched together

#

This made me laugh #dev-general message

devout glacier
#

Hey Eva, have you ever actually gotten a custom scrap item to spawn inside the factory? I think the items have to be registered with the level's RandomScrapSpawn instances

#

can totally do this on my fork was just wondering if I was missing something in existing code

lofty nymph
#

my stuff spawns in the factory

devout glacier
#

weird okay I'm totally missing something then

#

let me go look at lethalthings again

lofty nymph
#

lethallib does

devout glacier
#

Oh I'm looking at lethalthings for an example of an implementation to compare to my own

#

form a better hypothesis on whats going wrong

devout glacier
#

Is the git source up to date? version doesn't seem to match latest on thunderstore

lofty nymph
#

i never pushed

#

and my local version is ahead of thunderstore

#

lmao

analog nymph
#

I'm looking at the code for LethalLib (trying to understand how networking stuff works) and what the heck is On

#

like On.GameNetworkManager.Start trying to figure out what's adding that, is it some library to work with Harmony or something

fresh folio
#

Lmao

#

Harmony user learns of monomod for the first time

analog nymph
#

is it better than Harmony

#

I've been able to use Harmony to do what I need just fine

lofty nymph
analog nymph
#

ok cool to know

lofty nymph
fresh folio
#

Seems like it’s something to do with faulty terminal patches

#

But I know for a fact my hook wasn’t written poorly

lofty nymph
#

any error in a terminal hook would cause it to stop working

#

i have had the same thing happen with inventory stuff

fresh folio
#

That might do it but I feel like I definitely didn’t have an error idk

lofty nymph
#

but i have not had it happen specifically with my hooks

#

haven't been able to reproduce these issues in terms of the terminal

wheat harness
#

yo @lofty nymph

#

can i @ you

#

alr did no goin back now

lofty nymph
blazing junco
#

Hey guys! How do I add this API to my dependencies?

fickle matrix
fossil pivot
#

Sorry for asking a stupid question but in the scrap-collection area of the scriptable objects what is the min and max value for? Also do scrap items like screws, axles, engines, etc. need IDs?

foggy forge
chilly sedge
#

using this lib for adding scrap but when i load the asset bundle with my item asset it gives me a null ref to a instace of a object and idk what i am doing wrong?

elfin crown
#

Now my issue is that the scrap actions aren't replicated, for example when I switch Items in toolbar it does change visually but the logic says I still have mine equipped

lofty nymph
lofty nymph
fossil pivot
#

all scrap needs a physics prop, collider, networkobj, and a gameobject deciding where the scan point is right?

elfin crown
#

the UI is stuck on the same Item and when I drop the item, other players don't see it

#

I'm the only one who sees that the item is being dropped

lofty nymph
#

on the root of the object

#

otherwise the game will error out when switching items

fossil pivot
#

thanks a ton

lofty nymph
#

lack of audio source?

elfin crown
#

okay thx I will try that

#

is this how the properties in NO component set up?

#

or do I have it mixed up

#

or doesn't it matter

lofty nymph
lofty nymph
#

essentially a box, with a collider, and a Scan Node Properties script

elfin crown
#

it does, and AS Comp was the problem after all, it works perfectly now

#

I have one more question..

lofty nymph
#

hmm?

elfin crown
#

So I wanna add my inherited GrabbableObject class, how do u think I should approach that, should I dynamically add it in my mod.dll or should I add it as a component in the prefab beforehand (the problem is, the behaviour is registered as missing when I compile the bundle)

lofty nymph
#

Add the class as part of your mod assembly (the plugin)

#

then after compiling your mod, drag the mod assembly into your unity Assets/Plugins folder

#

after that you can use any monobehaviours from your mod assembly directly in unity and in bundles

#

Do note that if you want to do any networking like RPCs / NetworkVariables you will need to use #1175884865443483689 to patch your mod

elfin crown
#

Ahh okay, noted, thanks for the response, I'll try that and see how it goes

lofty nymph
#

yeah, just make sure you don't have any .cs files in your unity project itself, they should always be in compiled form loaded from your mod dll

foggy forge
lofty nymph
#

The most basic one is PhysicsProp

foggy forge
#

by make noise, does that include the drop/pickup sound

lofty nymph
#

No

foggy forge
#

or like the chatter teeth and robot?

lofty nymph
#

Noisemaker is for things like a airhorn

foggy forge
#

oh, interact noise

lofty nymph
#

PhysicsProp is for stuff that has no interactions

foggy forge
#

ah and I see the laserpointer has a Flashlight Item Script instead

#

any idea what this missing script is

#

and if it's important?

#

ah the dentures/chatter teeth have an Animated Item (Script)

foggy forge
#

@lofty nymph I made myself a checklist


These are the components needed for a custom scrap item.

Prerequisites:

  • Have a rip of the game in unity already. Useful link here: [beep]

I recommend making an empty game object to put these onto.

Required:

  • Audio Source
  • Box Collider
  • Network Object
  • A copy of the ScanNode GameObject

And also any one of these:

  • PhysicsProp (Script)
  • Noisemaker Prop (Script)
  • Animated Item (Script)
  • Flashlight Item (Script)

After you get one of those, you'll see there is a .asset linked in the Item Properties field if you're using the game's existing prefabs.

You'll want to Ctrl+D duplicate one of those to use for your own item, edit it, and link it in that script.

Alternatively you can right click in the unity project file browser, then Create -> Scriptable Objects -> Item

Finally, optionally, you may include:

  • Animator
  • Possibly other stuff?

You can find all of these from other objects in a rip of the game and copy the components over to your new item.

The sound when picking up and dropping your item is defined in the .asset file you duplicated for your Item Properties.

  • If you want a sound when interacting with it (Airhorn), you want a Noisemaker Prop.
  • If you want constant ambient sound, you want an Animated Item. This also handles the muffled sound when you have the item pocketed.
  • If you want a basic item with no sounds, you want a PhysicsProp.
  • Items like the laserpointer and flashlight that toggle a lightsource and use battery use Flashlight Item.
  • You can follow the game's prefab rips as an example.

If you want to set up custom interactions when using your item you need to... [idk?]

lofty nymph
#

It is an editor created script instance which i included in my assetbundle

foggy forge
#

so that's what everyone means when they say scriptable object

#

huh

lofty nymph
#

Scriptableobjects is this system unity has for instantiating classes as assets and configuring them in editor

foggy forge
#

hmm, I'm not sure I'll fully understand without examples in unity, but I'm guessing I'm fine duplicating one from other items to use for my own

#

I get a little confused because people use .asset for assetbundles sometimes too

lofty nymph
foggy forge
#

yea

#

I have yours

#

I dunno what to do about some of the missing scripts tho

lofty nymph
#

You can right click in the project file browser, the create -> scriptable objects -> Item

foggy forge
#

I think they are there but didn't link for some reason

foggy forge
#

oooh

lofty nymph
foggy forge
#

just one

#

other components seem fine

#

I just dunno if there's a way for me to read what component it's looking for

lofty nymph
#

It was most likely NetworkObject

foggy forge
#

nah that one is alright on my stuff

lofty nymph
#

Unity readds it

#

If it gets removed

#

Can you show the full inspector?

#

All the components that are there

foggy forge
#

Key item

#

I think all my prefabs are missing something

lofty nymph
# foggy forge

Yeah the missing script was NetworkObject and unity added a new one

#

I had the same issue with the game prefabs

foggy forge
#

that's weird

#

I guess I can remove the missing script then

lofty nymph
#

Yup

foggy forge
#

that must be what that popup I was always getting before was about that kept asking if I want to add a Network Object

#

didn't know what it meant and I forgot what answer I chose to get rid of it lol

lofty nymph
#

You chose yes lol

foggy forge
#

is that the right answer

lofty nymph
#

Thats what i did

foggy forge
foggy forge
lofty nymph
#

i did it by hand

#

lol

foggy forge
#

271 files???

lofty nymph
#

i just clean up the prefabs i need to look at

#

as i need them

#

lol

foggy forge
#

20 files????

elfin crown
#

Having problems with spawn rate , I set spawn chance value in the config file to 10 as like what u did for LethalThings, but I keep seeing the item every time I encounter a scrap, I want to make this item rare

foggy forge
#

btw question, will a rarity / weight of 0 ensure an item never spawns, or should I add to my config toggles for different items

lofty nymph
lofty nymph
foggy forge
#

@lofty nymph think you can help me figure out why my custom item isn't loading?

#

            Item StaleBread = ChdataAssets.LoadAsset<Item>("Assets/MonoBehavior/StaleBread.asset");
            if (StaleBread == null)
            {
                mls.LogError("Failed to load Stale Bread prefab.");
            }
            else
            {
                LethalLib.Modules.NetworkPrefabs.RegisterNetworkPrefab(StaleBread.spawnPrefab);
                LethalLib.Modules.Items.RegisterScrap(StaleBread, configStaleBreadRarity.Value, LethalLib.Modules.Levels.LevelTypes.All);
            }```
#

I've tried loading the .asset file and the .prefab but neither seem to work or I'm just not understanding how unity is mixing around the filepaths of my assetbundle

I've confirmed the AssetBundle does load (or at least it isn't throwing null at me...)

I've tried several different paths besides "Assets/MonoBehavior/StaleBread.asset" after asset ripping my own asset bundle to see how the hell unity structured it...

it lowercased the folders I added and moved my sound files and everything to other folders... or did it? is that just because of asset ripper?

even if I just go with the folder structures as I made them in unity, nothing is loading

"Assets/Import/StaleBread/StaleBread.asset" was my original folder structure, it doesn't load either

but man I just can't load this item

#

I'm also getting this error, dunno what it means but I'm not doing anything with enemies

is this MMHook something your api requires? I didn't see any mention of it on the github readme

lofty nymph
#

it is hookgenpatcher

#

hookgenpatcher generates the MMHook assembly

foggy forge
#

I just got around to putting that in and it got rid of that error

#

but my stale bread still won't load :c

lofty nymph
foggy forge
#

no other errors except the one from my plugin

lofty nymph
#

which is?

foggy forge
#
 if (StaleBread == null)
 {
     mls.LogError("Failed to load Stale Bread prefab.");
 }```
#

is there a way for me to peek into my asset bundles and see how they're actually structured

#

I dont know how asset bundle browser is compiling them

lofty nymph
#

if you open it in a text editor it'll have a list of all the asset paths

foggy forge
#

hmm

#
- Assets/Import/StaleBread/StaleBreadItem.prefab
Dependencies: []
#

it looks like it didn't include my item asset

lofty nymph
#

in the inspector on the right, at the bottom

#

does it show a bundle

#

if not, click that dropdown and add it

foggy forge
#

ah

#

ahhhh

#

that said "auto" before

#

but the asset was listed there

#

I guess asset bundles have some kind of fuckery about that

#

I notice my included sound effects do not show as being in the asset bundle

#

Is that gonna be a problem

#

is that why I couldn't load sounds from an assetbundle before

#

why does asset bundle browser show all the stuff from me prefab as being in the asset, but not actually include them... or does it? I asset ripped my bundle and the sounds were actually there... just moved into another folder

#

wtF

#

ANYWAY

#

My loading error is gone, so it looks like the stale bread loaded

#

I found it, now it's stuck in the floor, ungrabbable, unscannable... hmm

#

I was able to scan it from below... or rather in that spot I can just scan it, unlike the ones in solid floors

Still cannot grab it though

Dunno why it's rotated like that, as it isn't like that in unity. Though my model in unity has -90 X rotation to be upright... I guess the game or asset bundle browser is zeroing its rotation

#

nope... even after rotating my model in blender to offset unity rotating it, the rotation is still fucked up somehow

still can't pick it up either

#

what

lofty nymph
#

As for the rotation, the Item scriptable object has a rotation offset and a resting rotation

#

As for why you can't pick it up, probably because either your collision box is wrong, or the item doesn't have the correct tag / layer

#

also check that it is marked as grabbable on the component

foggy forge
lofty nymph
#

yup thats your problem

foggy forge
#

all child objects too?

lofty nymph
#

uhh it should not matter

#

but make sure the scannode is tagged correctly too, it has a different tag iirc

#

no wait same tag, different layer

foggy forge
#

aight

#

I'VE NEVER BEEN MORE EXCITED FOR STALE BREAD

lofty nymph
#

lol

foggy forge
#

Okay I'm getting there

#

There's a glitch... the drop/pickup or switch-to sound is playing twice

lofty nymph
#

i do not know about that particular issue

foggy forge
#

I figure those other offsets get applied when it's in the scavenger's hands

lofty nymph
#

yeah

#

they are extremely scuffed tho

foggy forge
#

I rotated a bread in my scene but it didn't match so it must also be based off the scavenger's wrist... so I suppose if I grab the player prefab and pose it I can make a precise holding position

lofty nymph
#

the offsets make 0 sense

#

i recommend playing around with it in unity explorer

foggy forge
#

yea I am

#

err

#

in unity itself, not the unity explorer bepinex mod

lofty nymph
foggy forge
#

can the mod rotate it?

lofty nymph
foggy forge
#

that sounds like it'll be easier then

lofty nymph
#

if you find the object in the scene, you can use the PhysicsProp component to get the Item scriptable object

#

and if you change the offsets in there, it'll update immediately

foggy forge
lofty nymph
#

weird

#

not something i have ever had happen

foggy forge
#

that is so weird

foggy forge
#

Looks like the offsets to the player model in unity are fairly accurate

#

The scavenger has a second set of arms separate from the body... I presume are the first person model

lofty nymph
#

an issue i ran into a lot is that first person model vs third person model is not aligned the same

foggy forge
#

screw third person

lofty nymph
#

for things like guns it is really obvious

foggy forge
#

I guess my only problem now is the sound duplication

#

doesn't seem like it's that

#

@lofty nymph are you using .wav? .mp3? .ogg? any special settings?

lofty nymph
#

no settings changes lol

foggy forge
#

urgh

#

so this glitch is happening for no reason

#

on top of that, when I pick it up off the ground, the sound only plays once, consistently

#

so only the other two are glitched

#

Do items always just rotate to the same dropped rotation? lmao

#

it's kind of funny making all this bread align in the same direction on the floor

#

what are they pointing towards...

lofty nymph
#

game is goofy like that

#

i think it rotates to Resting Rotation

foggy forge
#

it's easy so I guess that works

#

I'm not sure how I would begin to diagnose the sound duplication

lofty nymph
#

if so, i would start with checking that by removing everything except grab sfx or something for example

#

other than that, i really don't know

#

I'm gonna head to bed now

foggy forge
#

cya

#

I see item drop sounds have Preload Audio Data* set... and that's the only difference, so I'll try adding that

#

Nope that wasn't it

#

Other items in the game have this on their audio source

#

Mines had this instead

#

That didn't fix it though...

elfin crown
foggy forge
foggy forge
#

I tried recreating the item asset instead of using one I duplicated from another item. The sound still doubles up.

#

Removing LCSoundTool (another mod) didn't seem to have any effect

#

Removing the pickup noise (so there's only a drop noise) - the drop noise still duplicates

#

But the logs only show it calculating a drop once...

#

I added a pocketing noise, that one gets duplicated too

#

wtf

#

it's only the custom item too, normal game items are OK

foggy forge
#

I tried installing another mod using your library (Cirno Fumo Scrap) and that one's sounds work fine...

foggy forge
#

WTF

#

hey @proper epoch you made the Cirno Fumo Scrap right?

did you ever run into any sound glitches for dropping/picking it up?

proper epoch
foggy forge
#

yes

#

#1178447015533871174 message

#

they play, but they are doubling up

#

however it doesn't double up when I first pick it up, only when I switch to it in my inventory

#

the drop sound also doubles up

foggy forge
proper epoch
foggy forge
#

Nope

proper epoch
#

No clue then

foggy forge
#

darn

#

I've been testing a lot of different things, having trouble isolating what it might be...

#

I spotted another difference in my item vs the game's items

#

My bread has this on the mesh renderer:

#

All other items I looked at had this:

#

naturally, fixing that didn't fix my sound bug

proper epoch
#

Double checked tags/layers?

foggy forge
#

oh my fucking god

#

Me: "It's not like I have two audio sources on this thing... maybe if I minimize all my components"

elfin crown
#

I put the (int)rarity value to 1 and my scrap still spawns all the time

foggy forge
# foggy forge

Removing the second audio source did not fix the audio doubling up glitch...

Well, I'm still compiling against v40 rip of the game. I guess it's time to make a new unity project.

elfin crown
#

is there any caching involved for spawning scraps?

lofty nymph
#

i have not had that issue personally

elfin crown
#

I think it's because I haven't done the patching, and I'm not sure how it works, how did u do yours?

#

decompiled ur LethalThings.Miscellaneous but it looks gibberish, idk how to read this

fresh folio
#

It’s monomod

#

Lmao

#

It’s so funny how completely foreign monomod is to this community

elfin crown
#

haven;t really modded before so everything here is new to me hahaha

elfin crown
#

well i found the part where I can clear my mod cache and it seems to have been fixed?

#

idk i will update u on the matter tho

foggy forge
#

@lofty nymph what an ordeal

So, I finally fixed my sound duplication glitch by re-bundling my item with the v45.2 rip of the game instead of v40 which I was still using before.

#

Now I can make stale hotdogs

#

This also implies that we have to re-rip the game every update to avoid these problems...

lofty nymph
foggy forge
#

by previous update do you mean v40 or v45 or v45.1

#

there's been two patches

#

since v45

#

a few of us have been calling the current v45.2 lol

lofty nymph
#

my mod didn't actually have any issues when the game updated

foggy forge
#

why only me

tough path
#

Is there any documentation for custom moon stuff yet?

foggy forge
#

is it normal that custom items might not save with your game save / disappear from the ship

lofty nymph
#

unless your mods change or something

foggy forge
dusk relic
#

Is there a good document or guide for how to add a scrap item with LethalLib for someone who is new to modding?

timber wadi
foggy forge
#

did you use evaisa's unity template or project cleaner?

timber wadi
#

I am using evaisa's unity template

timber wadi
foggy forge
#

btw @lofty nymph do you know how to spawn a new scrap item into the map

I think that this will make a GameObject, but it's supposed to be a GrabbableObject, so I don't think this is correct...

        public static void SpawnBreadAtLocation(Vector3 spawnPos)
        {
            GameObject StaleBreadObject = Object.Instantiate<GameObject>(StaleBreadItem.spawnPrefab);
            StaleBreadObject.transform.localPosition = Vector3.zero;
            StaleBreadObject.transform.localRotation = Quaternion.identity;
            StaleBreadObject.transform.localScale = Vector3.one;

            DropGrabbableObjectAtPosition(StaleBreadObject, spawnPos);
        }```
lofty nymph
#

just spawning it at a given position?

foggy forge
#

yea

#

DropGrabbableObjectAtPosition(StaleBreadObject, spawnPos); is a function I put together from disassembly that just does the same thing as a player dropping an existing object btw

#

but at that position

#

so I just need to spawn it

lofty nymph
#
GameObject StaleBreadObject = Object.Instantiate<GameObject>(StaleBreadItem.spawnPrefab);
StaleBreadObject.GetComponent<NetworkObject>().Spawn();
#

this is all you need to spawn a object

foggy forge
#

ooo

lofty nymph
#

tho you will have to do stuff like setting the scrap value

#

because just spawning the prefab does not do that for you

#

check out RoundManager.SpawnScrapInLevel() ig

foggy forge
#

hmm, I got an error with that

#

one that makes no sense to me, because I declared that as a GameObject rather than void

#

maybe this will work

lofty nymph
#

staleBreadObject

#

oh

#

nvm

#

why are you trying to assign it

#

to a variable

#

lmao

foggy forge
#

so I can do stuff to it

lofty nymph
#

whuhh

#

thats not what that is for

foggy forge
#

if I don't have the GrabbableObject how would I teleport it?

lofty nymph
#

Spawn() doesn't return a gameobject

#

it spawns the object for clients

foggy forge
#

I think I get it

#

0 error

#

now to test it

lofty nymph
#

yeah that looks more correct

foggy forge
#

oh right

lofty nymph
#

tho you might need a network transform on the prefab

foggy forge
#

I need to set the rarity and stuff

lofty nymph
foggy forge
#

I guess I'll find out if it breaks or not

#

yep there is something more I need to do

foggy forge
#

oh

#

lmfao

#

it WAS working

#

it was just spawning the bread underneath the teleporter

#

ah ... now one spawned invisible

#

also I didn't need to spawn a network object I guess, the game gave me an error saying it was already spawned

#

I think I know why it's invisible

#

nope

#

So, I'm getting invisible bread to spawn now. You can scan it and get the green popup thing, but it's invisible.

But if I close my game and rejoin the save, the bread is there then.

edit:

Welp, after a few hours I still haven't gotten it.

I am trying to sync it with this function too just as the game does.

SyncScrapValuesClientRpc

Gonna take a break for now

hardy isle
#

check the object in the explorer to see if the meshes are disabled or something @foggy forge

#

i know that switching items will disable the meshes so if its in someone's inventory, but not hands, and you force them to drop it then it will still have its meshes disabled and be invisible

chilly sedge
#

if I have my custom scrap in my hands and I pick up an other item it duplicate and then can't drop or switch to anything els?

foggy forge
hardy isle
#

oh. shader issue maybe?

gusty peak
fossil pivot
#

My custom scrap doesnt spawn and when i instantiate it, it appears like this and it also says in the logs that there is a null reference but i have all the required compoenents

fossil pivot
#

[Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
GrabbableObject.Update () (at <44743d9474784365a095189c76175301>:IL_0117)

fading socket
#

is there an implemented way to make Decor appear in the terminal shop "daily rotation" listing rn

lofty nymph
#

as long as the alwaysInStock property is false

lofty nymph
lofty nymph
#

which reminds me, i had alwaysInStock set to true for my lethal things decor so they were never showing up lmao

fading socket
#

ah i see

#

i suppose there's no way to show it when it's always in stock then

lofty nymph
#

in which case it'll go in a different list

fossil pivot
fading socket
#

since i don't know if "permanently available decor" is meant to be a thing

thorn drift
#

what components does a custom scrap need?

fresh folio
#

Because it depends

#

Ah you figured that out cool

timber wadi
#

I added my custom scrap to the game I can hold it and scan it but when I switch to another item my custom scrap when invisible does anyone know why it does that ?

spring plume
#

Hey is there any place I can look at LethalThings source? Wanted to reference some stuff on how LethalLib is used in it. If there's no plans to do that that's fine as well

tough path
#

its on thunderstore

lofty nymph
spring plume
#

thank youu

hollow sorrel
#

Eba does lethal lib have utils for creating ship objects?

lofty nymph
#

that's what i use for the decor items in lethal things

undone brook
#

Is there a guide to LethalLib anywhere?

lofty nymph
tough rover
#

I think there's a bug with invite friends problem in this mod

#

My HUD become this big and uncontrollable

#

But sometimes it working...

foggy forge
#

I finally got back to it after taking a break from working on the bread.

WaitForScrapToSpawnToSync() called by SpawnScrapInLevel() is indeed necessary to sync the scrap's value for all players.

The game originally waits 11 seconds to set that number... but there is no reason to. I set mines to set it after 1 second.

Aside from that, I just copied the spawn code a second time from the game and now it's just working...

fading socket
#

disabling the console should fix it

hollow sorrel
#

is it normal for items from lethallib to not save

lofty nymph
#

Thats odd

hollow sorrel
#

Oh its fine now I figured out what I was doing wrong

#

had some logic in my code that set itemUsedUp to true every update frame

lofty nymph
#

LethalLib 0.9.0

  • Potentially breaking changes! Mods may need to be recompiled in order for new features to work.
  • "All" levels enum now includes modded maps.
  • Added "Vanilla" levels enum.
  • Added overflow for levelOverrides to Dungeon API, Enemies API, Items API, Map Objects API, and Weathers API
    • which can be used to add to specific levels by name rather than enum.

https://thunderstore.io/c/lethal-company/p/Evaisa/LethalLib/

#

CC: @devout glacier

tired spear
#

Not sure if this has been suggested but have you thought about setting the GlobalObjectIdHash when you add them to network prefabs because this caused me some issue trying to spawn new NetworkObjects

lofty nymph
#

I spawn custom network objects all the time

#

pretty sure NGO takes care of this for you

tired spear
#

Register 2 prefabs and I get an error

#

Saying that you can’t register it because the GlobalObjectIdHash is 0

#

Which is used by the first prefab you register

lofty nymph
#

GlobalObjectIdHash is generated by the editor

#

every time a NetworkObject component is added to an object

#

so every prefab in my assetbundle has a unique one

tired spear
#

Wait what lol

lofty nymph
tired spear
#

I don’t have the field

lofty nymph
#

whuhh

#

are you on the wrong unity/ngo version

tired spear
#

Unity is right

#

Maybe NGO

lofty nymph
#

NGO 1.5.2 is what i use

neat flume
tired spear
#

It is debug mode

lofty nymph
#

yours shows a bunch of properties i don't see lol

tired spear
#

I’m not importing NGO

#

So I should install it

lofty nymph
#

package manager

tired spear
#

Yeah

devout glacier
#

lfg thank you eva

foggy forge
#

I'll not update and tell you if my stuff breaks 👍

devout glacier
#

after implementation I can confirm that enemies and dungeons work fine with this new system, but items for some reason don't (seem to?) get added to the level's spawnable scrap list

#

NBD for my purposes since I can just uncomment the code that adds them manually, but still worth noting

lofty nymph
#

how are you adding it?

#

are you using the string override

#

or the All enum

#

because i confirmed it works with the enum

#

haven't tested the override, just assumed it worked because the code is pretty straightforward

devout glacier
#

the enum's set to none and then I'm overriding it with the string

lofty nymph
#

gimme a sec

lofty nymph
#

if that works fine i am really confused

#
var alwaysValid = scrapItem.spawnLevels.HasFlag(Levels.LevelTypes.All) || (scrapItem.spawnLevelOverrides != null && scrapItem.spawnLevelOverrides.Any(item => item.ToLowerInvariant() == name.ToLowerInvariant()));
#

this is the override rn

devout glacier
#

setting it to All worked fine and the scrap did indeed spawn inside

lofty nymph
#

so something is wrong with the string list override

#

Oh

#

i see the problem

#

wait no nvm

devout glacier
lofty nymph
#

head hurty

#

oh

devout glacier
#

this constructor doesn't set spawnLevelOverrides?

lofty nymph
#

lmao

#

that explains it

#

whoops

devout glacier
#

I was also looking at the flag for ages wondering where it went wrong I dont blame you

lofty nymph
#

I'll push that fix in a bit, i'm working on a fix for item saving right now

devout glacier
#

no worries like I said I have a manual solution that works just fine

#

so no rush

vivid vortex
#

ok this is really dumb but how do i use the library in visual studio?

#

trying to get back into coding again

lofty nymph
#

you click add project reference and select the dll of the library

vivid vortex
#

thank you <3

vivid vortex
#

where can i find the documentation for it? Like how to use it

lofty nymph
#

@solar blaze said they have a tutorial for custom scrap (?
scrap and other items are pretty similar in implementation if you just want to add items

#

as for other stuff, i do not personally know of any resources

solar blaze
#

Make sure you set up the unity project (linked two messages down)

vivid vortex
#

like make it possible to tame lootbugs so they take loot back to the ship for you is one idea i had thats a good example.

#

thats actually such a good idea, i wanna make a mod for it now

eternal sphinx
#

yo i was testing the API and made a basic template for scrap items using the API but i would like to know to what exactly it makes reference has the "AssetsBundle" and i mean what does the file has to contain for the program to be able to read it, i already tested using another guy scrap mode and it funks using my own template for the mod, but i want to create my costum scrap but im not sure how to start

#

i know C# but 0 about Unity sadly

tough path
#

@eternal sphinx honestly just imagine assetbundles as an organised zip that stops you from putting a few things inside of it

#

Unity lets you build them by assigning specific assetbundle "tag"s onto assets you have in editor, and then it also smartly finds everything those tagged assets reference and bundles those up to

eternal sphinx
#

but im not completly sure how to do my own one and make it funk

tough path
#

so like i could tag my custom moon prefab as the "moremoons" assetbundle and when i try and build that itll see everything the prefab has inside it and build that too

#

assetbundles can be a little tricky to learn because nowadays unity actually replaced it with a newer system called Adressables

eternal sphinx
#

it is like a Json? seems like

tough path
#

i think its like a json + a zip

#

unity builds a little manifest for you included in the "zip" that has all the information

eternal sphinx
#

i want to think that the exact thing that imports all the model visual/special things its the AssetBundle that its being referenced too

#

like this

tough path
eternal sphinx
tough path
#

Once you load in the zip you can start pulling files directly from it

eternal sphinx
#

you can acces them via property like objects?

#

like if i want to accces to idk

#

your Tenebrous thing

#

would be like

#

assets/moremoons/tenebrous.assets