#udon-general

59 messages · Page 65 of 1

indigo finch
#

nope, then it hates the override

grand temple
#

No I mean get rid of the entire thing

#

Start on a brand new line and let it guide you

indigo finch
#

with override the error message does change though

grand temple
#

Yep, exactly

#

That will give you the correct format

indigo finch
#

seems like it just wanted them public and VS is happy now, but unfortunately, I've still got the red errors. The yellow ones saying to override (my bad) have gone now

grand temple
#

You can safely ignore those ones

#

They have nothing to do with your script

indigo finch
#

well... the script doesn't work... any ideas?

#

wait. nevermind. i deleted it from the scene while trouble shooting...

#

Thanks for the help!

grand temple
#

Use utilities.isvalid when checking playerapis

indigo finch
#

how would i type the if statement? i didn't know how to write it

grand temple
#

If (utilities.isvalid(players in world[i]))

#

And also there's no need to recreate the array every time. That's going to generate a bit of extra garbage. Just generate it once on start and then keep running getplayers on it

#

And if you always use utilities.isvalid to check playerapis, there's no need to do anything when onplayerleft happens. Their playerapi becomes invalid and you can safely detect that

indigo finch
#

would utilites.isvalid detect if the player isn't there anymore, or would i need to do a second playerapi.isvalid to check that?

grand temple
#

use utilities.isvalid

#

playerapi.isvalid is a bit niche because it specifically only handles the situation where a playerapi was valid but has now left

#

if it's a completely null playerapi like in an array that was just generated, playerapi.isvalid will crash the script. If it's a player that has left, it will return false

#

utilities.isvalid is just a good catch-all that will take care of playerapis no matter what

indigo finch
#

if i was to do a count of all current players in an array, would i do a
if (utilites.isvalid = true)
if (playerapi.isvalid = true)
then +1

#

to catch any old player api's that arent being used anymore?

#

without crashing the script

pallid mango
#

Everyone's graphs are always neatly organized and everything and mine's all

#

what's the secret?

indigo finch
pallid mango
#

ok that makes sense

#

i'm used to optimizing code and using minimal variables it does not translate well to graphs

indigo finch
# pallid mango i'm used to optimizing code and using minimal variables it does not translate we...

well... other than the plyr var, the other changes like making another 'this' node or the bottom section moved up so the 'ordering' lines don't cut across will still help it look tidier with no performance hit. Also, given your using graphs, you will likely have massive lag problems in the graph editor before you will struggle with the performance hit of one or two extra variables in game. With all that being said, the time you take to make it look nice is time you could be spending making the next thing, so unless your trying to show others (aka, make it more readable when asking for help) i would only do a bare minimum (unless I'm procrastinating...)

#

Also 'This' is always default. so you may end up leaving it out for less nodes and whatnot

fallen chasm
#

Don't suppose anyone can tell me if there's a GameObject > Material > Set Material ? -- I've been looking and I can't seem to find such a thing.

grand temple
#

material is a property of a mesh renderer, so you would have to do getcomponent meshrenderer first

fallen chasm
#

hmm.. I'm full of optimism, but coming up empty still

grand temple
#

if you're not seeing anything in the search, you may have a node selected so it's giving you a subset of search results that are only relevant to that node

fallen chasm
fallen chasm
# grand temple

on an unrelated note, I'm not sure if you recall, but a while back I had an "everyone gets teleported" issue and you jumped into the world to check it out -- it ended up being a fluke, and I'm sure I thanked you in the moment, but I still really appreciate that.

grand temple
#

Yes, I remember. You're welcome!

gusty trout
#

Does anyone know how to use Udon to change the intensity of an emission within a material?
I only know the animation way but that doesn't seem right

fallen chasm
#

funny you should ask...

if there is a way, I think I might benefit from it at well. I'm currently trying to accomplish something like an emissions adjustment by just doing a full material swap.

#

silly thing keeps giving me a console error though

gusty trout
#

Yeah I've got something similar in U# though. It doesn't like it because "shader" isn't such thing in UnityEngine.UI

autumn oriole
#

Is there a way to get a integer from complicated string like q1w2e3r4->1234 ?

#

with udon node?

grand temple
#

I would do that by running string tochar[] and then doing a for loop to go through that array, convert each character to int, and check if that int is greather than 47 and less than 58. That's the range of 0-9 in ASCII. If so, add that character to a string. Then when you're done, run int tryparse

autumn oriole
#

I hoped for some easy solutions.. but yeah I thinks thats the best tkx

fickle stirrup
#

@autumn oriole

private const string A = "s4tr12b3";
private string _b = string.Empty;
private int _val;

private void Start()
{
    foreach (var c in A)
    {
        if (char.IsDigit(c))
            _b += c;
    }

    if (_b.Length > 0)
        _val = int.Parse(_b);

    Debug.Log(_val);
}
autumn oriole
#

udon sharp?

fickle stirrup
#

ye, you can change loop to i < A.Length loop and take char as A[i] in graph if there's no foreach (not sure), good luck

autumn oriole
#

I’ll tru thx I only used udon nods.

coarse parrot
#

material may be different. There's sharedMaterial materialBlock and array variants depend on how you want your renderer to batch. I can't cover them all yet

gusty trout
coarse parrot
tacit harness
#

Hey so did they change something in an upadte cuz i cant put just a name in the event name thing anymore ?

grand temple
#

That's correct. It will now automatically find events if you give it an udonbehaviour

tacit harness
#

Oh huh thats neat

#

was just confused cuz i was trying to do it the way that i know how to do it xD

grand temple
#

there are still situations like if you're using getcomponent where you may need a raw input, so you can still drop in a string const node

tacit harness
#

wait did i understand it wrong ?

grand temple
#

the event needs to do things

tacit harness
#

ahhh

grand temple
#

technically it is reading the compiled code to find what events exist. And if an event does nothing, it never goes into the compiled code

midnight beacon
#

Is there any API reference for VRCObjectPool? There's a bunch of functions with zero question marks or entries on the developer site.

pallid mango
#

Anything starting with VRC is one of VRChat’s, not Unity’s

#
midnight beacon
#

I know, just couldn't find anything when I searched on VRChat's own site. This gives me a little detail but still leaves a lot of unanswered questions:

  • Is it only the active component of a GameObject that is synced? Is any other part of it synced like Transform or Array Order or do you have to do that manually?
  • In this example ive built for someone else the opposite behaviour happens to the one listed in the site - Return makes the object active and TryToSpawn hides the objects in the pool.
pallid mango
#

Every child of the object pool is syched

midnight beacon
#

Sorry I should re-word - is only the active/inactive component of every object assigned to the pool synced?

pallid mango
#

But only one is meant to be active at a time

midnight beacon
#

...you've lost me 😂

pallid mango
#

They should all be synced regardless of whether or not they are active

#

They are used in pens for example so late joiners see the trails correctly

midnight beacon
#

I figured that, when I say, "active" I was wondering what parts of the objects in the pool are synced, or if every aspect of the objects in a pool is synced?

pallid mango
#

Only IsActive

#

To my understanding

midnight beacon
#

Okay, thanks for the clarification 👍

pallid mango
#

Ok I see the misunderstanding in the documentation

#

The “active” object in the object pool does not mean IsActvie, it’s where the pool’s selector is, it’s the next object to be spawned (made active) by the pool

#

Yeah maybe there’s a better write up somewhere

midnight beacon
#

Yeah, I guess ill have to do my own experiments and see what happens

pallid mango
#

It basically gives you a pool of objects you can use like a linked list and get the reference to the next one

midnight beacon
#

Im aware of the basics and the "concept" of it. Particularly with networking though the devil is in the details and those details are nowhere to be seen 🙃

rain marten
#

Anyone got an idea as to why this would constantly loop on itself after the second use?

#

and then entirely softlock when you drop it?

#

Discords upload function works promise

#

Nevermind, i have found the reason, i think.

#

I was correctly incorrect.

#

It does all the functions, but only one time around it seems. Any ideas as to why it softlocks?

pure parrot
#

Anyone knows a way to play a video directly from file ?

fiery yoke
# pure parrot Anyone knows a way to play a video directly from file ?

Im not sure if thats even possible. I think technically it is possible, but only with some hackery.
Usually you would have a public UnityEngine.VideoClip variable and assign it with your video clip in the editor. Then use that variable for the video player to load.
However the VRChat provided Video Player API does not account for local VideoClips. The only way to do it, would be to get a reference to the VideoPlayer component, after it is created by the underlying VRC VideoPlayer stuff and then call the load function directly on it.

pure parrot
#

oh i mean just 1 video which is dirrecly on the unity project

fiery yoke
#

Yeah. Thats what Im talking about.

pure parrot
#

ah

fiery yoke
#

Ohh actually as a matter of fact, I dont think you can call any of the native VideoPlayer methods, so yeah. You cant. I think.

pure parrot
#

so you can play a vid from url but not from file , huge stonks

#

does it work if i just publish my vid in private and get the url ?

fiery yoke
#

It needs to be publicly available :P If you intend to upload it to youtube, then unlisted would work I think.

fiery yoke
pure parrot
#

i think i gonna do the regular way since I'm a huge beginner

daring vector
#

Reading over the GetPlayerById document. I assume this is used to identify a specific user? Does this look for a specific username?

#

In other words, is my “ID” my username?

obtuse agate
#

No. It’s an integer

daring vector
#

How would one go about looking for a specific user?

obtuse agate
#

Use GetPlayers to get all players in the instance, and check them one by one

daring vector
#

What would I be checking for?

obtuse agate
#

there is a displayName property of the player

#

username isn’t exposed

daring vector
#

Okay cool

#

Is there any difference between display name and user name? Doesn’t it always display out username?

obtuse agate
#

They can be different. Username is made when you create the account and can’t be changed

daring vector
#

Ah okay

fiery yoke
#

VRChat doesnt really want you to identify a specific user. The only reason why you would even want to do that in the first place afaik is only for administration purposes. Which is a bit of a grey area

daring vector
#

Yes, that

fiery yoke
#

Well as I said, thats a bit of a grey area

daring vector
#

I know my buddy already does this in a world we share. Each user has their own spawn point in our own rooms of the world

fiery yoke
#

They acknowledge that its important for event organizers and staff crew or whatever to have special administrative powers and abilities, but on the other hand it can quickly lead to unjustified and unproportional in-world moderation and bad power dynamics.

