#plugins-dev-chat

1 messages Β· Page 171 of 1

upper vapor
#

tf are AnomalousTarget and AnomalousRegeneration

upper vapor
slate flume
#

Word up

inner citrus
#

thats why taj mod takes almost 3 years

upper vapor
agile tartan
#

how to force scp106 stalking?

#

like exiled scp106.isSubmerged

upper vapor
upper vapor
#

you're gonna need the subroutine, set IsSubmerged or something and then send the rpc

slate flume
agile tartan
#

I can't access to _rpcType

slate flume
#

Or actually you could prob just

Scp106StalkAbility ability;
ability.StalkActive = true;
agile tartan
slate flume
#
Scp106StalkAbility ability;
ability.ServerSetStalk(true);
#

Or some shit like that

upper vapor
#

hacky code lmao

slate flume
upper vapor
#

so

#

there's ServerSetSubmerged

#

it's literally that shrimple

#

yep

#

thatguy was faster than me

slate flume
#

I'm shocked I called it 😭

upper vapor
#

wait

#

serversetstalk

#

that's a different subroutine

#

okay

slate flume
upper vapor
#

idk

#

i'd look at exiled source if i were them

slate flume
upper vapor
#

they wanted what exiled does

#

then just look at the code 😭

slate flume
#

True

#

Word up

agile tartan
#

sorry but i can't understand what should i do.
ServerSetStalk is private

upper vapor
#

cassie was changed again and now my patch doesn't work SteamHappy

upper vapor
#

in Scp106SinkholeController

#

but you can always publicize shrugging

slate flume
#

Do this

#

But instead of Test.dll do it on Assembly-Csharp.dll

#

Reference it in your project

#

Then enable Unsafe Code in your project

#

And after that you can access private members and methods

agile tartan
#

the top one?

upper vapor
#

Yes

#

Wait...

#

You already have a publicized assembly

agile tartan
#

its not working

upper vapor
slate flume
upper vapor
#

Add these in your csproj

#

It'll publicize automatically

slate flume
#

Poor guy is confused

upper vapor
#

Perhaps 😭

slate flume
#

Yo question

#

Why does the Scp1509Resurrected effect even exist?

celest thorn
slate flume
celest thorn
#

you should provide him on the explanation for the nuget

#

not post the publicized because it goes against terms of service of unity (if im not wrong)

unique crane
agile tartan
unique crane
celest thorn
agile tartan
#

but my rider doesn't show me ServerSetSubmerged

unique crane
#

Its been posted here several times

#

I dont care XD

slate flume
celest thorn
unique crane
#

Why

celest thorn
#

thats what im saying

upper vapor
unique crane
#

Its free to download

upper vapor
celest thorn
#

if i remember of use of unity

unique crane
#

Which ones

celest thorn
#

i need to check because i remember they had a section for that

agile tartan
unique crane
#

Yeah your not allowed to post their assemblies

upper vapor
#

Huh

#

Hold on a sec

unique crane
#

so Unity*.dll

slate flume
upper vapor
unique crane
#

Now lets go back to my Doom The Dark Ages playthrough where I have to use AI frames to get decent framerate xd

upper vapor
#

I don't know

celest thorn
#

i mean

celest thorn
#

that game runs fine without it

#

in rtx

#

for me

unique crane
celest thorn
upper vapor
celest thorn
#

doom runs 100% fine lol

unique crane
#

3060 mobile

celest thorn
slate flume
slate flume
celest thorn
#

really fun

#

i love destroying hell in a mecha

upper vapor
celest thorn
unique crane
#

Lossless Scaling is a powerful tool that enhances your gaming experience by making games smoother with LSFG frame generation and optionally improving quality or performance with various scaling algorithms and machine learning models like LS1. It's compatible with most games, even those that don't have built-in frame generation or scaling, as well…

Price

$4.89

Recommendations

31523

#

this is the goatest software ever

slate flume
agile tartan
unique crane
celest thorn
#

DLSS is integrated on doom

unique crane
#

Yeah but the framegen isnt

celest thorn
upper vapor
agile tartan
unique crane
#

Idk maybe I have some wrong settings

#

but I ahve everything on off/handheld

slate flume
unique crane
#

and its still runs on like 30 fps

upper vapor
celest thorn
#

handeld????

#

a steam deck?

unique crane
#

There is quality setting for that

celest thorn
#

steam deck has amd tho

unique crane
#

handheld

#

XDDD

upper vapor
slate flume
#

Why is the LabAPI nuget package out of date

