#plugins-dev-chat

1 messages · Page 75 of 1

celest thorn
#

performance

upper vapor
#

HSM creates threads for every player

celest thorn
#

fr

upper vapor
#

not once did we have a conversation about how threads kill performance

#

and are unnecessary

celest thorn
#

5 players i was doing 50 tps with ruei im doing fine 60

teal junco
#

i dont know what exactly causes primitives to take a toll on the tps, is it mostly sending messages?

upper vapor
#

for hints

icy knoll
#

HSM decides to make their whole thing async for no fucking reason… especially on unity…

slate flume
#

Interesting

celest thorn
#

if you can why not

upper vapor
celest thorn
#

hope next update brings everything

teal junco
#

im waiting on ruei v3 because i want it to have compat with base hints

celest thorn
#

that i've asked like santa clause

slate flume
#

Next update will fix every bug

#

Trust

celest thorn
#

Im using v3

#

And its amazing

#

Easy

#

From crying of pain to crying of joy

teal junco
#

does it have basegame hint stuff

celest thorn
#

Yes

teal junco
#

oh fire

celest thorn
#

But its all manually written rn

#

Its usable rn alot

#

For my use case it is

#

And its stable enough

#

No jitter, no real problems

#

(But the version on git rn its broken)

teal junco
celest thorn
#

so yea you can

upper vapor
#

and i'm not doing insane stuff unlike Zero

teal junco
#

because it isnt basic steps

celest thorn
#

Im insane???

#

You guys are meanie

teal junco
#

anyways

upper vapor
celest thorn
#

