#plugins-dev-chat
1 messages Β· Page 135 of 1
also you can link two items by giving them the same serial :3
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
I thought maybe this wasn't working because the serials were different but no
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?
you could try patching ItemPickupBase.Awake although idk if it would work since its virtual(and overriden in derived classes)
When making a pickup, do most places use InventoryExtensions?
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?
The permanent pickups
oh weird that doesnt work
Well because it doesn't run when, for instance, a player drops an item
ItemPickupBase.OnPickupAdded is called in start so it should be called for your case
.OnPickupAdded is what calls the LabAPI event OnServerPickupCreated
yeah
OnServerPickupCreated doesn't grab items when a player drops an item
It doesn't get called
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
No
I mean you can give it a test yourself, I just assumed that was intended behavior
intended? all wrappers should grab all instance except prefabs
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);
}
i remember this being reported awhile back but that isnt called when the pickup gets wrapped before ItemPickupBase.Start is called. thought it was already fixed but i guess not
im more wondering what is going on here
OnPickupAdded is what calls OnServerPickupCreated
If OnServerPickupCreated isn't getting all the items then OnPickupAdded for sure isn't
And I tried
no, OnPickupAdded is called for all items, but OnServerPickupCreated isnt due to a bug
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
hmm, would be strange as Start is called in a delayed fashion so its kinda expected that everything is ready at that point
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
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
if you logged the serial was it the expected value
I can log the serial, but I'll have to add some extra code so it doesn't run until the round starts
I'll lyk I'm about to test
also wondering you return early if CustomItemData doesn't contain the serial, when you add an item to a players inventory directly are you adding an entry to CustomItemData
Yes I am
It could just be the serial isn't as expected when dropping it
But that would be odd
yeah, just double checked the code and it should be the same serial, and is set right after instantiation
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
i can see that happening for the case of escaping
This didn't work
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
yeah not sure the issue, it is very confusing
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
was the light contained in CustomItemData also null
ahh
i missread that mb
All good lol
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
lmao
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
How can I configure a firearm attachment from plugin?
something like this should work Firearm.AttachmentCode = Firearm.ValidateAttachmentsCode(attachments...)
you can code an image to texttoy text converter pretty easily\
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
shit i forgot to make a class i should've made static static
a few.
im gonna instantiate it
ooooooh
Crazy so they made that out of text?
If you look closely, the texturing itself is a 2d thing that was placed on top of a primitive
That's actually really creative
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
What cause of death are you looking for
And for what purpose
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
Check if ev.DamageHandler is UniversalDamageHandler handler and then check the handler.TranslationId against DeathTranslations.{CauseOfDeath}.Id
I'll give that a go, thanks!
Of course! 
Do NOT
YOU CAN'T TELL ME WHAT I CAN OR CAN'T DO
Patch deez
Also pickup and item should have the same serial if dropped or picked up
You can't even patch generic methods lol
Good morning chat
You can patch specific types of generic methods
Which was the point of my comment
No you can't patch generic methods
I'll prove it right now ong
If I'm wrong that's gonna be so embarrassing for me but I wanna try it
Okay I might be delulu
Generic type data will be lost though
So you need an instance check
However, don't patch instantiate anyway
Patch awake or start
Yeah riptide pointed it out
But the original issue has been fixed already
Patch Update instead
Can't