unique crane
#

Its below low

upper vapor
unique crane
#

like bruh

unique crane
celest thorn
#

Oh you fucking idiot

#

obv its not running well

restive turret
celest thorn
#

VRAM

unique crane
#

Yeah well

#

its not like I can buy more xd

slate flume
celest thorn
#

no you can

#

btw

unique crane
#

Well no

celest thorn
#

there are mod chips for that

unique crane
#

Im on laptop

agile tartan
restive turret
celest thorn
upper vapor
#

Cuz the publicizer needs it

slate flume
agile tartan
upper vapor
#

Huh

#

Np

upper vapor
agile tartan
#

unsafe code?

upper vapor
#

In the project settings under the build section

slate flume
unique crane
#

Yeah I think ill just find some mod

#

for the vram

celest thorn
#

guys

#

unsafe code is my homie

upper vapor
# slate flume

Waiting for labapi and the game to move to net standard sleep

upper vapor
agile tartan
#

but thank you

upper vapor
#

It'll be apparent at runtime

slate flume
upper vapor
#

If you don't set it, you'll get an exception when you access an otherwise inaccessible member

charred sparrow
#

how to modify warhead detonation timeπŸ€”

#

my code just modify time but cassie still broadcast 90s

unique crane
#

Why are you accessing the field with some complicated ahh way

#

info.StartTime = 120;

charred sparrow
#

huh?

#

oh!

slate flume
# charred sparrow

public override void OnWarheadStarting(WarheadStartingEventArgs ev) => ev.WarheadState.StartTime = 120;

upper vapor
boreal snow
#

It's still worth trying, I literally started in plugin development 2 weeks ago.

mint panther
#

anyone know how i can make a custom keycard that spawns as a pickup?

boreal snow
#

idk much other than that

upper vapor
#

labapi has methods to create custom keycards

mint panther
#

well how can i make a custom keycard and spawn it as a pickup cus i know how to make a pickup just not a custom card

mint panther
#

ahh ok just had to read it a third time

#

i understand it now

upper vapor
slate flume
#

There are many ways to get into plugin development

#

It all depends on what is best for you

#

But I would say adopting mindsets that prevent you from doing something because you feel you're not capable or experienced enough to do it is generally going to hold you back from being the best you that you can be

restive turret
#

I started with reading exiled events and literally guessing and starting to make silly events

slate flume
#

The first thing I made was coin gambling iirc

restive turret
#

I knew c# prior

slate flume
#

What'd you learn C# from?

restive turret
#

Literally from reading DepotDownloader and other that like github source

upper vapor
hearty shard
slate flume
#

It's crazy now thinking that there used to be a time where I didn't know C#

hearty shard
#

its crazy that you havent made my source generator for me

slate flume
#

It's now like my primary programming language cause plugin dev work is the primary code work I do anymore

hearty shard
#

i genuinely think my way of doing it rn is shit

#

πŸ₯€

upper vapor
restive turret
slate flume
#

There was a time where I was considering learning how to do compile-time reflection but then I realized that I mostly use harmony and that is already limiting me to run-time reflection

#

Don't know if I have a use case for it yet

#

I'm happy I got into transpilers tho cause once you get good at them it's so freeing

#

It's like any server-side code is now yours to manipulate

#

But it takes a bit to get used to working back and forth with IL and C# consistently

#

It is no longer voodoo magic

hearty shard
#

secretapi pr...

#

@upper vapor do you have a link to any docs you used for what u did

hearty shard
restive turret
#

Yes

#

I like that more than src gen

hearty shard
#

i suppose valid

upper vapor
#

i also looked at some existing source generators

#

like avalonia's source gen

#

or even roslyn generators

restive turret
#

Labapi src gen

hearty shard
#

im gonna cry doing this

upper vapor
hearty shard
#

pre set

slate flume
#

Compile-time stuff is like 3 billion times easier in C++

hearty shard
#

is it

upper vapor
#

macros

#

ugh

slate flume
#

So fire

hearty shard
#

the what now

slate flume
#

If you make a variable constexpr in C++ it evaluates during compile-time

slate flume
#

Super unique

tribal dagger
#

thats some nice aim right there

slate flume
#

I kind of love C++ as a language but it's a bitch to get used to

#

There's also like 50 billion ways to do one thing

#

Also I hate the casting

#

I'm so happy in most popular programming languages that the idea of static_cast<Type>() was fucking obliterated

#

I mean this sucks

slate flume
# restive turret I love weavers