#

As long as you dont do anything malicious or harmful youre fine I guess. Just be aware that its gonna be a little janky as it is technically not officially supported.

daring vector
#

Well it will allow for janitorial and staff roles. Which will be handled differently when monetization becomes a thing

#

But yeah I get you

#

My world is a theme park so there may be options for staff to help guests and stuff which could have specific tags

#

Just wanted to learn about how users are found in udon

fiery yoke
#

An alternative is using a password/passkey using a keypad

daring vector
#

Yeah we did that before in The Great Pug (I’m Owl Boys bartender and have a password access there) but I wanted a more elegant solution

#

By just checking username

fiery yoke
#

I would argue that it is the more elegant solution

#

as it is robust and requires no maintenance, unless the password is leaked.

daring vector
#

There were issues at the time with passwords a while back in sdk2

#

Not sure how different it would be now

#

Brute force was easy back then

#

But yeah leaking password is a big potential problem. If one excited user earns the password from me then abused it, I now have to go in and change the password and tell all the others the new password all for one person

#

Also uses I imagine for this is select usernames having access to “show” areas to have live performers on a zone that can only be entered by them to perform in.

fiery yoke
#

Well yeah youre right keypads are pretty unelegant. Got me convinced. But yeah VRChat really kinda doesnt want us to identify specific users.
The idea is that worlds should be fully explorable by everyone. In an instance you can have people that have special abilities, like the master being able to start a game. But if someone makes their own private instance of a world, then they should be in full control. (My interpretation)
Obviously that doesnt quite work with public instances however.

daring vector
#

Yeah, I’m just thinking ahead for potentially paid users having special tags with access to things they paid for in a subscription. Things of that nature.

fiery yoke
#

The "best" most appropiate way is to let the master or better instance owner have full administration powers, and let them be able to select a certain user by id and give them permissions.
That way you can host an event, where you are the InstanceOwner and then you have the ability to decide who does and who doesnt get which permissions.

An automated system where the "administrator" doesnt have to be present is not really supported by VRChat.

obtuse agate
#

I think using the avatar image reader with password hash is the best option

fiery yoke
#

That is also very much not supported and could break any day :P

daring vector
#

That’s fine. I don’t have a direct use for it yet, just reading and trying to learn about the features

floral dove
floral dove
#

User-to-User subscriptions

fiery yoke
#

They announced something like that in the last dev stream. You might want to rewatch it, had a lot of cool stuff in it.

daring vector
#

Is there a way to check if the player is in VR?

#

TY

fiery yoke
#

Is there a way to know whether or not the video players are currently globally rate limited? Only way I know would be to actually call LoadURL and check in OnVideoError, but I just want to know if Im able to even load the url in the first place and not actually do it, if I cant. Calling it over and over again in OnVideoError seems excessive and prone to fail.

pallid mango
#

What would cause a OnPlayerTriggerEnter to execute when I first join a world, even though it's collider isn't anywhere near spawn?

slim hound
pallid mango
#

it's at 0 0 0 in it's own coordinate space, but not the worlds

solemn talon
#

Any ways to get a player's ping using Udon?

floral dove
grave cipher
#

Am I correct in thinking that I am not able to use ScriptableObjects and if so what would be the best way to handle the data for something like a custom deck of cards? Just an array of game objects?

cold raft
#

i dont know what ScriptableObjects are, but incase of a deck of cards i assume you use a VRCObject pool to put the cards in while they are in the stash

fading cipher
#

I don’t believe VRC really supports ScriptableObjects, no

#

I never fully figured out how to use them when I set up SO’s the one time I’ve tried many years ago, but I believe your best option is to have a prefab in-scene that you clone from (if the objects you’re creating dont need to be synced between players at all), or yeah just make a pool of all your cards

I see how this needs more than a pool

#

You need a set of objects with pre-determined values so you can copy those values over if a card you’re drawing is that “card ID” or whatever youll use

#

The way I do this breaks VRC’s network sync because we use custom sync code 😓

#

@grave cipher yeah I think your best bet is just making an array of all your possible cards and each GameObject has all the values for their script, then when spawning a card you use a “card ID” that’s just the index of your array of possible card GameObjects and it copies all its values

#

Could easily then make a “deck” that’s just an int array of various card IDs, and shuffling that would just be reordering the array

floral dove
#

You can't use ScriptableObjects at runtime, but you can write Editor scripts to use them at edit time to build out arrays, etc.

rain marten
#

Hey just to confirm for myself

#

Is this checking if 1 is greater than INT or INT is greater than 1?

cold raft
#

if 1 is greater than int

rain marten
#

Got it, thanks

elder oxide
#

how many hours you have to be on vr chat to get the user role so you would be able to download some avators which you made

midnight beacon
#

Why wouldnt you be able to download avatars youve uploaded though?

elder oxide
#

I thought it was like 24 hours

midnight beacon
#

I may be getting some wires crossed, but if I remember correctly I had 50 hours logged and still wasnt a User, then I bought VRChat Plus for a month and got it.

elder oxide
#

of I got a friend giving me avators which they have to download for me

#

im still a new user I play on vr and on steam

midnight beacon
#

So you want the User rank to upload? That makes more sense. You should ask in a different chat mind you as this is for Udon scripting questions.

elder oxide
#

yea

#

of I didnt know where to ask in

midnight beacon
#

Can someone explain to me what the variable type (T) is? I havent really found a good explanation for it but ive seen it as a dropdown in GetComponent and it'd help to understand what differs between this type output and the standard Component type you get if you choose (Type).

feral merlin
#

Anyone know of a prefab that makes a game object travel along the floor to reach a player?

fiery yoke
#

Thats pretty specific. Could probably modify Vowgans Roomba Prefab.

feral merlin
#

I just basically want to make an NPC that when you wake it up, it chases the player

onyx granite
#

with the new 'VRC Object Sync' script on an object w/ 'VRC Pickup' do I still need to include the 'Udon Behaviour' script to define the sync method, or is that also handled by objectsync?

grand temple
#

no, you do not

daring vector
#

Is there an event to pause before doing the next event?

#

for x amount of seconds

fiery yoke
#

What? Thats worded a bit too generic to be answerable.
You can use SendCustomEventDelayed to send a custom event after the specified amount of time. Not sure how well that answers that

daring vector
#

that works great

#

thanks

#

I mean, I can make that work. But what I was really looking for is for example. I want to set a trigger, wait then set a bool

#

So for SendCustomEventDelayedSeconds I have to fire off a new event - this is fine if this is the only way

#

but was hoping there'd be just alike a pause or wait

fiery yoke
#

Udon runs on the main thread...pausing the main thread would be...bad.
So you kinda have to work around it.

daring vector
#

kk

midnight beacon
#

Is there an empty node that can be used to reroute the execution path in a graph?

floral dove
scarlet lake
#

When is 2019 lts actually releasing

dapper lion
#

Soon tm

cedar cairn
#

Soon™️

dapper lion
#

ye that one

midnight beacon
blazing timber
#

this graph couldn't teleport the owner to the destination properly, what is the problem?

grand temple
#

you cannot teleport other players. You need to send a network event to the owner and then the owner has to teleport themselves

warm blade
#

Any "Quest" supported players out there?

fiery yoke
warm blade
compact snow
#

Sorry guys, stupid question I'm sure. I'm having some discrepancies between in editor script testing and in game. The summary is, I'm instantiating from a prefab (using VRCInstantiate) and storing it in an array at run time. When I access the index in editor play-mode, it works fine. When I try to access it in game it errors with a null reference. Is there an obvious thing I'm missing from this scenario? The only thing I could thing of is that there's no networking happening, but should that really be an issue?

mighty fjord
compact snow
#

Yes sir

mighty fjord
#

So you're instantiating a prefab locally and assigning it to an index in the array only to then later retrieve it and have it yield null?

compact snow
#

This appears to be the case yeah. Ive got no proof that it actually instantiates properly in game, but is fully functional when tested in editor

#

Sorry i just looked over it and it's not as straight forward as I'm making out. The issue seems to be coming from attempting to call GetProgramVariable on the udon behaviour component of said object. I'll run some more tests.

mighty fjord
#

👍

craggy harbor
#

Is there any debug option that can track where is the RequestSerilization function being called? i have a Manual update behavior that just constantly being called and updated. And I'm 100% sure i didn't put requestSerilization into update or something.

#

🤔

compact snow
# mighty fjord 👍

Not entirely sure what happened, but now it seems to be working in game 🤷‍♂️

#

Thanks for the help 👍

hushed gazelle
#

Is there a way to ensure a value is properly synced on start before applying it?

fiery yoke
#

No, wait for the first OnDeserialization

hushed gazelle
#

Okay. All I'm looking to do is apply synced values on the joining player. Just do it via OnDeserialization even though I only really need it to fire once?

rain marten
#

Question: is the "Set UseText" Function broken in 2019 version?

#

If not, what am i doing wrong here?

#

The custom events are infact going through, or else the rest of the script wouldnt work.

midnight beacon
#

What is actually the purpose of setting a variable to, "Synced" if you have to use network events to manually handle the setting and getting of variables?

grand temple
#

network events are not required for setting synced variables

midnight beacon
#

So when you set a variable as "Synced", you're asking VRChat to handle the syncing of the variable in all cases?

grand temple
#

VRChat syncing is not based on a central server, it is based on ownership. So each player individually is the owner of various objects. If you want to set a synced variable, you would take ownership and then set it. Then the other players would receive that

midnight beacon
#

So with Synced Variables you need to be sure that the owner of the Networked Object is the one performing Set Variable event?

grand temple
#

correct

midnight beacon
#

Great, thanks for the clarification ^-^

#

I actually have one more question - what is the 'sendChange' checkmark next to Variables then? Im seeing it on variables regardless or whether they are marked as Synced or not.

grand temple
#

that does not refer to sending the change over the network, it refers to whether or not it will cause an OnVariableChanged event

#

if you hold alt while dragging a variable into the graph, you can add such an event

midnight beacon
#

Aaaah, got it. Thanks again 👍

#

I unfortunately have another question as it doesn't appear anywhere in the docs or Discord - whats the none/linear/smooth dropdown that a Synced Variable has?

grand temple
#

