#plugins-dev-chat

1 messages Β· Page 135 of 1

true cedar
#

WHY THE FUCK IS THIS TAKING ME TO https://pawslee.github.io/RueI/~/markdown/introduction AND NOT https://pawslee.github.io/RueI/markdown/introduction.html??? my top-level toc.yml is configured nearly identically to how they do it in the examples:

- name: Docs
  href: markdown/
- name: API
  href: api/

the api button works

#

what the fuck it works now.

teal junco
#

also you can link two items by giving them the same serial :3

slate flume
#

I'm just trying to figure out if there's one event I can subscribe to that runs anytime a pickup is created

#

And same with destroyed

#

ItemPickupBase.OnPickupAdded isn't it

#

OnServerPickupCreated isn't it

#

Why is this such a complicated endeavor

slate flume
#

It just doesn't work

#

OnPickupAdded and OnPickupDestroyed triggers AddPickup and RemovePickup for the Pickup wrapper which calls the PickupCreated and PickupDestroyed events

#

Do I need to like

#

Patch ServerCreatePIckup or something

#

What the hell is going on

#

Maybe I can patch the generic UnityEngine.Object.Instantiate for only ItemPickupBase types and do it that way?

worthy rune
slate flume
#

When making a pickup, do most places use InventoryExtensions?

worthy rune
#

are you interested in the temp pickups(the ones created when switching roles that last less then a frame) or the ones dropped when too many items are in the inventory?

slate flume
#

The permanent pickups

worthy rune
#

oh weird that doesnt work

slate flume
#

Well because it doesn't run when, for instance, a player drops an item

worthy rune
#

ItemPickupBase.OnPickupAdded is called in start so it should be called for your case

slate flume
#

.OnPickupAdded is what calls the LabAPI event OnServerPickupCreated

worthy rune
#

yeah

slate flume
#

OnServerPickupCreated doesn't grab items when a player drops an item

#

It doesn't get called

worthy rune
#

to me that sounds like a major issue, and iirc it was working for all pickup drop cases we know of

#

do you have EXILED installed

slate flume
#

No

#

I mean you can give it a test yourself, I just assumed that was intended behavior

worthy rune
#

intended? all wrappers should grab all instance except prefabs

slate flume
#

Well I'm pretty sure it's in Pickup.List and stuff it just isn't added by OnPickupAdded

#

Feel free to try it yourself

public override void OnServerPickupCreated(PickupCreatedEventArgs ev)
{
    Logger.Info(ev.Pickup.Serial);
}
worthy rune
worthy rune
slate flume
#

OnPickupAdded is what calls OnServerPickupCreated

#

If OnServerPickupCreated isn't getting all the items then OnPickupAdded for sure isn't

#

And I tried

worthy rune
slate flume
#

Don't know what to tell you, cause I tried it, maybe serial just isn't assigned when OnPickupAdded is called?

#

I can try adding delay

worthy rune
#

reason that i dont quite believe that OnPickupAdded isnt called is because its a unity called method, which is basically relied uppon for everything and is guaranteed to run. now that not to say the event isnt running, maybe some sort of error is happening in the derived overrides thats causes it to not run the base, but thats literally the only way this could break and you would see it in the LocalAdminLogs

#

^ or a broken patch on ItemPickupBase.Start but im guessing you would know if that were the case

slate flume
#

Let me throw a couple seconds of delay on the check and try it

#

Same result

#
protected internal virtual void SpawnPickupLight(ItemPickupBase pickup)
{
  Timing.CallDelayed(2f, () =>
  {
    if (!CustomItemData.TryGetValue(pickup.Info.Serial, out LightSourceToy? light) || light != null)
      return;
    LightSourceToy pickupLight = LightSourceToy.Create(pickup.transform, false);
    pickupLight.Intensity = 0.4f;
    pickupLight.Color = PickupLightColor;
    pickupLight.Spawn();
    CustomItemData[pickup.Info.Serial] = pickupLight;
  });
}
#
public override void OnServerWaitingForPlayers()
{
  ItemPickupBase.OnPickupAdded += SpawnPickupLight;
}
public override void OnServerRoundRestarted()
{
  ItemPickupBase.OnPickupAdded -= SpawnPickupLight;
  CustomItemData.Clear();
}
#

It works when I use the spawn command to spawn a custom item, but not when I give myself a custom item and then drop it

worthy rune
slate flume
#

I'll lyk I'm about to test

worthy rune
slate flume
#

It could just be the serial isn't as expected when dropping it

#

But that would be odd

worthy rune
#

yeah, just double checked the code and it should be the same serial, and is set right after instantiation

slate flume
#

I mean it could be that there's a temp pickup that spawns with the same serial and that causes a light to be spawned on the temp item, preventing spawning on the perm item?

#

Let me trying removing the check if there's a light already spawned

worthy rune
slate flume
#

I'm adding more logging and trying again

#

Well wait

#

This is even more odd

#

I think you're right that it's an error on my part @worthy rune but I'm very confused

#

So

worthy rune
#

yeah not sure the issue, it is very confusing

slate flume
#

I did
public override void OnPlayerDroppingItem(PlayerDroppingItemEventArgs ev)
{
Logger.Info(ev.Item.Serial);
Logger.Info(CustomItemData.ContainsKey(ev.Item.Serial));
}

