#Imperium
9316 messages · Page 10 of 10 (latest)
i think that it didn't spawn if it was spawned not with imperium
if so, yeah that was fixed in the last version
not sure if y'all already know but the thing where cruiser spins after jumping twice is caused by having flight enabled
at least I'm 90% sure, because whenever I disabled flight the cruiser behaved normal again
well, that was my conclusion as well. did you open the link?
no
@distant stag can you link me to the code that would run when you press X on a monster's entry to delete them?
A powerful all-in-one debugging and admin tool to test and explore game mechanics and functionality in Lethal Company. - giosuel/imperium
you have to follow the net messages
Basically impossible on phone lol
A powerful all-in-one debugging and admin tool to test and explore game mechanics and functionality in Lethal Company. - giosuel/imperium
I did get to DispatchToServer
this is the server code
Hmm okie, I think this code is problematic for enemyai, I'll take a proper look when I'm on my PC and update you :3
I think it doesn't update some flags
The powerlevel flags, maybe it doesn't update certain RoundManager fields like cannotSpawnMoreInsideEnemies
it shouldn't update any of these imo
iirc there was no definite consensus where it even should
but i think he did add something enemyai does on its own when destroyed which might cause problems
Huh
enemies spawned with imperium should not affect the power level and or max enemies or whatever by design
and messing with spawned enemies array didn't go very well, and was reverted
or something like that
Why would you not wanna follow base game logic lol
I've gotten a bug report from someone that I couldn't figure out with powerlevel and enemies spawning when they shouldn't or not spawning at all etc
I don't think they're necessarily spawned by imperium though
yeah thats the catch
and this is a problem rn
enemies killed by imperium won't free power and or spawn count of that specific entity
Is this disclosed anywhere? I've been trying to figure this out for so long and I never thought imperium lol
what exactly?
we should definitely make it so enemies spawned by the game and deleted by imperium should free their power level and max spawned so everything is in sync, but for that we first need to track all enemies spawned by the game and imperium so we can even differentiate between the 2
If you delete all enemies after spawn cap is reached, no enemies will spawn anymore and someone's been talking me to investigate it cuz they thought it was dawnlib
yeah this isn't specified anywhere in imperium but thats what happens
ill add an issue
if there isnt one already
I feel like this is an unnecessary nuance lol
I dont get the use case personally
Especially since its more useful for testing if imperium followed base game logic
Maybe you can add it as a toggle in settings or smthn instead?
I just don't know who would benefit from imperium explicitly not interacting with powerlevel
Yeah, my reasoning was to not mess with the game logic too much, so the spawning can still continue normally even if you spawn some enemies for testing
But I also see how this might actually be less intuitive
I understand the reasoning, I just don't understand why anyone would want that tbh
But in any case, to make it more consistent we should make it so enemies that are spawned by the game are also cleaned up properly afterwards
Yee
more toggles for god's sake toggles
That would be nice atleast
i thought about that as well, but Ill have to find a way to make it intuitive, I don't want a global setting controlling this, it should be something you can decide everytime you spawn something imo
the spawning menu currently has a bunch of empty space in the middle of the bar for enemies, maybe a tick there could be good?
yeah thats what I thought as well
I'll have a look once im finally back at my setup
so, like, the same checkbox for every row?
i was thinking it would be there but disabled for all of them no matter which one u click
like they all set the same toggle
if they are all linked to each other, then there should not be more then one of them
im not sure where else it could be put that doesn't just make it a global setting then
i would say just one at the top of the row / topmost entity but i could easily see someone typing something that shows up with multiple entities and picking one that is not the topmost entity
could put it in the field
or make a separate menu
then we could also put the "Spawn this in front of you / inventory or at the indicator" setting there
oh btw i finally got on my pc to check the issue more closesly
none of this is true
the game handles the power level stuff when they enemy is destroyed OnDestroy too
everything?
yeah, so killing an enemy through pressing X in imperium is handled just as how basegame would handle it
interesting
so uh, thanks for doing it unintended :p (it helps test a lot more than u think lol)
:P
Is there a way to make it so you don't disappear when the freecam gets close to you?
can't spawn old birds for some reasons
@acoustic lion this is why the variants weren't working
we were just unable to spawn them
cuz i'm unable to spawn base old bird
for some reasons
old birds require an "old bird nest" (the inactive old bird) to spawn now
yeah
if there is not one then they are just deleted
okay so imperium should fix not being able to spawn them without the nest
and/or it should have the ability to spawn the nest
and said nest should be able to be triggered via imperium
that would definitely be nice
i wonder if that would mess with spawning stuff, having a nest when the game doesn't predict an old bird to spawn (probably not now that i think about it, if it doesn't get activated)
with the amount of mods that rewrite the game's core stuff
i'm at a point where "messing with spawning stuff" is a term you could even use in a legit sentence in this community anymore
im not entirely sure what you're saying with this sentence
idk got drunk mid sentence
i meant to joke on the fact we often have overwrite vanilla stuff that are core parts of the whole game despite the fact it almost always causes problems at some point
i see
thats true but for a debug mod it would ideally behave as close to vanilla as possible for things you aren't directly messing with
eh
shit. phuk. this has completely broken something I had planned
I agree, making old bird spawnable without a nest would be too game breaking for a debug mod imo
Somehow enabling users to spawn a nest and then spawn old birds "into" it is probably the way to go
I do think there should be some way to spawn them, so if this is how it's done I'd be good with that. This or, it's a bool in their scriptable object, so I could see when an enemy is spawned via imperium, cache its old setting, set that requirement to false, spawn it, then put it back to what it was. I imagine baboon hawks also are now subject to this but idk for sure
actually, baboon hawks do not appear to be
i think old birds might be the only ones being affected by this
and also john but thats a different mechanic again
who tf is john?
ah
they are cuz zeek made it specially for them
i remember now that zeekerss mentionned making it so they "can't spawn out of nowhere"
my nerd senses were right
is there a way to disable it?
cuz for some reason, the version of the old bird prefab i have
well uhm, it does work with imperium
(my variant i'm saying)
disable requireNestObjectsToSpawn in the enemy type
but that will cause the same issue as before where old birds instantly spawn in random positions with no animation
during actual games
okay yeah crazy, because I read through the code and it did seem like it but idk if I was just trippin (i play this game too little to actually know myself
)
before v80 there was a problem with its implementation
where if it was enabled, and an old bird failed to spawn (because there was no nest)
it would cancel all other enemy spawns for that hour
yeah the classic return instead of continue / break
also as for spawning nests in the middle of the day
literally half of the bugs are this
all players in a lobby are expected to have the same nest objects on their clients
and they are expected to be sorted in the exact same order
in any case you could just have the bool toggled off for testing, and on for releases
so i could see problems arising from trying to spawn old bird nests mid-game with imperium
okay yeah so I will have to network it myself just like vain shrouds, I guess I could group them both into a "nest" category in the object explorer
individual clients despawn the old bird nest when the actual old bird gets spawned
it just takes the first nest in the list, teleports the newly spawned old bird to it, and despawns the nest
old birds can just poof into existence under certain circumstances
all clients run that individually, the nests aren't a network object which the host despawns
only prior to v80
ah
in v80+, old birds immediately despawn themselves in the circumstances where it used to occur
but the spawning happens on the server, right? how can clients get desynced down the line?
actually nvm you're right i was misremembering a little bit
they are network objects and the host does send an RPC to add them to the list in a specific order
the enemies or the nests as well?
the nests
all enemies run this code though:
if (this.enemyType.isOutsideEnemy)
{
if (this.enemyType.nestSpawnPrefab != null)
{
bool flag = false;
for (int i = 0; i < RoundManager.Instance.enemyNestSpawnObjects.Count; i++)
{
if (RoundManager.Instance.enemyNestSpawnObjects[i] == null)
{
RoundManager.Instance.enemyNestSpawnObjects.RemoveAt(i);
}
else if (RoundManager.Instance.enemyNestSpawnObjects[i].enemyType == this.enemyType)
{
flag = true;
this.UseNestSpawnObject(RoundManager.Instance.enemyNestSpawnObjects[i]);
break;
}
}
if (!flag && this.enemyType.requireNestObjectsToSpawn)
{
this.isEnemyDead = true;
this.inSpecialAnimation = true;
if (base.IsServer)
{
Object.Destroy(base.gameObject);
}
else
{
this.EnableEnemyMesh(false, false, false);
}
return;
}
}
all clients, all enemies, on EnemyAI.Start()
tldr is if the enemy spawns outside and has a nest prefab, it goes through the list of nests (in order) and checks if any match the enemy type
if they do, they call UseNestSpawnObject()
interesting
otherwise, if no nests exist, and the enemy is requireNestObjectsToSpawn, it immediately gets despawned
public virtual void UseNestSpawnObject(EnemyAINestSpawnObject nestSpawnObject)
{
this.agent.enabled = false;
base.transform.position = nestSpawnObject.transform.position;
base.transform.rotation = nestSpawnObject.transform.rotation;
this.agent.enabled = true;
if (RoundManager.Instance.enemyNestSpawnObjects.Contains(nestSpawnObject))
{
RoundManager.Instance.enemyNestSpawnObjects.Remove(nestSpawnObject);
}
this.nestObject = nestSpawnObject.gameObject;
if (!this.enemyType.useMinEnemyThresholdForNest)
{
Debug.Log(string.Format("Enemy {0} #{1} destroying nest object '{2}'", base.gameObject.name, this.thisEnemyIndex, nestSpawnObject.gameObject));
Object.Destroy(nestSpawnObject.gameObject);
}
}
why does this boolean even exist when it also requires nestSpawnPrefab to be non-null? isnt that kinda redundant
UseNestSpawnObject() still runs on all clients, and teleports the enemy to the nest as it spawns
or do i understand this wrong
and if the enemy type is also !useMinEnemyThresholdForNest, it despawns the nest itself (via Destroy() running on all clients)
different enemies have different nesting behavior
baboon hawks and old birds implement the same variables for their nest
but baboon hawks:
- spawn a nest if at least 3+ baboons are predicted to spawn in a single day
- treat the nest as a "point of interest" they regularly return to
and old birds use the "nest" as a stand-in for their dormant body (meaning 1 nest for every old bird that's predicted to spawn)
so it appears they spawn at the beginning of the day and just take a while to power up
only old birds despawn their nest when they spawn
because that completes the illusion of them "booting up"
sorry for the late response, but installing modelreplacementapi fixes this
Thats odd but nice!
sorry I forgot to reply to this, I am not actually sure why this happens, but its not something Imperium does. i think it has something to do with the built-in LOD of the model that applies to all cameras by default
@distant stag getting "Imperium startup failed" here is my log
any idea?
any other mods installed?
019df87b-b070-1231-a951-3ec594671532
its weird because it was working last night
then i woke up today and its just not wanting to work
I even disabled the mods I added since I woke up
tried resetting config and reinstalling with a cleared cache
have you tried on a clean profile?
there seems to be some dawnlib error as well in there
works fine on an empty profile as expected but idk why it doesnt work on my other
Idk if this is related but do you have mirage?
No
Like I said this was working last night
I wake up today add a few mods now it doesn’t
I disable said new mods and still doesn’t work which is very odd
nope
im assuming the log didnt give enough info either
testaccount core, which is used by moonswept, depends on dawnlib
that could be why your stuff is breaking
Oh lol I wonder why I didn’t get a popup on my mm for that
I did also test with it reenabled earlier but it made no difference for imperium
dunno, testaccount might've forgotten to set it as a dependency on thunderstore
you'd have to ask him
missing bepinex dependency at least, the exception says missing assembly, that shouldnt happen if you have it as hard dependency, no?
well, its more likely that testaccount screwed up making it a soft dependency in some part of the code
but im too lazy to look at the github and point out exactly where
or that
yeah testy forgot
but like i said unfort even enabling dawn lib didnt make a difference
i just instead made a new profile to test stuff with only a few mods

Is there a current issue or is it just me with reviving and not being seen by your friends(nor the items that you carry)? On top of that, when you kill yourself as you've revived yourself, the ship will see it as all players dead and leave.
also the turrets are something you can't turn off with the "object explorer"
Yeah map hazards don't really work rn
Hmm okay, I'll look into it, but as a quick fix you can go to ship settings and turn off that the ship leaves even if everyone is dead
Thank you! I'll do that for now.
I've found that teleportation to the ship is disabled in my modpack, I wonder if it's an incompatibility with WiderShip
hey, do you feel like hackatonning on imperium this week?
Honestly yeah finally I got some time, I'm probably down tomorrow or Tuesday!
that's cool, tomorrow is a weekend btw
Wat
y'know, his country got to keep all the gold bars, and somehow we are the ones celebrating it

Tomorrow is weekend? Wdym
the (long forgotten) victory day for ex-ussr countries
i have an item that has an attribute it randomly selects (using StartOfRound seed) on spawning, is it normal for that random roll to be exactly the same for each time i spawn it in via imperium? or is this a me problem...
nvm it's exactly the same regardless of imperium...
sad cry
How do I fix everything being invisible 😭
Turn culling on and off in the render settings
@distant stag got a bug for ya
i assume you manually assign value to scrap you spawn with the imperium stuff
but you dont assign value to stuff like !isScrap
but you probably should because the game checks for SPECIFICALLY the key to give it a value lol
and technically, anyone can use itemId 14 to make their non scrap be worth value to the game
But this is again something I wod have to do for host and clients, right? As this is not networked
But why do I have to do this in the first place? Aren't those values set in the scriptable object?
they are, keys specifically have a value of 3 that imperium gets rid of, ill check where that gets assigned to keys
it is assigned to the prefab
keys start with 3 scrapvalue on both their GrabbableObject and ScanNodeProperties
it seems imperium is specifically wiping that when items are spawned
because ive experienced the same issue
Wait what, but this probably only happens on the host then, no?
like, the value only gets removed on the host?
i dont know, why would that matter?
you're still getting rid of the value
Well how is it supposed to be removed explicitly? All that happens on the client is spawn
Idk just wondering
But is there code that does this explicitly?
in imperium?
you're probably trying to set the .scrapValue to something
But only when a custom value is specified I'd imagine?
i cant check rn but my guess is that the key's SO doesn't have the right min and max values
i dont know what that means
Like when spawning scrap you can specify a value
Both
oh
You can supply 2 params
well i didnt know about this feature lol
so im gonna say no then to your question
Yeah you can do the same with enemy HP 💀
thats cool though, i did actually need something like this lmaooo
But nobody knows about it and it's also host only
Wait, does it tell you you can do this? I know I’ve seen the amount mentioned before but I don’t remember the other param being mentioned
another thing imperium should do
run StartOfRound.Instance.SendChangedWeightEvent(); when spawning an item in a player's hand/inventory
so that the weight in the UI gets synced immediately lol
is this a client side method?
ye should be
it just invokes an event that a person's weight got changed
and it uses the current weight to put it into the UI
alright
spawn a forest giant
woah
Contrary, if you want to test the sanity music you can spawn an urban dwarf
@distant stag greetings, I don’t know if my GitHub request was looked at but I thought I’d check in 
Was about the changeability of the “greetings Padawan” via custom text (or however I phrased it ngl)
It should be possible now
There's a hidden setting in the config
Gonna check rn homie
I HAVE TO HUNT

Is it accessible via lethalconfig? I may not be seeing the customization for it
It's to actually configure the text of the welcome message itself
I might be tripping. Long day at work 7 am to 5:30 pm
Yeah exactly
I can't find it 
Gonna try again
Unless you could point me in ze right direction
Hey @distant stag , I have a question about your mod (Imperium of course).
Will you add a night vision to free camera? Like it works in "freecammer" or "Poltergeist" mod? I'm asking because this feature could be useful for those who are making maps for custom moons. Some of them are pretty dark so night vision for free camera would be appreciated.
I hope you'll consider it.
i'm pretty sure you can do that already
well rn the freecam just follows the player so if you are in freecam you have to tp the player to you kinda like a lamp
we are working on reworking the night vision entirely so this wont be a problem anymore
im just busy with exams in the next few weeks so idk when I will get to that
Good luck w/exams! I couldn't find the hidden "change the text in the welcome message" config 
definitely and actively working, yus

Why is it that in the newer imperium version, items in the object explorer are arranged in a seemingly random order? previously when i'd spawn in items they would show up at the top of the Items list, but now they get shuffled in with everything
which makes it hard to remove the items i want, due to having to search the list for them more thoroughly
the technical reason behind it is that all object are scanned every now and then, instead of being additive like previously. As you can imagine, objects do now store information when they were spawned, making it impossible to sort the list when rebuilding it from scratch
damn..
does instance ID/network object ID not make sense to sort by?
i was under the impression instance ID always decrements for new stuff and network object ID always increments for new stuff
NetworkObjectId is a "static" int created that isn't meant to change after registering the network prefab no?