that refers to how the variable will be interpolated when it is received. None will just be set to the value immediately. Linear will slowly change into the received value. Smooth has an ease-in-out function

fiery yoke
#

That only effects data types that can be interpolated however

midnight beacon
grand temple
#

mostly floats, vectors, integers, stuff like that

midnight beacon
#

Got it, thanks again. Here's hoping the docs are a little more specific going forward 😂

fiery yoke
midnight beacon
#

Im actually writing my own documentation as I learn Udon so I can post it somewhere when im done

fiery yoke
#

Also their API design can often be misleading. My favorite example here is how VRCPlayerApi.TeleportTo takes a PlayerAPI as an argument, which would make you think that you can give it a player api, and it teleports the corresponding player. However TeleportTo can only be executed on the local client, so the argument is completely unnessecary, because you can only give it the local player for it to function.

midnight beacon
#

bangs head on desk

#

The moment i saw the fact that the API has Instantiate and a networked Destroy but you're apparently supposed to use neither and instead use VRC Object Pools, I got bad vibes.

grand temple
#

instantiate is totally usable, just not for synced objects

fiery yoke
#

Granted, that one (referring to TeleportTo) is a bit of a special case, but there is other places where the naming and the way arguments are presented can mislead you how to actually use the node/method, which are often not documented or are missing crucial information to fully understand what a method does.

midnight beacon
floral dove
midnight beacon
# floral dove that's legacy, will be deprecated

I guessed as much, it just feels misleading to have it when you're first figuring stuff out and there's no indication that it is bad. Would help if there were tooltips or something so you could say, "Hey, this is deprecated, use X instead".

lavish pasture
#

my game keeps timing out and i cant seem to be in a world for more than a minute tried steam client, oculus client and vr and non vr version. could this be my internet?

cold raft
#

probly yes, if you tried all these different clients its unlikely vrchat

#

sounds like a package loss thing, then you can connect normally but if you randomly drop packages you get disconneted

lavish pasture
#

what could help me then?

floral dove
lavish pasture
#

yeah sorry i couldnt find it

#

but whats udon?

cold raft
#

udon is the scripting engine used by vrchat worlds

neon rain
#

I have a script that is supposed to play a sound effect on particle collision. I think I have something wrong in the actual playback part, because when I use CyanEmu to force the collision event, nothing happens. Here is my script and setup:

scarlet lake
#

how do i fix this error and fix where i can use the show panel control because theres only one choice which is utilities

cold raft
#

The error is quite simple, the file mentioned udongroup.cs is not in a correct format

#

Since it is an udon SDK file, I recommend re-importing the latest sdk

native estuary
# scarlet lake

Don't try to ping 40k people for your problem even if it worked there's no reason to notify that many people of your question
Make sure you are using the right version of unity
https://docs.vrchat.com/docs/current-unity-version

floral dove
# scarlet lake

Hm, are you using the 2018 SDK in a 2019 project? That's where I've seen that issue before.

warm blade
#

Anyone who got any ideas about Mp4 files for the players?

floral dove
warm blade
worn verge
#

is udon just, like a physcics engine?

fiery yoke
#

No. Udon is a scripting environment. A physics engine calculates and resolves physics between objects.

worn verge
#

ah ok

floral dove
#

?whatisudon

hidden martenBOT
#

VRChat Udon is a programming language built by the VRChat Development Team for use in VRChat worlds! It enables complex behaviors and logic in VRChat worlds. Read more about Udon in our documentation: https://docs.vrchat.com/docs/what-is-udon

fiery yoke
#

I still dont like the wording "programming language" because its more than just that. I would call it scripting environment, but I guess more people know what "programming language" means and correctness doesnt really matter there.

scarlet lake
#

i tried both its the same error every time

scarlet lake
coarse parrot
scarlet lake
#

Sdk 3 but i have never changed unity at before this project has been working just fine I just open yesterday and this happened

coarse parrot
#

What is full version number for both unity and sdk?

broken bear
#

How sensitive is udon in reading humanoid bone rotation or position data? Can it measure 0.02 degrees consistently between frames?

grand temple
#

probably, yes. The only limitation would be floating point accuracy, and that would start showing up somewhere around 5 digits

broken bear
#

Thanks, I wanted to monitor for rotation over time, I hate to watch in an update loop but I guess that’s where this would go

chilly crater
#

How well do multiple VRCPickups work on an item? I'm doing two handed firearms.

grand temple
#

not at all

#

you need two separate gameobjects with their own pickup

chilly crater
#

I phrased that wrong.

#

I have it parented so it stays with it. You pick it up, it goes parent = null. drop it, it parents back.

grand temple
#

you don't need to change the parent

chilly crater
#

I have an aim constraint aiming the pickup at the secondary pickup.

#

I've saw that if I don't do that, the item tends to freak out.

grand temple
#

I would recommend using udon to make the primary pickup look at the secondary instead of constraints. Then you can better control when it happens

chilly crater
#

Yeah, that was going to the next question. Constraint does weird stuff with children.

#

It visually looks fine, but mechanically, the muzzle transform is still pointed in the original direction.

#

thanks

stark adder
#

WTF does that mean ?

scarlet lake
#

sorry for taking long i got busy and had to setup some stuff

coarse parrot
scarlet lake
#

i meant version

wanton palm
#

Hi does anyone know where I could get the sdk for unity 2019?

floral dove
#

the error about StyleEnums is caused by using the 2018 SDK in Unity 2019

wanton palm
#

Thanks

floral dove
scarlet lake
#

let me get something to show you

floral dove
scarlet lake
#

its me importanting the sdk and showing whats it does which this 2018.4.20

#

hope that make senses

floral dove
scarlet lake
#

3

floral dove
#

Which one, exactly? What is the filename of the unitypackage that you're importing?

scarlet lake
#

VRCSDK3-WORLD-2021.07.08.15.57_Public

floral dove
# scarlet lake VRCSDK3-WORLD-2021.07.08.15.57_Public

Ok, I recommend you try a clean install of the latest SDK. Download it from the VRChat website, close your project, delete the Udon, VRCSDK and VRChat Examples folders as well as the Library folder. Then open the project back up and import the latest Public SDK.

#

Oh and backup your project first, of course.

chilly crater
#

Step1 is always backup.

indigo finch
#

dunno if this is an udon question, but is there a way to add a link that people can click to open up a webpage or whatnot? I've got a discord link that would be awesome if people could click on it instead of having to manually typing it out

fiery yoke
#

Thats currently not possible.

indigo finch
#

I thought for sure I saw it on a booth map at one point...

fiery yoke
#

There is no supported way to do that. Period.

indigo finch
#

okay. Welp, thank for the help. Saves me looking around to no avail

grand temple
#

VKet can do it because they have a business agreement with vrchat. It is not available for the public in normal worlds

indigo finch
#

yea, make sense. Would likely be pretty bad with what you could link people to

blazing rapids
#

Hello, quick question with Udon, is it possible to create 2 areas (A and B) next to each other and players in area A can't hear players in area B and vice versa ? I tried some stuff but the best I was able to do is just to lowered the voice of players. (feel free to ping me to answer)

grand temple
#

yes, definitely

indigo finch
#

i cant remember if audio settings are done locally or gloabally, but you could always try reducing the audio distance

grand temple
#

they're done locally, so you can change how each player hears every other player independently

#

just setting voice far distance to 0 will basically mute

indigo finch
blazing rapids
#

Oh thanks, I will try to do something with this component

scarlet lake
midnight beacon
#

As far as i'm aware this is what happens when your internet connection is unable to stay connected with the VRChat servers. You should ask for assistance in #user-support-old though, this channel is for questions about Udon scripting.

lilac scarab
#

ok thank you very much

floral dove
daring vector
#

I'd like to pick someone's brain for this task I have. So in my world, in SDK2, I have a bunch of ground triggers around the world and depending on where you're standing, the one audio source jumps to the "speaker" near you. I'm sure this is doable in Udon with checking player position. Is this so? any rough idea what kind of nodes I'd be looking for?

#

So I'd like to set spread out speaker locations, and depending on player location, whichever it's cloeset to will get the audio source moved to tha tone

grand temple
#

you could do it in the same way by just doing onplayertriggerenter > set audio source location

daring vector
#

I'd like to avoid having a bunch of triggers all over the place. It gets messy and interferes with other triggers

grand temple
#

you could make it fancy and have a single script with an array of locations that would periodically check which one is closest to the player and move to that

daring vector
#

yeah, that's what I'd like, an array of locations and have it check player to see which its closest to, but without having to set triggers

grand temple
#

it's pretty straightforward. Just have an array of transforms and do a for loop. Do vector3.distance between each transform and the local player's position and find the lowest one

daring vector
#

okay cool, i'll make note of that. Thanks

#

I don't know how to do any of that yet, but that gives me some homework 🙂

grand temple
#

just keep a float representing the minimum distance and an integer representing the position in the index where you found it

#

before starting the for loop, set the minimum distance to mathf.max

#

if a distance you find is lower than the minimum, set the minimum to that and set the integer to the current for loop iteration

daring vector
#

Thanks

frank lily
#

whoa cool

#

let me just not

cold raft
#

you do know your linking you use a client that is against TOS

scarlet lake
#

Aaaah, think that's the issue?

#

Ah yes, the international law of VRC TOS.

cold raft
#

either way this is for help with udon world creation not with helping people who have issues with thier clients

scarlet lake
#

Nevermind the Trojan issue guys - clearly enforcing the ToS of VR Chat was the priority here.

#

👍

coarse parrot
#

Yes. Better not to talk about a thing that's against ToS in the official vrchat discord server👍

summer coral
#

If I wanted to pick up an object and drop it off at a specific transformation position, is there any elegant reccomendations as to how go about this?

#

I was thinking about using vrc pickup but I was wondering if there is some sort of on release method I can access

#

Ideally it would be on release
If pointing at a drop off position, drop else go back to OG position

grand temple
#

Yes, if you add a vrcpickup and an udonbehaviour, you will be able to use the ondrop event in the udonbehaviour

summer coral
grand temple
#

It happens on the same gameobject so you would naturally know where it's happening

summer coral
#

so in theory this ondrop will fire off as is now?

grand temple
#

Yes, exactly

summer coral
#

its so weird not seeing a reference to the object in the udon graph. Sorry total udon noob

grand temple
#