#

And it logged serial correct, said my dictionary contained it, all that

#

But then in OnPickupAdded, the serial was still the same, but it said my dictionary didn't contain it

#

That's the confusing bit

#

Hm

#

The only time I remove items from the dictionary currently is when I clear it at the end of the round

worthy rune
slate flume
#

CustomItemData didn't contain the serial

#

So there was no light value to check

worthy rune
#

ahh

slate flume
#

Why

#

Is it doing this

worthy rune
#

i missread that mb

slate flume
#

All good lol

true cedar
#

psssstttttt

#

ruei v3 is out :3

slate flume
#

Okay wait it literally just fixed itself

#

I'm just gonna say my prayers and hope it stays unbroken

#

I have no idea how it fixed but it did

worthy rune
#

lmao

slate flume
#

Let me restart the server and see if it keeps working

#

Well holy shit

#

Look at that

#

It's like magic

#

I'm shocked right now

#

Idek how it happened

#

It's beautiful

agile tartan
#

How can I configure a firearm attachment from plugin?

worthy rune
teal junco
#

does anyone have any idea how this thing was generated?

#

from MER discord

worthy rune
#

you can code an image to texttoy text converter pretty easily\

teal junco
#

its 3d

#

hm

#

ur lowkey right i didnt even think of using the texture to text toy converter

#

I think it's possible, I just need to take a bajillion cross sections

#

or like

true cedar
#

shit i forgot to make a class i should've made static static

teal junco
#

a few.

teal junco
#

ooooooh

true cedar
#

technically its a breaking change if i make it static

#

but idgaf

slate flume
#

If you look closely, the texturing itself is a 2d thing that was placed on top of a primitive

#

That's actually really creative

pine parcel
#

Is there anyway to get cause of death from PlayerDeathEventArgs? My thought was DamageHandler, but I can't find any property that has cause of death

slate flume
#

And for what purpose

pine parcel
#

falldown, tesla, or custom handler. Looking to do actions based on why someone died. I saw the PlayerStatsSystem.DeathTranslations, and I'd love to use those in my checking system

slate flume
#

Check if ev.DamageHandler is UniversalDamageHandler handler and then check the handler.TranslationId against DeathTranslations.{CauseOfDeath}.Id

pine parcel
#

I'll give that a go, thanks!

slate flume
#

Of course! GoodOne

slate flume
restive turret
#

Patch deez

#

Also pickup and item should have the same serial if dropped or picked up

upper vapor
worn gull
#

Good morning chat

slate flume
#

Which was the point of my comment

upper vapor
#

No you can't patch generic methods

slate flume
#

If I'm wrong that's gonna be so embarrassing for me but I wanna try it

upper vapor
#

Okay I might be delulu

#

Generic type data will be lost though

#

So you need an instance check

#

However, don't patch instantiate anyway

restive turret
#

Patch awake or start

upper vapor
#

But the original issue has been fixed already

restive turret
#

Patch Update instead

upper vapor
#

Patch life

restive turret
#

Can't

upper vapor
slate flume
#

@upper vapor I just patched a generic method 😁

#

My idea worked

#

You were a doubter

#

And no, I'm not joking

unique crane
#

9 out of 10 programmers quit before they make their patch working

slate flume
#
public static MethodBase TargetMethod()
{
    var instantiateMethods = typeof(Object)
        .GetMethods(BindingFlags.Public | BindingFlags.Static)
        .Where(m => m.Name == "Instantiate" 
                    && m.IsGenericMethodDefinition 
                    && m.GetParameters().Length == 3);

    foreach (var method in instantiateMethods)
    {
        var parameters = method.GetParameters();
        if (parameters[0].ParameterType.IsGenericParameter &&
            parameters[1].ParameterType == typeof(Vector3) &&
            parameters[2].ParameterType == typeof(Quaternion))
            return method.MakeGenericMethod(typeof(ItemPickupBase));
    }

    throw new Exception("Could not find Instantiate method");
}

public static void Prefix(ItemPickupBase original, Vector3 position, Quaternion rotation, ref ItemPickupBase __result)
{
    Logger.Info($"Instantiating {original.name} at {position}");
}

public static void Postfix(ItemPickupBase original, Vector3 position, Quaternion rotation, ref ItemPickupBase __result)
{
    Logger.Info($"Instantiated object: {__result.name}");
}
#