@upper vapor I just patched a generic method π
My idea worked
You were a doubter
And no, I'm not joking
9 out of 10 programmers quit before they make their patch working
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
Well I didn't see that cause I was busy patching a generic method lmao
xdd
Wtf
I found that on the Godot proposal for union types lol
So I turned it into a speech bubble
I mean gdscript isn't the best and limiting everyone around it but this rust comment just
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
magic
#1422413098958065715 i wake up seeing this, am i in another dimension??
yes
how tf did you calculate that 
so which earth is this?
idk
the saved time is 12 seconds 869 milliseconds
first pic is 1 minute 24
C-137
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
XDDD
FAHSzEMA
why does that sound like it's pronounced in an asian accent
Lel
anyone knows what the shot rejected error 1.0 means??
i cannot find reference anywhere about it but its what causing everyone complains
Idk
3 mins
ok
Which gun
Why does it happen? like why its there a timed out and its so frequent?
Seems like that happens when your firing full auto
And ping spikes or idk
Would have to ask hubert
So I see
it rejects any message that may have been send within way too short intervals
yea
i see that myself on the server
So I asume lag spikes does that
yea
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
I mean i could but its not in MY servers
they got this issue
Report it as a bug then
I think a guy i know already did
very well
Anyways back to bugfixing after horde of new QA testers has arrived
Have fun
no
crazy bugs or just minor ones?
Maybe one of them is mine
another one comes in
i reported a big one again
no
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
Did you check out White Knuckle btw
they added shortcuts to the new area
through harder to climb but shorter passages
Have you actually checked what's in there or
yea i did
i reported it
it got closed down
and merged with another report
?
Did you do anything with rui
what do you mean?
*ruel
Are you testing on live server with 20+ player?
and from my debugger pov its the lowest plugin for performance
no but i tested it on an heavily modded server with custom maps and everything
and performance don't seem shit
instead too good
and i tried with dummies too
Nice
slime!!!
@warped prairie maybe we should switch to ruel, i pray for you to implement and add it π
Yes
Its EASY
not too complicated
maybe
He is the guy who wanted it and started, i don't wanna touch it unless it's necessary
crazy
Eve
thats me
Why are you sending me pic of shark
Evil
Shark
crazy
Zero
shark
idk im waiting for preparing food
what for
commit a crime
Already did, next
go ask the prof what he thinks about beans into toast
Waiting for actually prof open for questions
They should open suggestions
And use webassembly
Just don't do web
i have been summoned
go back where you came from
@ lucid!!!!!
I don't like the web
I rather to apis and stuff
Rather than that
Does anyone remember
I prefer my end to be soon
when was the last time when you were spectating someone and that person died
it switched you to the next one
Idk
5 days ago
isnt that current feature
Yes
Wait nvm that's when i died
i swear that got fixed in QA
Yea im doing the qa trial build
but like
Im looking at code
and there is NO code that does that
And you don't understand it
wth
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
Sorry this is now a feature instead of a bug
Next time im using you eve
WHAT
Real
Woah
bitch
what the hell
bitch mcbitch
There's no l
L
Troll
New McDonald's special?
Does it refresh invalid spectator target anywhere?
https://i.e-z.host/π/d163ni1m.png
Unemployement level
finally talked to prof he said I can write it in blazor
can you quit instead
Not enough

Thank u ax
Iβll consider it. I just killed myself doing the other one. Maybe
git gud
it isnt that difficult
Idk I didn't see the code nor example
wait wtf how did you do an extension property
c# ver?
14
It needs 10
never seen it before
Need to install .net10
9 has it
No
ah that may be why im unable to use c# 14
im on 9
I'm on 9 too
9.0.305
But latest is 13
this
This
is 9
Will check
I'm on a bus
no ur not
10 should have it
also rider needs an update for it
2025.2
I don't use rider
well
good
or bad
who knows
rider doesnt like when you put docs onto extensions
Ah
Fortnite
not too much
I was about to shit on Blazor then I remembered Blazor != Razor
C# devs and library naming
C# devs...
Blazor is [.., Razor, ..]

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
Xd
Did you mean
Razor Pages
Or the Razor file extension
That's kind of what we do in Blazor
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
I'm pretty sure you can create a .cs file with the same name and use that for defining functions and stuff
Business logic doesn't belong in the rendering layer
To implement the auto spectator switch
i had to fix the null ref for spectators
so thats fixed too XD
Fix boy fix
David did you fix the Scp1576SpectatorIconEffect.UpdateVisibility error?
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
Yes and I utterly hate PHP as well :D
atleast better than doing it in fucking JAVA
cuz blazor is clientside
and in wasm
so your website
becomes a huge wasm blob
that takes ages to load
tbh i dont really care about that, they wanted webapp, i refuse to do it in java, so blazor or razor or whatever
why java
because that was originally set as default
either you do it in java and spring , or java
or idk
java's most popular option is spring yeah
You can also just opt in using a frontend framework + any backend lol
i mean
How else would you do a webapp lmao
pretty much any UI that isn't single platform sucks
still wasm
And Epic Games Store is in Unreal Engine 
so i be on back to sqaure 0
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
wtf
with CEF thrown in
I dont believe you
or do a lot of manual work if vanilla HTML+(S)CSS+(T/J)S
FUCK UI apps
embrace console menus
this guy get it
Wait, WHAAAT?! UE with CEF?!
if you crash you get the Unreal Engine. Your game has crashed! popup lol
WHAT THE FUCK?!
yes, it says game 
Lets make next RA version only console
So it is just a web exported game that is running in a CEF wrapper
holy fuck the future for desktop apps is fucked
I lvoe running chromium apps for everything
cuz the store and such is a website
Steam works the same
aha
just steam isn't in UE
Aren't steam fully a CEF webapp?!
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
bring back VGUI
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
i mean afair they mean all but the top bar
but I think that might've been separate, not VGUI before
@royal mica@restive turret every tile separate chromium?
fucking dies
what
what
and what
Keep your mind sharp in Microsoft Minesweeper! Use logic and strategy to clear the board without triggering a mine. Sweep through the original and iconic Minesweeper game now UPDATED with NEW Themes, Play Modes, more Daily Challenges, Achievements, and ALL-NEW Auto -Chording. It's FUN for all ages!
CLASSIC MODE:
The original Minesweeper you...
Some intern did that 100%