If you need a reference to the transform, you can just leave any transform slot blank. If you need a reference to the vrcpickup, you could have a public variable that you drop in manually or a private variable that you find on start with getcomponent

summer coral
#

okay that makes sense
so one more question if you dont mind.
Lets say im holding said object and I want to place it somewhere specific, should I check for a specific collider or is it possible to get a reference to the object im pointing to in an easy udon way or would I have to setup the entire raycast functionality?

#

At that point id rather access the collider

#

if I had to build the raycast system

grand temple
#

Like a slot for a key?

#

You can use ontriggerenter. That tells you what collider it entered into. Just check if that collider is valid with utilities.isvalid and then you can check the name. If the name is what you expect, that's the correct object. You could then set a bool variable that represents it is inside a valid slot. You would also use ontriggerexit to turn off that bool. Then ondrop, if that bool is true you can make it go to a specific location or you can reuse the collider's exact position

summer coral
#

yeah I basically want to take a GameObject(pitcture) from one board/wall to another and drop it. Its a silly mini game but good to get my feet wet with.
I have created a graph so far. Ideally I Think I would prefer if I can somehow point to the object instead of placing. (have to test the feels first)
I started messing around with the graph. and got something similar to what you suggested. I appreciate the help, but damn this a bit tricky my first go. I think I may have to break it up into a few graphs

#

I need to see if the collider of the game object I picked up is hitting the target collider first
Then on drop compare a string name perhaps, if the bool checks. apply new target transform

#

can I access the ontriggerenter in an udon graph of a different object or is triggerenter always on self?

grand temple
#

It's always on itself

#

I don't see any reason to split this into multiple graphs, you'd just overcomplicate it

#

Alternatively, instead of doing ontriggerenter and exit, you could do overlapsphere or overlapbox in ondrop. This will give you an array of all colliders in the area, at which point you could do a for loop to see if any of them match the conditions.

#

It would be more complicated but it would be more efficient and it would be contained in a single event, no need for multiple different events doing things separately

summer coral
fiery yoke
#

Tags are not usable in VRChat
Because of how Unity handles Tags

summer coral
rain marten
#

So, i didnt get a response last time, but any reason as to why this wouldnt be working?

#

As a heads up, im on unity 2019.

fiery yoke
#

That text is so hard to read...how do you even manage to do anything xD

rain marten
#

adapted.

#

I tried turning neon off but it didnt change the look

#

Its been off for about a week.
God have mercy on my existance.

#

anyway, back on point, im not sure as to why this isnt changing the use text when the events are fired.

#

The events are infact firing, but the text isnt changing.

rain marten
#

Understandable, day lol.

summer coral
#

Any ideas on how to connect these set of two nodes?
Not sure what to do here to check if the condition is true

grand temple
#

that's not really how things connect. The biggest thing you need to know is that you need to use the white lines/arrows to determine "flow" which is the order in which events happen

#

so right now this would do absolutely nothing because you're not using the flow from ontriggerenter

#

what you do have is the equals node, and that outputs a bool which is true or false. So what you need to do is add a "branch" node. This takes in a bool and allows you to split the flow into two different directions

summer coral
#

yeah I knew they wouldnt connect Im just not sure what to use. I know I am close long story short if the bool is true I want to reposition the gameobject.
A branch is a great start

#

Also thank you for your patience in advanced

#

everytime I drag out a while line nothing shows up, is there a system in place of what these are?

#

are all white lines events?

grand temple
#

drag it into the white arrow of another node like branch or setpositionandrotation

#

generally, nodes that do something have flow, and nodes that get something do not

#

if it does not have flow, it's not meant to. It's meant to work backwards in order to provide some information to something that does have flow

summer coral
#

Okay its making more sense now!

#

the last thing is to fire this on drop 🙂 cool

fiery yoke
#

Im pretty sure you dont even need that Get Transform

grand temple
#

yeah, all transforms, udonbehaviours, and gameobjects can be left blank if you just want to reference itself

summer coral
#

so this means if I leave on drop as is, nothing will fire off unless the drop happens?

#

oh got it nevermind

#

i see what your saying

grand temple
#

you can't really combine those two events together like that. What you probably want to do is set a bool to true from ontriggerenter and then use that bool in ondrop

summer coral
#

this.gameObject = blank reference

summer coral
#

@grand temple pretty sure I just sorted it out thanks to you. Thank you so much

grand temple
#

not quite. That's probably going to break. The branch is using variables that only exist in ontriggerenter, so when ondrop tries to access those variables it won't be able to

summer coral
#

okay I see an issue. Perhaps on trigger stay would be better

#

nah thats crazy expensive if it keeps firing after I drop it

#

I prob just need to set a bool to true on the on trigger enter and do the rest at the drop

#

I see, thanks again

soft mountain
grand temple
#

that would be unreliable if you have multiple overlapping zones. It could enter the one you want but then touch something else unrelated before it exits

summer coral
#

I was about to do something similar to what @soft mountain suggested.
I tried doing the sphereoverlap but trying to get that going was definitely tricky. I am still in a much better understanding now then when I started today.

soft mountain
summer coral
#

@soft mountain this was an excellent suggestion by phase but tricky as hell to implement especially me being an udon noob
"you could do overlapsphere or overlapbox in ondrop. This will give you an array of all colliders in the area, at which point you could do a for loop to see if any of them match the conditions."

soft mountain
#

Today was the day I learned those functions existed 😂 that’s gonna simplify so much!

summer coral
#

@soft mountain please share if you figure out how to implement. i never knew Unity had them in their API either. I knew about spherecasting but not overlap

soft mountain
summer coral
#

Yeah I usually just use MonoBehaviours this is my first time doing udon anything

#

or vr chat for that matter but ive been using Unity for about 6 years now

soft mountain
summer coral
soft mountain
#

It’s been getting updated to feature parity within a few days of every VRC api release for as long as I’ve been paying attention

summer coral
floral dove
summer coral
rain marten
#

Odd. That fixed it but its odd because it hasnt reset even after restarting the project.

floral dove
rain marten
#

That could be a good reason.

pure parrot
#

Anyone knows why the video isn't playing ?

#

It's a simple screen with just 1 video to play on launch

fiery yoke
#

You just want the video to replay when its finished?

pure parrot
#

nop

fiery yoke
#

Ohh I see what youre doing.
Or at least I think.
Youtube videos cant play in the editor, because it requires a third-party program to run, which only runs in the VRChat client by default.

pure parrot
#

welp that's problematic

fiery yoke
#

Also video players have an event called "OnVideoEnded" by default

pure parrot
#

is there a way to play it as intended ? I'll just move the timer somewhere else

#

oh

fiery yoke
#

There is no simple way to play videos with links that dont directly point to a media file in the editor no

pure parrot
#

o h w e l l

#

I have indeed that video in mp4 but i have 0 idea on how to play it

grand temple
#

wait wait, to be clear you realize that helper is talking about in editor

#

it should play just fine if you just play it in vrchat

pure parrot
#

oh

#

wait i don't understand what's the problem then ?

#

cuz the video don't play in game neither

grand temple
#

ok then that's a different issue

#

can you try the video player in the example scene?

pure parrot
#

damn there's a lot of nodes

grand temple
#

yeah, video players are complicated

#

it's a bit less complicated if you don't need to sync the URL

pure parrot
#

yeah i rlly don't need that at all

chilly crater
#

How accurate is the IsUserInVR check?

#

Can I just slap that in the start event, or should I wait for later to do it?

elder bridge
#

ok so i'm trying to make an object rotate constantly on the Y axis, watched the spinning cube example, watched tutorials and stuff, but i can't seem to get it working
how would you go on scripting that properly (using the graph)?

elder bridge
#

oooh

#

thank you

chilly crater
#

oof

#

I just finished making the graph too

elder bridge
#

none of those tutorials worked for me, so this is very nice

floral dove
chilly crater
#

Both are public.

#

You set the speed in rotationAmount.

#

Of course, if you want it synced, you should have an IsOwner check before the rotation and an object sync on the object.

devout dagger
#

What is udon?

grand temple
#

?whatisudon

hidden martenBOT
#

VRChat Udon is a programming language built by the VRChat Development Team for use in VRChat worlds! It enables complex behaviors and logic in VRChat worlds. Read more about Udon in our documentation: https://docs.vrchat.com/docs/what-is-udon

floral dove
serene solstice
#

Hello everyone

scarlet lake
#

Can controllers break

cunning mist
#

If you try hard enough

scarlet lake
#

Ok

daring vector
#

Is "Disable Station Exit" Still not togglable? I remember I couldn't get that to toggle through animation in SDK2 and just tried again in animation and also through Udon and I can't seem to get it to toggle.

#

I did a simple test, it's either not working or I'm doing it wrong.

#

the checkbox is turned off by default. This should make it so that when I sit, It checks that and I can't get off the seat - not doing that

raven crescent
#

Help please when I have question I try to play audio in custom world by using unity audio source play or just toggle play on awake and activate gameobject but it always crash vrchat

coarse parrot
autumn oriole
#

Is there a way to change the animation state inside the runtime animator conroller with udon behaivour?

grand temple
#

Yes, by setting animator parameters. Then the animator uses those parameters as conditions in a transition to another state

pure sail
#

In one of my worlds what people reset their avatars it makes the appear far above the ground and then drop. They spawn in ok, just when they reset. Does anyone know what causes this?

cold raft
#

i think this is more a issue on thier side with playspace mover

mellow hedge
#

Has anyone else been having big problems with video players in worlds on up-to-date SDKs? I've tried both Wolfe's and Merlin's player and even the most simple setup has unbearable hitching, crashing, weird sync issues. It's to the point were throwing events with DJ's playing on screen is impossible for us right now.

forest loom
#

short question:

is there a way to get the initial height of a players avatar in sdk3/udon?
i want to set the position of an object passed on the players height, so that tiny avatars can reach it for example as well.

floral dove
mellow hedge
floral dove
mellow hedge
mellow hedge
floral dove
fiery yoke
#

Ive been working on my own video player, and I also experienced some weird hitching of up to multiple seconds. However only on the owners site.

mellow hedge
floral dove
mellow hedge
fallen chasm
#

I've got a, hopefully easy, question...

there's a prefab in my scene with some scripting on it that can be toggled on and off by clicking a cube. It's not super clear how I can trigger the boolean without this existing cube, so I was going to do a quick an dirty fix by simply forwarding an 'interact' from a button to said cube.

