#plugins-dev-chat

1 messages · Page 133 of 1

cyan crown
#

land animation isn't working and transiton between sprint , run and slow walk is fucked

#

RAHHHH

grand flower
#

death

restive turret
#

wdym

upper vapor
restive turret
#

then do 32 bytes

upper vapor
#

Ceasing to exist

#

Quitting the world

#

Leaving the game

restive turret
#

Joining the world

upper vapor
grand flower
#

lol

warped prairie
#

corrupted files

soft depot
#

If I wanted to prioritize a WaypointToy to be used for a particular player (not all players) how would I accomplish this? Is there an event / method that's called every time the player moves? It's hard to tell where the best place to put a prefix / postfix would be considering there's also the movement tracer thing that's supposed to limit player movements (to stop cheaters) and idek how that incorporates into it all

grand flower
#

You're going to nuke your server performance mmLul But the FpcPositionDistributor should handle that

#

in theory

cyan crown
#

i got it working SteamHappy

grand flower
#

SL but every player model is wet

cyan crown
grand flower
#

i mean it already looks that way lmao

cyan crown
#

he's extra wet now

grand flower
#

rip

soft depot
grand flower
#

No clue

#

I don't work for northwood and haven't checked the clientside code

#

new player exceptions

hearty shard
#

afaik

#

client finds where it needs to go since yk... its seeing itself
and server checks if thats correct and ofc places it correct for everyone else

#

well

#

i dont think client tells server

true cedar
#

do u ever see something and ur shocked it works

hearty shard
#

its more of just it SHOULD always be the same

true cedar
#

thats me rn

soft depot
#

well client sends a RelativePosition which contains a waypointId

soft depot
#

I also felt it recently but I cant elaborate further for an event concerning the server I develop for

grand flower
#

but the player's complaining about randomly being soft disconnected from the server
no other player is getting this

cyan crown
#

ok i finished this fuck ass script

hearty shard
cyan crown
#

i hate it i actualy hate it

hearty shard
#

server checks if its able to be there

cyan crown
hearty shard
#

but also places it on the waypoint itself

soft depot
#

so then if I fake a waypoints priority to be super high, only that client will want to be on that waypoint?

true cedar
hearty shard
#

but server might disagree with it

true cedar
#

i think this is a good start

grand flower
# grand flower

@swift nexus apologies for the ping, have you seen something like this before?

#

It's the only thing this player has and generally around the time they get disconnected

#

The logs don't say anything about a disconnect though, and they're the only player to report this ever, nobody else has had this

soft depot
#

If I were to destroy a NetworkIdentity with other NIs parented to the first, would the children get destroyed as well?

grand flower
#

likely yes

restive turret
#

Why would you destoy a ni?

#

And prob no

soft depot
#

destroying a primitive with text toys parented to it

restive turret
#

Then destoy the primitive itself

soft depot
#

ye

restive turret
#

Not the netid object

soft depot
#

but I'm expecting the text toys to be destroyed as well without me having to deal with it

restive turret
#

Oh ye

#

I through you meant as the component

soft depot
#

one does not simply destroy a component

#

you gotta destroy the gameobject

restive turret
#

NetworkServer.Destroy(yeet)

hearty shard
#

oooo

#

nerd

#

so proud of you

true cedar
#

die

soft depot
true cedar
#

well yea but like

#

it integrates with ruei's vertical positioning system

#

u can see how it doesn't disrupt the position of the other elements

soft depot
#

that's pretty neat

#

I could prolly rig HSM to do the same if I ever implemented the one idea I had for hint parameters for HSM

true cedar
#

it was very tedious to do

soft depot
#

the parameters or the vertical positioning?

true cedar
#

the vertical positioning

restive turret
#

Just do
CmdSetTextPosition(Vector2.zero)

hearty shard
#

or

#

KillSlime()

warped prairie
#

justworkplease()

restive turret
soft depot
true cedar
#

well

mild walrus
#

there is an option for restart on empty in the server config?

#

like restarting the round

hearty shard
#

Um

#

R u turning on round lock often

#

Or whats the use here

#

@mild walrus

mild walrus
#

idk why but sometimes in my server ppl disconnects and the round stays there with no people, and i checked that round lock is not enabled

hearty shard
#

Gameplay config same as the rest

hearty shard
mild walrus
hearty shard
#

turn it on

mild walrus
#

alr

#

thanks

hearty shard
#

i dont think itll fix it but yk it will fix it if only 1 person is there

#

Idk what else you could have other than a plugin preventing round end

mild walrus
#

last time i joined the round time was 1560:56

true cedar
#

eve

hearty shard
true cedar
worthy rune
#

maybe the constructors should be internal

#

im pretty sure, if you just sent the same parameter each time it will remain in sync, as its network.time synced by default

worthy rune
#

yes

true cedar
#

how does it know which parameter to store the time for

worthy rune
#

not sure what you mean

#

but the offset is based on network.time

true cedar
#

yea but like

#

i think u might misunderstand what im doing

worthy rune
#

can i see, i only skimmed over the chat

true cedar
#

for one i need different parameters to have different offsets

#

since u might add elements at different times

#

and also u said it uses NetworkTime.time, but the issue is that

#

say you show a hint with a parameter and then send the hint again

#

its gonna reset

worthy rune
true cedar
#

no as in

worthy rune
#