@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 
I still have no idea why they use 10GB packs
faster IO and such
but still
hello :3
Sadly nope. The whole thing is CEF
how tf do you open inspect element in steam
you need to start with steam -dev
and the top top bar?
and then you can do CTRL+SHIFT+I
with Steam View Friends
Everything
smh should've done Steamed hams
but also I mean
CEF somehow works 20x faster than Electron at least
not sure how
but I guess Electron fucks something up with their Chromium

only thing is whenm Chromium GPU acceleratino randomly breaks lol
funfact
chromium "hardware workarounds" config autodisables GPU acceleration on Intel iGPUs 
get the tier manager
@unique crane btw
wanna see copilot having an ace attorney breakdown? 
Scp079Role scp079 = null!;
scp079.SubroutineModule.TryGetSubroutine(out Scp079TierManager tierManager);
tierManager.
youll have to figure out how basegame handles it from there
tf is that
tf is what
this
thank you very much
copilot having a breakdown
I have to turn off copilot every VS update
otherwise it just makes shit up when I want to write SL code
btw I guess
AC contains bits of AI code now 
it's readonly π
well I can edit the index
ya
gotta publicize
Not a big deal
guh
cant believe NW is using AI
Says the AI here
it's only like 1 helper I couldn't be bothered to write though 
wowwww
show 
I never directly paste AI outputs
with one exceptions
I can never be bothered to deal with PowerShell syntax BS

Silence and write me a recipe for pumpkin soup
i once
spent 4 hours
fighting the SL ci
cuz of powershell syntax being weird
and strings randomly turning to arrays
Powershell π
for context the CI is a powershell 7 script written in yaml
the industry standard 
ngl
not even sure why everyone just decided to use yaml for CIs
chari
it's The Chair
the chair
for context
it was just a random stock asset 
iirc we later fixed and remade it as our own model
but iirc it had like 60k tris
isnt that like insanely inefficient π
yas
yay
avalonia
YES
XXXXXXDDDDDDDDDDDD
its for items not pickups
its called when an itembase is destroyed
or do you mean another event that isnt ItemBase.OnItemRemoved
use ItemPickupBase.OnPickupDestroyed
Okay so I wanted to change the role that appears when you hover over a player, so I could support custom teams and stuff
I was looking at
https://github.com/icedchai/omni-plugins-pub/blob/abridged-dev/Omni-Utils/extensions/PlayerExtensions.cs#L131
And was wondering if the best way to do it really is to fully remake the info text, or if it would be possible to change just the part I want
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
So
- Change Network_playerInfoToShow to hide role and name
- Change custom info to show modified name and role
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
So when you drop an item, you spawn a schematic on it
And this prevents any other item from being dropped until you despawn the schematic?
Show code

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
I recommend handling it with extensions
also i can share my newer implementation that's cleaner AND supports custominfo and stuff better
sOwner null there is no owner.scale
Sure
Ur null
Hello :3
hi
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
yield return Timing.WaitForSeconds(1f);
before light color set?
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? 
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
whoever added light sources to SL
it might be the other way around though? or just something weird with SL's renderer. because the lights in the MER unity scene are way brighter than they are in SL, maybe the intensity is "worth" less
but yeah, setting it to something else and back to 1 does not reverse the operatio
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
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
@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.
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
&= ~ is removing flags, yes it looks ugly
You're misunderstanding
He originally had
nickSync.ShownPlayerInfo &= PlayerInfoArea.CustomInfo;
Oh lol
Which is why I said
Sorry misread
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
Ye its easy to hit
Literally the only reason I'm considering scrounging for a better nitro key
That shit pmo
I dont like nitro tbh
you still ought to do something about custominfo
to preserve the functionality. i mean unless you absolutely dont care about it
I mean I literally do nothing with custominfo
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
I just patch the setter so if any other plugin uses it it wont completely fuck it up.
thats fair i guess
Also I think muting people sets cinfo?
i might be wrong
Muting client-side or server-side?
server side
might just be a plugin
but it must be a common one
Wait i just realized.
The nicknameSync stuff is not exposed in labapi?
I do believe it is
You can do like player.Nickname
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
it mostly is i believe
Sadge.
I mean idk if others will use it but might be good idea to let others append in custom info i guess
I do it too
sigmer
Did you know
That the [hub] = value is actually doing the same thing as add?
You still inserting it in the background so
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
oh cool
if (ServerSpecificSettingsSync.TryGetSettingOfUser(
ev.Player.ReferenceHub,
Plugin.Instance.Config!.SSSKey + 1,
out SSPlaintextSetting labelSetting))
return;
I think this is the issue?
because after this no logs
ive had issues working with lists and dicts before so i always just go over the top
Oh i forgot lol "!"
with unnecessary stupid code
!!
Dw i had more stupid code
It's always better to improve
What do you mean what's wrong?
Blurry, full of dots
i forgot a "!" in the SSS
Good job 