Is there such a think in the udon graph as "forward trigger/interact" or "click this target" ?

#

here's my current graph, but there's nothing on the cube to accept OnPress so far as I know -- so I was hoping for a more general "click" action

floral dove
fallen chasm
#

yes, it's got an udon behavior on it that's triggered with a basic interact on a box collider/trigger

floral dove
#

you can use SendCustomEvent with the eventName _interact to trigger this. BUT - it of course would be much better to put that script on your button instead.

fallen chasm
#

I completely agree, but I'm not entirely sure how the prefab operates and there's a bit of a deadline so I just wanted to make sure it worked for the time being 🙂

#

dang... doesn't seem to take

#

for the sake of sharing details, the prefab I'm trying to remotely enable/disable is Reimajo's player pickup

#

which works fine in the scene -- I just want to make sure people can disable it at their liesure using a button on a settings panel (rather than a glowing cube floating in the air)

mighty fjord
forest loom
pallid mango
#

Is there an event to detect an LOD change on the gameobject? Or do you need to check every frame?

fading cipher
#

Is there any sort of impact or overhead for having delayed events that run themselves at the end so it’s an infinite loop of checking something every certain number of frames or seconds? Like if I’m doing this with 10+ delayed events nonstop?

#

Or is that a pretty good replacement for checking something in Update for instance

cold raft
#

missing onVariableChanged tho 😄

fading cipher
#

Well yeah okay true 😛

#

This is more for like monitoring the player state since we can’t actually interact with any of the player’s objects

#

For instance checking every 0.1 seconds to see if they’re on ground or not with a raycast, etc.

pallid mango
#

But it isn't garunteed to be regular

fading cipher
#

Regular as in what?

pallid mango
#

The length of time between events will be your delay time + execution time

fading cipher
#

Ohhh that’s okay, I could always go into frames too because it’s not incredibly important, but that’ll be once it’s actually written out.

#

I’m trying to finally get started on my anticheat, which honestly could probably go on VRCPrefabs after I’m done with it 🤔

pallid mango
#

And of course you'll want to garuntee that your code always calls itself. or the loop will break.

fading cipher
#

The idea is to raycast down to your ground layers every X time and if you aren’t on ground, set some bools so the next time it checks it can check your players vertical velocity to verify it’s falling instead of moving up or staying the same height

#

And that object will just follow the player’s hips probably

soft mountain
fading cipher
zenith hatch
#

Is there any car/driveable vehicle prefab i could download?

pure sail
dapper lion
autumn birch
#

So I've got a teleporter script that just moves the player from one area to another and it's working fine for other doors but with my new door it's like.. slingshotting me passed it and the velocity just picks up infinitely.. anyone know why?

#

nvm, was a sphere collider for a separate skybox that was the culprit.

pearl hill
#

So I have 2 objects that are able to picked up and moved around, a chair and a table. When the chair falls off the map, it relocates to it's initial position like players via default. but when the table falls off the world it does not. Is there a way to easily make the table respawn like the chair and players?

pearl hill
#

Ah, I forgot to add it to the table... Thank You!

scarlet lake
#

Is there a way to sync player tags? I am trying to make something where a player sets their own tag based on some conditions, and than the host processes each players tags, but right now the other players tags just return as null on the host

cold raft
#

You could ofcourse always implement your own tags with synchronized strings in an array

scarlet lake
#

I was hoping I didn't need to, since than I would need to make and keep syncing that to another array with player ids as well, but thanks

scarlet lake
#

Indexing the string array with player ids is working out for now, will see if it works with higher player counts later

rough sandal
cold raft
#

well yeah an array based on player id's will be fine, but be aware if you world is like max 20 players, a total of 2 * 20 + 3 players can join it so make sure the array is big enough

grand temple
#

Player IDs go up infinitely as they are not reused. IDs start at 1 and every time someone joins it adds 1

#

An array would not be viable if you used player IDs as the index directly

warm goblet
#

What's the right way to sync toggling gameobjects?

#

I have some particle effects under a gameobject that's toggled on and off by another object's udon behavior. The particles game objects has an ObjectSync on it, but the enabling/disabling doesnt sync.

#

I assume disabling it is disabling the sync as well. So I need to find some other way.

grand temple
#

Object sync does position, not state

#

For syncing a simple on/off, it's as easy as making a manual synced behaviour with a synced bool. When you want to toggle it, you take ownership, set the bool, (with sendchange) and then call requestserialization. Then you can use onvariablechanged to apply the state to whatever is being affected, whether that be disabling an object or setting an animator bool

warm goblet
#

thanks I'll look up how to make a synced behavior.

cold raft
# warm goblet What's the right way to sync toggling gameobjects?

since your asking for multiple objects, it could also be intresting to look into an VRCObjectPool not sure if its right for your usecase but what the pool does is it basicly synchs the active state, but only if you enable the object 1 by 1 using its spawn method

warm goblet
#

oh sorry didnt mean to do that as a reply

coarse parrot
warm goblet
#

thank you!

#

was looking for ctor string but that wasnt it

coarse parrot
warm goblet
#

yeah its what lets me just type in numbers for a Vector3, so assumed it was the same for a string :P

#

just noob programming confusions

coarse parrot
warm goblet
#

ok trying one way with these particles. I added a new behavior to the parent gameobject, with a gameobject[] variable, public, and set that to all my particle gameobjects. I then added to my other script, a variable of type UdonBehavior, and set that to my parent of the particles. I then did SendCustomNetworkEvent to tell the particle parent to run whichever event

#

havent tested in-game, but in-editor with CyanEmu it doesnt seem to be working

coarse parrot
#

Have you assign the object for ParticlesUdon variable in editor?

#

By the way, I'd prefer using sync variable to toggle state locally instead of sending network event to turn thing on and off.

warm goblet
#

So should the particles parent have that variable, or have it on the controller?

coarse parrot
#

Can be either way depend on how you do it.
If you have it on the controller then the controller should have an access to the particle component itself.
If it's on particle parent then the controller should be able to set the sync variable on particle parent.

warm goblet
#

so would that be SetProgramVariable?

#

hey that seems to work :D thank you

rich steeple
#

Anyone know how I can create animated text in udon? I'm trying to create onplayerjoin where hud text appears that "playername joined"

soft mountain
#

Hey, hope this isn’t a dumb question, but do object pools only work on single objects or can they also manage object trees? Like a root object with a few children, with udon behaviors attached

slim hound
mint jetty
#

Quick question. I wanted to set up some dumb script that would only show some debug settings if a player from a given list is in the world. Like, only showing stuff to people if a player by x name is in the lobby, etc.

As far as I can tell this 'is close' to the solution but I can't get it to work. Any tips?
This seems like a very easy problem to solve but Im horrible with udon :,>

grand temple
#

you have a for loop inside a for loop inside a for loop. That's probably not what you want

#

and you're borrowing variables from previous for loops, that's not going to work correctly

#

Just dragging a noodle from one section of the graph into a totally different section of the graph can cause problems because that variable may be different or not even exist in the other section. What you need to do instead is set a variable (like adding one to the list on the left) and then using it elsewhere

#

getplayers should be ran just once after onplayerjoined. As it is now, since you're pulling the noodles out into other places, getplayers is running many many times which is completely unnecessary

#

also you need to do a utilities.isvalid on every player in the playerapi array, otherwise the script will crash

soft mountain
grand temple
#

yeah, it's not making any new objects it just gives you an object that already exists

mint jetty
# grand temple getplayers should be ran just once after onplayerjoined. As it is now, since you...

Okay, so.

  1. How would I go about 'running getplayers just once' on join. Do I have to store the player names in some separate string-array? I dont really get what ya mean with that.

  2. No clue what you mean with doing utilites.isvalid. Does that mean only store the results from getPlayers IF isValid returns true?

  3. I assume what you mean with using a variable, is having a function that sets a bool "isaVIPPlayerinLobby" for use in other functions?

grand temple
#
  1. hold ctrl while dragging the players node into the graph to create a node which sets players. Plug getplayers into that

  2. Utilities.isvalid should run inside the for loop, checking every entry in the array. This is because some entries in the array will not be valid, like your array has 20 spots but if you only have one player in the instance, then 19 of those will not be valid. Trying to pull anything like displayname from an invalid playerapi will cause the script to crash immediately

  3. Yes, exactly. Set variables so you can use them later

mint jetty
grand temple
#

at the top, you still need to plug in your existing array into the getplayers. This is because it reuses the same array, it just populates it with players

#

and the node you're looking for is utilities isvalid. If it has a branch built in that's the right one. Playerapi isvalid is slightly different and not what you want in this case

#

and yes, this would set it for every player in the list so it would really only work if the last player in the array matched with the last name in the list. One way to fix that is to set the bool to false before going through the list, then if you hit a match, instead of setting the variable directly you could plug the string equals into a branch which then sets the variable to true

#

also you have a bunch of stuff disconnected, not sure if that was your intention or just work in progress. But pulling a noodle from a completely disconnected section into the main section is not going to work

mint jetty
grand temple
#

the second for loop isn't going to work. It needs to be connected with flow

#

you need to have the names loop inside the players for loop so that each player will be checked against every name

#

but you don't want the items loop inside that, it can happen after you exit the for loop

mint jetty
grand temple
#

yeah that's pretty close. Put it on the exit of the first for loop though

#

do you want it to disable the objects when a vip leaves?

mint jetty
#

Oh, yeah. I fixed it a second after I took the screenshot.
And I guess I do- couldnt I just plug onPlayerLeft in the same spot as onPlayerJoined?

grand temple
#

eh, it's actually not quite that easy because the player is still in the list for a single frame after they leave. You should instead have a custom event and onplayerleft do sendcustomeventdelayed so that it waits a frame before rechecking

mint jetty
grand temple
#

nope, that just refers to which udonbehaviour it should happen on. But it will reference itself

grand temple
#

yeah I think that should work

mint jetty
#

Aaaand it didnt work... ouch
damn

grand temple
#

got any characters in your name that aren't letters or numbers?

mint jetty
#

Nope. Its just "Apois", same capitalisation as in the list on the right

grand temple
#

after the isvalid, add a debug log to print the names that it's checking

mint jetty
#

With the message being the output of players[].get ?

grand temple
#

yeah

#