[2025-09-30 00:42:49.514 -05:00] [INFO] [SodaPlugin] Instantiated object: Light Armor Pickup(Clone)
[2025-09-30 00:42:49.569 -05:00] [INFO] [SodaPlugin] Instantiating Combat Armor Pickup at (141.56, -99.61, 52.83)
[2025-09-30 00:42:49.601 -05:00] [INFO] [SodaPlugin] Instantiated object: Combat Armor Pickup(Clone)
[2025-09-30 00:42:49.646 -05:00] [INFO] [SodaPlugin] Instantiating FlashbangPickup at (141.45, -98.82, 54.43)
[2025-09-30 00:42:49.662 -05:00] [INFO] [SodaPlugin] Instantiated object: FlashbangPickup(Clone)
[2025-09-30 00:42:49.678 -05:00] [INFO] [SodaPlugin] Instantiating FlashbangPickup at (141.45, -98.82, 54.43)
[2025-09-30 00:42:49.693 -05:00] [INFO] [SodaPlugin] Instantiated object: FlashbangPickup(Clone)
[2025-09-30 00:42:49.709 -05:00] [INFO] [SodaPlugin] Instantiating FlashbangPickup at (141.45, -98.82, 54.43)
[2025-09-30 00:42:49.737 -05:00] [INFO] [SodaPlugin] Instantiated object: FlashbangPickup(Clone)
[2025-09-30 00:42:49.752 -05:00] [INFO] [SodaPlugin] Instantiating Ammo9mmPickup at (141.45, -98.82, 53.65)
[2025-09-30 00:42:49.768 -05:00] [INFO] [SodaPlugin] Instantiated object: Ammo9mmPickup(Clone)
[2025-09-30 00:42:49.784 -05:00] [INFO] [SodaPlugin] Instantiating Ammo9mmPickup at (141.45, -98.82, 53.65)

#

Anyways I don't even need to use any of this

#

Cause my problem is already solved lmao

#

But I did it to prove a point

slate flume
pulsar locust
#

I found that on the Godot proposal for union types lol

#

So I turned it into a speech bubble

restive turret
#

I mean gdscript isn't the best and limiting everyone around it but this rust comment just

pulsar locust
#

Not really no
Gdscript has enough language features to where it works good for literally anything in engine

#

if you want more complex stuff though like binding an external library a gdextension or ffi through C# is required

#

Also the fmod gdextension stinks and I'm probably gonna pr some new signals and docs

cosmic hedge
celest thorn
upper vapor
celest thorn
upper vapor
#

idk

cosmic hedge
celest thorn
#

the earth where ruei is out?

#

and nothing else changed?

cosmic hedge
#

first pic is 1 minute 24

restive turret
celest thorn
#

cool reference

restive turret
#

Thanks

#

Definitely not me re-learning how OSI model works for the 6th time

#

Funny how I only learned the layers by a Hungarian swearing. It nearly makes a word for it

restive turret
#

FAHSzEMA

upper vapor
#

why does that sound like it's pronounced in an asian accent

restive turret
#

Lel

celest thorn
#

anyone knows what the shot rejected error 1.0 means??

#

i cannot find reference anywhere about it but its what causing everyone complains

restive turret
#

Idk

celest thorn
unique crane
celest thorn
#

has this error

#

of 1.0

unique crane
celest thorn
# unique crane

Why does it happen? like why its there a timed out and its so frequent?

unique crane
#

Seems like that happens when your firing full auto

#

And ping spikes or idk

#

Would have to ask hubert

celest thorn
#

idk i would probably get automoted if i ping hubert

#

so thats why im asking

unique crane
#

So I see

#

it rejects any message that may have been send within way too short intervals

celest thorn
#

i see that myself on the server

unique crane
#

So I asume lag spikes does that

celest thorn
unique crane
#

well

#

there is your answer

#

It will be 5 dollars

celest thorn
#

Im getting so many people complaining to me in dms about it, and my answer is Complain to NW

#

and not to me

#

lol

#

im not a nw dev and i cannot do shit

unique crane
#

You can, actually

#

patch it if its too low for you

celest thorn
#

they got this issue

unique crane
#

Report it as a bug then

celest thorn
unique crane
#

very well

celest thorn
unique crane
#

Anyways back to bugfixing after horde of new QA testers has arrived

unique crane
celest thorn
#

crazy bugs or just minor ones?

unique crane
#

5 approve

#

another 1 comes in

#

he finds bug

#

i fix

celest thorn
unique crane
#

another one comes in

celest thorn
#

i reported a big one again

unique crane
#

no

#

im fixing spectator list

celest thorn
#

Lol

#

scientist crashing my client with 10gb log file

unique crane
#

Its your sending some invalid data arent you

#

that mirror doesnt like

celest thorn
#

i found it by spawning

#

idk how tf i found it but with near perfect timing you can make it happen

#

which i randomly found

unique crane
#

Did you check out White Knuckle btw

#

they added shortcuts to the new area

#

through harder to climb but shorter passages

restive turret
celest thorn
#

i reported it

restive turret
#

Nice

#

Zero

celest thorn
#

it got closed down

#

and merged with another report

restive turret
#

Gahaja

#

Zero

celest thorn
restive turret
#

Did you do anything with rui

celest thorn
restive turret
#

*ruel

celest thorn
#

like using it?

#

yes

#

i do

restive turret
#

Ye

#

Does it work?

celest thorn
#

yea

#

it works fine

restive turret
#

Are you testing on live server with 20+ player?

celest thorn
#

and from my debugger pov its the lowest plugin for performance

celest thorn
#

and performance don't seem shit

#

instead too good

#

and i tried with dummies too

restive turret
#

Nice

hearty shard
#

slime!!!

restive turret
#

@warped prairie maybe we should switch to ruel, i pray for you to implement and add it πŸ™

restive turret
restive turret
restive turret
#

Eve

hearty shard
restive turret
#

Why are you sending me pic of shark

celest thorn
hearty shard
#

Shark

