#Cruiser Improved

1 messages · Page 3 of 1

barren crane
#

ah ok so you can override methods

oak oracle
#

pretty much yeah

#

i already have some custom ignition logic

barren crane
#

in that case you can prob load your own animator

oak oracle
barren crane
#

hum

#

ye you are right

#

hum

#

maybe a patch for player cruiser animation? so when you are using your custom vehicle you use your animations?

oak oracle
#

i'd ideally like to have the flexibility of being able to expand upon the existing animations (i.e. pulling a handbrake lever)

barren crane
#

maybe?
i cant really help with these kind of animation stuff unfortunately, hmmm, i'll ping the goat to help you @floral mist

oak oracle
#

alr! ty :)

heavy frigate
#

how lethalmin does it is it overrides the lever pull animation, basically

oak oracle
#

that's just for one animation though, right?

heavy frigate
#

I think?

#

it overrides the anim with a new one and then reverts it back when the anim is over

#

so i guess you could do multiple by using the method

oak oracle
#

it could probably work for something like a car, though it depends on the animation i'm trying to play

#

i thought about if it's possible to use an override and then swap anims at runtime

#

if i needed to for whatever reason

flat widget
#

Also does the new update mean I can enable the lean on the seat offset thing now? I heard that was causing lag so I needed to disable but is it fixed now?

oak oracle
#

was causing issues with other models that edit the player camera (i believe some suit mods or something?)

#

it'll zero the camera out once and that's it

thin hearth
#

weird

#

i would like to look into implementing a fix for this for the vanilla cruiser but i guess i need to figure out how to do it without conflicting with your custom one

oak oracle
#

i don't think it'll conflict with my custom one

#

my "custom truck" is a seperate vehicle using a script that just inherits vehiclecontroller

#

and has its own custom logic

thin hearth
#

ah

oak oracle
#

i had a fix for the vanilla one but it was slightly busted

#

so i'll need to rewrite it lmao

thin hearth
#

so i suppose patching vehiclecontroller should be okay then

oak oracle
#

yeah that'd be fine

thin hearth
#

looks like digg just implemented a vehicleID check

#

for CI

oak oracle
#

yeah, the vanilla truck always has ID 0

#

unless some other mod i don't know of changes it

thin hearth
#

i'll probably just do an ID check to be safe

thin hearth
oak oracle
#

true

thin hearth
#

i didnt even know the car key had a "painted side" until you mentioned it

oak oracle
#

it does haha

thin hearth
#

and jetpack ignition is so ugly

oak oracle
#

it's black and red on one side

#

with a little bulge in the middle

#

and just plain on the other

thin hearth
#

yea i just checked the prefab and saw

#

it's cool

floral mist
thin hearth
#

how did zeekerss not catch this perceive

floral mist
#

But what you'd wanna do is use an animator override controller

oak oracle
oak oracle
#

the trucks model is just a complete mess

floral mist
#

It's the swhitesparkle unity intended way afaik swhitesparkle

thin hearth
#

yeah

#

animator override controllers are the way to go

#

but i thought i remember there being some weird limitation where like

floral mist
#

Though I never figured out why stacking animator override controllers doesn't work

thin hearth
#

an animator override can't inherit from a previous override which makes it nearly unusable for mods

floral mist
#

But when multiple mods tried to it didn't work

#

Multiple mods being mine and Scarlet devil mansion

#

Before zeekerss had HoldForward I remade that animation (almost exactly the same lol)

#

And gave it to raph to use for their scrap

#

But overriding the animator at the players start made it so only one of us got the change

oak oracle
#

hmmm

floral mist
#

The real solution is that an API that handles animator override controllers for mods needs to exist

oak oracle
#

would be ideal

#

never really occurred to me about other mods using overrides

#

all i really knew was overriding player animator = bad

floral mist
#

It's only bad if you do it wrong

#

I override the ship animations and that's debatablely a lot worst LOL

oak oracle
#

all i ever really heard was you should never really do it lmao

#

i might play around with overrides because i wanted to move the trucks shifter to the dashboard and i'll have to edit the pull gear anim and the right hand on gear anim

floral mist
#

There are a few other problems I've noticed but from what you're trying to change they shouldn't conflict

oak oracle
#

alr! :)

#

is swapping anims on an override at runtime possible?

floral mist
#

For example, overriding an animation while crouched breaks the players arms, but that's probably a problem on my end somehow with either the timing or just the animation

floral mist
oak oracle
#

alr, thanks!!

#

and yeah that'd be great

oak oracle
#

because eventually the limited amount of car anims becomes a problem later down the line

floral mist
#

Ah wait you want more anims than what vanilla provides?

#

That's one of the override's limitations

oak oracle
#

ideally yeah, so that's why i was wondering about swapping anims at runtime since i'm unsure of any other way rn other than replacing player controller

#

ah?

floral mist
#

You can only play off of current animations that exist

floral mist
#

You want more state machines than what vanilla provides?

#

Because you can change the animations in the animator, u just can't change the animator's state machines by adding/removing/changing connections

oak oracle
#

i think my wordings off,
ideally i'd like to expand upon the existing vehicle animations
but i don't know of any way other than replacing the players animator
so, using overrides, is it possible to swap say, the pull gear animation to one that's pulling a handbrake, then revert back afterwards
it's not adding an animation it's just swapping

floral mist
oak oracle
floral mist
#

Okay yeah lol I realised I was being a bit confusing and contradictory earlier lol

oak oracle
#

all good!

floral mist
#

Replacing is possible, adding more animations via more state machines is not, that's basically the gist of it

oak oracle
#

yeah that should be fine, just got to get creative lol

#

if that's the best way to go about it then so be it, got to work within limitations

floral mist
#

Yep

cobalt prairie
#

Ain't no way this guys adding the Saab 900

oak oracle
#

if i'm going to play around with adding another car it's got to be something cool

cobalt prairie
#

Would it be reasonable to assume your next attempt will include the Volvo 240

#

Whenever I see stuff about the Saab 900 there's usually also a 240 somewhere near lmao

oak oracle
#

haha, i don't know what i'd try after the saab

#

the saabs going to take a while though, it's only got like, the basics

barren crane
oak oracle
#

like the dropship animation code etc

cobalt prairie
#

Gotcha

oak oracle
#

it has some cool stuff like you can roll down the drivers window

#

and it has a basic but working ignition system (center mounted of course :)

cobalt prairie
#

Do you have a thread for this?

oak oracle
#

na lmao

cobalt prairie
#

Ic

oak oracle
#

i just do little bits on it every now and again when i feel like it

cobalt prairie
#

I'm interested to see where it goes

oak oracle
#

my current focus is on, what can basically just be called a cruiser reskin; but it is a seperate vehicle in the terminal

cobalt prairie
#

Yea that's a good way to start

#

Once you've got the kinks of just making a new vehicle in general out of the way it'll be way easier to do what you really want to

oak oracle
#

this truck came before the saab and used to be a cruiser replacement

#

i made it a seperate vehicle after i started the saab

barren crane
#

this thread was indeed stolen by our friend scandal lol

oak oracle
#

the saab came first lol

oak oracle
barren crane
#

Yeah, just create your own thread

#

people will learn more about your work

#

you can also inform that its a wip, and there is no public release atm, and you can ask help more easily

oak oracle
#

oh wait it literally says finished/wip

cobalt prairie
#

There's a few threads in mod-releases that don't have a public release anyway

#

So I don't think you'd be wrong to make it there

barren crane
#

yes

#

like seemless dungeon

oak oracle
#

done!
here's before i drowned out this chat incase anyone wanted to see messages prior: (Sorry Digg!)
#1258980772996448309 message

analog fulcrum
#

Hey not a biggie but the new cabin light toggle has incompatibilty - or compatibility depending on how you look at it - with cruiser additions' storage light and speedometer. It seems the cabin light controls all three of those functions, meaning you can't keep the speedometer/storage light on while driving if you turn the cabin light off.