your refereing to voffset/pos?

true cedar
#

offsets as in time offsets

#

element in this context basically is just like

#

a hint in ruei

#

each element can have its own animated parameters, ruei combines all the elements into one

worthy rune
#

if you need to send a hint, and dont want the animation curve to reset, keep the offset(the one in the animation curve) the same as the last time you sent it

true cedar
#

huh

soft depot
#

I'd say just use Time.networkTime in offset and send the same animation curve, but have the curve generated use Time.networkTime in it

#

so like the curve starts with when the parameter was created, and Time.networkTime is some value x

#

then when you're forced to send another hint, you send the same parameter, but now Time.networkTime is x + d

#

and d is just how much time has passed since it was created

#

so in theory it should match I think

true cedar
#

thats what im doing

#

except you also have to account for ping

worthy rune
#

yeah that wont work

soft depot
#

sorry NetworkTime.time, not Time.networkTime

true cedar
worthy rune
#

dont change the offset between sends

true cedar
#

what

#

why

worthy rune
#

because thats how it works

true cedar
#

im so fucking confused

soft depot
#

but then you'd just send a new animation curve and reset it

worthy rune
#

what offset does in the animationCurveHintParam is determine the starting time of the animation

true cedar
#

yes i know thats the point

worthy rune
#

if you want it to always be in sync, keep the starting time the same between sends and it will just work

#

alright ill explain it another way

soft depot
#

oh btw I think this is ping btw paws

worthy rune
#

the animation curve has no state, its just taking the NetworkTime.time of the client taking of the offset and samping the curve. so if you think about it, to keep it from reseting you need to send the same data and todo that you need to keep the offset the same

soft depot
worthy rune
#

rrt is ping yeah

soft depot
#

he's not wrong, the update method does use NetworkTime.time

#

so in theory the curve only updates when the server and client update their times

true cedar
#

ohhh

worthy rune
#

UpdateState is called everyframe iirc, thats what samples the curve to animate it on the client

soft depot
#

I didn't even know how this parameter even worked so sorry if I said anything stupid

true cedar
#

well shit now i need to get rid of all the code that saves it

soft depot
#

otherwise it would've just started really far into the curve right? NetworkTime.time is probably massive

true cedar
#

it loops

soft depot
#

well then wouldn't the curve have always started in a random position then?

#

¯_(ツ)_/¯

#

hope you can fix you problem or whatever now lol

true cedar
#

ig thats why they have offset

grand flower
#

Yeah I'm using Luau it's awesome

#

Solves a few problems I had with the previous Lua plugin, downside is there is no Luau plugin for Unreal so I'll have to make my own

glad pagoda
#

also heard that its embedding api sucks more

grand flower
# glad pagoda iirc it has no jit tho, right?

It has optional JIT support nowadays for x64 and arm64

Having said that, Luau has been updated to include an optional JIT component for x64 and arm64 platforms. This component can compile a selected set of functions, including limiting compilation to functions or modules marked explicitly by the user. While functions can be compiled at any time, automated JIT compilation decisions based on statistics/tracing are not performed. Luau JIT takes into account the type annotations present in the source code to specialize code paths and at this time, doesn’t include runtime analysis of the types/values flowing through the program.
#

But they pushed performance without it anyway

grand flower
#

So far I've seen it as a lot of pros over Lua for what I'm doing

glad pagoda
#

don't know much myself but have a friend that tried embedding it in his own engine but then went back to normal lua and said the embedding side of luau was a total pain

grand flower
#

huh

#

Guess I'll find out

#

If anything I like the idea of integrating it into Unreal, sounds fun

glad pagoda
#

he liked the language changes though

grand flower
#

yeah there's some goodies

#

like a continue keyword or compound assignment

glad pagoda
#

also

#

why do they contradict themselves on their webpage

grand flower
#

where

glad pagoda
#

ah I guess not

#

I missed the 5.1 being in another line

grand flower
#

yeah

#

I also like the fact they get rid of dangerous functions in the Lua library by default

#

less work for me

#

not a lot but still

#

the one thing I'm gonna miss is modern lua having 64-bit integer support

#

especially for steamids heh

#

would make them easy to manipulate for mods

glad pagoda
#

wait is luau missing them??

#

is it really more shitty than PHP?

grand flower
#

Lua implemented them recently enough, as a different type than number

glad pagoda
#

php integers are really stupid btw lol

grand flower
#

That's why Garry's Mod returns a string for SteamID64

glad pagoda
#

i mean it's an ID technically, not a number

#

it being stored as a number is just an optimization

grand flower
#

yeah that would've been easier

glad pagoda
#

php has a single integer type

#

that's equivalent to c# nint

#

you can guess how much pain that was while making centrals talk with the game kek

#

also

#

the apis are made by literal lunatics

#

they have like

#

3 different methods

#

that do the same thing

#

and there's 0 difference between them

lethal cradle
#

youre giving me 2nd year uni ptsd

upper vapor
true cedar
celest thorn
#

Hii everyone

celest thorn
upper vapor
#

Xd

grand flower
#

now to spend a week finding a name for my plugin

celest thorn
grand flower
#

right i forgot to specify

#

Implementing Luau for Unreal

#

not SL related

#

all of my SL plugins are private for Bright's heh

celest thorn
#

like past plugins i've done were public or done for other people

#