celest thorn
restive turret
#

Zero

hearty shard
#

shark

celest thorn
#

Tell me

#

Just ping me trust me

restive turret
#

I just waiting until 13:40

#

Idk what to do

celest thorn
hearty shard
restive turret
#

For asking my prof about the thesis

#

Then go home

hearty shard
restive turret
#

Already did, next

celest thorn
restive turret
#

Waiting for actually prof open for questions

celest thorn
restive turret
#

My suggestion is to ditch JavaScript

#

And java

celest thorn
restive turret
#

Just don't do web

icy knoll
celest thorn
icy knoll
#

@ lucid!!!!!

restive turret
#

I rather to apis and stuff

#

Rather than that

icy knoll
#

im a full stack dev, but prefer front end development

#

typescript is pretty fun

unique crane
#

Does anyone remember

restive turret
#

I prefer my end to be soon

unique crane
#

when was the last time when you were spectating someone and that person died

#

it switched you to the next one

restive turret
#

Idk

icy knoll
#

last time i played sl

#

that happened

#

so

#

uh

#

3 days ago?

restive turret
#

5 days ago

hearty shard
unique crane
#

Well I dont mean instantly

#

after 5 seconds

restive turret
#

Yes

unique crane
#

Not that you died

#

but you were spectating someone

#

and that person died

restive turret
#

Wait nvm that's when i died

icy knoll
#

oh

#

no it's instant

#

not 5 seconds

unique crane
#

Well thats a bug

#

but like

#

After 5 seconds

#

before last update

icy knoll
#

i swear that got fixed in QA

unique crane
#

Yea im doing the qa trial build

#

but like

#

Im looking at code

#

and there is NO code that does that

restive turret
#

And you don't understand it

icy knoll
#

wth

unique crane
#

It only switches when you die

#

Even in the initial implementation

#

where it is supposed to be

#

Im either blind or it just doesnt do that

icy knoll
#

well

#

hopefully you get a fix

restive turret
#

Sorry this is now a feature instead of a bug

unique crane
#

I love sentencing dummies to Pit Death effect

#

to test dying

hearty shard
unique crane
#

Next time im using you eve

hearty shard
restive turret
#

Real

hearty shard
celest thorn
true cedar
hearty shard
true cedar
#

bitch mcbitch

upper vapor
restive turret
#

L

upper vapor
upper vapor
celest thorn
restive turret
#

SteamHappy finally talked to prof he said I can write it in blazor

restive turret
#

No

#

Atleast not in java

restive turret
#

Thank u ax

warped prairie
hearty shard
#

git gud

restive turret
#

Tag zero or lumi, paws, eve about it , they use it so

hearty shard
#

it isnt that difficult

restive turret
#

Idk I didn't see the code nor example

hearty shard
#

there is no example

restive turret
#

U cooked

hearty shard
#

there u go though

#

thats it

#

well actually

icy knoll
#

wait wtf how did you do an extension property

hearty shard
icy knoll
#

c# ver?

hearty shard
#

14

restive turret
#

It needs 10

icy knoll
#

never seen it before

hearty shard
#

technically preview

#

but 14 also should work

restive turret
hearty shard
restive turret
#

No

icy knoll
hearty shard
#

im on 9

restive turret
#

I'm on 9 too

hearty shard
#

9.0.305

restive turret
#

But latest is 13

hearty shard
restive turret
#

This

hearty shard
#

is 9

restive turret
#

Will check

hearty shard
#

and thus it works

#

10 should also work tho

restive turret
#

I'm on a bus

hearty shard
#

no ur not

restive turret
#

10 should have it

hearty shard
#

also rider needs an update for it

restive turret
hearty shard
#

2025.2

restive turret
hearty shard
#

well

#

good

#

or bad

#

who knows

#

rider doesnt like when you put docs onto extensions

true cedar
#

hey eve

#

did u see

#

ruei v3

hearty shard
#

no i didnt

#

well i have it

#

but

#

what changed

#

i didnt check

restive turret
#

Duh

hearty shard
#

yea but

#

difference between beta and this

upper vapor
#

Blazor is cool

#

The haters can maldnall they want

upper vapor
#

LangVersion preview

restive turret
#

Ah

celest thorn
#

Fortnite

true cedar
royal mica
#

C# devs and library naming

celest thorn
upper vapor
royal mica
#

Yes, but in Blazor (as I can see) you technically create normal components

#

In plain Razor you vomit all of the fucking place

#

half of your HTML code is C#

#

in a html file

#

I fucking hate it

upper vapor
upper vapor
royal mica
#

yes but that is structured and expected in components where UI code is there

#

in cshtml Razor files you are literally vomit business logic and shit

#

cause it's easier

#

than adhering to the MVC

upper vapor
#

Ah cshtml

#

Well

#

Just define stuff in a different class

#

Problem solved

upper vapor
#

Or

#

Don't have a ui

upper vapor
#

Business logic doesn't belong in the rendering layer

unique crane
#

To implement the auto spectator switch

#

i had to fix the null ref for spectators

#

so thats fixed too XD

limber silo
#

Fix boy fix

hearty shard
celest thorn
#

or something else

#

because i got it once again but this time idk how

#

And I found a new bug?

#

