#plugins-dev-chat
1 messages Β· Page 74 of 1
its old i think
like probably 100 years old
also
if ur removing and readding same item
itll keep same serial
yea
oh yeah ofc
the serial tracks the item as long as it exists in any form its like the second thing i ever learned about items
haha
its great code
you can technically
delete item completely
create a new item with same serial
and youll be fine

dont do that but it is technically possible
why not
it sounds fucking terrible why would anyone do that
well
unless u want them to have same instance behaviour
but then just
i mean if you keep the instance then yeah don't
so true
btw @teal junco if you remove the item from userinventory, make sure to unparent the transform
i'd be surprised if eve's method actually worked, i guess its worth a shot
well
it does


nw didnt destroy properly idk 
copium and shittium
can we remake SL from scratch
and then Pickup.Get() the result and throw it into player.AddItem
@unique crane get to work
day #alot of asking
Parts of the game are rewritten with each update
godot SL with normal SL compat layer
if you repair a ship til everything has been replaced with new parts
is it the same ship
i will test with these items ax
cuz it worked last update (14.1)
vine boom
too much wait
are the items functional though
i'd expect some weird behavior
public static ItemBase ServerAddItem(
this Inventory inv,
ItemType type,
ItemAddReason addReason,
ushort itemSerial = 0,
ItemPickupBase pickup = null)
{
if (!NetworkServer.active)
throw new InvalidOperationException("Method ServerAddItem can only be executed on the server.");
ItemBase itemBase;
if (inv.UserInventory.Items.Count >= 8 && InventoryItemLoader.AvailableItems.TryGetValue(type, out itemBase) && itemBase.Category != ItemCategory.Ammo)
return (ItemBase) null;
if (itemSerial == (ushort) 0)
itemSerial = ItemSerialGenerator.GenerateNext();
ItemBase itemInstance = inv.CreateItemInstance(new ItemIdentifier(type, itemSerial), inv.isLocalPlayer);
if ((UnityEngine.Object) itemInstance == (UnityEngine.Object) null)
return (ItemBase) null;
inv.UserInventory.Items[itemSerial] = itemInstance;
itemInstance.ServerAddReason = addReason;
itemInstance.OnAdded(pickup);
Action<ReferenceHub, ItemBase, ItemPickupBase> onItemAdded = InventoryExtensions.OnItemAdded;
if (onItemAdded != null)
onItemAdded(inv._hub, itemInstance, pickup);
if (inv.isLocalPlayer && itemInstance is IAcquisitionConfirmationTrigger confirmationTrigger)
{
confirmationTrigger.ServerConfirmAcqusition();
confirmationTrigger.AcquisitionAlreadyReceived = true;
}
inv.SendItemsNextFrame = true;
return itemInstance;
}
this
it works weird
and i had to do it weird cuz of NW
π
couldnt have just given us a way to remove item without destroying

no flashlight, no micro, no yailbird
so wait what
omg i'm so mart
i get the gameobject, and set the transform parent to null?
flashlight i threw but also
uh
armor
hi mart
of the item
dyingium
Deep fried zero
hello zero whose brain is fried
we're telling you to use v3!!
Β°here
bruh
honestly
im going to stick with hint service
and see if i can make the code better
miserium
like thats the best i can do
fr
paws
just do a prerelease
it's not rocket science after all
thissounds stupidb
but
h ow do i know if something is a dependency
is it a .dll file
like the others
or
dll files are either a plugin or a dependency
the readme of the plugin should tell you which is which
oh okay
like "install harmony as a dependency"
ive seen so many exiled users read smth like this and throw it in plugins
from KadavasKingdom?
yes
i believe so
ok
@restive turret make installation guides!!1!1
heat
yes it is
that just plugin
havefun
well i did the same thing bcs exiled put dependencies in plugins folder...
did they read it at that point
oh yeah labapi doesnt have harmony does it
nope
yes
lazy
github is lazy?
oh well
@true cedar
[2025-07-19 20:37:53.095 +00:00] [ERROR] [LabApi] [LOADER] Couldn't enable the plugin 'RueI', Version: 3.0.0.0, Author: 'Rue <3'
[2025-07-19 20:37:53.105 +00:00] [ERROR] [LabApi] HarmonyLib.HarmonyException: Patching exception in method System.Void Hints.HintDisplay::Show(Hints.Hint hint) ---> System.Exception: Wrong null argument: call NULL
When trying to enable it
what
when i start up the server thats displaying
fix the errors 
explode
@upper vapor i think ik why my code works
managed unity reference is kept in the dictionary or what
i closed rider and wont open but im 99% sure creating the pickup doesnt use a unity call other than getting the .Base
its not trying to access smth thats destroyed inside of unity like .transform
and ItemType and stuff isnt rly a component
so its not destroyed