I believe I asked this before but how do you set up weaving in a project? It doesn't seem very well documented, but I get the idea it's injecting code using IL at compile-time?

restive turret
#

yes it looks horrific but i wrote it like start of the year

slate flume
restive turret
#

for using it:

  <ItemGroup>
    <PackageReference Include="Fody" Version="6.9.2">
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
      <WeaverFiles Include="$(SolutionDir)Weaver\EIV_Networking.Weaver.Fody.dll" />
  </ItemGroup>
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
    <EIV_Networking.Weaver />
</Weavers>
restive turret
#

since i already have the IL code

#

can even generate source stuff

#

sad back is that it doesnt show in IDE

upper vapor
#

i hate weavers as much as i hate python

restive turret
#

you will see only after the dll get compiled

#

ILSpy/DnSpyEx/DotPeek usually help you with that

upper vapor
#

i think the Rider IL viewer will let you see the changes even

#

if you look at a specific source file

restive turret
#

Β―_(ツ)_/Β―

slate flume
#

Assembly weavers seem like a lot of extra work over source generators for not a ton of benefit
You have control over your own application, why choose to do weaving instead of source gen?
Like if I have a bunch of C# code I determine at compile time I want to inject into the middle of a function, why not instead inject it into a separate function using source gen and then call that separate function in the main one?

#

Is it just so it's cleaner / slightly more optimized or am I missing something

#

This is coming from someone with very basic knowledge on both

upper vapor
#

with weaving you have full control over the IL

#

but it doesn't have any benefits if you're using C# 12

#

since C# 12 you can use interceptors

#

which let you rewrite the call to the method

#

though it's different from modifying the IL of the method

slate flume
upper vapor
#

some people find it easier

restive turret
#

adding attribute to something and changing the actual code

#

Until c#12?

#

idk

#

i never fw interceptors

upper vapor
#

yes you could, and you wouldn't need this hacky rename-method-replace-original-call-with-send-message

#

but yeah

#

not until unity supports c# 12

restive turret
upper vapor
#

right

restive turret
#

earlier you had no choice

upper vapor
#

i was very writing and not reading

restive turret
#

hold on

slate flume
#

So the reason is essentially that weaving is older which is why it's still used

#

People got comfortable with it and older frameworks still rely on it cause they haven't updated

restive turret
#

not like most will update

#

but yes

slate flume
#

So if you want to get into doing compile-time junk nowadays use source gens and interceptors?

restive turret
#

i guess?

#

i never did interceptors

#

and src gen syntax is hell

slate flume
#

I've used python to generate my own C# code before ngl lol

#

The OG source gen troll

restive turret
#

same

unique crane
#

πŸ’€

restive turret
#

other people did too

#

python cowd

slate flume
#

I used to use it to make a bunch of a high level code to compute stuff, then turn it into source code I could paste into a project
Instead of doing it all by hand or calculating at run-time

#

Python allows you to very easily convert objects like lists to strings

#

So if I print a list, it formats it nicely, whereas if I do that in C# it'll like print the type

#

Makes it cool for doing that kind of stuff

#

I think people diss on python too much imo

#

It's great for writing quick code or doing really high-level analysis because of the abstractions

slate flume
#

I need to time my plugin entry to see if I should do source gen

hearty shard
#

you should totally

#

100%

#

use

#

CallOnLoad

#

no bias

slate flume
# upper vapor huh

I do run-time reflection over my plugin types to automatically instantiate CustomEventHandlers and otherwise

upper vapor
slate flume
hearty shard
#

i do the same

#

well

#

DID

slate flume
#

Imo it's better than 100 little plugins you have to sift through and update individually

#

Even if it means you have more to manage and things

upper vapor
#

me when

#

multiple projects in a solution

slate flume
#

Also true though you'd still have individual plugin entries and and dlls

upper vapor
#

yeah

slate flume
#

It also makes it really fast to test features and implementations when you have automatic instantiation and stuff
I can define a new CustomEventsHandler anywhere and it automatically registers and works

#

My plugin loading takes a few seconds iirc but idk if most of that is Harmony or if most of that is me

unique crane
#

Try not to reinvent and overengineer a game plugin (impossible)

upper vapor
#

i'd make a partial method that registers the handlers for you and call that in onenable

slate flume
slate flume
#

Is Harmony's patching efficient? I have a bunch of patches I use and I wonder if my enable time is mostly that or mostly my reflection or some other third option

upper vapor
#

benchmark it

#

Stopwatch.GetTimestamp()