oh wait no, I mean the output of get displayname

mint jetty
#
  1. How would I read that log?
    2....adding that magically fixed it. And after I removed the log node, it just works now.
    Im so confused, lel
grand temple
#

it may have just not compiled last time

#

but you can find your logs in appdata/locallow/vrchat

#

if you want to add someone to the list but they have weird characters that don't work, you could check the log to get their exact name exactly how it should be

mint jetty
#

Noted-
But yeah, it all seems to work now.
Thanks for all the help and the patience man <3 really appreciate it

grand temple
#

cool! I hope it made sense why I had you do all those things

scarlet lake
#

anyone know how to setup the vrc8ball game

#

when already have udon because it keeps giving me errors and i dont know how to set it up

scarlet lake
#

NullReferenceException: Object reference not set to an instance of an object
VRCSDK2.RuntimeWorldCreation.Start () (at Assets/VRCSDK/Dependencies/VRChat/Scripts/RuntimeWorldCreation.cs:82)
[12:35 AM]
im getting this error does anyone recognize this?

grand temple
#

yes, that happens when you have a scene descriptor not set up properly. Try just dropping in the vrcworld prefab instead

native estuary
#

82 usually happens when you have multiple pipeline managers in the scene

soft mountain
#

Okay, a probably not so dumb question: Does making slow update loop with a function invoking itself later through SendCustomEventDelayedSeconds() add on the callstack and risk an overflow if left to run too long, or do events like that get their own callstack?

grand temple
#

those events get cleared as soon as they run, so it won't just continue to grow

#

I don't think a stack overflow is even possible in C#, though I may be wrong

#

or at least unity, maybe? idk

daring vector
#

If I want to instance multiple objects at once, how do I go about grouping them? I thought I could just link all objects to the one instance node but that doesn't do it.

grand temple
#

you'd have to put them in a gameobject array

daring vector
#

is that doable with udon nodes? or requires scripting?

grand temple
#

yeah of course

daring vector
#

Any suggestions on what to look for?

grand temple
#

gameobject[] set/get is different from a normal variable set/get

#

you'll have to search for it

daring vector
#

kk

soft mountain
grand temple
#

also you'll probably need to use the a 'for' loop to iterate through the entire array at some point, and to do that you plug the array's length into the "end" slot, which will make it execute multiple times, once for every item in the array

daring vector
#

okay, this is all a bit beyond me. I'll have to look into this some more. Thanks for pointing me in the right direction though

daring vector
#

I got the array made, I got the GameObject[] to GerLength and plugged that into "For" in the end int node. Not sure what to get out of that

#

The flow exit is Body and Exit

#

I assume Body is each of the game objects? but that doesnt make sense

#

I wonder if I need to pull a Get from my GameObject[] to reference that... trying that now

#

I think I got it sorted out now 😄 Thanks for your guidance @grand temple

late spruce
#

i have a question is VRchat coming to PlayStation

scarlet lake
#

That a maybeish

scarlet lake
#

Can anyone give me some tips on how to get a les big size for my world

#

Because mines 67 mb but I need to be way smaller like at least in 48

fading cipher
narrow cloak
#

any ideas what this means

mighty fjord
#

One of your U# scripts are failing to compile. Try to compile all U# scripts and check the console for errors and information regarding which script is running into issues.

narrow cloak
#

how do I compile all?

mighty fjord
#

If you can locate a U# asset file then you can select it, and in the inspector you should see a button that says "Compile All UdonSharp Programs".

narrow cloak
mighty fjord
#

Do you have the latest version of U#?

narrow cloak
#

yeah

mighty fjord
#

How about VRCSDK version?

scarlet lake
#

what could help less my world more

#

im now 61.23

#

getting there

rough geyser
#

Anyone familiar with making a VRChat card game for worlds at all, where the cards are randomized and can be drawn from an array?

#

(I know that you need to do arrays for it to work, but I’m more familiar with Udon, not Udon Sharp for scripting.)

grand temple
#

The object pool has a built in shuffle function

rough geyser
#

Do you have an example at all that I might be able to see? I always am a ‘viewer’ and a ‘do-er’ but following stuff in text I swear I’m dislexic hahah. ;3;

#

I’ve not worked with the object pools yet.

grand temple
#

The udon example scene has an object pool that automatically spawns cubes

rough geyser
#

Oh fair…Do you have the link to the example scene at all? Someone mentioned it before but I never was able to find it (Or at least, the updated one.)

grand temple
#

It's included in the SDK

rough geyser
#

:stare:

grand temple
#

I forget the exact path to it, but search for example in unity

rough geyser
#

Dang, well, I’ll have to grab that when I’m home then.

#

Thank you though ❤️

onyx granite
#

I'm maintaining two dif projects instead of switching back and fourth PC-Quest, if I want to add a new pickup do I just ensure they are in the same physical location in each scene? I thought there'd be an 'instance ID' etc in vrc_objectsync, and there is, but none of the IDs appear to match up between projects and yet are synced when ingame.

grand temple
#

yes, you need to make sure that network IDs match. To do that, the hierarchy needs to be in the exact same order

onyx granite
#

ahh got it, think I can make that work 🙂 Thanks!

neat garden
#

Idk if this is where I ask, but is there finally a cutout shader for quest?
Ping me when someone has answer.. o.o

autumn oriole
#

I have a problem with several udon nodes and manual sync, and found that this problem(variable not syncs) only happens when I disable the gameobject which has udonbehaviour inside it, so the question is, disabling gameobject affects the udonbehaviour attatched to it? I think udon behaviour itself works but some behaviour become very strange..

brave granite
#

help i cant find information about using the combat system in udon

slim hound
onyx granite
#

VRChat/Mobile/Particles/Alpha Blended

neat garden
#

I'm only doing models.. o.o

#

Idk owo

#

Thank you :3

onyx granite
#

anyone know how to make QVpens work for quest? found the 'ink_quest' material and set the shader on the 'ink' prefab to match, but quest players arent seeing anything when they draw ;-; wasnt sure if I should ask here or world since it's not native udon..

fading cipher
#

As in, a texture of an image with completely invisible areas is more intense than a cutout achieving the same effect

hushed gazelle
#

Is there a newline character that works in string variables?

fading cipher
#

/n

fading cipher
neat garden
#

I dunno how to use the alpha blended shader.. It broke.. 😅

hushed gazelle
#

@fading cipher interesting then, as it doesn't seem to work when applied from a UIText[] array.

fading cipher
#

That sounds like it could be a bug 🤔

hushed gazelle
#

Yeah, I'd say so. I'll canny it. Cheers for the help, wanted to make sure I wasn't using the wrong char or anything.

fading cipher
#

Nah that’s what I’ve been using so far and it’s been great for all my text needs yeah

hushed gazelle
#

Are you sure \n works? I've tried applying it from an individual text value as well rather than an array and it doesn't work either.

grand temple
#

that only works in U#

hushed gazelle
#

Ahh.

grand temple
#

it would be annoying, but I think it would work if you use string format and then feed in a const integer of 10

#

10 is unicode for newline

hushed gazelle
#

What can I use to detect particle collision on an object?

grand temple
#

onparticlecollision

hushed gazelle
#

Ta. I knew it was something like that, but i was digging into the colliders for it for some reason.

mighty fjord
#

For public fields I don't believe there's a way to input new lines directly, you'd have to interpret the new lines inside of the code itself

scarlet lake
#

how do i take a size down when everything is optimized but its at 95 when i need it as 50

#

which is very big gap

broken zodiac
#

I'm trying to build a teleport button with Udon, it works, but instead of taking me to the TeleportPoint I have placed, it takes me back to spawn...Any ideas?

My only guess is the TP point's outside the map? IDK how big VRC maps can be, I know they force respawn if you fall to far...which this point would be pretty far below the current world, is there anyway to change that distance even?

scarlet lake
#

and is vrc world right

#

for the main spawn point if so try

#

transform.localposition.localrotation

broken bear
#

In the vrc world settings, where spawn points are set , there is respawn height, change that around as it sounds like it’s teleporting them under that threshold.

broken zodiac
#

the main spawn point is fine and I just tried the localposition/rotation, but that...idk it threw me somewhere random...

scarlet lake
#

so how do i fix my world

broken zodiac
#

IDK if you have it already, but VRCWorld Toolkit has a "world debugger" window that shows tips to optimize, along with after uploading the world, the debugger will show the file sizes from largest to smallest, so you could see if you missed something being optimized and focus on fixing those files...

#

I also tend to reset the Dynamic Prefabs & Materials back to 0 on the VRCWorld object before uploading, just incase there are some left over pieces in there that are unused...helps to clear up space as well

scarlet lake
#

idk where to get the vrc toolkit

broken zodiac
scarlet lake
#

thanks

broken zodiac
#

everything you need is on that page, np

brave granite
slim hound
brave granite
slim hound
#

I would recommend storing health values as an int or something

#

Easier to do health additions or damage if you do

#

Then you can just do a conditional setup that uses this

#

After your own stored health value goes to 0 set the players health to 0 which will cause the player to ragdoll

pallid mango
#

Does the interact event cause ownership transfer? or only collision?

#

Can I assume the interact event was caused by the current owner?

slim hound
dawn plover
#

Hello! I'm trying to dynamically change the "isKinematic" value of a rigidbody with Udon, as far as I can see the logic is correct and it works in the Unity editor, but when I try it in VRChat it doesn't work at all. Is there some limitation or I'm doing something wrong?

grand temple
#

Could you share how you're trying to do it?

dawn plover
#

Wait, I think I found the problem, I'm guessing it's because I have an Object Sync on it, I was changing the values of the Rigidbody, but I probably should set the gravity/kinematic from the ObjectSync

dawn plover
worthy osprey
#

what is udon?

grand temple
#

?whatisudon

hidden martenBOT
#

VRChat Udon is a programming language built by the VRChat Development Team for use in VRChat worlds! It enables complex behaviors and logic in VRChat worlds. Read more about Udon in our documentation: https://docs.vrchat.com/docs/what-is-udon

daring vector
#

In udon, do I always have to add something for late joiners to see animation states? similar to SDK2's "always buffer"

grand temple
#

depends how you sync it. If you use network events, then yes you need to handle it manually by resending the event. All network events are AlwaysUnBuffered in that way. If you use manual sync, then you can just apply changes in OnDeserialization or in OnVariableChanged and late joiners will receive it in exactly the same way as everyone else