Exception in Subcontroller RPC handler for SubcontrollerRpcMessage (PlayerID=6 Role=Scp3114 Length=1 Payload=[01 @ 1/1])
IndexOutOfRangeException: Index was outside the bounds of the array.

Someone has ever reported this?

#

just found it in my logs there randomly

glad pagoda
#

it's just like PHP

royal mica
#

Yes and I utterly hate PHP as well :D

glad pagoda
#

also

#

blazor kinda sucks too

#

but that's cuz of how it works

restive turret
#

atleast better than doing it in fucking JAVA

glad pagoda
#

cuz blazor is clientside

#

and in wasm

#

so your website

#

becomes a huge wasm blob

#

that takes ages to load

restive turret
#

tbh i dont really care about that, they wanted webapp, i refuse to do it in java, so blazor or razor or whatever

glad pagoda
#

why java

restive turret
#

because that was originally set as default

#

either you do it in java and spring , or java

#

or idk

royal mica
#

java's most popular option is spring yeah

#

You can also just opt in using a frontend framework + any backend lol

restive turret
#

and i did not wanna do frontend

#

thats it

#

I hate working with any , ANY UI

glad pagoda
#

i mean

royal mica
#

How else would you do a webapp lmao

glad pagoda
#

pretty much any UI that isn't single platform sucks

unique crane
#

make it in Unity

#

XDDDD

glad pagoda
#

there are

#

apps that do that

unique crane
#

Unity web player

#

will be in our hearts

restive turret
#

still wasm

glad pagoda
#

And Epic Games Store is in Unreal Engine kek

restive turret
#

so i be on back to sqaure 0

royal mica
#

Desktop app UI is a pain, unless you are using multiplatform, like Flutter or Compose (those are pain as well, but not as much)
WebUI is not that painful, but you need to learn a lot of shit to get efficient at it

glad pagoda
#

it's UE

unique crane
#

wtf

glad pagoda
#

with CEF thrown in

unique crane
#

I dont believe you

royal mica
#

or do a lot of manual work if vanilla HTML+(S)CSS+(T/J)S

unique crane
#

embrace console menus

restive turret
#

this guy get it

royal mica
glad pagoda
royal mica
#

WHAT THE FUCK?!

glad pagoda
#

yes, it says game kek

unique crane
#

Lets make next RA version only console

royal mica
#

So it is just a web exported game that is running in a CEF wrapper

#

holy fuck the future for desktop apps is fucked

royal mica
#

I lvoe running chromium apps for everything

glad pagoda
#

it's a desktop game

#

with CEF embedded for rendering the store

royal mica
#

why the fuck does it need a CEF then

#

ah

#

that is still cursed

glad pagoda
#

cuz the store and such is a website

restive turret
glad pagoda
#

Steam works the same

hearty shard
#

aha

glad pagoda
#

just steam isn't in UE

royal mica
#

Aren't steam fully a CEF webapp?!

glad pagoda
#

well it's CEF embedded in a native app

#

the m,enus are native

#

afair this whole part is native

#

and stuff below is CEF

restive turret
#

bring back VGUI

glad pagoda
#

@royal mica but

#

wanna learn the most cursed thing?

royal mica
#
The Steam client on Windows, Linux, and macOS previously a customized version of CEF to render web content like the Store and Community. As of June 15, 2023, the entire UI was remade with web technologies and is now rendered using CEF, replacing the old VGUI interface. VGUI was not completely removed, and was kept just in case CEF stops working correctly, telling users to restart Steam, or to warn users that Windows compatibility mode is enabled. 
#

Actually, the whole UI is now in CEF

glad pagoda
#

but I think that might've been separate, not VGUI before

#

@royal mica@restive turret every tile separate chromium?

restive turret
#

fucking dies

glad pagoda
# unique crane what
unique crane
#

Some intern did that 100%

glad pagoda
#

@unique crane@royal mica@restive turretstill the funniest thing with Epic store:

#

they never learned about patch updates pretty sure

#

they always redownload whole files

#

so if a game is packed into 10GB packs

#

and devs change 1 char

#

you'll get a few kB update on Steam

#

but 10GB on Epic kek

restive turret
#

I still have no idea why they use 10GB packs

glad pagoda
#

faster IO and such

restive turret
#

faster on my ass yes

#

HDD dying over here

glad pagoda
#

reading small files is MUCH slower

#

even on HDDs it's slower

restive turret
#

but still

celest thorn
#

hello :3

restive turret
#

I complaining about a 50GB

#

like bro

#

10 gig aint much but 50??

royal mica
glad pagoda
#

how tf do you open inspect element in steam

royal mica
#

you need to start with steam -dev

glad pagoda
royal mica
#

and then you can do CTRL+SHIFT+I

glad pagoda
#

with Steam View Friends

royal mica
#

Everything

glad pagoda
glad pagoda
#

CEF somehow works 20x faster than Electron at least

#

not sure how

#

but I guess Electron fucks something up with their Chromium

royal mica
glad pagoda
#

only thing is whenm Chromium GPU acceleratino randomly breaks lol

#

funfact

#

chromium "hardware workarounds" config autodisables GPU acceleration on Intel iGPUs kek

rough tundra
#

How to change 079's level with labapi?