celest thorn
#

i did that and its so easy

#

and accurate

#

(im gonna give the code? no)

(Why? i would get fucked)

restive turret
#

sad, #330 dont know it

upper vapor
#

primitives look very ugly

#

hey

#

that's not nice

charred sparrow
#

whrs Assembly-CSharp-Publicized.dll

#

πŸ€”

icy knoll
#

we don't publicize for you

restive turret
#

Thats exiled stuff

charred sparrow
hearty shard
#

then they publicized it

#

its just assembly csharp

restive turret
#

Or they used exiled one

hearty shard
#

except everything is public

hearty shard
charred sparrow
#

okay

hearty shard
#

@upper vapor i have looked at ava source gen and

#

what the actual fuck

#

hell nah

#

i am QUITTING

upper vapor
hearty shard
upper vapor
#

got what

hearty shard
#

your code

#

you showed

upper vapor
#

no

#

i just looked at how it works

#

but it was too advanced for my use case

hearty shard
#

so you just

charred sparrow
#

nothing happenπŸ€”

hearty shard
#

did the same thing but slightly different

upper vapor
hearty shard
upper vapor
charred sparrow
#

what is itπŸ‘‰πŸ‘ˆ

hearty shard
#

if you say so

hearty shard
upper vapor
charred sparrow
#

ok

upper vapor
#

make sure to build the project after you've added it

#

oh also

#

enable unsafe code in the project settings

#

or <AllowUnsafeBlocks>true</AllowUnsafeBlocks> in a property group

hearty shard
#

just u watch

upper vapor
#

😭

#

you're gonna fail miserably

hearty shard
#

πŸ’€

upper vapor
#

right

#

can you copy unity and make it not shit

hearty shard
restive turret
#

Hell ye

hearty shard
#

thats a you problem

#

i will NOT be learning C++

upper vapor
#

W

hearty shard
#

i choose to NOT cry myself to sleep with C++

#

instead i will cry doing C#

charred sparrow
#

nothing happen...

#

πŸ€”

restive turret
#

Show/send full csproj

charred sparrow
hearty shard
#

oh it is fully an exiled plugin

#

exiled comes with assembly csharp already publicized if you use the nuget package

restive turret
upper vapor
restive turret
#

It will never work

hearty shard
#

@charred sparrow ask in exiled server for exiled questions

#

oh

upper vapor
#

so the solution is

hearty shard
#

hmm

upper vapor
#

NUKE your csproj

charred sparrow
#

i just clone thisπŸ€”

upper vapor
#

recreate it from scratch

charred sparrow
#

its not a labapi plugin?

hearty shard
upper vapor
charred sparrow
hearty shard
#

oh wait ik

#

yea

upper vapor
#

cloning does not give you the selected branch 😭

hearty shard
#

Nope

hearty shard
#

the labapi branch references EXILED

charred sparrow
hearty shard
#

it uses labapi but it references exiled

charred sparrow
#

but it can run on my server

#

without exiled

#

πŸ€”

hearty shard
#

well it references it in the csproj

#

also

#

theres is ..\packages im not even sure you have the exiled package installed and if its in the same spot

#

just

#

recreate it tbh

upper vapor
hearty shard
upper vapor
hearty shard
#

using pre processor for cedmod but not for exiled

#

guh

upper vapor
restive turret
hearty shard
#

Main.cs + process auth patch

#

are the main handlers for the entire plugin

#

😨

upper vapor
charred sparrow
#

πŸ˜΅β€πŸ’«

upper vapor
hearty shard
#

they are seperated

#

its just a long prefix and a long main

#

with some extra sprinkles to it

charred sparrow
#

πŸ€”why it can reference private var

#

by exiled?

hearty shard
charred sparrow
#

holy..

upper vapor
#

oh it's

#

i thought the issue was with the first instruction lmfao

grand flower
#

f

upper vapor
#

0x0000000

#

f

charred sparrow
#

uhm

#

[2025-12-20 02:46:47.982 +08:00] [ERROR] [LabApi] 'FieldAccessException' occurred while invoking 'OnPlayerLeft' on 'QueueSystem.Main': 'Field `CentralAuth.PlayerAuthenticationManager:_hub' is inaccessible from method `QueueSystem.Main:IsInQueue (ReferenceHub)' ', stack trace: at QueueSystem.Main.OnPlayerLeft (LabApi.Events.Arguments.PlayerEvents.PlayerLeftEventArgs ev) [0x0000c] in <41181c2db0414462b9d010c844817ef6>:0 at LabApi.Events.EventManager.InvokeEvent[TEventArgs] (LabApi.Events.LabEventHandler`1[TEventArgs] eventHandler, TEventArgs args) [0x0001d] in <85aedfeadcdc4db5bc186ab9de73416f>:0