thats my guess
um
chat
what about it
@true cedar so uh
[2025-07-19 20:41:43.413 +00:00] [STDERR] at System.Linq.Enumerable.ToDictionary<System.Linq.IGrouping`2<char, System.ValueTuple`2<RueI.Utils.Collections.Trie`1/StringSlice<RueI.API.Parsing.Enums.RichTextTag>, RueI.API.Parsing.Enums.RichTextTag>>, char, RueI.Utils.Collections.Trie`1/RadixNode<RueI.API.Parsing.Enums.RichTextTag>> (System.Collections.Generic.IEnumerable`1<System.Linq.IGrouping`2<char, System.ValueTuple`2<RueI.Utils.Collections.Trie`1/StringSlice<RueI.API.Parsing.Enums.RichTextTag>, RueI.API.Parsing.Enums.RichTextTag>>>,System.Func`2<System.Linq.IGrouping`2<char, System.ValueTuple`2<RueI.Utils.Collections.Trie`1/StringSlice<RueI.API.Parsing.Enums.RichTextTag>, RueI.API.Parsing.Enums.RichTextTag>>, char>,System.Func`2<System.Linq.IGrouping`2<char, System.ValueTuple`2<RueI.Utils.Collections.Trie`1/StringSlice<RueI.API.Parsing.Enums.RichTextTag>, RueI.API.Parsing.Enums.RichTextTag>>, RueI.Utils.Collections.Trie`1/RadixNode<RueI.API.Parsing.Enums.RichTextTag>>) [0x00004] in <fd1d0d7d3ab340b2ac4af4d8f373b6c7>:0 [2025-07-19 20:41:43.413 +00:00] [STDERR] at RueI.Utils.Collections.Trie`1<RueI.API.Parsing.Enums.RichTextTag>.Build (System.Collections.Generic.IEnumerable`1<System.ValueTuple`2<RueI.Utils.Collections.Trie`1/StringSlice<RueI.API.Parsing.Enums.RichTextTag>, RueI.API.Parsing.Enums.RichTextTag>>) [0x0007a] in <a4db8c766a4640d4961e08786c594b4a>:0
it dosent like ruei and may have genned a 2gb log file
not for checking object lifetime
so
it's destroyed
but it's not actually destroyefd??
do i make it so that if you do like
Tag tag = new();
display.Add(tag, new BasicElement(...));
display.SetVisible(tag, false);
display.Add(tag, new BasicElement(...)); // should thi sbe visible?
yes
its not garbage collected
do NOT use v3
== null
unity destroyed the unity stuff
does
What the fuck is that stacktrace
its lifetime ended
today im going to murder someone
but
...
im just pushing stuff so people can see what it will look like
ig
ur the best
but it has a lot of annoying logs
hollow
ahh dependency errors 
anyways
someone answer
then you should get true for ipb == null, no?
idk what happens before the end of frame
That is what I asked, cause Rider warns about Unity objects
it probably still "exists" if you do that before the frame ends
i guess its useful
that it should be if (ibp) and not if (ibp == null)
TLDR
You can check null since its not a unity object, its literally non existent entirely
you cannot use == null to check if a unity object is usable tho, only if it is a reference
same thing
Actually no
no ?
C# does not have truthy values
guys
yes it does
so it cannot be same
lol
unity overloads ==
you can overload it
and implicit operators
if you're using nullable and the member you're checking isn't marked as nullable then it will complain yeah
if (obj) is the same as a null check
Then why doesn't if (something) work for others
because you can override it
unity does this overload
That does not explain why it does not allow to use it on other things
because whatever ur doing it on hasnt done the == override
implicit operator bool
no, it's not the == override
yea

check for destroyCancellationToken i guess
oh my god
unity
has
implicit operator bool for Object
that does a check for null under the hood
@hearty shard EVE
because you need to create that
other classes don't have this operator
what do you want
@true cedar thx
yea but if you want to implement screens
i'd expect all tags to be invisible if you say "set tag visible to false"
all e3quivalent tags
the what
yea ig
i just don't want people thinking that it would make it visible
when they show an element
wha
like
if you set a tag to be not visible
and then add an element with that tag
i don't want people to think it makes the tag visible
screams
id ratehr blow my head off
<align=flush>
i hate that
justify or flush
we could run PWAs in SL
on hints
except no interactivity
just run electron
hell no
can we have nodejs admintoy please
I want to run my vercel webapp in SCPSL
also an nginx as well please
don't forget cloudflare
"sorry lightbulb SCP disabled my cloudflare item, 5 sec"
"Can you call a sysadmin to reboot the server?"
"Uhh, wait lemme playerlist. Oh I see a scientist, lemme pbc them to pickup and throw the server object in heavy"

5 minutes lates
WHO THE FUCK DROPPED NGINX ITEM IN POCKET DIMENSION AND WHY
NOW 6 OUT OF 8 PACKETS ARE KILLED
it'll drop out of pocket after some time
I already dropped out 
of egyetem?
ofc
yayayayaya
ELTE made me want to undo exist
dimat is more zad
I would say my mental health is better now that I left that hellhole, but I destroyed the current one myself
oops

I tried again ruei v3 but no update this time like it does one time and never again
(update interval exist)
@true cedar
huh
it does this
never ever again
element = new DynamicElement(instance.Position.y, instance.OnInternalRender)
{
UpdateInterval = TimeSpan.FromSeconds(0.1f)
};
oh it prob errored
[2025-07-19 21:44:14.193 +00:00] [STDOUT] ArgumentException: An item with the same key has already been added. Key: CloseAlign
[2025-07-19 21:44:14.193 +00:00] [STDOUT] at System.Collections.Generic.Dictionary`2[TKey,TValue].TryInsert (TKey key, TValue value, System.Collections.Generic.InsertionBehavior behavior) [0x000dd] in <069d7b80a3914a08b6825aa362b07f5e>:0
[2025-07-19 21:44:14.193 +00:00] [STDOUT] at System.Collections.Generic.Dictionary`2[TKey,TValue].Add (TKey key, TValue value) [0x00000] in <069d7b80a3914a08b6825aa362b07f5e>:0
[2025-07-19 21:44:14.193 +00:00] [STDOUT] at RueI.API.Parsing.Parser..cctor () [0x0019f] in <d6ff54a2e2e24206b9355ee3babb6bc5>:0
[2025-07-19 21:44:14.193 +00:00] [STDOUT] Rethrow as TypeInitializationException: The type initializer for 'RueI.API.Parsing.Parser' threw an exception.
[2025-07-19 21:44:14.193 +00:00] [STDOUT] at RueI.API.Elements.DynamicElement.GetParsedData (ReferenceHub hub) [0x0000c] in <d6ff54a2e2e24206b9355ee3babb6bc5>:0
[2025-07-19 21:44:14.193 +00:00] [STDOUT] at RueI.API.Parsing.ElementCombiner.Combine (ReferenceHub hub, System.Collections.Generic.IEnumerable`1[T] elements) [0x000af] in <d6ff54a2e2e24206b9355ee3babb6bc5>:0
[2025-07-19 21:44:14.193 +00:00] [STDOUT] at RueI.API.Display.FrameUpdate () [0x00057] in <d6ff54a2e2e24206b9355ee3babb6bc5>:0
[2025-07-19 21:44:14.193 +00:00] [STDOUT] at RueI.API.Display.CheckDisplays () [0x000a0] in <d6ff54a2e2e24206b9355ee3babb6bc5>:0
[2025-07-19 21:44:14.193 +00:00] [STDOUT] at (wrapper delegate-invoke) <Module>.invoke_void()
[2025-07-19 21:44:14.193 +00:00] [STDOUT] at StaticUnityMethods.Update () [0x00009] in <d9731e675e55453197cf28cd60eed3f2>:0
don't worry

@true cedar any updates
no rush btw i just wanna know if we should start trying to fix some stuff or not
i pushed it
neat
no
Whta is fhat
This is Hungary on January 1st
Lel
[2025-07-19 22:38:37.854 +00:00] [STDOUT] ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
[2025-07-19 22:38:37.854 +00:00] [STDOUT] at RueI.API.Parsing.ElementCombiner.SplitUntil[T] (System.ReadOnlySpan`1[T]& span, System.Int32 position) [0x00021] in <10b99966c13b4bfabd709b11ed3ee9fc>:0
[2025-07-19 22:38:37.854 +00:00] [STDOUT] at RueI.API.Parsing.ElementCombiner.Combine (ReferenceHub hub, System.Collections.Generic.IEnumerable`1[T] elements) [0x00303] in <10b99966c13b4bfabd709b11ed3ee9fc>:0
[2025-07-19 22:38:37.854 +00:00] [STDOUT] at RueI.API.Display.FrameUpdate () [0x00057] in <10b99966c13b4bfabd709b11ed3ee9fc>:0
[2025-07-19 22:38:37.854 +00:00] [STDOUT] at RueI.API.Display.CheckDisplays () [0x000a0] in <10b99966c13b4bfabd709b11ed3ee9fc>:0
[2025-07-19 22:38:37.854 +00:00] [STDOUT] at (wrapper delegate-invoke) <Module>.invoke_void()
[2025-07-19 22:38:37.854 +00:00] [STDOUT] at StaticUnityMethods.Update () [0x00009] in <d9731e675e55453197cf28cd60eed3f2>:0
heads up for some other issues, that we found
what does it log before
?
before the update that error is logged
but the update never reaches the point of sending it
it never sends the hint
is this before the error
whats the text that it errors on
idk
um
but never actually sends it
like it doesn't reach the point of sending the message to the hub
well yea
if it errors it'll dothat
if u get the text that it errors on
that'd be extremely helpful
it does it in any case
if you want we can go on the https://discord.com/channels/330432627649544202/1274618891703685151
always throws
without any elements?
hi paws
BE QUIET.
let me test
with no elements it doesn't do anything no error
well then what element causes it T_T
yea
i narrow it down probably to one
but not sure
<b><size=30>Loading...</size></b>\n\n\n<b><size=40>Test</b></size>
thats prob not it
nope
its not
it throws it in any case
like with everything
i tried with something else totally unrelated and it throws it
let me try with a static message ig
i think its ur text
public override string Name { get; set; } = "Hi";
public override string Text { get; set; } = "Hi";
public override Vector2 Position { get; set; } = new Vector2(0, 0);
public override bool IsDefault { get; set; } = true;
public override int Size { get; set; } = 20;
public override bool UseAspectRatio { get; set; }
this is the one i tested and worked
my text is fine
StringBuilder sb = new StringBuilder()
.SetSize(Size, MeasurementUnit.Percentage)
.SetHorizontalPos(Position.x);
sb.Append(" <b><size=30>Loading...</size></b>\n\n\n<b><size=40>Test</b></size>");
return sb.ToString();
this is what am i doing for all of them
are you doing the use aspect ratio
ill take a look ig
ok
whatever vers you have might have some changed stuff
uh oh
thats not a good sign
something works differently than how i thought it worked and um
in simple terms FUCK MY LIFE
its so over
So sad
So uh
How tf do I check keycard permissions for a pickup
Like access levels and shi
Oh nvm
Wait
Huh
Is there no way to get the access levels for a keycard?
I can get the door provider and match it against different doors
ATP I may just find a way to make fake door permission requesters so I can check individual permissions and pinpoint it lmao
Wtf
ummmmmm

I have no idea how to do it
Generally if no one responds after an hour or two I just do hacky fixes like that
I've got priorities
Also
Is bullet inaccuracy and spread calculated by the client or the server?
I'd have to imagine the server
Client
How would the client get spread if it has to wait for the server's response
Doesn't that just make it more susceptible to cheaters?
I would imagine being able to make a shotgun beam you with 12 headshots anywhere on the map is a little busted, no?
Valve did have the inaccuracy/spread be server sided for CSGO but reverted to clientsided for CS2 because it felt like shit to normal players and cheaters be cheating anyway
Wdym anywhere on the map
Like surface
They'll just beam you down with any automatic anyway
You're on one end of surface and a guy at the other end shoots one shot from a shotgun and kills you
Although im p sure shotguns have a set pattern
Shotgun, automatic aimed to your head, won't matter
Yeah but at least if you controlled spread server-side you could avoid no spread hacks making cheaters even more busted
Though tbf I've seen cheaters straight up client-side clip through walls and pick up items
It's not like SL has good anti-cheat lmao
Fs
Don't make the game feel like shit for normal players to try and catch cheaters
Well idk I just imagined that something like spread wouldn't be a big deal to do server-side
Especially for a casual game like SL
Besides handling server-side would allow us to modify spread ourselves which would be dope
Sweet now your bullets you see dont match what the server does
Or they are delayed by your ping
Just do server confirmation
To what point
Run code client-side and if it checks out with the server then send it
Cool you just invented shooting netcode from most games :p
There's really no point
Valve undid it for good reasons
But don't like
Half of all games do spread server-side
Client shows a predicted spread
Server validates
It prevents no-spread cheats
That's what CS2 does
Which stops nothing because if they're able to predict inaccuracy, they can undo it by changing the camera position for the shot
which equates to no spread
OOHHH you right for that
I was thinking shotguns
Because even if one pellet hits it doesn't matter because the rest won't
Set pattern for SL afaik, dunno how they validate hitreg for it, would have to check the code
Relying on client-side for that means you can make all pellets from one shot hit regardless of distance
I just wanna be able to modify guns π€·πΌ
You'd probs need clientside mods
Have fun

StringBuilder sb = new StringBuilder()
.SetHorizontalPos(Position.x)
.SetSize(Size);
sb.Append(OnRender(hub));
sb.CloseHorizontalPos();
sb.CloseSize();
Why doing this just only bring this top
https://ratcentral.is-a-good.site/π/7dq56gxu.png
Are you talking about bullet inaccuracy?
You can change that on the server
??
What are you saying
you can see by the screenshot only one line is moving
but in theory everyone should
Are they different elements
AFAIK pos only works for one line
Indent
which one?
oh indent
ok
let me try it
the only problem im now thinking is vertical offset
i need to check if it works
im going to cry
it works
finally
finally
3 hours
from yesterday night to today
and in all of this tps never got lower of 60/60
so it was meow
:3

if rue wants i found the issue for the hint exploding when dynamic
she made an error on the position
i've seen some errors around the src
and now it works :3
Ig
For now im trying to remake every ui element
And everything working again
But thats easy


I just need to re enable everything and fix their position
Or else figuring out how i can calculate the voffset
By how meow was doing it
It kinda doesnβt work
bruh
Like i set the float
But nope
Voffset works tho
So i might check whats going on there
It seems to be working
Because it is correct
I just think i need to invert it
yea positive is up
No thats correct
unlike in almost every other UI lib
But meow did a breaking change
That made it calculated in another way
For up before i wrote 1050 now i need to write 150
Donβt ask me how
Or why
1000 is the max ig
For ruei?
yes it says it right there
yes that was the reason
150
was too low
btw im amazed on how optimize this shit is
lol
you better be using stringbuilderpool
before the server like exploded everytime it loaded a player
im using normal stringbuilder
but for now its just testing and messing
im planning to change
and use stringbuilder everywhere
but why pools?
creating a new stringbuilder is so heavy?
yes
it reduces allocations and GC time
and it's a two-line change wherever you wanna use it
public string OnInternalRender(ReferenceHub hub)
{
StringBuilder sb = StringBuilderPool.Shared.Rent()
.SetIndent(Position.x)
//.SetVOffset(Position.y)
.SetSize(Size);
sb.Append(OnRender(hub));
sb.CloseIndent();
//sb.CloseVOffset();
sb.CloseSize();
return StringBuilderPool.Shared.ToStringReturn(sb);
}
Like this
im going to add as an arg to render
you say that every time
i don't think i need to return the stringbuilder
i can just return void
yassss
im gonna be honest v3 is easier to use
i understand more using v3
than the code of v2
me when Roles
me when i can just do Display.Get(Player).Add
instead of crying in a corner and saving each element
kekw
why this stupid game trying find location on the same door?
for what?
0 context
[HarmonyPatch(typeof(Scp106PocketItemManager), nameof(Scp106PocketItemManager.IsInPocketDimension))]
still not enough context
code.
what are you doing
like
protect the door, which is designed to allow players to move around, from selecting items from Scp106 to spawn
you're patching the wrong method
then which?
i dont wanna use transpiler
c*dm*d moment
nvm that's correct
i don't see where it checks doors though
Nice
dmed rue
:O that's cool
with the fix for the problem of yesterday
There's a parameter
you can have perfectly accurate or perfectly shit guns
RunningInaccuracy and AdsInaccuracy params i believe
I'm writing that in my notes for later
btw hii david
While there are a bunch of devs here, I want to ask, what layer mask should I use to Raycast without hitting players?
haiii
Hitbox maybe
Woah
there's one already in the game
or was for the opposite i don't remember
Not sure what raycast would ignore player
from here
it checks every player's position whether to drop the item
so i'm not sure why it's an issue for you
This may be a really dumb question but how should I uh read this for future reference
David sent it
alot of time ago
the start of labapi
LayerMask.GetMask("Hitbox")
that is horrible practice
Revelation
I was like "Why are half the boxes missing" for a hot second
I'm a little high rn I'm struggling
Lmao
if you wanna exclude it, invert it with ~
unity should have really made an enum for layers rather than ints smh, have it automatically generated or smth
erm
no
too lazy
smh
btw lumi you are my Heroine
saved my server from 1 tps
lower
how bruh
Ruei
ik itβs good but how did i do it π
switching to ruei v3 was probably the best idea
iβm still on v2 as rue said v3 isnβt finished yet
i donβt wanna migrate to smth thatβs likely to break at any point
How would they do it
im sorry for you
You define the layer names
you are loosing on alot of cool stuff
Its gonna be enum with options
like type of level that now its easy
source generator
Layer1,
Layer2
Maybe
i bet but yeah ima wait til stable before i deploy in prod lol
i mean after solving a problem
now its stable
i dmed rue with the solution
for a massive issue with dynamic hints
btw
i doubt the whole thing is stableβ¦
just from 1 solution? sounds like bs iβm sorry π
after solving that issue i didn't encounter any problems
what issue even was it
i know crazy
she was calculating wrong the buffer
for sending them
ah, shit i donβt know
int pos = current.Position - (text.Length - buffer.Length);
like this is what she needed to do
well
iβm still waiting for v3
is there a way to do roles like how you did for auto element?
ik auto element is removed but id rather not do an if check during the new dynamic element
nope
you need to manually add them
but let me check
the if checks? damn
i have the src open
rolechanged event 
^
im honestly loving how simple it is
before i was crying
for how complicated it is
now im crying for how simple it is
Nope there's nothing for roles
true
but the one thing i loved about auto element
is that it did all that for me
the if checks
the event checks
etc
honestly
its easier this one
autoelement wasn't really that much easier
so i kinda like the idea that you have alot of power
on deciding stuff
Update()
you get it from the Tag
good
and then Update()
and that will tell the stuff to force trigger it
i tested it and it works
so
can you not save the element on the player itself or must it be the tag?
You don't need to save them
you just apply the tag
and get them
by the tag name
its similar to Meow has a concept and i really like it
whatβs the point of a name tho if you have to add a tag to each player bruh
because its easy to manage and reminds me of DOM
not for each player
just for one element
the element is inside the player
to me tho that looks like iβll need to save the element
display.GetElement(tag)?
idk let me check
hopefully this is by name and not by tag instance
otherwise iβll have to save tag
:3
Yea i will test it soon enough
new Tag("a") == new Tag("a")
but
or else i will change it
new Tag() != new Tag()
that wonβt be true ever tho right? considering seperate instances
i just said it
i have something to test
rn
just give me a few seconds and i will be able to tell you if it works by instance or not
ideally there would be a Get(string tag) to avoid allocations
i think the best migration
i've ever done
was Exiled to LabAPI
it took me 2 hours
lucky bastard
ATOH 500 files
and shit
took me 2 hours
and 1 hour for meow
Sl is updating???
wtf
it took me like a week to migrate discordlab
crazy
because i recoded the whole thing
oh i did a bit of recoding
exiledβs syntax made it hard to just swap out the old for the new for me
so i just decided to redo the whole thing
it makes sense
i didn't really do much changes
but after porting it
i decided to rewrite it took me a week to do the entire library for loading stuff more optimized
from 58 tps to 60
on loading
tpsmaxxing
not sure
maybe some hungarian server
-# that may or may not spoof the tps 
nevermind i'm thinking of something different
whatβs the point of spoofing tps unless ur showing it to everyoneβ¦
yes
they did that
why tho
one server like a year ago i believe
idfk
why show the tps
but it constantly showed 60/60
which is very difficult to believe
i use it for debug
how much does primitives affect tps?
and they had many builds
alot
just set the hint to say 60/60 
yes they did that
nope thats ass
mine is 100% real
because i use it for debug
lol
does PMER do that for schematics or are they non static?
also
mirror sends updates for every single object on every frame
even if there are no dirty bits
btw it works by doing a new
also yeah i figured that was pretty obvious
idk
i don't use MER anyway
dirty bits is a difference?
my server was doing 30 tps
like
it checks for serioalization
and if there's nothing
it sends an "empty" EntityStateMessage
at least i think so
can we add string overloads for these
the new Tag(str) is so unnecessary
i hate the new tag syntax please add strings
i figure that static primitives affect tps about as much as most map stuff does, but i dont know as much low level stuff so idk
What's the benefit of RueI over something like HSM?
performance
How much performance?