#

Scp079Role.Level does not exist

hearty shard
glad pagoda
#

@unique crane btw

#

wanna see copilot having an ace attorney breakdown? kek

hearty shard
#

youll have to figure out how basegame handles it from there

unique crane
#

tf is that

glad pagoda
rough tundra
#

thank you very much

glad pagoda
unique crane
#

I have to turn off copilot every VS update

#

otherwise it just makes shit up when I want to write SL code

glad pagoda
#

AC contains bits of AI code now kek

rough tundra
#

it's readonly 😭

hearty shard
unique crane
#

or TotalExp

rough tundra
#

well I can edit the index

hearty shard
#

ya

rough tundra
#

yes

#

mb

unique crane
#

gotta publicize

unique crane
hearty shard
#

cant believe NW is using AI

unique crane
#

Says the AI here

hearty shard
#

shhh

#

u cant expose me like that

glad pagoda
glad pagoda
#

I never directly paste AI outputs

#

with one exceptions

#

I can never be bothered to deal with PowerShell syntax BS

hearty shard
unique crane
glad pagoda
#

i once

#

spent 4 hours

#

fighting the SL ci

#

cuz of powershell syntax being weird

#

and strings randomly turning to arrays

restive turret
#

thats microsoft

#

or yaml

unique crane
#

Powershell 😭

glad pagoda
#

for context the CI is a powershell 7 script written in yaml

#

the industry standard kek

#

ngl

unique crane
glad pagoda
#

not even sure why everyone just decided to use yaml for CIs

restive turret
#

such a monstrocity

restive turret
glad pagoda
restive turret
#

the chair

glad pagoda
#

it was just a random stock asset kek

#

iirc we later fixed and remade it as our own model

glad pagoda
lethal cradle
tepid sluice
#

ruei v3 is out

true cedar
teal junco
spare zodiac
upper vapor
upper vapor
plain gazelle
#

OnItemRemoved isnt triggered with the Map Cleanup modifier

hearty shard
#

its called when an itembase is destroyed

#

or do you mean another event that isnt ItemBase.OnItemRemoved

#

use ItemPickupBase.OnPickupDestroyed

plain gazelle
#

OHHHH okay that makes sense

#

thankies

#

<3

slate flume
hearty shard
#

nah hide role and show your own

#

but ofc CustomInfo is above Nickname not below (like role)

#

so youll have to handle player name + \n + role

slate flume
#

So

  1. Change Network_playerInfoToShow to hide role and name
  2. Change custom info to show modified name and role
plain gazelle
#

I have an issue where i subscribe to PlayerEvents.DroppedItem and in it, do a check for an item serial and if it matches, i save the Transform of the Pickup and in a Static Unity Update method, i set a Schematic to that Transforms location.

But if i ever throw such a valid item, afterwards, no item can ever be thrown again. They all drop straight down.
But that is only visually, client side, for everyone. The server still thinks the item has been thrown.

Once i pick up the special item and my code no longer runs the update method, items can be thrown again

#

me no understand

slate flume
#

Show code

plain gazelle
#

The schematic always exists, never despawns.
If picked up, it follows the player and if dropped it follows the Pickup

#

Found the issue

#

No clue how that breaks all client side Pickup throws but eh, fixed

teal junco
#

also i can share my newer implementation that's cleaner AND supports custominfo and stuff better

restive turret
hearty shard
celest thorn
#

Hello :3

restive turret
#

hi

slate flume
#

Okay what the hell

#

I run a simple cycle thing

private IEnumerator<float> LightRoutine(LightSourceToy light)
{
  while (light.GameObject)
  {
    light.Color = PickupLightColor;
    light.Intensity = 1;
    yield return Timing.WaitForSeconds(10f);
    light.Intensity = 0;
    yield return Timing.WaitForSeconds(5f);
    light.Color = Color.magenta;
    light.Intensity = 0.4f;
    yield return Timing.WaitForSeconds(2f);
  }
}

For some reason the first run-through works fine, but on the second loop, the intensity says it's 1, but it stays the same brightness as the 0.4

restive turret
#

yield return Timing.WaitForSeconds(1f);
before light color set?

slate flume
#

I tried doing a Timing.WaitForSeconds(0.1f) between Color and Intensity change, had no effect

#

Interesting

#

I removed the light.Intensity = 0.4f bit and had the same issue

#

Which is odd

#

Could it be that when a light is spawned, it's high-intensity, but registers as an intensity of 1?

#

Causing the intensity to not update when you change the sync var because it thinks it's already at that intensity

#

Until you change it from that intensity and back again

#

I think my hypothesis was right

#

Before spawning the light, I changed the intensity to 0
Now on the first loop the light is as dim as it is on future loops

#

So I believe when first spawning a light, the intensity is falsely registered as 1, when it's actually a higher value

#

Does this mean I need to report another LabAPI issue? why

teal junco
#

This has been an issue, I lowkey never thought to report it

#

yes, when light sources are spawned, their intensity is falsely reported as 1

#

and setting the intensity to 10 actually decreases it lmao

slate flume
#

That's fucked up man

#

Who even wrote this garbage anyways

teal junco
#

whoever added light sources to SL

teal junco
#