and now almost 99% of them private

grand flower
#

ULuau is boring

celest thorn
grand flower
#

UnLuau is too similar to Tencent's UnLua

grand flower
celest thorn
grand flower
#

it's a plugin not an engine

#

heh

celest thorn
#

LuauFlow?

#

UnrealScriptLab (USL)

upper vapor
#

Luanreal

grand flower
celest thorn
#

OH yea

#

A plugin who got reincarnated in an unreal engine realm, who finds that can be used inside fortnite.

grand flower
#

time to look up the word Moon in other languages until something nice pops up

celest thorn
#

do you like this title?

grand flower
#

I don't think the engine will accept a module called A plugin who got reincarnated in an unreal engine realm, who finds that can be used inside fortnite core

celest thorn
#

People who create isekais can

#

so you can

#

The only isekai i've ever watched was a dude who got transformed into a girl and thats it

#

and that was probably the last one i've ever watched (if we don't count Dragon Ball) but thats a religion

upper vapor
#

What are you waffling about

celest thorn
#

idk

#

wait

celest thorn
#

here

#

this is the last anime i've ever watched

#

without counting dragon ball

grand flower
#

why is finding a name for things so hard

celest thorn
#

like

#

MeowEditor, MeowDebugger, MeowMenuSystem

upper vapor
#

Um

upper vapor
grand flower
#

mods make Axwabo stub his toe

restive turret
#

Kijuse

#

There you go a name for you

grand flower
#

jompie

celest thorn
grand flower
#

fersop

celest thorn
#

thats a good name

grand flower
#

pkodwe

#

yeah no

celest thorn
#

acrylic

grand flower
#

Caelum sounds nice

celest thorn
grand flower
#

you're fired from the naming committee

celest thorn
#