#

should i replace the Assembly-CSharp.dll?

hearty shard
#

you need to enable a project setting

#

"Allow unsafe code" or whatever

charred sparrow
#

oh

#

i know

barren pasture
#

This is happening in PlayerSpawnedEvent

#

What the fuck am I doing wrong?

unique crane
barren pasture
#

The biggest issue here is that this only happens the first time the code runs

steep shard
#

just updated my server and cant do nothing with RA, only round & events

barren pasture
steep shard
unique crane
#

AdminTools?

steep shard
#

oh yeah

#

ill delete them

#

thanks

fallow wraith
#

ahaha

fallow wraith
barren pasture
#

What is wrong with this stupid PlayerHurtingEvent?

#

The damage is just normal

grand flower
#

add some logging see if it even runs

spare zodiac
#

can I no longer spawn generators?

#

the 079

unique crane
#

You should be able to

#

check NetworkClient.Prefabs

hearty shard
spare zodiac
#

that's why I'm asking

#

because I'm unable to find it in my log

spare zodiac
hearty shard
#

oh well

spare zodiac
#

I'm trying to make my own very epic API SteamHappy

hearty shard
#

I see

grand flower
#

Hi NW can we get the 079 ping ratelimit removed or give mods access to remove it

barren pasture
#

How can I check if a player has a permission?

restive turret
#

It hasn't been changed

#

I really want to change many stuff (msg => rpc) idk which one is smaller sadly

grand flower
#

idk how Mirror works enough

#

I do know that a lot of RPCs should be syncvars

#

for networked properties

grand flower
upper pike
#

How do you use CullingParents?

soft depot
somber arch
grand flower
somber arch
grand flower
#

Then give plugins the ability to change the ratelimit or remove it ig

#

It's annoying

restive turret
#

Will try and play with it when i have time or smth

boreal snow
grand flower
boreal snow
grand flower
#

It's clientside

#

Otherwise I wouldn't be asking NW :p

boreal snow
#

hmm

upper pike
snow pulsar
#

I don't use culling toys... I use invisible blocks

#

Painful things Stare

upper vapor
barren pasture
upper vapor
#

right

#

player.HasAnyPermission

#

and the likes

hearty shard
hearty shard
#

hi ax

#

do you have an axe

upper vapor
#

i don't

hearty shard
#

:c

still thistle
#

is it allowed to create a post on labapi plugins that on works only exiled?

unique crane
#

But feel free to make LabAPI version of it

still thistle
still thistle
mint panther
#

anyone know how to make a command?

mint panther
#

thanks

#

i forgot the wiki had that since it has little stuff

upper vapor
#

Np

upper vapor
mint panther
#

wait isnt this outdated

#

its just not wanting to work

slate flume
hearty shard
#

you need to reference CommandSystem tho

mint panther
#

i did reference it

#

its not working

upper vapor
#

what's not working

hearty shard
#

what isnt working then

#

give more info

mint panther
#

it auto adds using system.windows.input

upper vapor
#

select the other one

#

😭

hearty shard
mint panther
#

affter removing it its still not working

hearty shard
#

using CommandSystem;

mint panther
#

it doesnt find ICommand

#

its already there

upper vapor
#

then you haven't referenced it

slate flume
# mint panther wdym it does it doest
[CommandHandler(typeof (RemoteAdminCommandHandler))]
public class Command : ICommand, IUsageProvider
{
  public string Command { get; } = "command";

  public string[] Aliases { get; } = [];

  public string Description { get; } = "";

  public bool Execute(ArraySegment<string> arguments, ICommandSender sender, out string response)
  {
    response = "Not implemented yet.";
    return false;
  }
}
upper vapor
#

iusageprovider sus

mint panther
#

uh yeah dumahh vs deleted the reference

upper vapor
#

that's another reason not to use visual fosdio

slate flume
slate flume
#

But it's like most of the work

mint panther
#

also wich id should i use from the player class if i want to find one from all the players

hearty shard
mint panther
#

like when i run a command the player inputs the id that is found in the remote admin yk the number which one is it

#

is it the NetworkID?

slate flume
upper vapor
#

-# not user id

#

but yeah use what ThatGuy sent