oak oracle
#

CI just toggles the set cabin light function, i feel like this would be more of something the author of cruiser additions would have to tackle

#

although doesn't cruiser additions have a config for a button to toggle the storage light? i wouldn't know since i don't really use it but i swear it did

agile smelt
#

yeah I'm just calling the method 'SetFrontCabinLightOn', maybe the speedometer light should be based on the ignition instead

#

i could probably avoid the issue by just copying the contents of the method to run elsewhere but i think the method's name is pretty clear

oak oracle
#

Pretty much haha

#

A separate function (i.e. ToggleCabinLight) that does the same thing as the normal one would probably do the trick but it's a little unintuitive having two functions that basically do the same thing

cobalt prairie
#

I have both, I'll do a test to confirm

#

yep, confirmed it. i'll send video in a min

#

(also the turn light off function of melanie's rv cruiser was disabled, so it wouldn't have been touching anything)

heavy frigate
#

fuckin love that cruiser look oml

analog fulcrum
#

No worries, personally I also use melanies rv cruiser without the storage light button bc it just floats (last I tested anyways)

cobalt prairie
#

it only really has 1 problem which is that it gets pushed easily

#

cus it doesn't have whatever component that adds mass to the cruiser i guess

oak oracle
#

the cruiser's mass is determined by the weight on its rigidbody (and maybe box colliders?)

#

in vanilla it's 200kg which is horribly horribly low for a huge box-truck

cobalt prairie
#

yea so i'm not entirely sure what makes the rv cruiser so pushable

oak oracle
#

probably an increased push force

cobalt prairie
#

like even just getting out of it can push it around

oak oracle
#

unless Melanie messed with the weight values

oak oracle
#

player and vehicle interaction can be quite jank though

#

could be that Melanie increases the size of the physics region to account for the wider portions of the Rv

#

i had some weird interactions when increasing the size of the physics region and walking into my truck

#

i wouldn't really know though lmao

agile smelt
#

the cruiser physics behaves extremely weirdly, i remember having issues with it's physics after just adding a trigger collider to make the entities walk around it

oak oracle
#

the cruisers physics are so busted

#

the suspension settings are so out of wack and even just the fact it weighs 200kg is so wack lmao

agile smelt
#

i don't remember what my solution was but adding or resizing literally trigger-only non-physics colliders to it can mess it up

oak oracle
agile smelt
oak oracle
#

it's just named like Cube or something on the prefab lmao

agile smelt
#

i don't think the builtin one works quite right though

oak oracle
#

-2 is probably causing issues

agile smelt
#

yeah that'd probably do it, i never really looked into it since by the time i noticed it mine was fully functional lol

oak oracle
#

snap maybe i'm misremembering its scale, i've no clue then

oak oracle
#

(the suspension is causing this)

agile smelt
#

i found that with the sideslip force it tends to stay in place somewhat, it still jitters but it'll stay in place at least

#

i added that because i got frustrated by it sliding off the hill on artifice every time you let it off the magnet

oak oracle
#

this is true, the suspension values are still messed up though

#

even just increasing spring to like 9400 from its original (4700 or something) pretty much alleviates this issue

oak oracle
agile smelt
oak oracle
#

i say slip, it's more just shaking its self out of place

oak oracle
agile smelt
#

ah yeah, i've known about that haha

oak oracle
#

the only times ive noticed it when i was playing with friends who were playing non-modded, so even with CI it wouldn't do much unless i was in the seat haha

#

if i got into it, i think it would stop moving, but getting out would obviously give ownership back to the host and then it'd start its journey of sliding away again

agile smelt
#

yea unfortunately, definitely better as host

oak oracle
agile smelt
oak oracle
#

yeah i saw that looking through the code

thin hearth
#

one time my friend was playing pubs and put the car into park

oak oracle
#

i also removed that if statement from mine, so stupid that it's even there

thin hearth
#

but it was still in drive on the host's side

#

so they saw the lever in park, but the car was flying all over the place until the host got in and set it into park again

#

not sure if that is a vanilla desync issue or if having cruiser improved in vanilla lobbies can lead to that

agile smelt
#

i'm pretty sure that is a vanilla issue

oak oracle
#

i've never experienced gear desync but i have had the aforementioned issues with stuff like brakes not being applied on host side due to early return

#

unless that is gear desync lmao

#

but i don't think it is

#

i've seen a few videos of gear desync though

thin hearth
#

sort of hacky how i fixed this, but i am relatively happy with this at least

#

not sure whether i should just release the patch myself

#

i feel like it probably makes more sense being in this mod

thin hearth
# thin hearth sort of hacky how i fixed this, but i am relatively happy with this at least
static Transform keyHolder;
static Vector3 newKeyAngle = new(0f, 0f, 180f);

[HarmonyPatch(typeof(VehicleController), nameof(VehicleController.Update))]
[HarmonyPostfix]
static void VehicleController_Post_Update(VehicleController __instance)
{
    if (__instance.keyIsInDriverHand && __instance.localPlayerInControl && __instance.vehicleID == 0 && __instance.currentDriver?.localItemHolder != null)
    {
        if (keyHolder == null)
        {
            keyHolder = new GameObject("ButteryFixes_KeyHolder").transform;
            keyHolder.SetParent(__instance.currentDriver.localItemHolder.parent, false);
            keyHolder.SetLocalPositionAndRotation(new(-0.002f, 0.036f, -0.042f), Quaternion.Euler(-3.616f, -2.302f, 0.145f));
        }
        else
        {
            __instance.keyObject.transform.rotation = keyHolder.rotation;
            __instance.keyObject.transform.Rotate(newKeyAngle);
            __instance.keyObject.transform.position = keyHolder.position;
            Vector3 offset = __instance.positionOffset;
            offset = keyHolder.rotation * offset;
            __instance.keyObject.transform.position += offset;
        }
    }
}
#

the "more proper way" to do this would probably be to overwrite __instance.rotationOffset with newKeyAngle, and then use a transpiler to replace __instance.currentDriver.localItemHolder with keyHolder (which would be instantiated at some other time)

#

so that way you aren't doing all the transform code twice (once in vanilla's function, once in the postfix)

#

but this was the quick and dirty way

thin hearth
# thin hearth ```csharp static Transform keyHolder; static Vector3 newKeyAngle = new(0f, 0f, 1...

alternatively, here's a simplified version that should be more performant (less math per frame)

static Transform keyHolder;

[HarmonyPatch(typeof(VehicleController), nameof(VehicleController.Update))]
[HarmonyPostfix]
static void VehicleController_Post_Update(VehicleController __instance)
{
    if (__instance.keyIsInDriverHand && __instance.localPlayerInControl && __instance.vehicleID == 0 && __instance.currentDriver?.localItemHolder != null)
    {
        if (keyHolder == null)
        {
            keyHolder = new GameObject("ButteryFixes_CarKeyHolder").transform;
            keyHolder.SetParent(__instance.currentDriver.localItemHolder.parent, false);
            keyHolder.SetLocalPositionAndRotation(new(-0.002f, 0.036f, -0.042f), Quaternion.Euler(-3.616f, -2.302f, -179.855f)); // note Z here, -180
            keyHolder.position += keyHolder.rotation * new Vector3(-__instance.positionOffset.x, -__instance.positionOffset.y, __instance.positionOffset.z);
        }
        else
            __instance.keyObject.transform.SetPositionAndRotation(keyHolder.position, keyHolder.rotation);
    }
}
#

possible there are some minor inaccuracies in my math but it looks identical in-game to me

oak oracle
#

Also make sure you take into account the position of the key for non-drivers since it is different

#

Here's mine (my driver positioning needs slight tweaking but it's super close)

dire patrol
# cobalt prairie <@300421155750150155>

ok thanks for telling, will update it somewhat soon (working on another mod rn)
@agile smelt (those were there so they turned on at the same time the cabin light does when the car is turned on/off, was easier than having a call in each place that setfrontcabinlight is called)