let me go in my corner, im not crying ;(

grand flower
#

Caelum it is

#

maybe

#

hmmm

upper vapor
#

Uxhllv

#

Pri kl s snow d

#

F

#

Xd

celest thorn
upper vapor
#

Roekoyy

upper vapor
celest thorn
grand flower
#

Lunaris

#

"of the moon"

celest thorn
#

and came out Axwabo?

grand flower
#

sounds nice

upper vapor
grand flower
#

Lunaris it is

celest thorn
grand flower
#

fits Lua(u)

grand flower
upper vapor
#

-# I hate lua

celest thorn
celest thorn
grand flower
#

makes me sound like a weeb

celest thorn
#

makes sense

grand flower
#

totally not lua

upper vapor
grand flower
#

tbh it has nice stuff

celest thorn
grand flower
#

eh debatable

#

lua but i like the additional features

upper vapor
#

Lua Unluad
That's what it stands for

grand flower
#

like making the global table readonly

#

drooling

restive turret
celest thorn
upper vapor
celest thorn
#

CatU, MeowLua

grand flower
#

im good with Lunaris

upper vapor
restive turret
#

The prison?

grand flower
#

has a nice ring to it, is unused in an Unreal context

celest thorn
upper vapor
grand flower
#

im blowing you up with my mind right now

restive turret
#

Nvm that was Lunar Max

celest thorn
#

so technically i think i should hate them but i just cannot i feel bad

upper vapor
celest thorn
#

but i have a dog

restive turret
#

This guy

celest thorn
#

but cats do kill me faster

upper vapor
restive turret
#

If you provoke them

celest thorn
#

dog its only when they loose their fur

upper vapor
celest thorn
#

cats is almost daily

restive turret
upper vapor
#

Mebibyte

celest thorn
#

Malwarebyte

upper vapor
celest thorn
upper vapor
celest thorn
upper vapor
celest thorn
#

Dead Space

#

Capitalism Adventure

celest thorn
#

my dad wants to rescue the kittens

#

but i die

#

if he does

#

he did it and kept it hidden from me for a night

#

and i started dying

#

so i knew there was a cat or something near me

#

dust was out of the way, im too clean

upper vapor
#

They have a forcefield

celest thorn
#

that provokes it

upper vapor
#

Unfortunate skill points you spawned with

celest thorn
#

like idk why alot of people think italy is just what they see from pictures

#

if i step in a road probably that same road like 20m people died in a war or even just lived their lives

#

or burned a witch

upper vapor
#

Don't judge a book by its cover

celest thorn
#

scams in rome are the same that politicians do at the EU

celest thorn
#

yea we like to ask money to the EU daily

#

nowadays

upper vapor
#

Pffffftttt

#

"Ez a projekt EU-s források felhasználásával valósult meg"
-# this project was made possible using funds from the EU

celest thorn
restive turret
#

1 million huf
Addition; 2 cars

upper vapor
#

Xddd

upper vapor
celest thorn
#

I still do wonder why tf he built a stadium next to his house

#

like if you wanna sleep?

upper vapor
#

You know, 1 mil huf for 2 cars is not that bad of a deal

upper vapor
#

Soccer

restive turret
#

Ofc cus it was from the other 3 million they got

upper vapor
#

Hajrá Fradi!

#

-# go Fradi!

#

(I'm not a sports fan)

celest thorn
restive turret
#

I'm so happy that I don't care sport events

celest thorn
celest thorn
#

i know people who do and they like attack each others

#

like brothers and cousins between each others

restive turret
#

Common in all places

upper vapor
celest thorn
#

lol

restive turret
upper vapor
#

Bruh

#

They did

#

Maintenance was "yeah good enough, we don't need the safety mechanism"

#

Someone has their messenger notifications on rapid fire

restive turret
#

"safety? That's we drink or eat?"

upper vapor
celest thorn
restive turret
#

Ofc bc saf'e tea

celest thorn
#

like seriously

restive turret
#

No

celest thorn
#

this are dad jokes

celest thorn
#

trust me

unique crane
#

💀

restive turret
#

My mind saying things that shouldn't be send here

celest thorn
#

dms?

#

lol

#

nowadays my dms are all strange and my website still people find way to bypass

restive turret
#

Oh i immediately have like atleast 3 reply with that

celest thorn
#

idc

#

i've seen alot

restive turret
#

It flashed in my mind and just vanished

upper vapor
#

See sharper

celest thorn
#

this is how it went

civic flume
celest thorn
upper vapor
#

Tough there are some weird "normies," too

celest thorn
restive turret
upper vapor
#

Lmao

#

But where's commit

celest thorn
restive turret
celest thorn
#

Extents in bounds means how big it is?

#

because i was logging it and its 0

#

lovely

celest thorn
#

Idk if its intended i was taking the ReferenceHub and using playerstats killing the player with KillPlayer but that one doesn't trigger the effect

upper vapor
celest thorn
#

and did it

frail zinc
#

Hello guys, does anyone experienced an issue with the interactable toy when it moves through the waypoint toy? I've attached an interactable to a waypoint, everything is fine, but the interactable doesnt work after it was moved with the waypoint

celest thorn
#

thats better

#

instead of making 1 gameobject with both

frail zinc
# celest thorn Probably use a gameobject inside

Yes, that’s what I’m using, and everything works, the waypoint toy moves correctly, and the same goes for the interactable toy. At first, before it starts moving, the interactable works fine, but once it starts moving, it doesn’t anymore.

celest thorn
frail zinc
celest thorn
#

idk wait for the goat david

#

or someone else

frail zinc
worthy rune
celest thorn
#

No answer crazy

frail zinc
worthy rune
#

how did you attach the interactable to the waypoint?

frail zinc
worthy rune
frail zinc
#

Yep

worthy rune
#

when you interact, are you inside the waypoint or outside

frail zinc
#

Inside and outside, its the same

worthy rune
#

how fast is the waypoint moving, does it still break even when moving very slowly?

upper vapor
#

The real question is:
Please attach a video Kek

worthy rune
#

interactable doesnt have a visualizer so its kinda hard to tell what went wrong

restive turret
#

are you not fake syncing the position of the interactible?

frail zinc
frail zinc
worthy rune
#

when it stops it works again right?

#

oh nvm

frail zinc
#

it works only before the waypoint start moving

worthy rune
#

if you log out the world position of the interactable toy does it change when its moved?

frail zinc
#

yep

#

and the position is correct

worthy rune
#

anything in the player log or local admin log?

frail zinc
#

like an error ?

worthy rune
#

yeah

#

something when interacting preferably, or anything related

frail zinc
#

nothing in the local admin log

worthy rune
#

is EXILED installed

frail zinc
worthy rune
#

sometimes EXILED can interfere due to the patches it does

#

are you able to try without EXILED

frail zinc
worthy rune
#

are you able to try, parenting the interactable to a primitive and moving the primitive to see if that workss

frail zinc
#

without waypoint ?

worthy rune
#

all im able to say, is that parenting to a primitive and moving works fine(because i use it) so it follows that it should work for waypoints to

frail zinc
worthy rune
#

very odd*

frail zinc
#

:/

worthy rune
frail zinc
#

at this moment i can't because our project works sadly with exiled (and labapi)

#

exiled is a mess

scarlet cobalt
#

How to achieve infinite jailbird (won't broke)

#

I tried

#
public override void OnPlayerProcessingJailbirdMessage(PlayerProcessingJailbirdMessageEventArgs ev)
{
  if (ev.Message == JailbirdMessageType.Broken)
    ev.IsAllowed = false;
}
#
[HarmonyPrefix]
public static bool PrefixRecheckUsage(JailbirdDeteriorationTracker __instance)
{
    var jailbird = __instance._jailbird;
    if (jailbird?.Owner != null && HasInfiniteJailbird(jailbird.Owner))
    {
        JailbirdDeteriorationTracker.ReceivedStates[jailbird.ItemSerial] = JailbirdWearState.Healthy;
        
        NetworkWriter writer;
        using (new AutosyncRpc(jailbird.ItemId, out writer))
        {
            writer.WriteByte((byte)0);
            writer.WriteByte((byte)JailbirdWearState.Healthy);
        }
        
        return false;
    }
    return true;
}```
hearty shard
#

client doesnt control jailbird being broken

scarlet cobalt
#

I see

hearty shard
#

you have set these

#

well

#

actually

#

JailbirdItem::ServerReset()

hearty shard
#

we love it

soft turtle
#

Does LabApi have a ChangeAppearance method like Exiled?

hearty shard
#

labapi doesnt handle that rn (and it wouldnt be done the same as exiled)

#

exiled fake syncs, labapi wont fake sync

scarlet cobalt
hearty shard
#

or at least not the way mirror does it might do it in a more basegame route like the scale changes

scarlet cobalt
#

thank you bro

hearty shard
frail zinc
# worthy rune can you try this without EXILED?

okay, that's not exiled. i don't know why, and it's really weird, BUT when I change the parent of the toy, right after that, the toy (which is at the right position), stops work. 🤔 💀

thanks anyway for your help

hearty shard
#

@worthy rune why

#

im confused why it needs to do math on it

#

pls explain

worthy rune
#

so the higher the value the more movement smoothing there is

celest thorn
hearty shard
#

isnt it already like that

celest thorn
#

oh fuck you just wrote it

celest thorn
worthy rune
hearty shard
#

so lower in basegame is higher? but labapi makes it the opposite?

celest thorn
#

it teleports

celest thorn
hearty shard
#

or what

celest thorn
#

if you want it snappy lower

worthy rune
#

0 = teleport, 1 is smoothed but will move the fastest, 255 is the smoothest but has alot of delay

sinful bronze
#

Make curve

hearty shard
#

well

#

ill leave it, just looked weird

#

someone forgot to do the todo

#

or maybe its in an internal pr waiting for review or merge who knows

worthy rune
#

i think thats actually done

#

just need to uncomment it

hearty shard
#

ya

#

i meant the uncommenting wasnt done

worthy rune
#

you can pr it if you want

hearty shard
#

already doing so

#

doing some other additions

#

actually

#

riptide

#

please publicize :)

#

i did this for now (even though its duplicate code)

worthy rune
#

uhh, just keep in mind that adding other stuff will cause it to be delayed especially if it requires a base game MR or introduces a breaking change

hearty shard
#

just some additions

#

like JailbirdItem::Reset() being added or some more RoleTypeId extensions

#

this

icy knoll
#

does IsSpectatable = false hide that person from the server list? havent had time to check...

#

it was my impression it wasnt from player count / player list, but just spectatable list

worthy rune
hearty shard
hearty shard
worthy rune
hearty shard
#

but yea this require basegame changes to be possible unfortunately

#

recursion my beloved

worthy rune
#

is it calling the new or the base

hearty shard
#

base is PickupPhysicsModule, but wrapper wants to return PickupStandardPhysics

worthy rune
#

ic

hearty shard
#

scp018 is required to be PickupStandardPhysics right

#

cuz then i can just cast to it

worthy rune
#

doesnt it have its own one

#

Scp018Physics

hearty shard
#

although

#

thats not what its doing

#

it makes a standard not 018 specific one

#

but it does do this too

worthy rune
#

yeah it changes physics module based on if its activated or not

#

so you need to have both module types, and both should be nullable

hearty shard
#
private void SetupModule()
  {
    this._activationTime = NetworkTime.time;
    this._damagedPlayersSinceLastBounce = new HashSet<uint>();
    this.PhysicsModule.DestroyModule();
    this.PhysicsModule = (PickupPhysicsModule) new Scp018Physics(this, this._trail, this._radius, this._maximumVelocity, this._onBounceVelocityAddition);
  }
#

ok so

#

on collission, if its NOT 018 physics

#

it will set itself as 018 physics

#

i might just leave it, cuz i think this is smth for yall not me

#

itd also prob be a breaking change sooo ya

worthy rune
#

cant you just do this?

public new PickupStandardPhysics? PhysicsModule => base.PhysicsModule as PickupStandardPhysics;

public Scp018Physics? Scp018PhysicsModule => base.PhysicsModule as Scp018Physics;
hearty shard
#

i could do another pr for it

#

ill do that then

worthy rune
hearty shard
worthy rune
#

i cant find info about it breaking existing compiled code

hearty shard
#

i would assume making something nullable would be breaking since its int -> int?

#

eg

worthy rune
#

i could see that

hearty shard
worthy rune
#

for reference types, i wouldnt expect it to break tho

hearty shard
#

i do believe itd break for plugins using it, but im not 100%

#

so

worthy rune
hearty shard
#

base doesnt have the rigidbody

#

it uses the physics module

#

which could be either PickupStandardPhysics or Scp018Physics

#

only the first actually has rigidbody i think

#

yep

#

maybe this

worthy rune
#

if there is away to get the velocity from Scp018Physics you could use that

hearty shard
hearty shard
#

and only before it lands

#

so idk!

soft turtle
#

How to destroy an item that a player is holding?

cyan crown
upper vapor
#

Nullability is only a hint for the compiler

hearty shard
#

oh okay

upper vapor
#

If the user doesn't null check then shit

hearty shard
#

good to know!

upper vapor
#

It's technically a behavioral breaking change because now you make it nullable
But it could've been null either way Kek

true cedar
#

gmmmmmm

upper vapor
#

Put that in Google translate and make a beat

true cedar
#

good good morning good good good morning

pallid galleon
#

Anyone know how I can get a GameObject to parent its position to an elevator?

#

if it's inside one

upper vapor
#

o.transform.parent = elevatorChamber.transform

scarlet cobalt
#

How to change a player's voice channel?

#

for example, change someone's channel to an SCP channel

upper vapor
#

PlayerSendingVoiceMessageEvent

scarlet cobalt
#

this only allows the specified human's words to be heard by SCP, but does not allow SCP's words to be heard by the specified human

hearty shard
scarlet cobalt
#

WE NEED OnPlayerReceivingVoiceMessage EVENT
my bad, it does have it already

hearty shard
#

its already there

#

idk if it allows it

#

but yk

scarlet cobalt
upper vapor
scarlet cobalt
#

tks

upper vapor
#

Np

pallid galleon
#

hmm, anyone know why this wouldn't be working?

areaPrimitive = PrimitiveObjectToy.Create(null, false);
areaPrimitive.Type = PrimitiveType.Cylinder;
areaPrimitive.Parent = triggerGameObject.transform;
areaPrimitive.Position = Vector3.zero;
areaPrimitive.Scale = new Vector3(10f, 0.1f, 10f);
areaPrimitive.Flags = AdminToys.PrimitiveFlags.Visible;
areaPrimitive.Spawn();
areaPrimitive.Color = new Color(1f, 0f, 0f, 0.1f);
CL.Info($"Fire area created @ {position}, {areaPrimitive.Transform.position}, {triggerReference.transform.position}");

The trigger works just fine, whenever I try to parent the primitive to the trigger it doesn't show up

upper vapor
#

Why not set the parent in the create call

#

Try srtting the color before spawning

pallid galleon
#

The colour works fine. If I don't have the parenting there, and just set the position to triggerGameObject.transform.position, it works fine

#

it just doesn't sync with it for like moving in elevators

pallid galleon
#

lmao

#

Ill try that

pallid galleon
#

I mean I got the elevator stuff working for the trigger

#

it's just parenting the primitive to the trigger

static meteor
soft turtle
icy knoll
#

or

#

Item::RemoveItem()

static meteor
upper vapor
#

Did you publicize labapi?

static meteor
#

Publicized

icy knoll
#

outdated labapi then or smth, because for me it exists

upper vapor
upper vapor
restive turret
#

this is latest so

#

check if you have Extension with it

icy knoll
#

then ye Player.RemoveItem(Item)

#

done

restive turret
#

or just use the publicized one lel

#

doesnt really matter anyway

plain gazelle
#

How could i give a player an item with a specified serial?

plain gazelle
#

player.Inventory.ServerAddItem()

#

found it

hearty shard
#

grab the item you have with the serial and add it instead of creating with a specific serial

plain gazelle
#

.w.

hearty shard
#

why r u doing that

plain gazelle
#

Because i want duplicate Items with the same serial

hearty shard
#

what for....

plain gazelle
#

Too much to explain

hearty shard
#

i think itll break smth

#

but yk

plain gazelle
#

fineeeee

#

no duplicate serials

true cedar
#

@hearty shard are u ever gonna make that smart command framework

hearty shard
#

and can be bothered

true cedar
#

i kinda wanna try my hand at it

hearty shard
#

if u need inspiration or ideas theres my pr always

restive turret
#

Or just look how ax made it

hearty shard
restive turret
#

Says you

#

Who hasn't completed it

#

:P

celest thorn
#

helo

true cedar
true cedar
#

oh my idea was like

#

a lot more focused on parsing arguments

#

so you'd be able to do

#
public CommandResponse Execute(
  [Sender]
  Player sender,
  Player target,
  [Length(1, 20)]
  ReadOnlySpan<char> nickname;
)
restive turret
#

?

#

I dont get this

grand flower
#

Just copy some code over from C# Discord libs

#

¯_(ツ)_/¯

#

No need to reinvent the wheel

true cedar
#

yea but also

#

like

#

sl is pretty different from discord lol

true cedar
restive turret
#

Still no idea what you wish in the input or whatever that is

true cedar
#

you can instead have it automatically parse what you want

restive turret
#

Ah

#

That's kindof easy

grand flower
#

You're just parsing text

#

Doesn't matter if it's in SL or a Discord message

true cedar
#

well duh

#

but there's different things to parse etc

grand flower
#

It's generic enough that you can just get rid of the Discord entity parsing and replace it with SL related stuff

true cedar
#

meh

#

i'd want to do it myself anyways

plain gazelle
#

How do i send a RA-Console message to a specific player again?

restive turret
#

What

#

executeas?

#

Wait no that's not it

plain gazelle
#

like player.SendConsoleMessage("")

#

But for the RA console

#

For a single person

restive turret
#

Sorry i no longer on pc can't check :(

plain gazelle
#

I will try this

#

I should just make this shit an extension already

#

Why does LabAPI not have it :v

grand flower
#

PR it

plain gazelle
#

<-- lazy

#

<-- eepy

restive turret
#

!remindme 14h Add RA message send in LabApi

regal lakeBOT
unique crane
#

Make it send the stuff on command

celest thorn
#

why not

plain gazelle
# unique crane Why?

Because im executing lots of methods in other classes and scripts and instead of all of them having out string responses i would prefer to have an easy way to send RA messages ._.

final iris
#

you know i was wondering why I had a ping here

worthy rune
pallid galleon
#

I fixed it, my triggerGameObjects position was way different from it's local position

#

So I just made the primitives parent the elevator game object, which Is what I should've done in the first place anyway 😛

worthy rune
#

ahh makes sense

mild walrus
#

is there any way to lock a door created in a map of MER in a plugin?

#

i mean a code that locks a door from MER

worthy rune
#

are you able to loop over the objects in a MER map?

mild walrus
# worthy rune are you able to loop over the objects in a MER map?

MapUtils.LoadMap("puerta939");

    var data = MapUtils.GetMapData("puerta939");

    foreach (var kv in data.Doors)
    {
        var id = kv.Key;
        var door = kv.Value;

        Logger.Info($"Door {id}: Locked={door.IsLocked}, Open={door.IsOpen}");

        door.IsLocked = true;
    }

Did this for locking it but it looks buggy and i cant interact with it

worthy rune
mild walrus
worthy rune
#

maybe try spawning the map then locking the doors using the labapi wrapper

teal junco
#

You're locking serializable doors, i'm not sure if thats going to be effective

#

wait

#

let me check

#

yeah you arent gonna be locking any in-game doors

true cedar
#

i have made the most important plugin ever made

#

im a hero i know

plain gazelle
#

Trying and failing to find out if/how Testroom and/or 330 room is deletable

#

Ive seen posts about this posted in the past but have yet to see anyones code on how they did it

#

I FOUND IT

#

THE FIRST CHILD

#

I just have to kill the first child

#

^love sentences like these

warped prairie
plain gazelle
#

I am willing to sacrifice any amount of children to be able to modify the generated map however i want to

warped prairie
true cedar
#

most normal sl plugin dev

grand flower
#

Can you even delete rooms

pallid galleon
#

is there a way to make primitives materials emissive?

upper vapor
true cedar
#

shhh

#

technically what i could just do is have it call like

#

a chain of delegates

true cedar
#

would be pretty fast and still support spans

upper vapor
#

Weavers notLikeThis

true cedar
#

not weavers

#

like

#

dynamic methods

upper vapor
#

You... wtf

#

😭 😭 😭

true cedar
#

:3

upper vapor
#

Not worth it

true cedar
#

:3

#

think of how sick it would be tho

true cedar
#

its the best plugin ever made

upper vapor
#

I saw it

#

I'm like

#

Dafq

true cedar
#

dafuq as in

upper vapor
#

The fuck

#

Is that patch

true cedar
#

if idle mode isnt it on it disables the method so it doesnt get called every frame

#

esp important since it uses a potentially locking method i think

celest thorn
#

Can we make this in base game??

teal junco
#

almost appears to emit light

upper vapor
#

@unique crane you assigned this to yourself, has there a fix been implemented?
it's also slightly an issue how the cassie clear rpc does nothing on the server
so the client clears its queue but the server doesn't

unique crane
#

Not merged most likely

upper vapor
#

i'm asking if the solution is already present with base-game changes

#

or simply the called method was changed (in labapi)

unique crane
#

Uhhh idk

upper vapor
#

i'd guess that the first method in the screenshot should not be #ifdef'd

unique crane
#

I remember it changing to what cassie clear cmd does

upper vapor
#

how is this only called on map gen if i access it in my plugin enable method

#

okay seems like typeof is not enough to call the static constructor

viral root
#

Does the idle mode kill all coroutines? Because i noticed that my coroutine doesnt continue after the Server has entered the idle mode. log message

hearty shard
#

afaik at least

#

if you want a coroutine to run in real time you have to set it as that

viral root
#

And how do I do that?

hearty shard
#

Timing.RunCoroutine(Update(), Segment.RealtimeUpdate);

viral root
#

thx

celest thorn
#

this chat is dead

restive turret
#

Ye

hearty shard
restive turret
hearty shard
#

i win

#

so

#

pay up

restive turret
warped prairie
royal mica
#

I noticed something with the serverside thing and dunno if I'M just not seeing it or actually this is a uuh moment

#

(and no, I won't use a framework)

#

If you have 3 plugins, all 3 tries to add conditional ServerSideSetting, you are essentially fucked

true cedar
hearty shard
#

probably

worthy rune
true cedar
#

damn

royal mica
#

I'm tallking about UserSettings.ServerSpecific.ServerSpecificSettingsSync

#

also if any plugin just overrides DefinedSettings or does SendToPlayer you are done

worthy rune
royal mica
#

should but I suspect this is not always the case

hearty shard
#

ya

royal mica
#

Also doesn't help that you need to add everything in there, but you do not want everything to be shown, in that case it'll be very interesting to handle

rough tundra
#

Hey guys, how do you control the lights in the whole facility? When there's a power cut event, an overcharge etc?

upper vapor
worthy rune
upper vapor
#

or

#

Map.TurnOffAllLights

rough tundra
#

ah

#

i was looking at MapGeneration

#

pretty close

royal mica
#

The whole impl feels very strange

#

single plugin approach-esque

#

cause when I have a mono plugin setup, it works great, but if you have separate plugins, you are kinda screwed

#

especially if you do not controll all the installed plugins

worthy rune
upper vapor
#

squbi have you seen the leaked dll

royal mica
hearty shard
#

me when a nw dev sends a concept :

upper vapor
#

it's a bit overengineered imo

worthy rune
upper vapor
hearty shard
#

it should be a basegame change

worthy rune
#

keep in mind that its not at all final, infact alot of it has changed since it was posted

upper vapor
#

yeah the SSSS system should be rewritten cuz this is just a wrapper

royal mica
# worthy rune not sure how that would work tbh

Basically you create a new SettingSync class, something like CustomServerSpecificSettingsSyncHandler (we java now)
There you can implement the send to player, receive data, definions etc.
Internally this would be handled as different definitons and abtracted away, meaning all events and options only sent to the respective handlers

true cedar
#

i think serverside settings system should be made in rust

worthy rune
#

wha

true cedar
#

i will not take questions

upper vapor
true cedar
#

rust is the best programming language ever made

worthy rune
royal mica
#

you are still fucked if there is a plugin that fucks all

worthy rune
#

wont be the case if it gets integrated into the LabAPI

#

theres likely to be base game changes along side it

royal mica
#

You are still modifying a globally available list of options

#

and not isolated to the plugin itself where it cannot even think of interracting with the others

upper vapor
# worthy rune what makes it overengineered

there's a lot of things
3 generic parameters is a lot Kek
dunno about consumer experience, the examples you showed are simple
i think the system could be simplified though, given that base-game changes are made

royal mica
#

This is a good direction, don't get me wrong, but I still think a complete isloation could be made

true cedar
royal mica
worthy rune
royal mica
#

might as well Runtime.exec("rm", ["-rf"]) at that point

worthy rune
#

but the issue your mentioning, is something that im working on as apart of that project. but the details of that are to come later

royal mica
#

I assume there is no ETA or other timeframe where these improvements will be live

worthy rune
upper vapor
#

yeah that's fair

royal mica
#

Will this full abstract away the current way of implementation, so you are forced to use this?

worthy rune
royal mica
#

That is good to hear, as it would lock out other plugins as well from the higher API dogkek

worthy rune
royal mica
#

But then my original problem still exists scrajj

worthy rune
#

base game changes are required to fix that

#

btw in the ComposableSerttings system you can still delete other plugins settings, its just harder by default todo it

royal mica
#

I mean you intentionally have to go out of your way as I can see, which goes into the malicious territory

#

But still ways better than the current SSSS as I literally deleted my own keybinds

upper vapor
upper vapor
#

oh well

royal mica
#

All plugins require conditional SendToPlayer

#

so need to do the pro gamer move and create the 17th competitive standard

upper vapor
#

yea

royal mica
#

which also in fact does not solve all of my problems, just "quick" fixes it

#

woho

true cedar
upper vapor
true cedar
#

and

#

thats a badge of honor

worthy rune
royal mica
#

I see the vision of making like a paging system, but if there are two plugins that does this, it would go up in flames no?

cosmic hedge
worthy rune
#

you can store the instances in your plugin, then returning them back later will work fine

upper vapor
worthy rune
royal mica
worthy rune
#

i thought about it, and maybe supporting a override page in the ServerSettings would be a better way to go about it

#

as then Settings added to the root through ServerSettings will go to the correct place even if a plugin is currently overriding the settings

scarlet cobalt
#

Has anyone encountered the issue where using ev.IsAllowed = false; when OnPlayerPickingUpItem is triggered causes the item to never be pickable by anyone?

#

there isn't even a progress bar appearing when trying to pick it up

cosmic hedge
#

do you have code to show for that?

hearty shard
#

youll have to manually unlock it (its a bug)

cosmic hedge
#

a game bug or an api bug?

hearty shard
#

when u start pickup, it becomes locked
canceling doesnt unlock

#

api

cosmic hedge
#

ah i could probably pr a fix for that rq

hearty shard
#

its a api bug
but the api call is in the game

#

but you need to use the api to cause it

cosmic hedge
#

oh, yeah, that's what i meant

scarlet cobalt
#

a terrible bug

cosmic hedge
#

api as in on the api itself or not

hearty shard
cosmic hedge
#

very cool

hearty shard
#

events are handled in the game

#

but labapi contains the details of it

cosmic hedge
#

unfortunate gg go next

true cedar
#

be quiet

upper vapor
hearty shard
soft depot
# worthy rune

This is pretty cool!

I feel like a lot of these interfaces were necessary and you guys really limited yourselves by working with base game without trying rewrite it or anything. I feel like this was a lot of wasted potential because you guys are really holding yourselves down with all the requirements you guys probably gave yourselves (using base game and no harmony)

The generics are cool and all, but it makes everything impossible to read at a glance, an average dev shouldn't have to spend 5 minutes looking at all the generics in a class to understand how something works. And I'm also worried about performance with high player count and high settings count.

I really appreciate you guys implementing a lot of the features I made for ASS (I don't know if you guys even ever took a look at it though 😅 ) like global keybinds and grouping settings (although your guys way is really... unique?) and then visibility for each setting. It would've been nice if you guys implemented some of the other things I had (IgnoreNextResponse in the setting base class and the minimization logic I had for sending settings) but I can see why you probably didn't want to add anything like that.

I'm kinda sad you guys grouped the server-only settings into the setting models, I feel like that's gonna confuse a lot of people, but once again I can see why you didn't add it (you had to follow base game)

There's a lot of really cool features in this, it just might be too much for typical LabAPI usage, and then it's also not even fully customizable in some situations (See Keycard Creator in ASS.Example, which I dont think is possible in a reasonable way with this addition)

I feel like you guys really hit a niche really well, but just kind of forgot about everything else. 10/10 code, you guys did a great! job, but I'll never use it because my usages of SSS are typically more complex, and this is like a hydrogen bomb vs its intended use case

hearty shard
soft depot
solar pecan
#

so uh

#

1.1.3 when?

#

it's out but it's not

upper vapor
#

-# github release has not been made

solar pecan
cosmic hedge
#

i somehow managed to freeze the server with a very basic plugin 🙏

upper vapor