slate flume
#

I got the Axwabo endorsement SteamHappy

scarlet cobalt
#

how to disable sprint?

#

by plugin

#

for one player

upper vapor
#

um

hearty shard
#

custom effects

#

or like

#

basegame effect if there is one

#

maybe a patch

upper vapor
#

did you mean to prevent them from sprinting or have it not drain staimna

scarlet cobalt
#

prevent them from sprinting

upper vapor
#

exhausted effect iirc

#

or keep setting staminastat to 0 toomuchtrolling

hearty shard
upper vapor
#

no clue Kek

hearty shard
upper vapor
#

you said 3 things

hearty shard
#

well

#

the two things excluding basegame effect

#

cuz i dont know if thats actually a thing without other side effects

#

dunno havent checked in a while

scarlet cobalt
scarlet cobalt
#

thanks

upper vapor
#

okay yeah why does everyone have access to the labapi voice channels

soft turtle
#

How to find a bullet's trajectory in PlayerShot event like on Exiled (ev.RaycastHit)

upper vapor
#

there's a base-game event for this

soft turtle
soft turtle
#

Why is Pickup list empty...

unique crane
#

Just do it OnRoundStart

soft turtle
soft turtle
#

ItemSpawning => ev.IsAllowed = false

#

Item still spawned

unique crane
restive turret
#

Thats not a pickup

#

Gimme 30 m and prob check it

soft turtle
upper vapor
soft turtle
unique crane
#

He said he is gonna look into it soon

restive turret
#

I'm in bed waiting for my energy burst after i ate

restive turret
upper vapor
#

plenty of time

#

38 mins

restive turret
#

I want to be able to do that before drops

teal junco
#

man im gonna kms

#

i found the worst bug with no clear cause in one of my plugins

restive turret
upper vapor
upper vapor
restive turret
#

0xDEADC0DE

slate flume
restive turret
#

Tell me

slate flume
restive turret
#

Pfff

#

Nice

#

I mean

slate flume
#

Whoever did that needs to get their pay docked fr

soft turtle
restive turret
#

Which sadly can be months

slate flume
#

Like I always do

restive turret
#

Do you have some repo where do upload these

slate flume
#

I've been procrastinating getting a github repo up

restive turret
#

Repo would be greater so can send any new stuff into it and also knew what we fixed it

slate flume
#

Dope

#

I'm gonna start a new transpiler first

restive turret
#

Make the repo!!!

slate flume
#

But it's so easy to procrastinate

upper vapor
#

Rider can create a gist for you

restive turret
#

Rider can create a GitHub repo tooi

upper vapor
#

yep

#

pick whichever toomuchtrolling

slate flume
upper vapor
#

double shift "share github"

#

iirc it's private by default

restive turret
#

Intellij can do that so rider should be

upper vapor
soft turtle
upper vapor
restive turret
#

It's your fault

upper vapor
restive turret
#

Tell discord

hearty shard
#

skittles

slate flume
#

Give it a test and lmk

#

Just drop it into your plugin, make sure you have a Harmony reference in your dependencies, and use ItemSpawning and ItemSpawned like normal

slate flume
#

The shocking thing is that it compiled and threw no errors first try

#

That almost never happens

grand flower
#

what's the item type of the water bottle

#

im guessing 021j

grand flower
#

Player UsingItem event can't prevent the usage of the tape player it seems

#

guessing potentially because it doesn't have a wrapper? idk

restive turret
#

huh it should have

#

nvm didnt got merged

#

OH tape not 021j

#

ye

#

ah ye

#

patch ServerProcessCmd

grand flower
#

bruh

#

rip

#

I just prevented equipping it

#

or picking it up

#

should be enough

restive turret
icy knoll
#

me when i forget how to set a players role without resetting their location but cba to figure it out:

Vector3 pos = player.Position;
player.Role = RoleTypeId.NewRoleIdk;
player.Position = pos;
icy knoll
#

meow :3

late shoal
#

is there a method to check if theres a specific event like halloween or xmas?

icy knoll
icy knoll
late shoal
icy knoll
#

HolidayUtils.GetActiveHoliday()

late shoal
#

it somehow doesnt recognize HolidayUtils

icy knoll
hearty shard
icy knoll
hearty shard
#

itll be in there

icy knoll
#

was so confused 😭

icy knoll
hearty shard
#

cant believe u dont know πŸ₯€

#

also

#

guess what

icy knoll
#

what

hearty shard
#

chicken butt

unique crane
hearty shard
#