Youre wrong bro π i immediately started getting errors thrown
And I remembered the exact reason why I do it this way
Huh
What is your code that you got errors?
π
.Add(hub, string)
Guhh
i read it the wrong way around
Do
[Hub] = string
oh yes if you want to append DO NOT DO +=
because when yo do it it didn't exist before
did i do that somewhere i forgot
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
thats the text box one right?
if you dont want to save the value on the client set ServerOnly to true in the constructor
;
();
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?
i found out u can change fonts and i feel super enlightened
The Minecraft font is actually peak
Wait for zero lol
I never implemented it, just said the approach I'd take
Btw you should probably optimize the lookup of waypoints, it's a dictionary after all
Me when LabApiProperties.CompiledVersion is not the compiled version
Is this the labapi wrapper?
Ain't no way boi
Yes it does
Yeah it was moreso so I could slap it into my existing implementation without changing the code
Yes
New C# 14 thing?
Are we even able to use C# 14 in projects yet
Easiest optimization
Yes
It would be funny if it didn't set the sync var properly 
Make sure your Rider is on the latest version btw
-# eve spent an ungodly amount of time on this
Huh
You need the .NET 9 SDK
Or 10 preview
No I just needed to change to preview instead of 14.0
I have the .NET 9 SDK already
Uh
Which version of net9
C# 14.0 shows up in my language versions in rider
Why do people write .0 after lang version though, it's so unnecessary π
Oh it's a rider thing
Habit
Check dotnet --list-sdks
Well I don't have 9.0.305 so let me install the latest
Yeah that should fix it
Static extension members about to go crazy
No, same issue
Do you use C# 14.0 in rider?
Or the preview?
Preview
Bruh
I told you
.
And it's not working still?
Stop for a second
Wha the fucky
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
When did I say that
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
Yeah I forgor that 14 doesn't work with net9 (I always used preview)
Install.net10andyouhave14
So I thought you had net8 installed
. net10 is on rc1 so soonβ’ will be released
Well I have both
Cause I'm cool and awesome
π
About a month left still
Anyone knows how can i get the permission of a card from the pickup
Is reason why we don't have textures on primitives that the .Material is not networked?
I think the reason is because NW hasn't chosen to add it
Can you do Item.Get(Pickup) and try casting to KeycardItem?
with the new builds and how NW is making the map more and more quality looking then just primitives with one color will not be usable
Of course, but I'm just saying that I don't think there is a technical limitation preventing them from adding textures
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.
I hope texture primitives & prop admintoys are added
prop admintoys would be fire because it finally means we can treat the props like primitives (Parent RPC)
we trust the process
π
nope doesn't work at all
Check how does base game do it
When you throw keycard and it collides with door
Base game doesn't do shit just checks the door
Reader
Base game more like base gay, gottem
Sentenced to QA
That's basically how it's been ever since keycards were added?
yea
the pickup has nothing lol
It's not a question I'm just confused because I'd expect that knowledge to have gone around a bit more
CheckPermissions?
u cant check DoorVariant class checkpermission?
it needs a door
What exactly is it doing that needs a DoorVariant specifically
Look at the contents of check permission and nicely yoink the code minus the door requirement
Just keep walking the tree
Ah C# class inheritance
If you hit a mono behaviour that means it's most likely on a prefab
I checked, it runs on literal magic. Sorry, youre out of luck.
That's it, you're putting on the programmer thigh highs
At least it it wont be cold
better question is why
Yea they provide alot of heat
nah
Oh the issue is not that they're expensive it's just that I legitimately cannot express myself irl
I love being incredibly closeted yippee /s
Where do you live
What is your social number
Giga based, never express yourself even at your own detriment α».α»
not directly in the pickup
NW hates simplicity sometimes
fr