Im offended ;(

upper vapor
#

whoever wrote 3 transform calls in the same method

#

i'm mad

celest thorn
#

Ahahahahh

#

Ask david for the git blame

#

Ig

#

So we can harrass the dude who did it

upper vapor
celest thorn
#

I don’t wanna imagine if that is just one of the problem

#

How much this game could be improved

teal junco
#

ive seen primitive culling that doesnt tank tps, and if i make collisions ultra simplified and all other primitives non collidable or client side then itll be pretty good for 99% of use cases

celest thorn
#

I got dms of people wanting to buy it

#

Because its crazy good

teal junco
#

i also raw dogged a mostly unoptimized map with like 70 fps and 60 tps with just MER. it is however pretty small so i dont have much data on anything bigger.

celest thorn
#

And for cases like normal server or other like roleplay this is perfect

celest thorn
slate flume
#

Oh interesting

celest thorn
#

So imagine

slate flume
#

If Terry Davis was an SCP:SL dev would he be more sane or less sane?

teal junco
#

i dont have an exact number

celest thorn
#

I have it its the old hub and its 3945 primitives

celest thorn
#

Imported on meow 300 fps fine and 60/60

#

On mer destruction

teal junco
upper vapor
#

i have a thing in Unity with like 6k prims and IN THE EDITOR it runs kinda shit
-# i'm too lazy to blender

celest thorn
#

Like its not me bullying but meow was created for entirely atos

celest thorn
#

In unity 6

upper vapor
celest thorn
#

In that case yea

#

In the editor dogshit

#

When i test it

upper vapor
teal junco
celest thorn
#

Pretty much yea

#

I still need to rewrite a bit of stuff

unique crane
#

take him away

celest thorn
#

Noooo

#

Please

#

NOOOO

#

the nw snipers

#

Are back

teal junco
#

i used to join a server with a guy who made so many schematics with no optimization the server ran 30 fps

#

and i cant imagine the tps lol

celest thorn
celest thorn
#

Btw now that i think about it

#

Nw dev can steal schematics

teal junco
#

this dude also bragged about his epic MER skills and he clowned on me for suggesting to delete small details which might build up to an fps increase

#

because i apparently had no experience in MER and my opinion therefore didnt matter

#

lolol

celest thorn
#

Why because i can

#

They are so cute :3

sacred sierra
teal junco
teal junco
#

this has nothing to do with connecting primitives right

upper vapor
celest thorn
#

Never used it and im fine

upper vapor
#

and manually do it alll

teal junco
sacred sierra
#

its really useful

upper vapor
#

people
you can also type in the transform fields

celest thorn
#

So i guess everyone can run this server

upper vapor
teal junco
teal junco
sacred sierra
upper vapor
#

dude

#

facts

#

🗣️🗣️🗣️🗣️

teal junco
#

he also told me i clearly dont understand how primitives affect tps when i suggested deleting tiny cubes for marginal fps and tps gain. this was back when nocollide primitives were just negative scale lmao so it technically did

teal junco
#

he constantly bragged about his technical and backend knowledge of SCP SL

teal junco
#

back then i wasnt a plugin dev so technically he was the only one who could run the server (and i didnt know well enough to question him)

celest thorn
#

I bet he worked for blizzard

upper vapor
#

😭😭

teal junco
#

but now i am and i exceed his knowledge in all fields related to scp sl within a year lol

#

his exiled config was combined

#

btw

celest thorn
#

EWWW

#

this guy needs to be expelled from doing servers

teal junco
#

including RA, plugins, and MER

celest thorn
#

Honestly

#

Bragging about this knowledge is insane

teal junco
#

he thought that his admins were too stupid to understand these things and itd be pointless to teach em

celest thorn
#

This magic trick

teal junco
upper vapor
sacred sierra
teal junco
#

deadass so condescending and disrespectful

celest thorn
#

If i knew it before

#

;(

sacred sierra
teal junco
#

and also he gave his AK47 a 1.2x damage multiplier and the A7 a 0.1x damage multiplier (to make them "harmless" even tho they gave burn effect still)

sacred sierra
#

one day i was just searching snap/snapping on mer discord and found the gold

teal junco
#

vertex snapping

#

oh my god

teal junco
#

this is what ive been looking for

#

its like grid snapping but better

celest thorn
#

GOLD GOLD GOLD

teal junco
#

and its better than changing my primitive position painstakingly manually

celest thorn
#

Can we make cs crates in sl

teal junco
sacred sierra
celest thorn
#

I know that we should all delete this game

#

And move on

teal junco
#

if Northwood makes another game ever i pray they dont make the same mistakes they did in SL

teal junco
#

like no crouching

#

or admintoys being 100% unoptimized

#

leaving all optimization to plugins

celest thorn
#

thats not an issue

teal junco
celest thorn
#

no.

teal junco
#

or does northeood die with SL

teal junco
#

if it was optimized (even just by distance) from the get go then i wouldnt have to play on the 30 fps MER maps from hell

sacred sierra
#

triangle primitive when

teal junco
upper vapor
teal junco
#

i met that guy and lightly joked at him for voting no on everything and then he got mad and started yapping for like 3 minutes about how im not funny

teal junco
#

northwood should....

#

can we.....

#

i think....

#

Please

#

mesh toy :3

#

would that be better or worse

#

i think it would probably be overall better

#

idk though

#

the more freedom we give server owners the closer we get to gmod 45 minute mod downloads

sacred sierra
#

the only good thing for me about primitives vs proper models is that even those who dont have 3d/blender skills can do stuff

teal junco
#

if any of the scp sl modded servers were in gmod it would take forever to download the mods

sacred sierra
teal junco
sacred sierra
#

no

teal junco
#

i think so but there must be some reason its not been added.

sacred sierra
#

shouldve probably said the most important instead of the only

teal junco
#

so what downsides are there for a hypothetical mesh toy

unique crane
spare zodiac
#

halo

unique crane
teal junco
# unique crane

so many server owners would probably spawn yansim toothbrush if there was a meshtoy

upper vapor
celest thorn
#

(so we can put C#) Trolley

teal junco
unique crane
#

Yeah thats not happening either xd

celest thorn
#

;(

teal junco
unique crane
#

Idk

teal junco
#

could send in chunks. idk

#

then the client deserializes

unique crane
#

Yeah thats what would be needed to do

#

Send it from server to client in multiple messages

#

Or cap it to 65KB

#

1 message

celest thorn
#

imagine how slow that is

upper vapor
#

i'd put a limit on vertices and tris

celest thorn
#

5 verticies

unique crane
#

Or it could be capped at 65KB and you would have to put them together

teal junco
unique crane
#

as multiple meshes

teal junco
unique crane
#

Also wdym by serializable mesh

#

whats that

teal junco
unique crane
#

Can you get me the link

teal junco
#

probably doesnt even exist anymore

unique crane
#

cant find anything on it

teal junco
#

lemme see

unique crane
#

But isnt that just like

#

Unity assignment thingy

teal junco
#

yeah that first one is useless

teal junco
#

its not what i remember lol

#

anyways its probably more complex than i could imagine to serialize and network a mesh

#

but if it was ever possible itd be very very cool

#

and would definitely be abused by server owners with no tech knowledge

spare zodiac
#

Do gameObjects have texture property?

upper vapor
spare zodiac
#

couldn't that be used to change textures if NW would allow networking for it?

teal junco
#

technically

#

if they only allow texture changes that is

#

if they allow material changes then people will find the most expensive material to render in the game and spam it everywhere possible

spare zodiac
#

if we could fuck around with base game textures that would be epic

spare zodiac
teal junco
spare zodiac
#

do you mean it's not anymore

#

💀

teal junco
#

no i just am not sure

spare zodiac
#

I am begging NW from the start of start itself to add textures for primitives 🙏

#

idk if there is issue for it though

#

it indeed is

grave eagle
#

yes

celest thorn
#

anyone alive :3

restive turret
#

Kinda

celest thorn
restive turret
#

Eh

spare zodiac
restive turret
#

Laying down in the bed

celest thorn
#

crazy

celest thorn
restive turret
#

Waiting to have a motivation to start doing something

spare zodiac
celest thorn
celest thorn
#

so

#

multitasking i know

spare zodiac
celest thorn
#

so

spare zodiac
#

Zer0

celest thorn
#

?

spare zodiac
#

can I read file from start and end at the same time?

celest thorn
#

when you read a file you are reading from the start to the end

spare zodiac
#

multithread reding of single file

celest thorn
#

of that instance

#

idk

restive turret
#

Filestream, and you have to do flag to don't lock it

spare zodiac
restive turret
#

And go to position you wanna go and read it i guess

upper vapor
#

you wanna read it backwards??

spare zodiac
upper vapor
#

what

celest thorn
#

You want to read it

upper vapor
#

yes but

#

how

#

and why do you want it reverse

icy knoll
upper vapor
icy knoll
#

yeah surelyyyyyy

celest thorn
#

me on my way to delete

#

any traces on every server

hearty shard
spare zodiac
spare zodiac
#

hey question about coroutines.

If I have a list of instances like eg. players is it better to have 1 coroutine going through each or coroutine for every object in the list?

spare zodiac
worthy rune
#

having 1 coroutine would probably be faster, but that doesnt mean having multiple is bad, it just depends what exactly you are doing

spare zodiac
unique crane
#

1 coroutine and foreach players

worthy rune
#

yeah

spare zodiac
#

would there be any way to check the technicality of this eg. memory usage

unique crane
#

The memory usage of MEC coroutine is minimal

#

And so is performance overhead

#

thats why we use them in first place

hearty shard
#

how about

unique crane
#

More Effective Coroutines

hearty shard
#

monobehaviour my beloved

spare zodiac
hearty shard
#

idk what ur doing

#

i use it for afk detection

#

because i save info

#

per player

spare zodiac
#

you use the update in mono?

hearty shard
#

yes ?

#

i need to improve this eventually kek

#

idk if i like that its done like that

spare zodiac
#

I see

#

how fast is update called?

upper vapor
#

per frame

hearty shard
#

every frame

#

its why i have the timer

#

to make it 1s per afk check

spare zodiac
upper vapor
#

no

#

you're already allocating memory with the component, the stopwatch is unnecessary

spare zodiac
# hearty shard well

and can I make monobehaviour for objects that are like not unity eg. creating my own body object

hearty shard
#

what

hearty shard
#

not rly

#

well you need a gameobject

#

to put monobehaviour on

#

you can just new GameObject() it tho

upper vapor
#

^

#

MEC may be simpler cuz you don't need to create a gameobject
but you have to end the coroutine at the right time (e.g. CancelWith(go) which needs a gameobject anyway)

#

MonoBehaviour automatically "stops" when the object is destroyed

spare zodiac
#

I never used monobehaviour for this, but it sounds interesting, thank you!

upper vapor
#

np

hearty shard
#

wait

#

ur doing it on a player right

#

cuz then yeah you can just add it to the player and ur all good

upper vapor
#

yep, easy cuz if the player leaves, the component is destroyed and doesn't update anymore

hearty shard
#

ya

upper vapor
#

you can replicate this behavior by Timing.RunCoroutine(Coroutine().CancelWith(player.GameObject))

slate flume
#

Bro

#

You're telling me

#

This whole time

#

I could do .CancelWith()

#

Crazy

upper vapor
#

yea

slate flume
#

Why can't I just have every small bit of somewhat useful knowledge implanted in my brain

#

My life would be like a million times easier

upper vapor
#

then you wouldn't be learning

slate flume
#

This is true

icy knoll
#

ive learnt a lot from ax

#

and i bet ive still got more to learn with some upcoming projects

#

when i get round to having time...

slate flume
#

Lately I feel like I'm finally doing some more intermediate programmer things

#

My first abstract class

#

Pretty hype

#

Well actually

#

My second :)

#

👍🏼

spare zodiac
spare zodiac
slate flume
#

Base constructor!

spare zodiac
#

learn about implicit operators they are awesome

upper vapor
slate flume
spare zodiac
spare zodiac
slate flume
spare zodiac
# upper vapor what

I want body to stay after player leaves so I create new gameobject and add it to player

icy knoll
#

implicit operators are very rare to have, but do exist in those rare cases and they will make ur job better

spare zodiac
#

like in my own classes

hearty shard
#

I think ur crazy

spare zodiac
hearty shard
#

well

#

what r u doing it for

#

r u doing implicit bool instead of == null

spare zodiac
hearty shard
upper vapor
spare zodiac
spare zodiac
slate flume
#

I mean theoretically you could do it that way but I feel like that makes the code less readable

upper vapor
#

do you unparent it when the player leaves?

spare zodiac
slate flume
#

In my class I have PlayerNetworkId, ClassName, and Description
I could do an implicit operator for my PlayerNetworkId because it's the only uint I have stored but then I'd be doing something like networkIdList.Add(SodaPersonnelInstance[0]) rather than networkIdList.Add(SodaPersonnelInstance[0].PlayerNetworkId) which would get confusing when I also have something like SodaPersonnelInstances.Add(SodaPersonnelInstance[0])

#

I also wouldn't be able to use implicit operators for ClassName and Description because they're both strings

#

Which would mean I would be forced to break the convention for specific cases

#

Overall just a lot less clean

upper vapor
#

i don't really know how to define it but you shouldn't have implicit conversions for everything

#

does this make sense? probably

spare zodiac
upper vapor
#

the implementation can define any progress

#

enums don't work here

spare zodiac
# upper vapor

I don't do it like this I usually make implicit cycles

hearty shard
upper vapor
spare zodiac
#

my project is not letting me enter though fuck

#

thought for a second I might have had corrupted it that would not be nice at all

#

why did my whole project downgrade to C# 10 WTF

spare zodiac
#

rider was gatekeeping my version for some reason, had to manually change it

spare zodiac
#

not a cycle, but made my life easier

upper vapor
#

i don't like this

#

oh well

upper vapor
carmine prawn
upper vapor
#

nope

slender lynx
#

@true cedar is there any way to make the max position higher on ruei

true cedar
#

vertical position?

slender lynx
#

hsm goes all the way to the top but the max has like a 200 buffer from the top of a standard monitor

#

yeah

true cedar
#

yea u can just set it

#

i realize now i should prob scale vertical position

slender lynx
#

this is the max

true cedar
#

based on the aspect ratio

slender lynx
#

anything past 1000 is the same

true cedar
#

huh

slender lynx
#

this is 1200

#

but also 1000

#

its kinda wierd

#

and my dev just dissapeared

true cedar
#

and this is vertical position?

slender lynx
#

yeah

true cedar
#

that's not

#

i don't like math.min it or anything

slender lynx
#

whats wierd is i can go below the monitor

hearty shard
slender lynx
#

hints can go under the monitor but not up

#

its kinda wierd

true cedar
true cedar
#

that's logged to the console

slender lynx
#

we changed it so it dosent do that

true cedar
#

oh

slender lynx
#

@celest thorn is gonna fix it with something else

#

idk

true cedar
#

wll id like to know what causes it

slender lynx
#

its just standard with the plugin it seems

celest thorn
slender lynx
#

120 is the bottom of a 1920x1080 monitor

true cedar
#

like i wanna know so i can fix it for ruei

slender lynx
#

just offset by 120 ig

#

vertical up

#

and it should work fine

celest thorn
#
        StringBuilder sb = StringBuilderPool.Shared.Rent()
            .SetIndent(Position.x)
            .SetAlignment(Align)
            .SetSize(Size);

        OnRender(hub, sb);

        sb.CloseIndent();
        sb.CloseAlign();
        sb.CloseSize();
        
        return StringBuilderPool.Shared.ToStringReturn(sb);

and when creating it i use the VerticalAlign

#

VerticalAlign is down in all of the text

#

Align is Center

true cedar
#

im so confused

slender lynx
#

this is your standard monitor

true cedar
#

yea

slender lynx
#

ok

true cedar
#

ig

slender lynx
#

120 is lowest

true cedar
#

i prob need to scale it for the resolution then

celest thorn
#

when 0 should be

true cedar
#

ughhh

celest thorn
#

fixes it Trolley

slender lynx
#

it fixes EVERYTHING

true cedar
#

wdym everything

slender lynx
true cedar
#

oh

celest thorn
#

and 0

slender lynx
#

now its like

#

correct

celest thorn
#

is the down of the screen

true cedar
#

rahhhh

upper vapor
#

Isn't it that hints are "naturally" offset by default?

true cedar
#

yea

#

but ruei accounts for that i think

#

i think it might be a resolution thing

celest thorn
upper vapor
upper vapor
#

If you ShowHint("a") it won't be in the center of the screen vertically

celest thorn
#

you know how everything should be solved

#

with someone inpartial in all of this nw

#

adding the UI feature

upper vapor
celest thorn
# true cedar yea

Hey rue i saw a small problem, that elements in the UI move depending on other hints is it possible to disable that?

true cedar
#

if its a slight adjustment thats a known bug and im working on fixing it

celest thorn
#

and with dynamic hints like chat etc...

#

destroys everything else

true cedar
#

huh

#

can u send the hint that causes that

#

i cant really help u if i dont have anything to work off of

celest thorn
#

the hint is generated

true cedar
#

show?

celest thorn
#

here

true cedar
#

what does the hi message look like

#

the hint

slender lynx
#

what does that mean

#

it says hi

true cedar
#

like

#

the text of the hint

upper vapor
celest thorn
# true cedar the text of the hint
    public string OnInternalRender(ReferenceHub hub)
    {
        StringBuilder sb = StringBuilderPool.Shared.Rent()
            .SetIndent(Position.x)
            .SetVOffset(2, MeasurementUnit.Ems)
            .SetAlignment(Align)
            .SetSize(Size);

        OnRender(hub, sb);

        sb.CloseIndent();
        sb.CloseVOffset();
        sb.CloseAlign();
        sb.CloseSize();
        
        return StringBuilderPool.Shared.ToStringReturn(sb);
    }
#

The file is what the class looks like

#

and the Internal is before it gets sent to RueI

#

everyt class has that

true cedar
#

hhhh

#

whta does ChatMessageTemplate look like

celest thorn
#

but this happens with everything

true cedar
#

it might be the voffset

#

is this ruei v3

celest thorn
celest thorn
true cedar
#

um

#

ruei v3 doesn't support voffsets fully yet

celest thorn
#

yea i've seen the messages, the only thing is that tho this one is the only that fixes 120 issue

#

so

true cedar
#

try doing ```
.SetLineHeight(2, MeasurementUnit.Ems)
.AddLinebreak()
.CloseLinebreak()

upper vapor
#

what if

#

you don't voffset

true cedar
#

yea if u don't voffset it

#

deos it work

celest thorn
true cedar
#

like does the spacing issue still occur

upper vapor
#

in "line break"

true cedar
#

if its newline i can say linebreak

gilded thicket
#

linebreak is way more valid than LineBreak

slender lynx
#

still does it

true cedar
#

no but does the spacing adjust

#

vertical spacing

upper vapor
gilded thicket
#

chatgpt and AI might be top 3 inventions

true cedar
#

oh it does

celest thorn
#

they aren't static when they should be

true cedar
#

if u can get me the entire hint as one string of text

celest thorn
#

yea let me do it when it sends it

upper vapor
#

and not a backtick

#

in the intro text or whatever

slender lynx
#

i dont think that would do much

upper vapor
#

basic english

#

it`s
vs
it's

slender lynx
#

uh

#

i dont care

gilded thicket
icy knoll
gilded thicket
#

i fw it

slender lynx
true cedar
#

is the flashing a ruei issue

celest thorn
slender lynx
gilded thicket
#

no its not

celest thorn
#

no other hints are in the server other than ruei

celest thorn
true cedar
#

and hsm didn't have this?

slender lynx
#

yeah

#

its v3 issue

celest thorn
slender lynx
#

hsm was fine

true cedar
#

if u have the logs

icy knoll
#

no flashing on v2

#

so

upper vapor
true cedar
#

i need the debug logs so like

slender lynx
#

its not that big of a deal

#

so

celest thorn
#

yea

true cedar
celest thorn
#

getting you the text

upper vapor
#

bruh

true cedar
#

it might be that

#

idk

celest thorn
#

wtf

#

i just logged

#

Logger.Debug($"Text: {offset + content}");

#

just logs one of the hints

true cedar
#

where are you logging it

celest thorn
true cedar
#

text?

upper vapor
celest thorn
upper vapor
#

-6.46576e

true cedar
#

i think thats multiple hints

celest thorn
#

oh wait

#

found it

upper vapor
#

what's e

true cedar
#

if u want writing it to a file might be better

celest thorn
true cedar
#

could u write to one file perhaps

celest thorn
#

here everything is displayed in the screen

celest thorn
true cedar
#

like

#

write the hint text to a file

#

so i can see

celest thorn
#

Each one of them separated?

true cedar
#

explodes

celest thorn
#

or all of them united?

true cedar
#

the total combined hint into one file

#

ideally multiple of the total combined hints as separate files with the slight offset

#

i need to know whats going wrong

true cedar
celest thorn
#

entirely

true cedar
#

gonna bash my head against a wall

celest thorn
#

im going to provide you with full

#

and none

true cedar
#

ugh

true cedar
# celest thorn Full UI (so 5/5 Chat)

line 178 in ElementCombiner - try replacign
contentWriter.WriteStringNoSize("<size=0></mspace></cspace><line-height=0>.");
with
contentWriter.WriteStringNoSize("<scale=0></mspace></cspace><line-height=0>.");

#

and lmk if that works

celest thorn
#

yea im not removing the log

#

so i can send it to you in case

#

the other small problem is the offset

#

but ig thats easier to fix

upper vapor
celest thorn
true cedar
#

tmp doesn't list it

#

but it works

upper vapor
#

is that like

#

vertical-only scale?

true cedar
#

horizontal

celest thorn
true cedar
#

i suspect its a size issue

celest thorn
#

some of them are 30 and some are 20

true cedar
#

if possible do u think u could try setting everything to the default size (34.7) and seeing if it works

upper vapor
#

can you just use 1em instead of magic number

celest thorn
true cedar
#

well to make it easier for thm

#

since they don't have to set the unit

upper vapor
#

public static StringBuilder Set1em(this StringBuilder builder) => builder.Append("<size=1em>");

celest thorn
true cedar
#

fuck

#

oh you still have something as size=20

upper vapor
#

idea

#

add <alpha=#00>.</alpha>

#

before size

true cedar
#

i don't think that would fix it

upper vapor
#

it fixed jumping for me (texttoy though)

celest thorn
#

let me fix

#

with

#

34

#

it works fine

#

with everything

upper vapor
#

copium

true cedar
#

yea so its a size issue

slender lynx
#

it WORKS

true cedar
#

ugh

upper vapor
#

paws, your magic number isn't magic

true cedar
#

size is so fucked

#

i thought i had a fix for it but

#

rahhh

#

and i tried looking at tmp source code but i dont fully understand wtf its doing

#

someone else do it for me thanks

celest thorn
upper vapor
celest thorn
#

i will try something

#

im testing something

#

i hope it works

#

no magic numbers anymore

#

if it works

#

im going to cry

#

hope my math maths

#

I fixed everything

#

from position

#

to everything

#

now it scales correctly everything

#

and is in the correct position

#

@upper vapor @true cedar

#

it moves a bit but thats because hints needs to be updated

upper vapor
#

yippeeee

#

finally

celest thorn
#
/// <summary>
    /// Gets the default line height for a given size.
    /// </summary>
    /// <param name="size">The size, in pixels.</param>
    /// <returns>The default line height for that size, as a <see langword="float"/>.</returns>
    internal static float GetLineHeight(float size) => (size / EmSize) * DefaultLineHeight;
#

this is my only change

#

oh wait nope it does still change position

#

but not like before

#

@upper vapor do think its fixed?

upper vapor
#

nevermind

celest thorn
#

;(

#

im going insane on fixing it

upper vapor
#

thanks

true cedar
upper vapor
#

oh it's a

#

chonky file

true cedar
#

yea

upper vapor
#

um

true cedar
true cedar
#

i know its bc of size

celest thorn
#

i might have found it

#

but idk

#

nope

upper vapor
#

if every line has line height

#

of 0

#

then how is it not good

true cedar
#

because tmp is fucked

#

size tags can change the actual height of a line

#

adding the period at the end is supposed to fix that

celest thorn
#

tho the period is visible

celest thorn
#

from here the period is visible

sacred sierra
upper vapor
#

i used snapping and manually typing stuff

#

this makes the precision perfect in some nicher cases

gilded thicket
#

fais pas le fou avk moi rhoo0o

sacred sierra
#

also its much more noticeable when u use glowing primitives cuz they glow when something is behind them

spare zodiac
#

le epic development

celest thorn
#

@true cedar are you going to fix? because in case i will try

true cedar
#

um

#

maybe

#

i mean i will but it might take a bit

#

more help would be appreciated tho

celest thorn
#

i found out that you had a TODO for the SizeStack

#

so im trying to see what i can do with that

true cedar
#

it's something to do with different sizes producing an offset

slender lynx
true cedar
#

well

#

i need to test some things ig

slender lynx
#

is there like

#

any eta on that

true cedar
#

i dont know

slender lynx
#

because hsm kills perf and is unusable

true cedar
#

i didnt think that people would try and adopt a non-production-ready system lol

slender lynx
#

we thought v3 would be ready by like

#

2 months ago lol

#

so atp we're just gonna go with it

true cedar
#

ive been really busy so its like

slender lynx
#

no ur fine

#

we're just tryna figure ts out

true cedar
#

maybe try replacing

true cedar
slender lynx
#

if we get a working version ill lyk

true cedar
#

whats the issue

slender lynx
#

default line height

true cedar
#

?

celest thorn
#

this one line is responsable for calculating the height

true cedar
#

mhm

celest thorn
#

from here it should be calculated the height

#

and not constant default line

#

so i will try to check how i can

true cedar
#

?

#

i don't think that should affect it

slender lynx
#

ok well

#

it does

#

so

celest thorn
#

if you think about

hearty shard
#

@unique crane btwwww shouldnt this not be a null check
like => !Base || !GameObject;

#

idk

slender lynx
#

shut up nameless

#

we're talkin here

celest thorn
#

if with 34 it works fine and DefaultLineHeight is for 34 obv we should calculated for the correct

true cedar
#

the default line height is 40.664

#

like

#

it shouldn't matter i think

slender lynx
#

ok

true cedar
#

because it forces a linebreak with that line height

#

even if the line height is technically incorrect

celest thorn
#

like thats the cause 100%

true cedar
#

like if it computes the wrong line height, it still shouldn't create an accidental offset because it forces a linebreak with taht line height

celest thorn
true cedar
#

that shouldn't be the case tho

#

it forces the line height

#

so even if the size is different

celest thorn
#

but thats the problem

#

being different

#

they create offset

true cedar
#

taht shouldn't matter

celest thorn
#

and thats why they shrink

true cedar
#

gimme a sec

true cedar
#

the offset is the same thanks to the line-height tag

celest thorn
#

so then why it shrinks down

true cedar
#

idk

celest thorn
#

and removign that fixes the issue

#

like i don't understand that

#

by removing it its fine (but in one line)

true cedar
#

oh

#

nvm

true cedar
#

i have a hypothesis maybe

celest thorn
true cedar
#

i dont think thats posisble

#

since it'd just break

hearty shard
upper vapor
hearty shard
#

read msg directly above urs

upper vapor
#

Bruh

#

Scrolling moment

celest thorn
#

i totally gave up

restive turret
#

same

celest thorn
#

there's not an easier way for Ruei v2

#

lol

slender lynx
icy knoll
#

zero this morning: "v3 is stable"

celest thorn
#

but idk

celest thorn
icy knoll
#

zero this evening: "v3 is broken"

celest thorn
#

just fucking moving this shit

slender lynx
celest thorn
#

i cannot figure it out why

#

i know the line is there

slender lynx
#

it works fine

#

but its dynamic hints

#

fuckin

#

moving everything

icy knoll
#

yall showed flashing of hints

celest thorn
#

but i cannot fucking understand why this asshole of tmp decideds to move it

icy knoll
#

😭

#

flashing of hints is not stable

celest thorn
#

i think thats the last of the problems

#

like seriously

#

and honestly im gonna try again with v2

#

and try to figure it out

#

with auto elements

slender lynx
#

players can live with flashing hints

#

players cannot live with hints going to fuckin mystery land

true cedar
celest thorn
#

no

true cedar
#

ill look at the flashing ig

#

i havent encountered that myself

celest thorn
#

let me test it rn

true cedar
#

no guarantees

celest thorn
#

i just hope

#

im starting to rewrite for v2

#

but its not looking good

#

🙏

true cedar
#

?

celest thorn
#

im joining the server rn

#

praying

true cedar
#

i dont think it will work ngl but

#

i can take a look tmrw

celest thorn
#

im at a point that i will try rewriting with v2

#

the only problem that i have with v2

#

is where to save the AutoElements / Elements

#

because i use an abstract

#

nope it didn't fix it 😭

celest thorn
#

@icy knoll because you are using RueI v2, for auto updating do i need to use AutoElements?

icy knoll
celest thorn
#

or it adds in automatic

#

and cannot be removed

icy knoll
#

nope

#

it's role based only

#

atleast i think

celest thorn
#

protected virtual void GiveTo(DisplayCore core)

#

protected virtual void RemoveFrom(DisplayCore core)

#

i will publicize it

#

and just do it myself

hearty shard
#

me when

#

CustomAutoElement : AutoElement
{
protected override void GiveTo
}

celest thorn
#
public class UpdatableAutoElement : AutoElement
{
    public UpdatableAutoElement(Roles roles, Func<DisplayCore, Element> creator) : base(roles, creator)
    {
    }

    public UpdatableAutoElement(Roles roles, Element element) : base(roles, element)
    {
    }

    public void GiveToPublic(DisplayCore core)
    {
        GiveTo(core);
    }
    
    
    public void RemoveFromPublic(DisplayCore core)
    {
        RemoveFrom(core);
    }
}
#

ig this works

restive turret
icy knoll
celest thorn
plain gazelle
#

does this mean my idea is getting worked on? :o

hearty shard
#

might happen

#

might not

restive turret
#

Lemme ask my 8ball

plain gazelle
tulip kiln
#

Yo does anyone know where the game is adding ammo to the player if I modify the ammo values?

I'm doing this

if (firearm.TryGetModule<MagazineModule>(out var magModule))
{
    if (magazineModifier.DefaultCapacity != -1)
        magModule._defaultCapacity = magazineModifier.DefaultCapacity;

    magModule.MagazineInserted = magazineModifier.MagazineInserted;
    magModule.AmmoStored = magazineModifier.AmmoStored + 1;

    magModule.ServerResyncData();
}

which sets a Logicer's ammo to 1, but the player gets 99 ammo to their ammo storage.

slender lynx
#

so uh

#

we sorta fixed it

icy knoll
#

wtf

celest thorn
#

is Ruei2

#

like im amazed

#

my server is cursed

slender lynx
#

what the fuck have we done

#

the key is upside down

celest thorn
#

no hint framework other than meow works

#

like idk why everything is rotated

#

lol

slender lynx
#

it keeps rotating more

#

the lower it is

celest thorn
#

because i have NO idea

#

Element baseElement = isDynamic
? new DynamicElement(OnInternalRender, Position.y)
: new FixedElement(Position.y, Text);

like this is code

icy knoll
#

me either lol

celest thorn
#
StringBuilder sb = StringBuilderPool.Shared.Rent()
            .SetIndent(Position.x)
            .SetAlignment(Align)
            .SetSize(Size);

        OnRender(display.Hub, sb);

        sb.CloseIndent();
        sb.CloseAlign();
        sb.CloseSize();
       ```
Rotate is never called
#

this is magic

restive turret
#

Lmao

slender lynx
#

we got egyptian heiroglyphics

celest thorn
#

for y

icy knoll
#

yes

icy knoll
#

see if timers also has the same shit

#

because if it does, smth is fucked on ur end

#

lol

celest thorn
#

Like i think its intendation?

#

idk

#

why

#

because they don't move from pos x

#

so i think its that and makes them rotate

slender lynx
icy knoll
#

smh

celest thorn
#

idk

#

if we fixed it

#

im scared to think no

#

NAH

#

NAH

#

INDENTS ARE BROKEN

#

@icy knoll can you send me your ruei

#

please

slender lynx
#

so yeah apparently <indent> == <rotation>

icy knoll
#

i legit use the one on the repo

#

lol

slender lynx
#

latest?

celest thorn
#

I use the one in the repo

icy knoll
#

why not use <space>

#

just use the space tag

celest thorn
icy knoll
#

works the same

slender lynx
#

elon musk space rocket

icy knoll
celest thorn
#

...

icy knoll
#

it’s what i use in timers

celest thorn
#

space x

#

ruei v3 works indent

#

ruei v2 indents rotate

#

crazy

slender lynx
#

ur an idiot

celest thorn
#

i don't think space works