oh.

icy knoll
#

lol

icy knoll
#

first after christmas :3

#

hopefully everyone has a nice time off!! also happy new year!

upper vapor
#

RAAAHHH

icy knoll
soft turtle
#

Yapppyyy

pallid galleon
#

FREEDOM

upper vapor
#

1 second without plugins-dev-chat:

worn gull
#

We're so back

restive turret
#

fart

spare zodiac
#

YOOOOOOOOOOO

restive turret
#

welcome back plugins

icy knoll
#

sillies

slate flume
#

God damn fucking finally

plain gazelle
#

I once made this fake position patch a while back so a Dummy would always appear to touch the ground, no matter its scale (as Character Models scale from their Hip), but i now tried to use the code again, in a new project and it no longer works.

Does anyone have any idea or suggestions i could try?

restive turret
#

something do prefix patch on it too? cedmod mayhaps or any admin tools?

hearty shard
#

^^

#

theres a decent chance something else is patching it

#

and its likely cedmod

#

afaik it does it, so if you use it then thats it

upper vapor
#

Remove it

unique crane
#

Hello plugin dev cha-

restive turret
slate flume
#

Just use transpilers for the love of god 😭

#

I know it's beating a dead horse and I know the explanation

#

It's just funny

icy knoll
#

if you know how to use em, transpilers can be the better bool prefix (i.e. the method wont actually break if you try to bool prefix twice)

slate flume
#

Now that I'm good at them, they're fun

icy knoll
#

yes

#

I do still gotta learn how to use them without calling functions in so many cases

#

but ye

slate flume
#

I made a long one for that

icy knoll
#

that's not one I can say I have done lol

icy knoll
# slate flume

I'm so glad you used codematcher here otherwise this would look so bad lol

slate flume
warped prairie
#

hello Squadron

#

we are back

icy knoll
#

real

warped prairie
#

unfortunate they really had to shut down the discord but we back

icy knoll
warped prairie
#

hai

slate flume
#

I mean I welcome it, I just think it's interesting

#

I had at least three people reach out to me asking questions

#

I'm just glad I was able to help lol

warped prairie
#

i had like 3-4 reach outs

#

im still shocked they didnt leave critical channels open, but who am i to say

slate flume
#

Tbh for the first few days I had no idea why the discord was locked down cause the only channels I check are in the LabAPI section lmao

icy knoll
#

or people were too scared to message me

#

idk

slate flume
icy knoll
# slate flume Aura

legit one of my mods for my server told me that people come to them to contact me because they find me scary and I'm like "how the fuck am I scary"

slate flume
# icy knoll I legit had no one

I get a lot of messages cause I'm one of the few devs who's active here and has been in the dev community for a long time
I also welcome people messaging me cause I like helping people

slate flume
icy knoll
icy knoll
#

Claude is better

slate flume
spare zodiac
#

AI slop

slate flume
#

I'm not paying for a generative AI

icy knoll
slate flume
#

If it's not on the first page of google then generally I'm asking AI

#

Most of my questions are unimportant and dumb

spare zodiac
#

I started with unity and it's much easier then I thought it would be

slate flume
#

-# I've never used it

icy knoll
#

like I was so confused today when making my auto updater for my plugin. for some reason the request URL was getting stripped of one part of the pathname and I was all confused. Google didn't tell me shit so I just went to claude and they said "trailing slash is required" for the specific thing that I was doing and I was like "bruh are we fr rn"

spare zodiac
#

it's great to take board game you like and try to recreate it into videogame

spare zodiac
#

I have not touched Godot yet

#

first time making smth in game engine and chose unity

slate flume
# slate flume Real as hell

AI is my first line for diagnosing errors
When it hallucinates the problem that's when I figure it out myself

spare zodiac
#

I've heard people don't enjoy plugin with auto updater that much

slate flume
icy knoll
slate flume
#

I have no publicly-facing plugins and I'm the only dev for the server I dev for so suffice it to say I still don't know how to make a plugin config

spare zodiac
slate flume
spare zodiac
#

you have your freedom, but it feels like eternity to make things

slate flume
spare zodiac
#

true

slate flume
#

Tbh I program just whenever I feel like it and I still churn out 2-3 updates a month

#

I think part of it is I've just worked with SL stuff for a long time so I don't need to find ways to do something

#

I get an idea and I know how to implement it

#

It's just a matter of like typing it out

spare zodiac
#

it's such a shame not many devs work on public plugins

slate flume
#

Most of the plugin work I do is specific to the server I dev for