oak oracle
dire patrol
#

or no cause if ci is calling it then it would just call mine

oak oracle
#

That's why you use keyIsInIgnition

#

And not setOn

#

CI isn't setting keyIsInIgnition to false

#

So regardless if CI calls the cabin light to be set to false, as long as keyIsInIgnition is true, your storage light shouldn't turn off

dire patrol
#

you so right

oak oracle
#

private void SetFrontCabinLightOn(bool setOn)
{
SetStorageLight(keyIsInIgnition)
}

Something along those lines

dire patrol
#

oki will change it to that

oak oracle
#

Infact you'll probably want to pass two parameters

#

Since you have a config for a button, right

#

So you'll want to pass keyIsInIgnition and the button state

#

If the button is false, then just set storage light off regardless of key in the ignition

#

I pretty much did this for my truck when adding a toggle for the cabin-light

#

Infact no you won't need to pass two parameters ignore me

#

You can just check the buttons state in SetStorageLight regardless

dire patrol
thin hearth
#

for passengers and other players i figured it'd be such a minor detail it wouldn't necessitate the extra work

#

also it's more difficult to test in multiplayer from other player's perspectives

oak oracle
#

But fair

thin hearth
#

loll im just so lazy

#

running multiple instances is such a hassle

oak oracle
thin hearth
#

but yeah

#

that's how i would probably test as well

thin hearth
#

but i did want to tweak the offset of the key a bit

#

it doesnt seem to align with the keyhole using the default position

oak oracle
#

Yeah it doesn't

thin hearth
#

and it kinda snaps to a different position once the ignition turns on

#

so i might tweak the positioning a bit more

oak oracle
#

Same with twisting/trying the ignition (I just added a tryingIgniton bool for this)

thin hearth
#

then maybe i can expand it to work for other players as well

oak oracle
#

I have also tried to fix an issue where stuff like the terminal can offset the player arms in the truck

#

But I always get inconsistent results

thin hearth
#

just tbh that seems like a fool's errand

#

not that i blame you because that is super annoying

#

it's just all the LC animation clips are so inconsistently set up

#

and patching animation clips is one of the worst things to try and do because of how senselessly complicated it is

oak oracle
#

The animation clip never sets the rotation of the players arms

thin hearth
#

yeah

oak oracle
#

So I'm just setting it's rotation in lateupdate

#

Worst case scenario is that I gotta edit the clips (I want to do that anyways but for other stuff)

oak oracle
thin hearth
#

well

#

worst case

#

it probably just makes some other animation clips that also dont set the rotation look wrong

#

but i still feel like the problem is that the vanilla clips should be explicitly setting properties like that

#

and it was just oversight on zeekerss' part

oak oracle
#

It only happens on the first person ones I think

#

Sure I could live with it but I have OCD

#

So I gotta try get it perfect

thin hearth
#

if that's the approach you want to take

oak oracle
#

It's literally just setting one rotation in late update right now

thin hearth
#

if the clip isn't overriding the rotation, it should only need to be set for one frame

thin hearth
#

i see

#

that's weird

oak oracle
#

And I know the clip doesn't override the rotation

thin hearth
#

it might be getting overridden on another layer

#

possibly

#

i'll have to look into it

oak oracle
#

I think so

thin hearth
#

oh right

#

i hate the player animator

#

ugh

oak oracle
#

Yeah that

#

Thats why I put it in lateupdate lol

oak oracle
thin hearth
#

i havent but i saw you mention it

oak oracle
#

one of the metarigs positions doesn't get reset correctly

#

ah

#

the player gets shifted back and their hands can be floating off the wheel lol

#

i'll see if i can grab a photo

thin hearth
#

my timing might be bad but i cant seem to pull it off

oak oracle
thin hearth
#

ah

oak oracle
#

it does happen to driver but it's not as bad

thin hearth
#

im also not sure i see the difference with using the ignition before/after using the terminal

#

unless i have another mod messing with it

#

both look the same to me

oak oracle
#

inserting the key

#

the hands can get offset to the right

#

i'll see if i can also grab a photo of that

thin hearth
#

is it only while inserting the key?

oak oracle
#

pretty much and or twisting

#

anytime its in the drivers hand

thin hearth
#

i see

#

the twisting looks the same to me

#

hard to say for the insert animation because it's so quick

oak oracle
#

it's not consistent

thin hearth
#

i might just not have the sauce then

oak oracle
#

here's the backwards shift bug

#

i've had it look even uglier than this lol

#

it's refusing to show its self but the arms rotated one will have the key get inserted like here lol

#