daring vector
#

oh interesting, that's new to me

grand temple
#

SDK2 synced with an event buffer, so if you receive 99 events saying on but then a single event saying off at the very end, the state will be off. It's kinda dumb but it can be robust to a degree.

SDK3 is completely different. There is no event buffer, it's all synced variables. Late joiners do not receive any information about what things used to be, they just know the current state. And you have to choose what to do with those synced variables

daring vector
#

okay

#

thanks

indigo wagon
#

hi, is there i way i can edit this teleport script to give the player slight forward velosity as they exit the warp box

grand temple
#

Sure, use playerapi setvelocity

indigo wagon
#

chears

#

are the xyz reltive to the direction or in global units?

#

its easy to test

grand temple
#

It's global

#

0,5,0 would go straight up with roughly the same as a normal jump. If you want it relative to a direction you could multiply a quaternion (as in, the rotation of some object) with a vector

indigo wagon
#

ok chears

#

would 0,-5000,0 just be rounded to VRC's terminal velosity?

indigo finch
#

Quick question, how would you sync and objects location? i know their use to be a toggle, and i also know there was a message later saying to use an example script... just cant remember

indigo wagon
#

i belive its this

#

at least i hope it is as i have like 20 movable goombas

indigo finch
#

thanks 🙂

indigo wagon
#

is there a wait someware in udon

#

cus i want it to wait roughly the lenth of the sound before i teleport

indigo wagon
#

Does Udon suport if statements

#

becase i have now clue how to do
if xpos of {Gameobject1} > 0:
Enable {Gameobject2}

coarse parrot
#

if is Branch node
xpos of GameObject1 is equivalent to gameObject1.transform.position.x
Enable {Gameobject2} is gameObject2.SetActive(true)

#

@indigo wagon ^

indigo wagon
#

chears

opal dew
#

I'm right in thinking Udon doesn't currently allow clipboard access? Both TextEditor and GUIUtility.SystemCopyBuffer() are not accessible so I can't put a handy 'paste' button in my UI. :/

marble lark
#

So this is a lil' dumb but: how do you make a variable Local Only? I presumed leaving Sync disabled would be all you need, but in a 2-client test it seems to always be syncing no matter what settings I use (i.e. disabling the Sync checkmark in the Udon Graph, enabling that sync checkbox and setting it to "None", setting the overall Udon Script to "Manual" sync mode... nothing seems to be changing.

coarse parrot
marble lark
#

Hmmm... A'ight, neat thanks!
On those lines then: does the "OnPlayerTriggerEnter/Exit/Stay" node count for any player in the world, or only the local player? 'cos if it's the former then that might be my problem.
(For reference: first time touching Udon in like a year, so forgotten a good chunk of it lol)

coarse parrot
marble lark
#

Ahh, right Ok - I thought the two-nodes-only setup I had was a bit simple. Think I've figured it out (boolean yes/no on "Is Local Player?"), testing now
Didn't work... I think I'm on the right lines though, thanks!

warm blade
#

Does anyone have a nice working door system?

floral dove
# warm blade Does anyone have a nice working door system?

There's a tutorial on making one here: https://youtu.be/95jRByYHE4Y

These features are currently available only on our Open Beta version - check our Discord for more information.

Learn how to make doors that automatically open and close to let players through. This tutorial will use the Udon Graph to work with Player Triggers, Haptics (aka controller vibration) and controlling Animators with Udon.

Music i...

▶ Play video
warm goblet
#

is there an easy way to check if a station is occupied?

#

from another object. I made a variable pointing to the VRCStation, but I dont see anything like "VRCStation.get occupied" or somesuch

wild obsidian
#

i am following a tutorial about synced toggles and when I try to choose the event name I can't

grand temple
#

that's because you have no events

wild obsidian
#

nevermind it was because the event was not plugged in

#

my bad

idle turret
#

out of curiosity is it possible to use udon to create a zero-g enviorment? Kinda where you would be able to push and pull while you have yourself float through an enviorment?

dapper lion
#

yep

#

you can set gravity to 0 and i think the default behaviour is to follow the cursor direction

#

how ever to speed it up. itll require vector changes

idle turret
# dapper lion yep

where would i find it. looking at vrchats udon documentation it has a getgravity but i cant seem to find anything to use it (im kinda new to udon 😅 )

slim hound
stray junco
#

hi

any way to find downloadable udon combat system
or how to create in udong graph and how

any video tutorial or example how to do that

any ideas ?

cold raft
#

nope none

#

all i know is that that vrcplayerapi has the combat system but i never did anything with it

stray junco
#

@cold raft
and maybe those nodes has some connection with damage system as well

#

i try to find on collider hit , receive damage and destroy on damage but nothing 😦

fiery yoke
#

You can make your own combat system (the only thing we cant do yet is ragdolling a player for which I made a canny long ago...).
Howevet how you actually make that Im not gonna answer.

stray junco
#

brilliant 🤒

opal dew
void ridge
#

I haven't used gravity strength, but I wouldn't be surprised if they work a little differently. VRChat doesn't say why we shouldn't use Physics.gravity, but I've taken the risk that one day it'll become unsupported

indigo finch
#

Anyone know if a spline tool has been made for udon? Want to make an object follow along a path without doing heaps of animating

autumn birch
#

Anyone have a fix/script for horizontal platforms sliding out from under you while standing on top of them?

cold raft
#

well the equal at the bottom seems always false as you compare a gameobject with a boolean

#

and udon set enabled need to be done on an instance of a gameobject so you want to connect an instance there

floral dove
stark adder
#

@floral dove Sorry for the ping but I do feel like you should see this player's username and
BEFORE SYNC:
syncedvariable = api.displayName;

AFTER SYNC- REMOTE
api.displayName == syncedvariable is FALSE

#

Basically destroyed instance of my world when he joined. You could not compare his name at all..

floral dove
#

Canny is the right place to put these things

#

does this break String.CompareTo()?

grand temple
#

I believe synced strings do not support characters above 127, or something like that. Not the total length, but the ID of the character itself

#

I would recommend using the playerid for most operations instead, that's going to use up much less bandwidth anyway

#

If I understand your use case correctly, then you could use name as a way to recover from players crashing and rejoining. But I don't think you need to sync that, you could just have everyone store it locally and then when someone new joins check if their name matches and if it does, the master gives it to them

stark adder
stark adder
#

Every single thing in my world is manual sync so limit is lot

#

Syncing maybe 3kb of data ?

grand temple
#

yes, late joiner A needs to know that they used to be the owner of house A, but does late joiner B need to know that?

#

if late joiner A leaves and never comes back

stark adder
#

Yea Late joiner B needs to know that

grand temple
#

as soon as player A comes back, the master could give the house back and then you could go back to using playerids, at which point player B would know

stark adder
#

as if late joiner B doesn't know that they could claim that house/ won't know who the owner of it is

grand temple
#

you could still say that the house has already been claimed, even if player B doesn't know who

stark adder
#

= Chaos

grand temple
#

ok, then sanitize the names

stark adder
#

Name like this should not be allowed anyway

grand temple
#

that's not the problem

stark adder
#

I'm just gonna make a protection and if the name is broken like this one is I'm not gonna let the player to claim house awhoknows

#

Not my problem that they are trying to break VRChat as they said

grand temple
#

there's nothing wrong about that name though. It's actually kinda common

stark adder
#

Seen thousands of people go through my world

grand temple
#

lmao nothing about that breaks vrchat, they're just trying to sound edgy

stark adder
#

Never seen anyone with that kind of thing

floral dove
#

that should handle proper comparison between strings with unicode characters, etc

fiery yoke
#

"identical characters", so yeah conversions can definitely mess that up

wild obsidian
#

uhh is this not good

void ridge
# wild obsidian uhh is this not good

I've been getting those errors too in at least one project recently. I hate ignoring them, but I do, and nothing else is going wrong that I know of. They clear when I try to clear them, so 🤷‍♂️

rigid hare
#

Hey there, I'm trying to figure something out.

I'm trying to get a screen to stream a certain website instead of just youtube.
I want to to stream twitch.tv but for some reason even when i get the texture and material going in the correct area it still doesn't show up in game or when i press play

noble cypress
#

I removed the Cinemachine package and I'm trying again

#

yeah, this is concerning. New project. Just released SDK and nothing else.

cinder glade
#

Yeah I can't load Udon Graph

grand temple
noble cypress
#

It's a feature, not a bug.

grand temple
#

not sure if those are the errors that can be cleared though. Are you sure you're on 2019.4.29f1?

noble cypress
grand temple
#

yeah, if you're getting this then all is good

#

it's just some errors that appear mid-import that are fine after importing

noble cypress
#

I expect another SDK release and possibly client release very soon 😛

wild obsidian
#

dammit does anyone know how to properly make voices louder in a certain area then

noble cypress
#

Gonna be some bumps, I think I'll upload stuff tomorrow

grand temple
#

eh, it used to clear those errors automatically but it was clearing too much so we chose to remove it for now

#

I'm telling you, it's fine. Just hit clear

floral dove
#

If you just imported the 2019 SDK and see some errors about assemblies not loading, press 'clear' on your console. If they go away, then everything's fine! Just some stuff happening slightly out of order.

floral dove
#

^we can refer people to this pinned post if they see the issue.

eternal badge
#

im trying to migrate over a project, but no matter what i do the sdk always breaks

#

ive tried just importing with the old one there, removing the old one then reimporting new one. neither works

#

ive followed the documentation exactly

#

cyan triggers also seems to freak out but im less concerned about that

zinc pulsar
#

Hey, I'm not sure if this is the right channel to do this and I apologize if it isn't but, I'm wondering if there are any "Up to date" vrchat udon (SDK3) unity tutorial Youtube playlists that will show me how to do basically everything (A large playlist full of tons of tutorials full of different things useful to know, because I'm tired of having to switch to different peoples channels and be taught stuff I was just taught) If so please DM me the "Playlist" or just send it by replying.

grand temple
zinc pulsar
eternal badge
#

hello?

opal dew
#

Is there a way in Udon(Sharp) to tell if I'm running inside the Editor (with Cyan) and skip stuff that won't work there?

grand temple
#

yes, in udonsharp you can do #if UNITY_EDITOR, your code, and then #endif