spare zodiac
#

yea

slate flume
#

I don't really have anything to make public about it, no one would use the plugin

#

I think the public plugin market is a bit saturated with all the common items

spare zodiac
slate flume
slate flume
spare zodiac
#

also

warped prairie
icy knoll
warped prairie
#

like i get told im reasonably intimidating but like in a chill way

#

so people get comfy

spare zodiac
# slate flume Also...

that was like answer to your statement before I just don't know what better word do I use for it

#

@warped prairie I fell 5 hours ago

warped prairie
#

hope you are ok

slate flume
#

I thought you were going to add something

spare zodiac
#

I would like to make plugin like collaboration with few devs, but don't have time to start project like that

slate flume
#

It sounds like a lot of work

#

I get to work at my own pace

#

I overhauled Northwood's spawn mechanics in one night, but I also sometimes spend a couple weeks to change some values of random implementations

warped prairie
#

i got a shit ton of work so im usually out of time at the end of the day

slate flume
#

It ebs and flows

slate flume
#

I'm still waiting to hear back from employers

#

So I like cook and shit

#

And program

spare zodiac
#

guys you should totally try making smth in unity

#

if you've already worked with monobehaviours in SL

plain gazelle
#

evil cedmod hogging MY patches

spare zodiac
plain gazelle
#

that sounds so crazy it just might work

#

how do i do that >.>
like how could i patch a patch? o.O

#

i guess i first need to find the name of the patch

spare zodiac
spare zodiac
slate flume
spare zodiac
restive turret
spare zodiac
slate flume
# plain gazelle how do i do that >.> like how could i patch a patch? o.O

Do something like

var targetMethod = MethodBase.GetCurrentMethod();
var patchInfo = Harmony.GetPatchInfo(targetMethod);
var patchesToUnpatch = patchInfo.Prefixes.Where(prefix => prefix.owner == "com.cedmod.patch");
foreach (var patch in patchesToUnpatch)
    _harmony.Unpatch(targetMethod, patch.PatchMethod);
#

Or you could like

var targetMethod = MethodBase.GetCurrentMethod();
var patchInfo = Harmony.GetPatchInfo(targetMethod);
var patchesToUnpatch = patchInfo.Prefixes.Where(prefix => prefix.owner != _harmony.Id);
foreach (var patch in patchesToUnpatch)
    _harmony.Unpatch(targetMethod, patch.PatchMethod);
restive turret
restive turret
#

Mw when i doomscroll

#

20 Subnautica shorts

#

And 5 rust

spare zodiac
restive turret
#

Jarvis, break his plugin

spare zodiac
restive turret
#

I'm the breaker of the plugins

spare zodiac
#

fastest way to crash server is to Console.Read()

restive turret
#

Lol

#

The client crashing is better

spare zodiac
#

u fuck up the unitys main thread

spare zodiac
restive turret
#

"Sadly" now it just dc

restive turret
icy knoll
restive turret
#

I still have zero clue how to do async stuff despite I wrote some stuff actually so

icy knoll
#

me when I tortured myself with it lol

#

and plus I do web dev... so async is my jam!

restive turret
#

Oh I gonna send you async code to just review

icy knoll
#

oh god

slate flume
#

Wait wait wait

#

Ragdoll physics is client-sided right?

restive turret
#

Pff no clue actually

icy knoll
#

you can change initial velocity on the server to give to clients

#

but that's it

#

ragdolls are different client to client actually lol

slate flume
slate flume
icy knoll
restive turret
#

I only touched ragdoll and immediately made 2-3 breaking changes πŸ”₯

slate flume
#

AdminToys have client-synced parenting

#

What happens if one is parented to a ragdoll

#

Does it obey server position or client position

restive turret
#

Can you actually parent to a ragdoll?

slate flume
#

Maybe?

#

Idk this situation is theoretical

#

I was hoping to be able to detect when a player shoots a ragdoll

restive turret
#

I dont think it has netid

restive turret
spare zodiac
icy knoll
slate flume
#

Hm

spare zodiac
slate flume
#

I'll check if ragdolls have netid later I think

#

I need food

restive turret
icy knoll
spare zodiac
restive turret
spare zodiac
#

SlejmUr are you the "Cache your monobehaviour" guy?

restive turret
#

Cache what

#

Ye I guess?

icy knoll
#

all I know is that people should cache their Transform lol

spare zodiac
#

to not use GetComponent

spare zodiac
icy knoll
#

Getting the Transform is expensive