non-driver, key in slot but not twisting (the bools don't even get set properly on non drivers)

#

twisting lol

#

super ugly

oak oracle
whole silo
#

is this good to have additions with?

quasi sonnet
#

There is some overlap between the two mods but they do complement each other well

cobalt prairie
#

theres only 1 issue between additions and improved that i know of

#

that turning the cab light off will disable the speedometer and back light from cruiser additions

#

but that's on additions' dev to fix i think

cobalt prairie
#

oh, would you look at that

#

no more problems

quasi sonnet
#

As I see it this mod is more bug fixes and very basic QoL, while Additions is vanilla+

cobalt prairie
#

prob why this is called improved and the other is additions

quasi sonnet
#

Indeed

hushed bison
#

Today host and another player got stuck by seemingly enter the driver's seat at the same time and then both being stuck in limbo. Is this a known issue?

heavy frigate
#

This is a known issue, not caused by cruiser improved but just by the cruiser itself

#

I've had it happen a few times before

dire patrol
#

(StartMagneting transpiler)

        codes.InsertRange(index + 1, [
            //call custom fixMagnet method
            new(OpCodes.Ldarg_0),
            new(OpCodes.Call, fixMagnet),
            new(OpCodes.Stloc_1),

            //return early if not owner
            new(OpCodes.Ldarg_0),
            new(OpCodes.Call, getIsOwner),
            new(OpCodes.Brtrue, jumpLabel),
            new(OpCodes.Ret),

            //return early if no localPlayerController yet to prevent a nullref when calling the rpc
            new(OpCodes.Call, PatchUtils.Method(typeof(GameNetworkManager), "get_Instance")),
            new(OpCodes.Ldfld, PatchUtils.Field(typeof(GameNetworkManager), "localPlayerController")),
            new(OpCodes.Call, typeof(UnityEngine.Object).GetMethod("op_Implicit")),
            new(OpCodes.Brtrue, jumpLabel),
            new(OpCodes.Ret)
            ]);

@agile smelt if IsOwner is true the localPlayerController check would be skipped

agile smelt
#

would explain why i've still seen that null ref crop up even though i thought it should be fixed

magic zephyr
#

@dire patrol I was wondering why this error always happened even after turning off the magnet patch in your mod since both mods handle it lol

dire patrol
#

my mod doesnt fix this error

cobalt prairie
#

getting this spammed out of nowhere

#

i haven't added any mods, only changed a config in the Oxygen mod

#

it breaks the scanner and prevents me from leaving the game

#

is there a disabled option for the scan node?

#

or is that just leaving it empty

thin hearth
#

if you leave it empty it will reset to default each time you launch

#

leave anything selected except "enabled"

#

and it will be disabled

#

but this is an error with the player so it's probably not related to the scan node

#

are you sure this is the first error?

cobalt prairie
#

yes

#

and it was set on Enabled only before

#

i just tried again and realized it broke the oxygen mod too

#

maybe i had a mistake in the config

#

everything seems fine in the oxygen config?

#

these were what i did in oxygen config

#

setting 1 moon to a negative value didn't give me any problems so i put all the moons i wanted as negative

#

but apparently cruiserimproved doesnt like that

#

or it doesnt like these running multipliers

cobalt prairie
#

there were duplicate entries in the oxygen config

thin hearth
quaint stratus
#

the cruiser items being moved to the ship is incompatible with XL Scrap

cobalt prairie
#

And it's discontinued sooo

quaint stratus
#

i wish it wasnt

#

it was so fun

#

yeah basically it just teleports the xl hands used to grab the scrap

#

and the scrap itself is deleting on teleport

#

weird af

cobalt prairie
#

if zeekers enjoying repo is any indication of what's to come

#

i think 2 player scraps will become a thing eventually

quasi sonnet
#

idk, I think this would not work as well. In REPO you still can pick up stuff solo with strength or clever dragging along the ground

#

In LC it would tank the solo experience even further and make the game more tedious

heavy frigate
#

yeah

cobalt prairie
#

it could easily be set to not spawn those when in singleplayer

quaint stratus
cobalt prairie
#

????????

quaint stratus
#

zeekers cant fix bugs like the fire exit

#

you expect them to implement a whole new mechanic into the game?

#

yeah no

#

sorry its just not realistic

cobalt prairie
#

we're ignoring the last few major updates now are we

#

if i had to guess the reason the bug isn't fixed is because he doesn't know about it

#

though i'm not 100%

heavy frigate
quaint stratus
quasi sonnet
#

The Fire Exit bug is not a vanilla bug

oak oracle
quasi sonnet
#

It does technically occur in vanilla, but redundant checks cause it to be fixed while the map is still loading. It was found that one of ButteryFixes’ optimizations removed said code, causing the bug to manifest

#

That is why Buttery was concerned with finding the cause of the issue and later updated ButteryFixes to account for the issue

quaint stratus
#

wow

magic zephyr
#

@agile smelt Is it possible we could have a config option to disable the setting that makes furnitures appear in the middle of the ship sometimes when a client joins? I consider this mod too essential to pull it but that issue is definitely annoying lol

cobalt prairie
magic zephyr
cobalt prairie
oak oracle
magic zephyr
#

If it is then idk why it kept happening

cobalt prairie
#

if i had to guess its a conflict with something you have

#

nobody in my group has had this problem and this is the first i'm hearing of it

oak oracle
#

Oh, furniture? misread it as items haha, yeah I don't think that's CI then

#

CI doesn't touch furniture

magic zephyr
cobalt prairie
# magic zephyr 01970131-4ea7-c0c1-53c0-2444dbeac284 You're free to check my pack.

i tried checking the Difference of our modlists, and excluding the moons, interiors, cosmetics, etc. theres a lot of things you have that i don't but i narrowed down my suspicions to
terminalformatter
suitsterminal
sellbodiesfixed
shipcolors

this isn't to say i accuse any of them as being it, but that i would test these first

#

i'm not familiar with them so i don't know what would do it, but i'm confident it isn't this mod by itself causing your problem

barren crane
#

Maybe it's a different issue, but I was referring to this #1346074618854899732 message

#

Also, I didn't know it was furniture, I thought it was items lol
Then it's clearly something else, this mod has issues with placing items in the middle of the ship on custom ships, not furnitures

magic zephyr
#

@torpid rivet Whenever you feel like looking into it I guess you could double check it's not ShipColors somehow

#

I will say I'm not sure what this is

#

I think it just automatically makes the config update

#

so prolly not that

thin hearth
#

i dont think CI touches furniture and ive never had that problem while using it

torpid rivet
#

and suitsTerminal does not touch furniture at all

magic zephyr
#

Yeah so most likely it was Sell Bodies then

#

👍

torpid rivet
thin hearth
#

@agile smelt you will probably need to make an update

#

a bunch of cruiser internals changed in v70

#

for the most part it's a lot more resilient to damage from various sources

#

but like

#

a pretty major change is that he removed the instakill from the cruiser

#

now it just deals 12 damage through the normal damage function

#

so now it needs 4 hits to kill giants and 5 to kill maneaters

#

etc

#

he also added a weird "switch gears boost" where the car gets a brief strong push the first time you drive it after shifting gears

#

wasn't a ton of code restructured, so it might not crash on startup or anything, haven't checked

#

tldr just would be good to do a quick sanity pass when you're free

agile smelt
#

hmm interesting, ill give it a try when i get time

cobalt prairie
thin hearth
#

he fixed that for the old birds in one of the v6x's though

cobalt prairie
#

yeah

#

i think i noticed it with an inside enemy that otherwise would never come in contact with the cruiser

#

seems like a more well-rounded fix in addition to a balance change

thin hearth
#

the more i look at it

#

the more i think the only change that needs to be done is making sure all instances of HitEnemy are replaced with HitEnemyOnLocalClient

#

was previously just 1

#

now 2, one of the instakills was changed for a high damage hit

#

im not sure if your transpiler already does that or not

#

everything else looks like it should translate more or less as-is

#

cruiser got crazy buffs in this update... almost every source of damage was reduced significantly or removed completely

#

and self-healing was buffed a ton

#

previously recovered up to ~25% HP after 16 seconds without receiving damage, now ~83% HP after 5

#

basically indestructible now

heavy frigate
#

so the mod works currently I assume?

thin hearth
#

i havent experienced any crashes or errors

thin hearth
#

it's possible there could be minor desync in how enemies are damaged, but nothing excessive or gamebreaking

#

damage not being synchronized doesn't have any hugely problematic effects, it just means different players might have to hit the same enemy a different number of times in order to kill it on their specific end

#

so like, if a giant's HP desyncs for me and my friend, and it's at 15 for me and 20 for them

#

it'd die for both of us if i hit it 15 times but my friend would have to hit it 20 times for both of us to see it die

#

IIRC

#

tldr that might happen with the cruiser's new damage functions but it'd probably be a pretty rare occurrence

heavy frigate
#

hmm okay!

#

thanks for the info stan, I'll play w it today, so i'll see if anything comes up

sleek grotto
#

Can confirm no issues on solo so far

sleek grotto
#

Idea I had today: since you can lean around to see the interior of the cruiser, what if the back door had a window section? So we could maybe see directly out back

#

Also, what if the eject button didn't launch you as high? I know it's a meme but the button is pretty dangerous

tiny bane
#

Noticing when I reload a save whilst using Widership with this mod enabled it seems to move all scrap that would be outside of the vanilla ship's bounds into a pile and was wondering if this was a known issue and if there is a fix or if there were any plans to add a config to disable this behaviour

tiny bane
cobalt prairie
#

u probably would want to add a check to prevent its patches from being applied to anything other than the company cruiser, since LLL ExtendedVehicle will start being a thing now with this mod

magic zephyr
#

@cobalt prairie Btw I can't repro these errors

#

How did you get these?

cobalt prairie
magic zephyr
#

Nvm I see

#

yeah

magic zephyr
#

I would imagine not, I honestly dunno why that part errors tbh

cobalt prairie
#

it'll just be a stain on the logs until it gets patched

magic zephyr
#

I would hope it gets support for the ExtendedVehicle tbh

#

rather than excluded

#

cus it would allow the Hauler to run over tulip snakes, masked, etc

cobalt prairie
#

ideally that would be on the extended vehicles themselves to implement a patch for that

#

cruiser improved should only touch the cruiser

magic zephyr
#

Yeah

oak oracle
cobalt prairie
#

@agile smelt https://github.com/digger1213/CruiserImproved/pull/24 made a PR for the remaining issue i am aware of with modded vehicles, it should now prevent patching on VehicleCollisionTrigger if the vehicle is modded. I also consolidated all your calls to __instance.vehicleID into one variable that is updated on Awake(), which I imagine will be pretty foolproof and should be easier to work with

GitHub

Consolidates all checks for VehicleController&#39;s vehicleID to a public class/variable. Also fixes an issue where VehicleCollisionTrigger patches might be applying without checking for vehicl...

#

I was able to compile and test this on my own computer, but I didn't test for every scenario (just buying it while landed, and loading a save with one attached), so if there are any problems i'll try to address them

magic zephyr
agile smelt
#

yeah, i have not played LC for quite a long time at this point

#

if anyone wants to fork it they're welcome to do so, or i could add them as a maintainer to the repository if they'd be interested

thin hearth
#

i probably wouldnt be interested in new features, only maintenance, but i could maybe pick it up if nobody else has plans

#

scandal might also be a good candidate

#

they are probably one of the most knowledgeable folks in the community as far as vehicle modding goes

oak oracle
#

(i'm still learning alot as i continue making things, so if the mod required a major rewrite of its foundations for example, then i probably wouldn't be the one to tackle it; though i do doubt it will in the near future, but you never know)

#

but for stuff like vehicleID checks, for example, that's completely fine with me

#

i would like to investigate why CI isn't compatible with LCVR anymore now that i think about it

thin hearth
#

as far as i know the only issues CI has that need to be addresed -

  1. v70 changed the cruiser's instakill for giants/dogs/etc. to a 12 damage hit, which might not be properly synced (CI had to replace a HitEnemy call with a HitEnemyOnLocalClient call elsewhere too)
  2. v70 appears to have broken the "Sort Equipment on Load" feature causing items to get moved out of bounds when loading a save. this is a major issue but can be worked around by turning the setting off, so not too urgent
#

as of v70, i mean

oak oracle
#

oh yeah, i am also aware of the second HitEnemy call as of v70

#

didn't know sort equipment on load is broken though

#

let me test the SEOL rq

thin hearth
oak oracle
#

i tried reloading and all my items are fine

#

2 jetpacks 2 shovels and 2 radar boosters

#

and they were all in the cruiser

#

all i have is CI a money mod and faster item dropship

thin hearth
#

basically you just need to:

  1. leave "sort equipment on load" enabled
  2. land the ship
  3. move some items on to the ship (scrap, tools, anything)
  4. go to orbit so your game saves
  5. keep exiting and reloading your save and they will start sliding off to the side
  6. eventually they will be moved out of bounds
oak oracle
#

ah

#

ahh yeah

#

i see

thin hearth
#

if i had to guess it's probably related to how zeekerss made items fall to the ground a frame late in v70

oak oracle
#

funny, i never knew about this

thin hearth
#

to try and fix some bugs with the cupboards(?)

oak oracle
oak oracle
thin hearth
# thin hearth if i had to guess it's probably related to how zeekerss made items fall to the g...

i think what's probably happening (pure speculation) is that:

  1. CI checks the coordinates of targetFloorPosition to see if it's outside the bounds of the ship, within a certain distance (most stuff that fulfills this requirement would be "inside the cruiser")
  2. if it is, it shifts its loaded position to the side, so that it's separated from the other pile of "out of bounds" items (such as stuff previously stored in a belt bag)
  3. because zeekerss changed GrabbableObject.Start(), targetFloorPosition is now set a frame or 2 late instead of instantaneously
  4. when CI reads it, it's probably still the default (0,0,0) which fulfills the condition despite it intending to be loaded somewhere inside the ship
#

that is just guesswork though to be clear

oak oracle
#

this is Start() for GrabbableObject

thin hearth
oak oracle
#

ah, ic

thin hearth
#

so they call FallToGround with justSpawned == True, which calls fallToGroundOnFrameDelay

thin hearth
#

clipboard/sticky note aren't saved and just reset to default each time you load

oak oracle
#

ah yeah i see

#

i'll test with the app/bee hive thing

oak oracle
#

2 apps and a bee hive on 1 reload

thin hearth
#

lol, guess that theory's out the window then

oak oracle
#

second reload

#

i think you're right, lol

thin hearth
oak oracle
thin hearth
# oak oracle

anyways if justSpawned is True, it calls fallToGroundOnFrameDelay and then returns immediately, so none of those targetFloorPosition assignments get caled

oak oracle
#

yeah i was just reading it lmao

thin hearth
#

i gotcha

oak oracle
#

just trying to think how to go about it

thin hearth
#

anyways i still dont know exactly what code cruiser improved is running

#

but hopefully that gives an idea of how to resolve it

oak oracle
#

that's the only real decent solution i can think of 🤷

thin hearth
#

i would need to see where this transpiler is inserting the function

#

ill have to take a look at it later, im about to be busy

oak oracle
#

all good!

thin hearth
#

since i think SetItemPosition would still be called under the wrong conditions by the transpiler's injection

oak oracle
#

oh yeah obviously lol

thin hearth
#

that's just gut feeling though

oak oracle
#

i'll probably play around with it

#

still not very familar with github so i'll need to get used to that first before anything lmao

oak oracle
#

something tells me i should add an id check here

#

otherwise this is rescaling stuff on modded vehicles, lul

cobalt prairie
#

ah, seems i neglected that function

#

oops

oak oracle
#

this is such a mindfield for me to figure out since i've never done this before, might need someone to teach me some stuff haha, i think i figured out how to compile my fork so i can test stuff on my machine, but this is still super confusing stuff to me

agile smelt
oak oracle
oak oracle
#

i also made some other small changes (such as fixing materials not applying to LODs, and fixed wheels not using the colliders rotation/not rotating correctly)

thin hearth
#

you should probably just do return null twice

oak oracle
#

hmm, alr, i thought about that but wasn't sure

thin hearth
#

or return Timing.WaitForEndOfFrame

#

otherwise if you have a really long frame followed by really short frames

#

the delay will take several frames longer

oak oracle
thin hearth
#

ya

oak oracle
#

ic ic

thin hearth
#

if that works that's probably the most elegant way to write it

oak oracle
#

yeah fair

thin hearth
#

but you could double up

oak oracle
#

i'll try it

thin hearth
#

or add a return null before it just to be sure it waits 2 frames

#

every yield statement is guaranteed to wait at least 1 frame before continuing

#

so returning null just means "wait one frame" pretty much

#

can just do
print("frame 1")
yield return null
yield return null
print("frame 3")

oak oracle
#

oh i think i completely misunderstood this lmao

thin hearth
#

yeah this would work

oak oracle
#

yeah i just misunderstood it at first so that's mb

#

i'll test it on my machine

#

works just fine

#

moved the locaplayercontroller check on startmagneting to before the isowner check to hopefully prevent a nullref error

magic zephyr
#

So this is the mod that causes the Apparatus' and stuff to move on the load of a lobby

#

I was always wondering if it was Vanilla tbh

oak oracle
magic zephyr
#

Ah

oak oracle
#

i have fixed it by adding a two frame delay before trying to set anything

magic zephyr
#

Well upon removing it though it fixed the issue of the Apparatus' sinking on a lobby load

#

I noticed if an Apparatus was placed in the door frame it would always fall

magic zephyr
oak oracle
#

buttery did a good job explaining it somewhere further up

magic zephyr
#

Ahhhh

oak oracle
#

i'm also going to add some additional vehicleID checks to stuff like the DestroyCar postfix

oak oracle
cobalt prairie
#

You're the goat

magic zephyr
#

I had items sinking in the cupboards and items start sinking in the floor

oak oracle
magic zephyr
oak oracle
#

SOEL just places items towards the middle of the ship

#

SBT?

magic zephyr
#

Science Bird Tweaks

oak oracle
#

ahh

#

yeah, i can't reproduce the issue with just CI on its own on 1.5.1, haven't tried SBT yet though

outer zodiac
#

i dont know what exactly happen. im using the company hauler that time

oak oracle
#

i've never gotten this error before

#

i don't think the Hauler messes with the radio, but i'll check

#

yeah no it doesn't

oak oracle
outer zodiac
#

i'll just disable cruiser feature from ghostcodes for the mean time ?

#

weird since I already make it 0 to interact with the cruiser radio tho

oak oracle
#

not sure, i can't really test much right now

#

nothing else stood out to me in that log

#

i can't even find the radio patch for ghostCodes, but the log suggests it is messing with it

magic zephyr
#

If they have Cruiser Tunes or something that would probably cause issues tbh

oak oracle
#

nah, i don't think it would

#

i've sued CT and CI before

magic zephyr
#

The Hauler has it's own set of custom radio tracks

oak oracle
#

CT afaik doesn't do much other than just add more songs to the radio

#

infact, unless they have CT set to remove all the songs from the radio

#

and don't have any songs on the radio at all

#

that could probably cause issues

magic zephyr
#

I stopped using Cruiser Tunes personally cus it kept breaking the looping for Cruiser tracks at random

#

Sometimes I would turn the radio on and the song just would glitch out lol

oak oracle
#

i never had issues with CT

#

i just took a look at their logs and they do have CT, so it could be an issue with CT, but i'm confident it's not

magic zephyr
#

I know it was CT cus I've never had it in vanilla and I didn't have SoundAPI at the time

oak oracle
#

i'll test it later

magic zephyr
#

Yeah if CT isn't specifically looking for the Cruiser it may cause issues, personally I found it odd the Hauler doesn't have an option to use the Vanilla tracks cus I prefer them over the custom ones it adds

#

The custom ones are okay but they don't fit the goofy tone that the vanilla ones do

oak oracle
magic zephyr
#

That would make sense, I imagine it tries to apply custom track mods to the Hauler and errors since the Hauler has it's own custom radio

oak oracle
#

the hauler shouldn't error

#

if the hauler errors then so should of my truck, and it never did

magic zephyr
#

Hmmmm

#

Prolly something with how configs are set up then

oak oracle
#

which is really odd

outer zodiac
#

so should I remove CT or do something on configs

oak oracle
#

i'm not sure why it's throwing that up

oak oracle
outer zodiac
oak oracle
#

could you try enabling include original songs, and seeing if you can repo the issue?

outer zodiac
#

I'll try again if I play lethal

#

will report if I reprod it

outer zodiac
#

I test it anyways~

#

radio still works tho it just throwing these errors

agile smelt
#

CruiserImproved isn't mentioned in this error so either this error is a result of a previous one leaving a null reference or CruiserImproved is not directly related (and only showed up in the previous error due to calling the vanilla SetRadioOnLocalClient method)

outer zodiac
#

error shows when tuning/turning on or off radio this time

agile smelt
#

i don't think CruiserImproved is causing it, i'd be curious to see if it still happens without CruiserImproved

outer zodiac
#

yeah its seems Cruiser Tunes doesnt like Company Hauler for some reason
it only throws error when turning on the radio on the hauler

outer zodiac
#

update:
Tested it with Cruiser radio (the playlist I use), cruiser tunes and company hauler only. it doesnt throw errors. Only when Cruiser Improved is present with them
Test pack Code : 01984b20-3519-126b-bc46-89d27687a225

oak oracle
#

@eternal thunder do you by any chance modify the radio? or is it all the vanilla CC radio code?

#

just curious

outer zodiac
#

wrong logs lol

eternal thunder
#

lmk if I am somehow wrong, doubt this tho

oak oracle
#

It seems it may be more an issue with CruiserTunes and the Hauler, and CI might be getting caught in the cross-fire

oak oracle
#

did some brief testing on my own and it's CT doing something that causes the errors

#

it also prevents the tuner from turning on the radio while it's off

#

i didn't realise it was bugged at first and thought it was a feature of the hauler that it needed to be turned on first

#

with the hauler and ci alone it works fine

oak oracle
#

i've released a small patch to sync the tire skidding effects, and a quick workaround for non-owners seeing the wheels not rotate at all

#

this might also fix an issue with the haulers traction light

spring brook
#

[16:37:10.0588441] [Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
(wrapper dynamic-method) VehicleCollisionTrigger.DMDVehicleCollisionTrigger::OnTriggerEnter(VehicleCollisionTrigger,UnityEngine.Collider)

#

Is this a vanilla problem?

cobalt prairie
spring brook
#

Old Bird trying to killing someone inside the cruiser

cobalt prairie
#

Firing rockets or just walking into it?

spring brook
#

Most walking but sometimes was firing rockets

thin hearth
#

@oak oracle hiya, wanted to "get a temperature" on how you felt for including new features, since you're probably the best equipped to maintain this mod going forward...

do you have any interest in making the cruiser's durability and damage configurable in the future? I was a big fan of how balance felt in v69 and while personally I'm ok with the v70 cruiser, I think it's a lot less interesting and fun to play with after all of its buffs.

I would be totally happy with an "all-or-nothing" toggle between v69 and v70 balancing (maybe even v55, before the cruiser's first set of durability buffs?), or it could be more granular, too

#

the two biggest pain points for me are:

  1. during v55-v69, the Cruiser would instantly kill enemies when ramming into them at a high enough velocity. as of v70, it is only capable of instakilling "small" enemies, and it's capped at 12 damage against anything else.
  • IIRC only masked and tulip snakes count as "small enemies"
  • this means forest giants and maneaters survive multiple full speed hits (which makes places like dine, which used to be great for cruiser, especially nightmarish to drive on now)
  • he probably did this to nerf potential sapsucker cheese, which is fair... i would be fine with this nerf specifically applying to sapsucker (or future 13+ HP enemies)
  1. HP regen was previously capped at 7 (~25% durability) and recovered 1 point every 16 seconds. now it's capped at 25 (83%!) and recovers every 5 seconds, which makes weed killer practically useless outside of turbo
thin hearth
oak oracle
#

it's something i've thought about (even though i'm not the greatest with transpilers! but I could give it a go) in theory it wouldn't be difficult to restore some of the original behaviour, in the case of damage, zeekerss removed two calls to DealPermanentDamage, upped the self regen by a ton and removed the insta-kill (most likely to prevent the sapsucker being insta-killed like you mentioned, which I noticed as an issue on my vehicles)

also, about the v55 car, I've looked into it multiple times when making my v55 car, and it isn't any more durable than the v56 car funnily enough, the only real changes between that, and v56 were:

weed-killer functionality (healing, jumping)
lurching the car forward
lethality to passengers was reduced
anything enemy under a certain size is no longer affected by vehicles (masks, baboons, and probably some others like tulips) (fixed in CI)
friction changes to the tyres

in v70:
self regen was buffed
self-up righting force
shift gears boost thigny

thin hearth
#

well, i think in v55 the max HP was also 25 instead of 30 IIRC

oak oracle
#

max hp is 30

thin hearth
#

really? i must be misremembering then

oak oracle
#

i'm 99% sure, i downloaded v55 the other day

#

since i was checking stuff with UE

thin hearth
#

i barely played with the v55 cruiser since i was a terrible driver at the time, and v56 was released really soon after, so maybe it's not worth

#

i trust your info

oak oracle
#

all the carbump forces are identical (which were used for damage)

thin hearth
#

i just think the durability buffs were absolutely excessive

oak oracle
#

oh no for sure lol

thin hearth
#

and TBH i don't even really care about the 12 damage cap except for giants, because i thought running them over with the car was pretty good in terms of risk-reward balance

#

maneaters could be buffed if they want

oak oracle
#

i wouldn't remove turbo boosting in CI (since that would technically be unimproving the cruiser lol, and that'd be obviously subjective) and self righting is like, i dislike it but, i don't care enough to remove it

oak oracle
#

aside from like, the steering desync

#

that riled me up soo much

#

other than that it was alot of fun imo

#

it was stupidly unwieldy, bound to kill you in the event of giving a rock the dirty look, completely impractical and had to be pushed 99% of the time on most moons, it was just fun lmao

thin hearth
#

i have basically no experience with it

#

im comfortable enough with the v56 version of the car now that i'd be open to giving it a try

#

anyways, im glad to know there is interest, at least

oak oracle
#

my v55 car is meant to be a recreation of that, but with my own touch up where i felt was necessary, sort of my "ideal vanilla truck" in my eyes

#

i even have the original service manual photos :p

oak oracle
#

with the main one being

#

uh, let me try get an image of it

#

hang tight

oak oracle
#

random chance

#

seed beased

#

based*

thin hearth
#

oh that's funny

magic zephyr
# oak oracle

Btw do Cruiser Improved/Additions need updated for v73?

oak oracle
#

complete with player animations and everything

oak oracle
thin hearth
#

cruiser improved does use networking for syncing settings but i dont think it uses netcode patcher

oak oracle
#

yeah no it doesn't

thin hearth
#

so i guess that kinda muddies the waters

#

unless you're experiencing issues it's "probably fine" and even if you are it might just need to be recompiled with the new assemblies

#

anyways

distant mantle
# oak oracle

I might be tripping but I vaguely remember at one point it was possible to have 2 steering wheels with your thingamajig

oak oracle
#

i was trying to use networking for the interior type but put it on awake like a dummy

heavy frigate
#

maybe if he made the sapsucker deal more damage to the cruiser it would've been fine

oak oracle
heavy frigate
#

ye but don't sapsuckers get angry at cruisers just being in their vicinity?

oak oracle
#

yes

heavy frigate
#

also I've found you can still just. fucking kill them anyway

oak oracle
#

they're programmed to do so

heavy frigate
#

so it's definitely not a fix to make the cruiser not insta kill

thin hearth
#

oh that is funny

heavy frigate
#

lemme find a fix

#

mrov killed em once lol

oak oracle
thin hearth
#

you can definitely still kill the sapsucker with the car

#

you just need enough velocity to get 12 damage hits 3 times in a row

#

or, at least, two 12 damage hits and two 2 damage hits

#

but that is at least going to be less consistent + more risky than what he probably found you could do in testing

#

where if a sapsucker is in the valley on vow

#

you can just speed down the hill and ram straight into it for a free insta

oak oracle
#

good god the sapsucker has 4 FindObjectOfType<VehicleController>'s lol

thin hearth
#

usually ramming into things pretty quickly reduces your velocity but sometimes Physics Be Jank and toss the car around and give you kill velocity

#

right now you can literally farm dog kills by just leaving the cruiser's engine on, letting them walk into the car, toss it around, and die

#

before v70 the cruiser would have exploded probably before killing more than 1 or maybe 2 dogs

thin hearth
oak oracle
thin hearth
#

not that it matters because im pretty sure lethalperformance patches the same issue at this point

oak oracle
#

zeekerss loves his findobjectoftype

#

its his baby

thin hearth
#

(and diffoz's patch is probably way better than mine to begin with)

oak oracle
#

i don't know why he doesn't just make a cached reference to a vehicle in like start of round or something 😭

thin hearth
#

well you can find a bunch of old code where he does Object.FindObjectOfType<RoundManager>() even though RoundManager.Instance literally exists

oak oracle
#

wasn't that in melee weapons lol

thin hearth
#

or "not even old" code where he does Object.FindObjectOfType<MineshaftElevatorController>() even though he literally made RoundManager.Instance.currentMineshaftElevator which IIRC is assigned but never used(???)

thin hearth
oak oracle
#

zeekerss be zeekerss

thin hearth
#

iirc the breaker box also has some

oak oracle
distant mantle
#

could be fun to see a tyre mechanic where each has it's own health pools and can individually degrade. Surface types potentially messing with them - could even have bramble and other hazards that will just shred tyres, which . . . would be a bit restricting but potentially good for deterring people from taking the cruiser to certain parts of maps. Maybe I'm burning.

thin hearth
# thin hearth iirc the breaker box also has some

yes```csharp
private void Start()
{
this.roundManager = Object.FindObjectOfType<RoundManager>();
}

public void SetSwitchesOff()
{
this.roundManager = Object.FindObjectOfType<RoundManager>();
if (this.roundManager == null)
{
Debug.LogError("Could not find round manager from breaker box script!");
return;
}

oak oracle
thin hearth
#

he literally assigns it in Start() but then re-assigns it every time you flip switches

oak oracle
#

it's hell to drive on maps like rend

thin hearth
#

anyways

thin hearth
oak oracle
#

yah i'm aware, thank god lmfao

#

the issues i reported are "fixed" now

thin hearth
#

it technically changes the underlying semantics of that code (I'm pretty sure it causes vehicle behavior to change if you're using one of those mods that lets you spawn 2 cruisers at once)

oak oracle
#

it was just my concern with it caching vehicles, but i can just call base.awake

thin hearth
#

but all of the vanilla code already makes the assumption there's only 1 cruiser anyway, so none of it would ever work as expected with 2 cars

oak oracle
#

plus, multiple vehiclecontrollers at the same time causes too many issues in its own right as i learnt quickly

#

so it doesn't really matter anyways

thin hearth
#

if you spawn 2 cars, only one of them can even be sprayed with weedkiller, for example

oak oracle
#

kind of a non issue now

oak oracle
#

unless it's cached

oak oracle
thin hearth
oak oracle
#

since i redid alot of enemy protection, and added enemy protection from enemies that didn't have it before, and i'm not going to do a stupid findobjectsbytype call

thin hearth
#

because it would mean FindObjectOfType<VehicleController>() returns different vehicles on different frames when more than 1 exists

#

lol

oak oracle
#

i could be misremembering but i swear you can

#

infact, i'll test that theory with imperium real quick

thin hearth
#

anyways

#

whatever the case is

#

the cruiser is definitely one of the most offensive "why is this not a singleton" situations with lethal's codebase right now

#

it's up there with every masked doing FindObjectOfType<MineshaftElevatorController>() every 0.2s in factories/manors

#

at least most enemies only search for VehicleController specifically when colliding with something, which sort of minimizes the impact... I think the kidnapper fox (and now the sapsucker, I guess) being the exception

#

there's also the fact that zeekerss uses FindObjectOfType, which has an expensive sorting function tied to it (it returns stuff ordered based on instance ID)

#

FindObjectByType has the possibility to be cheaper and faster, because you can remove the sorting step if it's irrelevant to your code... and he uses that in some logic (like the enemy nest logic), so he's definitely aware of it

oak oracle
#

i would of tested it with imperium if it didn't keep spamming my logs and prevent me from opening a save

#

awesome stuff

thin hearth
#

lol yes ive been having some issues with imperium myself

#

my favorite v73ism is that now, about 25-30% of the time when I land on dine with imperium enabled, my game hard crashes

#

no discernible pattern

oak oracle
#

(unrelated)

oak oracle
#

i also animated stuff like the vertical column of buttons for the wipers, headlights and cabin window

#

as seen in that clip

thin hearth
#

that is really throwing me for a loop

#

seeing the left hand animations

oak oracle
#

the ejector seat also works as well

thin hearth
#

very nice and fluid though, i know how much of a pain modding player animations is under the hood

oak oracle
#

the pain in this case was visually eyeballing the left hand drive animations and animating the left hand

thin hearth
#

small details like this always get a kick out of me

heavy frigate
#

the scanvan:

oak oracle
#

...i also fixed every single model issue with the cruiser

#

:)

heavy frigate
#

please release your mod I want it so bad

oak oracle
#

it's completely flawless ™ (afaik)

thin hearth
#

one of the reasons i had to fix the car key in "whatever butteryfixes version that was"

#

although i've noticed the key still jitters a bit when it leaves the player's hand and gets locked to the ignition

#

which irks me so much i want to fix it, but not enough i feel like doing all the transform math to line it up

#

as an aside, if you ever want to steal stuff from BF to move it to cruiserimproved instead, be my guest

#

i think you had your own car key fix, and you've probably fixed just about any of the other stuff i've touched (except maybe not despawning the cruiser when getting fired??)

#

but like. it's kind of only there because i didn't feel good contributing my horrible code to CI Lol

oak oracle
#

Yeah I have my own proper fix, even got a fix for the arms becoming slightly orientated which irked me so bad

#

On mine once it goes into the ignition it stays locked to the ignition

#

I added a tryingIgnition bool which is used for the key rotation

#

I had to adjust the timing of the ignition coroutine though

#

My car key fix probably wouldn't fit on CI unfortunately

oak oracle
#

Worked like charm

thin hearth
#

lol well

#

i think to accomplish what i want to accomplish

oak oracle
#

;The ignition barrel even rotates on my car :)

thin hearth
#

i'd have to move a player into the car seat, play out their animation until the hand is holding the car key inside the ignition, and then reparent the car key from its final resting position in the ignition to the player's hand

#

and copy that position/rotation, so i can apply that to the car key while it's following the player's hand

oak oracle
#

The small things matter to me

thin hearth
#

and that just sounds like a bunch of work i dont really want to do

thin hearth
oak oracle
#

Probably, it's not used anywhere on the cruiser afain

#

Afaik

thin hearth
#

i fixed a couple of cruiser audio oddities in ESF and maybe i should make a patch for the vanilla cruiser's buttons, if there's a problem

oak oracle
#

To me it "sounds right/intended" anyways

#

Oh I also animated the ejector button being pressed hehe since that was an issue on the cruiser too

oak oracle
#

Idk what is meant to be the true "cranking" audio

#

I just set it as that looped audio as heard in my video

thin hearth
#

yeah i have no clue either

oak oracle
#

The first audio is a play one shot of a starter motor engaging and a short cranking of the engine
And then it changes to that

#

It's weird

thin hearth
#

the weird audio you used in your clip plays in vanilla, but only after the initial audio plays from turning our key (which has its own ignition sounds)

oak oracle
#

Ye

#

I think that's the true engine turning over audio

#

Especially since it's looped

thin hearth
#

but then it gets stuck playing that audio, because it's meant to stop when its volume hits 0 (when you stop turning the key) but because the way zeekerss implemented the lerp, it can never hit 0

#

so if it starts playing that audio it'll keep playing that audio every time you twist the key, until you reset the ignition audio completely (which i think requires starting the car and then taking the key back out)

oak oracle
#

Oh god lol

thin hearth
#

the oneshot from turning the key also continues playing after the car actually starts up, but it gets immediately re-pitched (because the engine pitch is set based on the speed of the wheels IIRC??)

#

so you can hear the tail end of the ignition sound keep playing but it's deeper and lower pitched

#

also if you twist/untwist the key several times in quick succession it causes that oneshot to stack

#

so many awful bugs with the ignition

#

i settled on making it reset the oneshot every time you retwist the key, and it stops the oneshot after the car turns on

oak oracle
thin hearth
oak oracle
thin hearth
#

so what happens now is it plays the oneshot, and then after the oneshot completely finishes, it switches to the other ignition audio

oak oracle
#

There's two unused maxrpm and minrpm values but they're never used, they have 3000 and 1000 assigned

thin hearth
#

but now it's kind of weird because the ignition audio only plays if you keep the key twisted long after it has a chance of even starting the car

#

(although that's maybe fine, because it means it works as an audio cue that you should release and try the key again...)

#

idk it's a goddamned mess TLDR

oak oracle
#

Yeah lmao

#

I have a fix on mine anyways :)

#

Aka just calling stop()

#

Like what you do

thin hearth
#

anyways

#

i have gotten majorly off track

#

but your cruiser stuff is cool

oak oracle
thin hearth
#

i think you are infinitely more knowledgeable about the cruiser than i am and i like most of the adjustments you have showcased here

oak oracle
#

I just enjoy anything vehicle related :)

#

I was so overjoyed when I saw a car in v55

#

At the time I didn't even know about the car when v55 came out

#

I just saw an update and went in blind

#

Speaking of ignition audios, the key doesn't play the twist audio when you first insert it and twist it in one motion hehe

#

Probably an oversight but since we're talking about audio

thin hearth
#

that's the exact kind of small niche thing that is going to bug me forever until i fix it

oak oracle
#

Lmfao

#

There were a lot of small weird things with the cruiser that I spent the time to fix

#

I even fixed the window wipers not even remotely conforming to the windshield 😭

#

Required a bit of rigging but it works

#

They also have a faint audio now

#

When they wipe up and down

thin hearth
#

sorry i butchered that copy paste

oak oracle
#

I just use that lol

#

And no worries

thin hearth
#

alr cool

oak oracle
thin hearth
#

well yes

#

what you don't know can't hurt you

#

i like to say

oak oracle
#

Lmao

#

You're dam lucky, my video showing how wonky the truck mesh is has died

oak oracle
#

Meaning*

oak oracle
thin hearth
#

which is the only reason it's even compiled into the game

#

it was lost media before v60

#

and even still, it doesn't play in vanilla

heavy frigate
#

Not sure if you know but on lobby rejoin this happens

#

every frame

oak oracle
magic zephyr
#

☠️

oak oracle
oak oracle
#

and that would explain it

heavy frigate
#

pre-update if there was one

#

(pack was not changed since before v73 dropped)

heavy frigate
heavy frigate
#

maybe you fixed it alongside the v73 update or smth? unless you didn't update for v73 and it just worked

spring brook
#

I thought this was a vanilla client-side problem that cruiserimproved fixed.

oak oracle
oak oracle
heavy frigate
#

ye sure

#

it's a friend's and supposedly it has CI but if it doesn't that'll be embarrassing lol

#

0199c0dd-d070-3f84-80dc-d216b6c77d2d

oak oracle
#

i can't wait to search "cruiserimproved" and see "zero results"

#

okay, downloading it now

oak oracle
#

no cruiserimproved

#

these are the only cruiser mods he has

#

a my summer car sound replacement mod, cruisertunes and a skin using cruiserskin

heavy frigate
#

sounds about right, I'll tell them

#

right , it's like the 4th time they have to remind me but it's because CI is not compatible with LCVR

#

more of an LCVR issue I think

oak oracle
#

and when the LCVR nuget started complaining about a missing 'Mimics' package me and digg just agreed to disable it all for now

#

it's on the backburner

heavy frigate
#

makes sense makes sense

chrome bronze
#

lcvr is messy so i hope yall keep your sanity

oak oracle
#

the compat was mostly just "don't run this code if lcvr installed" lol

#

but then one day it just broke the entire cruiser from spawning in with lcvr and i have no clue why

#

it used to work

#

so idk if it's something with CI or if LCVR broke something

oak oracle
#

once I get home today I'll look into LCVR compat since I'll actually have my headset again

#

There are some other small things I want to do while I'm at it

#

i.e remove the "extra wheels" that are completely unnecessary and cause issues

#

I might slightly stiffen the springs too

#

Only slightly, just to stop it jittering

oak oracle
#

alright, i'm home, i'll see if i can figure out what's wrong and if it's something i can fix on my end

#

i do also need to test if CI's networking still works :p

oak oracle
#

okay well, that's interesting..

floral mist
oak oracle
#

ah right, this is the problem with it not being on the dropship

#

time to investigate, and i'll fix that other issue

#

i think the other issue i inflicted, so not too worried about that since it'll probably just take uncommenting some code

#

oh you're joking

#

i can't sign into my github account

#

🤦

floral mist
#

rip

oak oracle
#

infact i might be able to, i have it on my authenticator

#

i'm in

#

thank god for that

floral mist
#

noice

oak oracle
#

y'know

#

i kinda figured it would be this

#

something at the back of my mind told me it would be this

floral mist
#

loooool

oak oracle
#

if it's just lcvr changing the name, it might be an easy one to fix

#

i could probably also add vr interactibility to the cab light

#

yeah it just renames them lol

oak oracle
#

yes

heavy frigate
#

that's crazy

oak oracle
#

lcvr renames everything to CarButton

heavy frigate
#

@chrome bronze there's hope twin

oak oracle
#

and CI is trying to find it through the old path

#

and it's just throwing a nullref since it no longer exists in that name

#

i need to re-enable lcvr compat in some other scripts

#

glad the issue is like, really minor and probably easy to fix

oak oracle
#

got it mostly working, just need to iron some stuff out :p

oak oracle