but yeah, setting it to something else and back to 1 does not reverse the operatio

slate flume
#

Am I really about to do some bullshit like light.Intensity = 100 because the scale is all fucked up

#

Well I did

#

And it works

#

But I'm upset about it

slate flume
#

I think I'm gonna make an extension member for the Decontamination wrapper that's just Decontamination.Offset + Decontamination.RoundStartTime - Decontamination.ServerTime so I can cleanly have Decontamination.RemainingTime

#

Wait

#

Does that work for static classes?

#

No it doesn't

#

Nvm I'm just making my own bullshit

#

I'm getting really upset with LabAPI today

teal junco
#

@slate flume
https://github.com/icedchai/PlayerUtils

Files of interest
Patches/PlayerNicknameSyncPatch.cs
Features/Extensions/PlayerExtensions.cs
Events/Handlers/PlayerEventHandlers.cs:131
It's basically the same thing as the omni thing but I imagine a little bit cleaner/easier to read. does require Harmony though.

GitHub

icedchqi's Hell's Kitchen player utilities. Contribute to icedchai/PlayerUtils development by creating an account on GitHub.

slate flume
#

Dope this is what I'm already doing haha

#
public static void UpdatePlayerInfo(Player player)
{
  NicknameSync nickSync = player.ReferenceHub.nicknameSync;
  nickSync.ShownPlayerInfo |= PlayerInfoArea.CustomInfo;
  nickSync.ShownPlayerInfo &= ~(PlayerInfoArea.Role | PlayerInfoArea.Nickname);
  nickSync.CustomPlayerInfo = $"{nickSync.DisplayName}\n{GetRoleName(player, false)}";
}
#

Then GetRoleName is where I do my fun parsing code

#

I thought the &= was odd in your original code cause it wiped the rest of the flags

#

So I did |= and had built the rest around basic shit

restive turret
#

&= ~ is removing flags, yes it looks ugly

slate flume
#

He originally had
nickSync.ShownPlayerInfo &= PlayerInfoArea.CustomInfo;

restive turret
#

Oh lol

slate flume
#

Which is why I said

restive turret
#

Sorry misread

slate flume
#

All good brother

#

You know

#

I hate the discord message limit

#

When I'm writing a changelog I always hit the like 2000 character limit

#

It's such bullshit

restive turret
#

Ye its easy to hit

slate flume
#

Literally the only reason I'm considering scrounging for a better nitro key

#

That shit pmo

restive turret
#

I dont like nitro tbh

teal junco
#

to preserve the functionality. i mean unless you absolutely dont care about it

slate flume
#

The only time it's set base-game is by a plugin, and the only plugin that will be changing it on the server I dev for is my own

#

So if I end up needing custominfo for something, I can cross that bridge when I get there, but as of right now I don't have any need for it

teal junco
#

I just patch the setter so if any other plugin uses it it wont completely fuck it up.

teal junco
#

i might be wrong

slate flume
teal junco
#

might just be a plugin

#

but it must be a common one

slate flume
#

Ohh you're right

#

Fuck

#

Alright

#

This is gonna be a bitch and a half to set up

restive turret
slate flume
teal junco
#

I patched basegame stuff just to catch everything

#

personally

#

So if Exiled or LabAPI or some weirdo who uses reference hubs comes along, it handles everything.

#

wait i dont think im thinking of the same thing you are nvm

restive turret
#

I do it too

teal junco
#

sigmer

restive turret
#

Did you know

#

That the [hub] = value is actually doing the same thing as add?

#

You still inserting it in the background so

celest thorn
#

Can someone explain to me what the fuck is wrong with this?

    public override void OnPlayerPickingUpItem(PlayerPickingUpItemEventArgs ev)
    {
        if (ev.Pickup is not KeycardPickup pickup)
            return;
    }

Im picking up a Zone Manager and yes the even triggers

restive turret
#

Log ev pickup, ev pickup type

#

Like .GetType()

celest thorn
#

because after this no logs

teal junco
#

ive had issues working with lists and dicts before so i always just go over the top

celest thorn
#

Oh i forgot lol "!"

teal junco
#

with unnecessary stupid code

restive turret
#

!!

restive turret
#

It's always better to improve

celest thorn
#

my code is perfect!?!??!?!

restive turret
#

My code is like my vision

slate flume
restive turret
#

Blurry, full of dots

slate flume
#

You do nothing in that code

#

I'm confused as to what your question is

celest thorn
slate flume
#

Good job GoodOne

restive turret
teal junco
#

And I remembered the exact reason why I do it this way

teal junco
#

I somehow forgot about item with the same key has been added

#

i did

teal junco
#

oh i may have misread it the wrong way around

restive turret
#

What is your code that you got errors?

teal junco
#

😭

teal junco
restive turret
#

Guhh

teal junco
#

i read it the wrong way around

restive turret
#

Do
[Hub] = string

#

oh yes if you want to append DO NOT DO +=

#

because when yo do it it didn't exist before

teal junco
restive turret
#

If already existing its fine

#

If its not sadly you cannot do it

restive turret
#

And should work

teal junco
#

is there a way for me to flush a player's preference on a SS Plain text

#

i want it to be per-session instead of permanent

worthy rune
#