opal dew
#

Ah Cool

grand temple
#

code inside that will not even compile to the finished version

opal dew
#

Ah

#

I suppose I could have a 'inEmu = true' inside one of those in the start method. Then have other code check that before running.

grand temple
#

yeah, exactly

opal dew
#

I'm basically testing a video player control panel panel and I want to check it's behaviour and animation works even though the video player part can't work

vast locust
#

When upgrading to SDK 2019, Do we just drag and drop from SDK 2018 -> 2019 or should we still delete the UDON folder in the Unity Asset folder like before?

opal dew
#

Read the migration guide @vast locust

#

If you're using UdonSharp, ~terrible things~ will happen if you don't.

vast locust
opal dew
#

I mean, needing to recompile can't hurt really?

grand temple
scarlet lake
#

How do i start off with udon? i want to make a game world in VRC but i can't seems to find the right documentation for gettting fimliar with Udon. I found some channels making basic things but how can i advance?

#

Yes i have read the documentaite on vrc website but it gives a vague explaination of how to use udon

grand temple
#

If you're still struggling to get things to work, vowgan's tutorials are a great place to start. If you're already comfortable with throwing scripts together, it could help to go over unity's documentation on all the different functions. Most of the time, it is pretty one to one since udon uses all the same functions.

scarlet lake
#

So i should focus on game dev in unity first before making games for vrchat i udon?

grand temple
#

no, I mean unity documentation applies to vrchat development

#

because udon just exposes all the same functions

#

anything related to transforms, gameobjects, animators, it's all the same

#

the vrchat documentation is definitely lacking in some places, but if you want highlights I think these ones are the best resources https://docs.vrchat.com/docs/players
https://docs.vrchat.com/docs/udon-networking

scarlet lake
#

I have a bit of experience with 2d unity but yet to make a 3d games in unity.

cinder glade
#

Hey guys I hope someone knows the answer to this. I instantiate a cube and in my udon code I refer to const this so that the instantiated object can refer to itself but when I come across that code in action it says that it wasn't set as an instance of an object

floral dove
#

Instantiation is local-only, but you should be able to do things with the GameObject or Transform

cinder glade
floral dove
#

what properties are you trying to change?

cinder glade
cinder glade
floral dove
cinder glade
#

thank you

#

I will check this out and return if any problems arise

broken bear
#

if I take an int X , do request serialization, flow right to incriment X+1. would OnDeserialization propigate X or X+1. Should I instead do requst serialization, flow to a send delayed custom event (0.4) which does the incriment x+1 instead?

grand temple
#

setting a variable immediately after requestserialization will also work, yes. It will wait a couple frames before onpreserialization and onpreserialization is the last moment that you can change something before it will be sent

broken bear
#

thanks

zinc pulsar
#

I'll watch it later once I figure out the "Basics" cause I don't even know how to upload or make models.

grand temple
#

in that case you probably could start here https://docs.vrchat.com/docs/setting-up-the-sdk

indigo finch
# scarlet lake How do i start off with udon? i want to make a game world in VRC but i can't se...

Depends on where your at with your familiarity with unity. If your just starting out, I would look over the VRChat examples, and try and do some similar scripts to do simple things like toggle on and off a mirror. Once your feeling more confident, i would move onto doing small things that don't really have a tutorial, but are simple enough. And example of that would be something like a panel that players can change their speed, jumping and gravity stats and what not, or perhaps player voices; try making it global or not; try making it only master, etc.
After your semi confident in those sorts of things, I would move onto making simple codes by deconstructing others code. Look over a collections like seen at https://docs.google.com/spreadsheets/d/e/2PACX-1vTP-eIkYLZh7pDhpO-untxy1zbuoiqdzVP2z5-vg_9ijBW7k8ZC9VP6cVL-ct5yKrySPBPJ6V2ymlWS/pubhtml#, and find something that interest you and work of it. Perhaps grab Vogans 'VRoomba v2' asset and take the gun part of it, make a bunch of targets and make a simple arcade-like gun range or something. Only at this point can you really start making games that use some real logic, unless you just copy and pasting some assets and just using what your provided with (no real problem there either). I would highly recommend at this point (or even earlier if you have some past experience with c#) moving onto scripting with udon#, or at least getting familiar with it. You'll find that while udon graph is rather nice starting point, but the constant compiling in more complicated scripts really makes it slow to work in. At the start, udon graph nodes can be useful for understanding udon# too

As for the game you want to make, I would make a testing world where you just play around with trying to make different bits of logic for the world. Simple things like say a gun if it's a shooter. If your finding it's taking you ages to make, backtrack and make a world where you just play with udon logic, without a clear goal in mind to avoid burnout

rough beacon
#

how do i fix this and i think i may have good idea what broken

slim hound
rough beacon
#

yes. i was testing before i upload a patch

#

i think it the game board is broken

#

how i know. this told me

#

yup. game still broken.

#

now should be patch 🙂

daring vector
#

anybody experience users CRASHING from a video player?

#

using UdonSyncPlayer (AVPro)

#

I was just showing my world and I started a video player and by the end of the 1ish minute video, 2 people froze and crashed, and the rest of the 5 or so people did the same by the end of the video.

#

Just playing a video from my dropbox, I did have Use Low Latency enabled, and Enable Autoamtic Resync enabled.

rough beacon
#

i still try feel around with bug. it seem that i cant test my world but i will just upload my test world and see what happen

cold raft
#

well what kind of help do you need?

rough beacon
#

neat. i can upload it even knowing it will not let me test it. o.O

cold raft
#

oke so you make a colider, like a box collider and be sure to set isTrigger on it

#

then add an udon graph behavior on it', give it 1 public variable of type game object and name it like target (it will be the object to toggle on and off)

#

then you need the events OnPlayerTriggerEnter and OnPlayerTriggerExit for each of those check if the VRCPlayerApi they provide is the local player (as this event also triggers when your clients sees other players go through the trigger)
if they are the local player, then do gameobject.SetActive on the instance of the variable with either true or false

#

i can make the grapth but then i first need to load up unitiy 😄

rough beacon
#

i really do hate this

cold raft
rough beacon
#

thank you

#

it work. thank you

cold raft
#

you place the udonbehaviour on the same gameobject as the trigger collider

#

those events OnPlayerTriggerEnter/Exit will trigger when the collider this udon behaviour is put on its entered / exited

#

the only variable you need is to tell it which object to turn on/off

cold raft
#

That's outside my realm of expertise unfortunately

stark adder
#

Anyone had any problems like this ? Where quest goes into overheat

neon nacelle
#

my vrchat is crashing and i dont know why can someone help me? (im new here)

scarlet lake
#

Couldn’t handle your swag

indigo wagon
#

does Udon have an "Is active" Bool i can use in a branch?

fiery yoke
indigo wagon
#

there a block that activates and deactivates objects (basicaly makes them diappear)

#

i want to know if theres a way to check for it

indigo wagon
indigo wagon
#

found it

west star
hushed gazelle
#

What layer should I be using if I want an object to react to colliding with another player while held? MirrorReflection only seems to work on the local player, and doesn't even seem to work for just the receiving player reacting.

floral dove
daring vector
west star
floral dove
#

Thanks for mentioning it. Looks like the auto-resync checkbox is causing some issues.

twilit epoch
#

Does anybody else have problems with udon scripts (nodes only) after upgrading to 2019?

#

I checked my world after upgrading. Everything worked. The doors that i use for transporting to different places & back are fine. After changing a material from the door, i am unable to use the button/door to teleport.

#

This is for teleporting to a place

#

And this one is for going back to the beginning.

#

And yes, i uploaded it before changing something.

twilit epoch
#

FIXED! All i needed to do was to drag & drop all the scrips to the right targets etc.

indigo wagon
#

How would i go about makeing a moveing platform

indigo wagon
#

becase ive goten a platform to go to someware but not back

#

Wait NVM im stupid i can just use an empty to store direction

floral dove
indigo wagon
#

my question now is how do i make the platform move gradualy

#

so the player moves with it

broken bear
#

Up down is fine by animation, lateral movement is .... very tricky and there are a few solutions but none as easy as just animating it back and forth. Best solution I’ve experienced is small teleports

#

Someone recently demonstrated a teleport solution but I’m not sure on what update loop they did it

indigo wagon
#

so basicaly the solution is teleporting reltive

#

is there a way to get a local player into a game object?

#

or a way to add vector3?

#

surely theres an easyer way than this

sage ledge
#

Just updating my udon world to 2019 and cant seem to find the settings for player speed and jump impulse settings. Did they move??? Its not in the inspector any more for the vrc world.

grand temple
#

does it not have an udonbehaviour? Or does it have an udonbehaviour with no programsource?

sage ledge
#

It has the folder but the info is not showing in the inspector to change speed and jump values

grand temple
#

what do you mean by folder? Could you provide a screenshot?

sage ledge
#

Its just udon behavior folder in the project folders. Im limited in the amt of C# I know. Usually when I pull in the SDK, and select VRC World in the hierarchy, I can adjust those values in the inspector. Its missing.

#

Ive reloaded the sdk

grand temple
#

yes, I understand that something is missing. But to know what your problem is I need to know exactly what is missing. It could be a number of different things

#

screenshots would help a lot

#

do you have the vrcworld prefab? Does the vrcworld prefab have an udonbehaviour? Does it not have the right udonbehaviour? Does it have the right udonbehaviour but that udonbehaviour doesn't have any variables?

sage ledge
#

Hang on a sec. Going to go back to the old file

edgy ingot
#

I have a good understanding of C#, i just wanna know
where would i start with making an object follow a player
planning on having a "VIP" list of sorts that's hard-coded and I want to put a thing over their head (preferably facing the camera at all times, but i can just use a particle for that i'd imagine)
what would be the general idea/setup for that?

broken bear
#

Jetdogg’s prefabs has a follower prefab if I recall

edgy ingot
#

do you think a locked rotation and look at/aim constraint to the local player's head would work?

slim hound
#

Still a work in progress but I can send you the current version

sage ledge
#

@grand temple I had to create something in udon graph with noodles. Before the update the udon behavior would show in the inspector under VRC world. Since updating the sdk it is missing and has to be entered manually to show in the inspector

indigo wagon
#

0.0 a prefab that allows moveing platfroms

slim hound
indigo wagon
#

ill give it a try