if you dont want to save the value on the client set ServerOnly to true in the constructor

cyan crown
#

;

pallid galleon
#

();

slate flume
#

So @upper vapor @celest thorn you guys did this stuff
Why is this not working
When I move players, it looks smooth for other players on the client, but not for the client itself
(eg. the movements of everyone but themselves is smoothed)
Is this an artifact of just how this system works or is that something I can fix?

teal junco
#

i found out u can change fonts and i feel super enlightened

slate flume
upper vapor
upper vapor
upper vapor
slate flume
slate flume
slate flume
#

Are we even able to use C# 14 in projects yet

upper vapor
upper vapor
upper vapor
#

LangVersion preview

upper vapor
slate flume
#

I tried before and got this error

upper vapor
#

Make sure your Rider is on the latest version btw
-# eve spent an ungodly amount of time on this

upper vapor
#

You need the .NET 9 SDK

#

Or 10 preview

slate flume
#

I have the .NET 9 SDK already

upper vapor
#

Uh
Which version of net9

slate flume
#

C# 14.0 shows up in my language versions in rider

upper vapor
slate flume
#

I was able to select it

#

It just didn't build

upper vapor
#

Oh it's a rider thing

upper vapor
#

Check dotnet --list-sdks

slate flume
#

Well I don't have 9.0.305 so let me install the latest

upper vapor
#

Yeah that should fix it

slate flume
#

Static extension members about to go crazy

slate flume
#

Do you use C# 14.0 in rider?

#

Or the preview?

upper vapor
#

Preview

slate flume
#

Lmao

upper vapor
#

Bruh

slate flume
#

I told you

upper vapor
slate flume
#

Yes

#

You misunderstood my comment

upper vapor
#

And it's not working still?

slate flume
#

Stop for a second

upper vapor
#

Wha the fucky

slate flume
#

And listen to me

#

When I said "Oh that's why" to your LangVersion preview comment I meant "Oh that's why C# 14.0 wasn't working, I had selected 14.0 language version and not the preview"

#

Once I selected the preview I had no problems

#

Then you started making these comments as if preview was the thing that wasn't working

#

So I assumed you meant that C# 14.0 selection should've worked

slate flume
#

Literally right after I made my comment

#

The comment I made was saying that when I tried C# 14.0 I got that error and that using preview does work

#

That's why I said "Oh that's why"

#

And mentioned my previous issue

#

Then when you started correcting and saying I needed updated Rider, SDKs, I assumed that meant you were saying C# 14.0 was supposed to work, because otherwise why would I need to worry about updating everything

#

Am I making sense

upper vapor
#

Yeah I forgor that 14 doesn't work with net9 (I always used preview)

restive turret
#

Install.net10andyouhave14

upper vapor
#

So I thought you had net8 installed

restive turret
#

. net10 is on rc1 so soonβ„’ will be released

slate flume
#

Cause I'm cool and awesome

#

😎

upper vapor
celest thorn
#

Anyone knows how can i get the permission of a card from the pickup

spare zodiac
#

Is reason why we don't have textures on primitives that the .Material is not networked?

teal junco
teal junco
celest thorn
#

Oh wait no

#

It does

#

Im stupid i read now item

teal junco
#

Trolled

#

Mic Drop

spare zodiac
teal junco
#

If I was told to do it, I might do something like an enum or ID system, and the client simply reads the enum/ID and applies the corresponding texture

#

The material does not have to be directly networked. In fact the color property already exists and I don't think it directly concerns the material

#

at least in the network sense.

teal junco
#

prop admintoys would be fire because it finally means we can treat the props like primitives (Parent RPC)

spare zodiac
#

we trust the process

#

πŸ™

celest thorn
unique crane
#

When you throw keycard and it collides with door

celest thorn
unique crane
#

Reader

pulsar locust
celest thorn
#

im not even kidding the door does the hard work

#

the card has nothing

unique crane
pulsar locust
celest thorn
#

the pickup has nothing lol

pulsar locust
#

It's not a question I'm just confused because I'd expect that knowledge to have gone around a bit more

unique crane
#

CheckPermissions?

pulsar locust
#

Check how the door does it then

#

lol

teal junco
celest thorn
teal junco
pulsar locust
celest thorn
pulsar locust
#

Just keep walking the tree

celest thorn
#

From the player it gets it

#

bruh

#

No wait

#

where tf is this thing going

#

lol

pulsar locust
#

Ah C# class inheritance

#

If you hit a mono behaviour that means it's most likely on a prefab

teal junco
celest thorn
#

How tf did nw implement this

#

god

pulsar locust
unique crane
#

At least it it wont be cold

spare zodiac
pulsar locust
#

I've heard thigh highs are very comfy
I wish I owned a pair πŸ˜”

unique crane
#

I dont think they are expensive

#

its just long socks

celest thorn
celest thorn
pulsar locust
#

I love being incredibly closeted yippee /s

unique crane
#

Where do you live

spare zodiac
#

What is your social number

celest thorn
#

this is crazy

#

this is the most complicated shit ever

#

why?

teal junco
celest thorn
#

not directly in the pickup

pulsar locust
#

Damn I now have an Autodesk student account

#

I wonder if it includes maya

spare zodiac
celest thorn
#

fr