#development-advanced
1 messages · Page 51 of 1
its made by valve, its intended to be used for any device inputs in SteamVR
Oh you meant OpenVR
yes
its literally part of openvr
and steamvr is built with openvr
its only natural to use all the tools provided to us
Do we have any idea when the OSC update will be?
No idea
I wouldn't be supprised if its bundled with the avatar update
Aka dynamic bones
or physic bones
whatever they call it
I guess we'll know when the beta for that starts
yeah probably
is there a way i can get an issue with vrc fixed , it's a major bug that just breaks part of my avatar cause of it and it's been unaddressed for years
What's the issue
Camera components getting deleted when a non friend copies the model.
This is normal behaviour. Cameras are only visible to friends
that's fine that they are visible to only friends but thats not the issue
MY camera gets deleted when another user copies my model
That's odd. I haven't had that issue before
i don't want to show the camera on non local anyway it's for a face cam or map or scope
if i load into a world that has my avatar in it , my camera is deleted
Hmm very weird then
its an issue that's been in vrc since 2018
I would imagine that issue is very low on their list unfortunately but it may be fixed eventually. Is there a Canny post for it?
there has been multiple cannys about it
Then all we can do is wait. It's most likely low on the list for updates
they all say the same as you did , that cameras are for friends only but that's not entirely the issue i want fixed
Make sure the issue is well documented in canny and clearly states the issue
if i made a canny about it , is it ok to post it here so people can help upvote it.
Sure I guess
Hello. Does anybody know if it's possible to put more videos playing simoultaneously on a vrchat world? If I put a video on a mesh on unity I can see from the game preview but not in the game. If I use Video Players with default link just the first I put is gonna play because I think ther's a limit
dont click this link above :/
The camera isn't actually getting deleted. I have avatars with cameras. I know what's going on. Two cameras are trying to render to the same render texture, and it appears that it's going by texture ID and not giving the copy a new ID, hence the copy tries to render to the original and both just break
So the issue would be that the copied avatar isn't getting a new ID for that texture, because that's how textures work. The original is referenced, not copied. Saves server space
so is there any way to fix this behavior ?
Vrchat would have to change something on their servers
Otherwise, probably not.
I doubt they'd change the system for one single type of texture
All the same, do make a canny post. Maybe it'll get a result
@peak mountain i just autostart xso with vrc now 
already made a canny back in 2018 , made another one 2 days ago
Can i post the links here to help get some attention to it ?
well here is the one i entered
https://feedback.vrchat.com/feature-requests/p/camera-component-destroyed-on-public-models
and here is another one that had a good amount of votes back in 2018
https://feedback.vrchat.com/feature-requests/p/toggle-for-friends-only-camera
I would recommend rewording the issue so it's clearly explained. Currently that post seems a bit unspecific
its a bit hard but i'll try . there is no way i can find out the exact behavior of what happens to the component.
there you go i made a valid bug report.
Does anyone have tips/breakdown on how to build out a HUD? I'm not adverse to some dense reading, but I'm dying trying to experiment to shave this down to be something feature rich and decently opto.
The usual way that I see is having a sort of mesh like a quad in front of the face. position constrainted to the neck and rotation constrained to the head. Only is visible if it's local and changes what it shows based on parameters.
I've worked out most of that, but I'm hitting an issue w/ the actual shader use. I'd rather not make a custom shader, but it seems like I may have no choice. I once saw a shader on Vrcat.club, but that site is dead as a doornail now and none of it moved to ask.vrchat.
think it was called "error's HUD Shader"
I guess I could bribe my buddy to program it, but eaargh.
Yeah the shader part is the most difficult if you want the HUD to change with only one mesh. Otherwise you'd have to use more than one mesh I guess
Hi 🙂 ! Does anyone know how to make one video player that plays 1 video at a time but can play different videos depending on what toggle is clicked?
Ok so Ima ask here since it happened again after scrubbing my project: If unity crashes on VRC Build & Upload, my world no longer uploads new versions; Only metadata changes (icon/name/description) get sent.
This is the second time it has happened and I don't have any recourse for fixing this.
How do I "fix" this without the lengthy process of reimporting everything into a new project every time?
I also get this when trying to build for Windows.
I've never had this many problems with the Avatars SDK, but the worlds SDK is having issues out of the gate.
It also throws Packages/com.vrchat.vrcsdk3/Editor/UPMImporter/UPMImporter.cs(48,18): warning CS0219: The variable 'importedNewPackage' is assigned but its value is never used everytime I try to build since the issues started reocurring.
Wouldn't a UI Canvas in front of the face be better? Allows you to use a variety of 2D UI tools built into unity (if this is a world we're talking about anyways).
unimportant, you must look for errors, not the orange warnings
I was. They were different every time. I've got it working now; an editor script from the asset store for creating light-probes wasn't marked editor only. Even though it was removed from my scene, and wasn't a constant editor script (that is, it had to be applied to objects), it was failing to "build".
Unity was just erroneously suppressing the key error until the third time I reimported everything. I also had to re-import udon sharp after it all.
Why it wasnt showing the error before IDK (it was all yellows originally outside of nonsensical reds). And the Android target would actually not throw any errors at all and report a successful upload (It wasn't; no world data would be uploaded; only metadata).
Adding the "if unity editor" tags to the scripts fixed it.
I'm getting tired of these editor script issues. Did 2019 change behaviors of editor scripts or something?
In short: The VRCSDK was erroneously "passing" builds on Android, and on Windows, was giving the wrong errors until I seriously cleaned my project.
Lyuma has one, neko animation group has one which is just a reworked error, and, errors is still around
I wonder if I can get poiyomi to do a hud shader so I can use less shaders..
Also smashter has been working to make lyuma's better
Hi, i am very desperate.. i keep getting this error
and when i change my settings properly..
it still puts them back to pixel light count 8 and antialiasing on when i compile the map through the sdk
Hi everyone!
Are there any plans for VRChat to be compatible with Unity URP?
Or maybe it is already...
no current plans as that would literally break all the content in the game
oh ok - thanks!
Hello, would anyone be able to help me with a RC Car system I am wanting to add to my avatar? The system I had in mind would be using a 2 axis puppet for moving forward, backward, and turning left and right. as far as making the car actually drive a certain speed I was thinking of using the trigger.
Hi! Do you have any external API for auth and pushing Avatar? or where I could read description about those API?
what are you trying to do? the answer is likely no
the answers yes and also its docs on it are unofficial
there are ways to do things but depending on what, it's better if they just explain their case
yup
Wear the avatars, we need users to authorise through VRchat, We get their current avatar, wear clothing, and send to current users of VRChat new avatar with our clothing
how could we handle this?
For mods, and for using undocumented features banned in vrchat. API for external use is not provided.
from their name and what they explained..
it sounds like they want vrchat to be secondlife
get an avatar, get clothes for an avatar
ok somebody knows to whome should I write a message about partnership?
I don't think this is possible with the way VRChat currently works
Specifically, getting their current avatar

does anyone know a way to bind a trigger click to a tracker button click?
through any means
valve RMAs be like
I believe the tracker button is only used for power and cannot be bound to anything
demonstrably false
So then why'd you ask?
🤦🏻♂️
I don't know if this goes here, but I'm trying to do some editor scripting and I CANNOT figure out what method to use to revert a transform. PrefabUtility.RevertObjectOverride() doesn't seem to do anything at all.
There aren't errors here, and no errors when my script runs in Edit mode, but--
...I mean, I'm really new, but, this is in the Editor script. This is happening in a method that I made and call with a button, not in Update or in my main script or anything.
Does that make a difference??
The point of my script is to help people calibrate quad rig avatars made on my base, I have my original avatar there and I expect people to use Pumkin's Avatar Tool to copy all my constraints over onto THEIR avatar while they're active. Since other people's avatars have arbitrary proportions, they get all smushed up by the active constraints getting applied to them, since the math is all wrong for them. So I'm trying to get this editor script to go through the list of troublesome constraints, deactivate the constraint, revert the transform, and reactivate the constraint...
If I can't figure out how to revert transforms, the whole workflow is gonna get stupider and more brittle from needing extra steps.
@light remnant
If by reverting a transform you mean setting it back to how it used to bewhen first imported, then I recommend looking into the code of Pumkin's or my method in reverting a hierarchy, both of which are present in pumkin's tools
Pumkin's is simpler but requires the prefab. My method is a little complicated and requires the animator's avatar to be present.
@naive peak does it make a difference that these are all nonHumanoid transforms that I'm working with?
nope
oh another tricky thing about constraints, I can tell that you're attempting to unlock them, let them update their offset, then lock them again. Sadly, it won't work with that way
Yeowza this (Pumkin's) is WAY over my head, I'll try to look though
Yes, I suspected it wouldn't;
I saw someone else digging into it and posting this huge chunk of code that got it done
right now I'm just trying to get this silly revert thing to work
which is a MENU OPTION a user can CLICK
so like, why should it be this difficult
the property you're looking for is constraint.locked, however for some reason, the constraints themselves need some time to update the offset after being unlocked
Yeah Editor scripting can be easy or the most horrible thing you do depending on the purpose 
Oh, is all they need time? Yeah I need to do "user presses the ACTIVATE BUTTON" on them
you can make the user press a button after a bit of time on an "Activate" button, which would iterate through the constraints you unlocked and lock them again
but then again, what if the constraint was inactive, what if the weight was 0
Yeah I think I'm gonna make three buttons or at least three methods
so many things to consider 
Deactivate all, BIG RED BUTTON that reverts transforms somehow, reactivate all
And, this is my personal highly specific base for being on 4legs so I do know the constraints
They're all active, they all have weight.
lol yeah some dumb things can usually work, I do it often
The point of the editor scripting is so people too frightened to do anything can still do it
so I can assume they haven't TOUCHED STUFF you know, to begin with
I see 
it can be as brittle as it likes, as a tool, I don't mind, it's still a huge improvement
I'll isolate my way of resetting an avatar and send it to you as a method, should be easy to copy paste then just call
ohhhhhhhhh my god, thank you
I can at least have a hope in heck of UNDERSTANDING the concept a little bit
The whole script works great except for this one super important feature...
luckily I already had it isolated apparently 
public static void ResetPose(Animator animator, bool fullReset = false, bool position = true, bool rotation = true, bool scale = true)
{
if (!animator.avatar)
{
Debug.LogWarning("Avatar is required to reset pose!");
return;
}
// Humans IDs if not full reset, otherwise All Ids
// ID > Path
// ID > Element > Transform Data
Undo.RegisterFullObjectHierarchyUndo(animator.gameObject, "HierarchyReset");
SerializedObject sAvi = new SerializedObject(animator.avatar);
SerializedProperty humanIds = sAvi.FindProperty("m_Avatar.m_Human.data.m_Skeleton.data.m_ID");
SerializedProperty allIds = sAvi.FindProperty("m_Avatar.m_AvatarSkeleton.data.m_ID");
SerializedProperty defaultPose = sAvi.FindProperty("m_Avatar.m_DefaultPose.data.m_X");
SerializedProperty tos = sAvi.FindProperty("m_TOS");
Dictionary<long, int> idToElem = new Dictionary<long, int>();
Dictionary<int, TransformData> elemToTransform = new Dictionary<int, TransformData>();
Dictionary<long, string> IdToPath = new Dictionary<long, string>();
for (int i = 0; i < allIds.arraySize; i++)
idToElem.Add(allIds.GetArrayElementAtIndex(i).longValue, i);
for (int i = 0; i < defaultPose.arraySize; i++)
elemToTransform.Add(i, new TransformData(defaultPose.GetArrayElementAtIndex(i)));
for (int i = 0; i < tos.arraySize; i++)
{
SerializedProperty currProp = tos.GetArrayElementAtIndex(i);
IdToPath.Add(currProp.FindPropertyRelative("first").longValue, currProp.FindPropertyRelative("second").stringValue);
}
System.Action<Transform, TransformData> applyTransform = (transform, data) => {
if (transform)
{
if (position)
transform.localPosition = data.pos;
if (rotation)
transform.localRotation = data.rot;
if (scale)
transform.localScale = data.scale;
} };
if (!fullReset)
{
for (int i = 0; i < humanIds.arraySize; i++)
{
Transform myBone = animator.transform.Find(IdToPath[humanIds.GetArrayElementAtIndex(i).longValue]);
TransformData data = elemToTransform[idToElem[humanIds.GetArrayElementAtIndex(i).longValue]];
applyTransform(myBone, data);
}
}
else
{
for (int i = 0; i < allIds.arraySize; i++)
{
Transform myBone = animator.transform.Find(IdToPath[allIds.GetArrayElementAtIndex(i).longValue]);
TransformData data = elemToTransform[idToElem[allIds.GetArrayElementAtIndex(i).longValue]];
applyTransform(myBone, data);
}
}
}
struct TransformData
{
public Vector3 pos;
public Quaternion rot;
public Vector3 scale;
public TransformData(SerializedProperty t)
{
SerializedProperty tProp = t.FindPropertyRelative("t");
SerializedProperty qProp = t.FindPropertyRelative("q");
SerializedProperty sProp = t.FindPropertyRelative("s");
pos = new Vector3(tProp.FindPropertyRelative("x").floatValue, tProp.FindPropertyRelative("y").floatValue, tProp.FindPropertyRelative("z").floatValue);
rot = new Quaternion(qProp.FindPropertyRelative("x").floatValue, qProp.FindPropertyRelative("y").floatValue, qProp.FindPropertyRelative("z").floatValue, qProp.FindPropertyRelative("w").floatValue);
scale = new Vector3(sProp.FindPropertyRelative("x").floatValue, sProp.FindPropertyRelative("y").floatValue, sProp.FindPropertyRelative("z").floatValue);
}
}
\o/
but as I said, requires the Avatar on the animator, this is automatically already present on characters that are rigged
I didn't know the Avatar apparently saved all this stuff, is that what you're taking advantage of?

Thank you so much, I hope I'll be able to get it to work, but I'm just glad there is a way to handle doing the stupid thing I want. And I am glad that it is this long, and complicated, and requires making a bunch of arrays and retrieving a bunch of saved default position stuff from a secret place and then just applying it to everything in the avatar. Makes me feel better. d:
It would be rough if I'd spent three days bonking my head against something simple.
No problemo and good luck 
nvm i saw you got the code from them
O-O
Imagine if that invite system behind external verification process would work, only problem is VRC dont have really invite only instances because anyone can share link
I want to create just thing where users can enter instances but only if they idk have role on some discord, if they are not banned in any way, sub rank on twitch or something more
Ingame itself prevents anyone dropping portal or inv anyone in Invite only instance but anyone in that instance can just share link and bypass that
After creating ticket to VRC i got redirected to create feature-request on feedback meanwhile 2 months after creating that its still not active soo thats uh
Incidentally, while I would REALLY have liked the targeted ability to JUST revert specific transforms... since Pumkin's tool already had Dreadrith's code Pumkin's tool of course works to reset my avatar XDDDD
However I have a new problem, I am trying to use editor scripting to get at some rotation constraint SOURCE weights.
Not ordinary weights--I've gotten at those, and it works great.
But I can't seem to get at the SOURCE weights.
trying to figure out how to paste code here...
if (GUILayout.Button("Enter Forefoot Pickup"))
{
Debug.Log("Well, I registered that the button was pressed.");
RotationConstraint rotationConstraintShoulderL = myAnyTaurScript.shoulderObjectL.GetComponent<RotationConstraint>();
ConstraintSource constraintSource0ShoulderL = rotationConstraintShoulderL.GetSource(0); //This should return the first constraint source, which is a transform identity and current weight of 1.
ConstraintSource constraintSource1ShoulderL = rotationConstraintShoulderL.GetSource(1); //This should return the second constraint source, which is a transform identity and current weight of 0.
constraintSource0ShoulderL.weight = 0.0f; //This should set that source's weight to 0.
constraintSource1ShoulderL.weight = 1.0f; //This should set THIS source's weight to 1.
RotationConstraint rotationConstraintUpperarmL = myAnyTaurScript.upperarmObjectL.GetComponent<RotationConstraint>();
ConstraintSource constraintSource0UpperarmL = rotationConstraintUpperarmL.GetSource(0); //This should return the first constraint source, which is a transform identity and current weight of 1.
ConstraintSource constraintSource1UpperarmL = rotationConstraintUpperarmL.GetSource(1); //This should return the second constraint source, which is a transform identity and current weight of 0.
constraintSource0UpperarmL.weight = 0.0f; //This should set that source's weight to 0.
constraintSource1UpperarmL.weight = 1.0f; //This should set THIS source's weight to 1.
EditorUtility.SetDirty(target);
}```
There are no errors here. I'm extreme beginner macaroni art still, so I'm using GameObject.Find().
And yet this button doesn't do anything.
myAnyTaurScript.shoulderObjectL definitely exists, I successfully get at its constraint weight elsewhere in this script.
I can't find hardly ANY documentation about getting at source weights, I guess nobody else ever tries to work with this...? Or if they do, they don't find it confusing. -_-
If anyone has any advice on things to try I'd be very grateful.
Right now I'm going: get the rotation constraint component from myAnyTaurScript.shoulderObjectL, then get its first constraint source, then get its second constraint source, then try to change the .weights of those constraint sources.
But nothing happens...
All I can think of to try next is make the constraint sources be public variables maybe??? But I don't understand why THAT would work, if THIS doesn't.
Man life is hard when your brain is the size of a walnut. I'm pretty sure they need to be public variables lmao. If that doesn't work I'll come back and ask again.
RIGHT OKAY SO.
I can currently change rotation constraint weights just fine. I added a bunch of public variables for the source weights I'm trying to change, and I handled them in the exact same pattern as I did the rotation constraint weights, which, again, I can work with just fine.
But nothing happens to the source weights when I click the button in the image attached.
I can follow the variables back step by step and each one is pulling info from the previous thing correctly.
Can I not... change source weights on an active rotation constraint?
I can do it manually no problem!
My horrible beginner code is completely working right now, but if I can't change source weights from Edit mode with editor scripting, I can't expand my functionality at all.
.weight even properly knows it's supposed to be for a SOURCE weight.
ConstraintSource is a Struct type, meaning it's passed on by value when called rather than reference and can't have its values modified after being set in the constructor.
Meaning to change this source's variables, you need to create a new source with the new values you want
The constraints have methods dedicated to manipulate the sources present on the constraint
Example of changing the source at index 0
I think SetSource requires you to have a source already present in index 0 though. Otherwise if it's new, use AddSource
Thank you so much!
Does anyone have recs for documentation to get started with developing a Unity plugin for VRCSDK? I've not done it before and all the resources seem incredibly outdated
What
You can have an apibot send invites to users
you can create oneclickjoins for users aswell where users can start the game to said instance or invite themself via vrc web
i have that already but if someone joins invite only instance
then can go to website and copy link to share to anyone
and bypass inv only stuff kekm
yup
thats a design flaw with the nonce system imo
nothing to do about that
@next citrus you can have a headless acc check for joined players
and make the bot contact an admin acc if a non invited person is in the instance
The bot can just kick the users that join without an invite since it likely can have a list of who is actually invited.
The (vote)kick endpoint is undocumented and not really working afaik and im p sure u cant kick ppl via the api
unless youre talking about using an avatar to crash them but thats an assmove
more isnt possible in vanilla currently
Oh no lol, I meant kick kick. Yeah didnt think about it, I shouldn't talk about things i've no experience in
best headless clients can currently do is sit in worlds, analyze their log and restart
You might be able to utilize udon tho and stuff like autohotkey
Like jump 5 times to kick the 5th user that totally joined or rejoin with a modified avatar float parameter and read that by udon
but idk if udon can even kick ppl
udon can crash users but thats maliscious imo
Who pung me in this channel
@naive peak everything's going great for me thank you so much with help with struct syntax for sources; all the stuff I need to do with them is working flawlessly!
However, now I'm trying to set ParentConstraint.translationOffsets, which is also a struct (Vector3[]) and I think I'm really close but I just can't figure out how to phrase what goes in these brackets:
GameObject.Find("helper.sit.parent.constraint.two").GetComponent<ParentConstraint>().translationOffsets = new Vector3[] { x = 0.0f, y = 0.0f, z = 0.0f };
when I have x, y, z I get an error about protection level of x y z
There's some weird stuff on my rigs that needs to be manually set to the hind hips on new avatars of arbitrary proportions, so I'm trying to add a parent constraint, zero it, and then remove it, to put things in the right place. I can add it fine, and even activate it, but I'm trying to figure out how to "zero" it
which I'm assuming is this way.
Are you only using the constraint as a way to force the object to be the exact same position as the target?
Yes.
You can do that by just setting the transform position
yourObject.transform.position = targetObject.transform.position;
Thank you, I just figured I COULD do it this way, but clearly like... not
You can but it's really overcomplicating it 
I'll explain why you were getting an error either way though
You were declaring a new Array. Meaning the object initializer, which is what exists between { }, must be populating the array with what it contains.
It's a Vector3 Array, meaning the objects inside would be declared as Vector3
an example would be
= new Vector3[] {new Vector3(0, 0, 0), new Vector3(1, 1, 1)};
OH! Okay!
Okay I'm on... my VERY LAST struct... everything else is working/I can handle myself with what I know already.
I have to synchronize a value across not only the avatar in the Scene, but an .anim file in the project. Apparently there IS language for doing this, the (float, constraint weight) curve info I want to change is treated as a struct (when it's an entry in an .anim file). However, the docs for 2019.4.etc say that I should be using SetEditorCurve/GetEditorCurve/etc, basically "EditorCurve." However I seem to only be autofill prompted for SetCurve/GetCurve, SetEditorCurve/GetEditorCurve error out.
If I'm reading the documentation right, using UnityEditor should give me access to SetEditorCurve/GetEditorCurve... why can't I get at them?
Once I get past THAT, I will then need to figure out how to phrase my value as a struct. Obviously I'm going to try to figure it out myself but if you know off the top of your head I'd really appreciate just being able to copy you. I mean like I WILL try. But you just telling me last time allowed me to make a ton of progress, really quickly ^^;
I seem to be able to put the clip into a local variable fine, but after that, I can't figure out the syntax for doing anything further to it.
@naive peak
I'm confused, what are you trying to do? 
You can add a property curve to an animation clip using SetCurve yes. You only need the curve binding if you're getting the information previously present on the clip and maybe change its values
SetCurve will replace the previously set animation curve of a property if the information matches, such as the property path and object type
The documentation is confusing me I guess, because it talks about this other method, SetEditorCurve...
Yeah, basically, I'm:
taking a constraint weight value, and changing it on the constraint itself, but ALSO in this .anim file I have, where it gets reset "to default."
So if I change the default, I need to update this .anim file.
Is the new value relative to the old value or do you already know what the curve would be?
I can set it new every time, I already know what the curve should be.
It's also a 1 frame animation too

it's like, for "utility" purposes
ok then you only need the SetCurve method
Are you modifying the constraint's weight or a source's weight?
Here's an example
string propertyName = "m_Weight";
float yourWeightValue = 1;
string pathToConstraint = AnimationUtility.CalculateTransformPath(yourConstraint.transform, animatorRootTransform);
AnimationCurve animationCurve = new AnimationCurve(new Keyframe(0,yourWeightValue), new Keyframe(1/60f, yourWeightValue));
yourClip.SetCurve(pathToConstraint, typeof(RotationConstraint), propertyName, animationCurve);
(Thank you, running errands, will implement)
Not strictly VRChat related, but has anyone attempted to port Shader-Motion data to a webGL 3D environment?
I remember seeing something about this on Twitter eons ago, but now I can’t find it.
Ok, so largely ridiculous idea to get around the limits on floats/ints if you need a fairly large number of them once the avatar dynamics comes out.
First, create a centrifuge-like arrangement that's invisible to everyone with a collider on the end that's spinning as fast as the network sync will allow (◊) that collides with a bunch of triggers that turn on/off a bunch of bools when collided, lets say a total of 8 for the sake of this example, with only one bool active at any given time.
There's exactly one float/int that is the target parameter that we want to update over the 8 values we want to be controlling.
Each of the 8 input sets to the float/int value (The other arrays of triggers being collided by some form of collision based on some linear or rotational amount) are turned on/off with the collision centrifuge so only one out of the 8 input sets changes the float/int value at any given time by way of turning on/off the input sets with a animation.
In the animator area, the transition to each animator is “If the corresponding one of the 8 bools is on, proceed”, which proceeds into a 1D animation blend tree, which is driven by the single float/int value we're wanting to use.(◊)
So in theory, you could “mechanically” multiplex 1 float/int into multiple float/int driven animation changes, with the sacrifice of update rate depending on how quickly we can cycle between all of the bools with the centrifuge. Myself, if I were doing this for the obvious purpose of animating a bunch of fingers on a wing + the elbows, would probably split this between two centrifuges with 5 flip-switch bools (4 fingers + elbow) each. Possibly for other things as well, but it remains to be seen if such a thing would in fact work.
Or, we could just have more network bits to work with. OR, or, I don't know, have direct axis rotation constraints making all of that effort completely redundant, that would be great too.
(◊) These two are gonna be the crux of whether this would hypothetically work. Former updating at a rate that's reasonable for largely real time movement, latter assuming you can in fact animate a thing to move and stay in that position that only changes to a new position when you tell it to move again.
There's much much simpler ways already
That sounds horrible for both performance and the user to set up
No for simpler, but yes and yes on the other two.
We straight up don't have enough bits to do things I'd like to do with what's coming. Or straight up we need direct axis rotation constraints so I don't have to go through that hypothetical nightmare.
You can already specify specific axis a Constraint affects
No, that's not how that works.
Plus, you really do not need more than 128 toggles
There is a big assumption that avatar triggers will not come with more parameter space - they'll be needing to fit in with whatever you've already got going on.
You can tell it to only rotate one or two axis, but that's still relative to the avatar space, not a direct "Y axis rotation on this object = Y axis rotation of this other object."
Those parameters will be built into the game. As in, they will most likely be attached to the component and many of the settings will be in the VRC settings themselves, not per avatar
And yes, when that limits you to 16 floats/ints, the first 8 of which are the only ones that get updated at a reasonable rate, that's not enough for anything once you need a decent number of them.
So we're getting a bunch of built in parameters for our custom triggers? How many?
question what are you trying to do that would require so gosh darn many toggles
Floats eat up space fast
Why do you need that many floats though
I don't know what Dragon's using them for, but I'm going to need a lot of floats for custom touchable UI effects
Drive back bat wings on a avatar with your IRL arms, then switch back to your 'normal' arms on the fly (Which because, again, no direct axis rotation constraints means you're severely limited to how you design your character if you wanted to do it now, in a way that doesn't look great, plus makes having the fingers spaced correctly impossible as the Unity Humanod demands your fingers all be straight with Knuckles controllers)
And other things I'd like to try, like driving tail movement with the difference between the hips and head/chest, plus generally having all of the other things a given avatar may have at the same time.
I've already seen that done with wings
And they all look less than optimal because of the previously stated limitations.
They actually look fine with no issues
Plus I don't know of any avatars that let you swap between arms/wings on the fly anyway.
The avatar I'm talking about can toggle the wings with the arms
No, they don't. None of them have fingers that flex properly, because again, no way to drive two things that aren't on the same avatar space axis of each other.
Why would you want fingers to not be local space?
You want the main axis of the finger you want to move, move the main axis of the wing finger you want to move, but you don't want the axis of all of the wing fingers to be in a straight line parallel to each other, because that's not how bat wings work. Which is what you currently are demanded to do because to set up a unity humanoid demands you have your fingers set straight parallel to each other.
You know you can set up offsets right?
Define "Offsets", because I've certainly never seen anyone use anything that remotely would be useful for this purpose, given again, the inherent nature of how the relevant systems work.
https://docs.unity3d.com/Manual/class-RotationConstraint.html
Constraint Settings
Those constraints define how far the starting position the constraint is relative to its normal starting position (The zero position), not how far off-axis the constraint operates.
Right but you can provide it the offset of the constraint transforms that you want it to rotate with
It will still rotate relative to the avatar space not the local axis-to-axis.
So for the sake of example, I want to have the selected pole rotate around its current X axis by the equivalent X axis of the other pole, represented by the two discs they're at the centre of.
So this is the desired result, as rotated manually by myself just now.
...So with the rotation constraint set up like so, with the Rotation offset and everything (Cylinder 2 being the other pole)...
...This is what happens. The rotation constraint constrained to the world axis (the avatar axis in-game), instead of the equivalent axis of the object we're constrained to.
That's the crux of my problem. It is not possible to get around this with the systems available that are whitelisted in VRChat, because no custom scripts.
You could probably do it by rigging something using FinalIK
Trust me, if you think what I was proposing was silly, the amount of jank required to get that working, in a far more limited and less functional capacity blows the suggestion above out of the water.
Is there currently any supported way to communicate with peripherals from VRChat? I heard some sort of API or communication layer was announced in a dev stream -- but for the time being would I just be on my own?
I think I saw an Udon world that would turn someones actual lights on and off so maybe look for that on Twitter?
Hmm I'll take a look, thank you!
is there a tidy way to sync a RenderTexture yet?
it's possible but there is no tidy way i know about really, what do you intend to do with it? what's your goal?
ok im really sorry to send again but its still brokeeennn I have an object in the scene with vrcobjectpool that this is referencing and its like messages that go on a ui, I know there are prefabs for this but its for a uni project so I need to show my working n that but yeah is there anything that jumps out as wrong here? it all goes fine for me, but doesnt appear for other players
Okay my explanation sucks let me rephrase clearly… just deleted a huge chunk of text… If I understand what you want, DragonSkyRunner, you can get close by this method, close enough that I don’t think you really need anything but what we already have:
Put your Humanoid arms flat tpose and then duplicate them. The dupes will be unweighted game empties, this is fine. Make a control bone/transform at the base of the shoulder bones of the dupes, put a parent constraint to the Chest there so your dupe arms are stuck to your Chest with a parent constraint but the shoulder transforms are free to animate.
Pose your wings flat t-pose as well, with your wing fingers approximating what the Humanoid fingers are doing as closely as you can stand since I know you rly want wing finger action. And, the wing fingers won’t ALWAYS be in such an extreme hand pose. This is just for when you’re using them as hands.
Rotation Constrain each of your wing bones with two sources, one to your arms, one to your dupe arms, to the appropriate bones. Fingers too.
Make an .anim that turns all your sources to real arms, and another that turns all your sources to dupe arms.
Activate your constraints at strength 1, first source at 1 to real arms, second source at 0 to dupe arms.
Now your wings will be your arms until you switch them to the dupe arms—here’s the key, ANIMATE YOUR DUPE ARMS to animate your constrained wings!
Do absolutely whatever is necessary to your dupe arms to get the effect you want.
Do it in Unity if you hate yourself, or make your extra arms in Blender or whatever and animate them with better tools (but you won’t be able to see how they drive the wings there, be ause Blender cannot actually do Unity style constraints).
Twisting and wrecking the dupe arms and fingers however you like will give you complete, if laborious, freedom to animate your constrained dragon wings which will SEAMLESSLY be able, since both sets of arms they’re constrained to are exactly the same in proportion, to switch between modes, active-following and animated.
You don’t actually need offsets unless you’re trying to re-use existing animations and you absolutely COULD, but you’d just have to add a little extra offset transform just stuck to each original-animation-wing-bone, and when you swapped your constrained wings to the anim offset transforms, you’d need to manually rotate all of them around until your constrained wings “looked right”.
Personally I’d just straight animate a set of dupe arms.
I actually just rigged a dragon model to use wings-as-hands but I didn’t constrain the wingfingers like I know you want. I will though, either a little later or tomorrow. I’ll show you how close I can get to decent behavior with this.
The wing fingers are always going to “rotate like” the Humanoid fingers, from whatever pose they begin in… rotation constraints aren’t arbitrary drivers of rotation, they ONLY do the one weird thing they do, yeah. So all you could do is reposition your wing fingers so that they would BE prepared to “rotate like” the human fingers, when it was time for them to do so. And then use the dupe arms to compensate for whatever weird stuff you had to do to them for them to have good hand-following behavior (in this case, the dupe arms, which you can animate fully arbitrarily, would act in place of a traditional offset). That’s the best that can be managed.
But it CAN be managed.
Hello there - does anyone know where to get avatars with facial and eye tracking implemented so I can test the HP OMNICEPT? Generic avatars not working. Thx in advance
Think you need to play Neos VR to take advantage of that, VRChat doesn’t support it yet.
People on Neos are super friendly and helpful though. Just show up anywhere there and ask.
and basically vrchat doesn't have it on the moment as they're trying to implement a input system in a general manner so they don't have to hard-code support for every weird widget
As far as the dupe arms being flipped between the 'real' arms and the wings, that was basically already how I was planning on doing that end of things. It's the "Pose your wings flat t-pose as well, with your wing fingers approximating what the Humanoid fingers are doing" that's the problem. For getting that fairly specific wings-on-back look, there's no real way to have them set up design wise that's not as I usually have my main guy, because of wing membranes and splayed finger positions. Any amount of trying to modify the wings to match up what the Unity Humanoid is set up like is gonna completely wreck the wings. And modifying the Unity Humanoid arms (the dupes) doesn't really work either, as it doesn't matter what angles you stick your limbs, the Humanoid always wants your fingers straight out parallel to each other, with flat hands and largely straight arms.
End goal is "Flip between IRL arms driving character arms and IRL arms driving wings", which if you constrain the design of the wings to follow how the Unity Humanoid sets up arms, it's very much possible now. But having parallel wing fingers, doesn't really work. Plus basically negates any ability to have large wing membrane surface area as the weight paint would become borderline more impossible than it already is.
The largely insane initial proposal above already is slightly more refined at this point to something that's not completely insane, but it still remains to be seen if there's any issues/bottlenecks going from theory to practical application. Thanks for the advice, but I'm still gonna gun for float/int multiplexing as that's still hypothetically the best way to get exactly what I'm hoping for with the systems available in the near future.

This is my neutral wings pose.
This is Chicken Dance with it.
To me, this looks more or less like what bat wings do. Those suckers can fold them up quite a lot when grooming themselves, etc.
This model had some challenges (all the wing fingers share the exact same pivot, and there's no "wing hand" transform so I had to do some weird stuff to get past that) but I think it still did fairly well.
I know you're extremely good at webbed wing weight painting, certainly the best I've ever seen, so if you don't think Your Weight Paint + simply learning not to do the things that really wreck it isn't good enough for you, then I concede the point.
This is my "constraints activate" wing A-pose, in this instance, as Potato here is currently rigged as an AnyTaur. Plus the A-pose arm angles I tried to match.
So long as this is the position from which the constraints are initially activated, the wings will perform like this as hands. You don't have to match the finger pose perfectly, but the closer you get, the more it helps (fingers will spread a little bit in-game). Here's an example constraint; every single constraint looks like this, the first source is to your actual Humanoid arm, the second (currently blank) source is for your dupe arms, which should have your Chest as their parent, and which you should be animating to do your wings-carried-folded, wings-spread, wings-flapping, etc., poses.
You are free to animate the dupe arms to get exactly the effect you want in your constrained wings. It won't be as straightforward as regular animation since you'll need to be moving them in ways that "compensate for" their initial activation as hands.
@finite fulcrum
Some options to deal with how very, very much the wing webbing is being expected to stretch around that elbow... this is full direct finger-to-wing-finger constraint. I'm gonna try to have only the wing index finger fully constrained to the index finger, and have the other wing fingers just try to maintain the curve, then try chicken dance again...
Okay I think I kind of crungled up the wing fingies, but the MAIN takeaway of this one is, if you constrain the pinkie wing finger as a stabilizer instead of as a pinkie, you can really reduce the stress on the membrane right around the elbow joint. Here the index wing finger is an index finger, and the middle and ring and pinkie wing fingers are just doing "partial to their index-finger-side neighbor, partial to stabilizer (the forearm)." THAT'S not the best strategy obviously but I have other stuff to do so I have to stop here ^^; again, takeaway is pinky-as-stabilizer reduces a ton of strain around the elbow joint.
Sorry, should probably put the same dance. Obviously too much is being asked of the ring finger in this setup, that's why it's failing to solve, but various strategies can be tried... straight hand constraint is most robust, and "I inherit rotation only from my parent, and my rotation constraint is partial weight to a stabilizer" is imo tied for it with being robust and p much never failing to solve.
Trying to constrain to neighbors who are constrained CAN work well, my wing feathers do it, but it's the least robust and may not be feasible at all for wing fingers, but like... don't give up... you should start from here and keep picking at it... I'm too busy atm but I probably will
I'm not SURE I understand why you keep referencing "carrying your wings on your back as a backpack" as a problem. Simply pose your dupe arms so your constrained wings go into that pose. I have... MANY... avatars that switch between wings-as-hands and wings-in-an-arbitrary-folded-pose. Unless I'm not understanding the specific problem you're trying to convey, there's... no problem! There's zero problem and you can simply do this.
Here's a differently-constrained, regular AnyTaur ver of Potato here swapping between hand-following and arbitrary folded pose:
He's swapping his wing constraint sources to dupe arms posed in a folded way.
If I wanted him to instead hold up his wings and idle them, like yours in your backpack, I would simply animate the dupe arms to be doing that. Right now they're just downstream of a constraint that allows each folded wing to inherit 0.5 of the Humanoid's same-side shoulder rotation.
The only issue one might run into here is when animating constraints you sometimes need a "wait state" at the beginning and end of each constraint animation, where it holds for a handful of frames fully constrained one way to begin with, and then at the end, holds for a handful of frames fully constrained the other way, because the values take time to "catch up" and if they don't get ALL the way there during the animation, a little bit of constraint to the prior thing will get stuck going forward.
Also, if you're expecting the wings to go from one pose to another pose they can "blend" through an inappropriate failure-to-solve state, if this happens to you, you have to have the .anim go, "Start out one way, transition to 0 weight and 0 source strength to everything, then blend up into being the other way."
That's it! That's everything I know about hand-following wing constraints that also need to go into other poses.
I genuinely thank you for all of the advice and visuals here.
It's so much more straight forward when the wings in question are practically parallel to what the human arm rest pose would be anyway, like you have with a quadruped set of wings on a back here, as everything lines up fairly naturally. When the wings are perpendicular (And at a angle) to the human arms though, it makes things far more annoying with trying to keep the mesh looking nice with all of the twisting around that's required, especially with the weights on the wing arm membranes to the body, and around the wing shoulders, are less than perfect.
Despite that, I might end up doing a "Animate wings into broken pose to match human arms when human arms are puppeting wings, with the expectation in-game the wearer poses the wings naturally." Which if it turns out multiplexing so many axis doesn't work out, I might just try. But it's the wing fingers that is the sticking point we can't get around with just constraints. Making it so it's just the pointer finger that is doing things and all of the other splayed fingers are loosely pulled along for the ride is certainly one way to handle it, but for me, this whole excursion is entirely pointless if I can't flex all 4 of my Knuckles tracked fingers on each hand and have that translate directly, on the correct axis, to the equivalent wing fingers at the correct angles.
Plus, while I have my primary use case, trying to multiplex as many floats and ints as I can get away with has practical purposes entirely removed from getting wings to look good. And for that reason, I really want to try to get 14/20 ints out of 2, for anyone else that needs a metric butt-load of floats/ints for things but literally can not work it with just 16, which leaves room for literally nothing else (In practical terms, only 8 when put into the first 8 parameter slots, as anything past that updates at a abysmal rate).
Also, Cynder when?
I was actually imagining that the absolute WORST CASE scenario with that model, if, with my new knowledge, I can't solve the ninety minusninety offsets, is I just use parent constraints to stick references all over the damn "original armature" from the outside. With all of them set to 0,0,0 rotation, and the FBT Humanoid ALSO peppered with 0,0,0 rotation references in the same way, the actual weighted Cynder model will only ever be having to swap sources between FULLY ZEROED TOTALLY THE SAME NO PROBLEM transforms. Goddamnit.
does anyone know if it's possible to make puppet movement but using my arm movement using blendTree?
Without using dynamic bones
for avatars? no apart from movement checks. for worlds? ppl can apparently catch button presses. try #world-development
Yeah I just saw! Thank you!!
is it possible to script in C# and actually use your own scripts on your avatar?
or does everything need to be done through Udon
You can use a tool called udonsharp to compile c# into udon
but udon cannot be used on avatars
Anyone got good config json recommendations for particles and dynamic bones?
Here's mine
How close are we to the new sdk update with the avatar dynamics
Does anyone know how to detect idling in steamvr? Eg last button input time
i mean maybe the log itself would eventually stop receiving entries right?
guess i'll just do it via the quest (have it send pings to my presence api when the screen is on), as its own idle lock based on head detection is good enough
would also finally replace the vr-check based on wether vrchat.exe is running with an actual check if the quest is unlocked :3
Hi, does anyone know if it is possible to batch upload avatar?
you might be able to write your own uploader with the file api endpoints
Guys, for some reason when using lyuma emulator my Float variable is getting over 1 when testing.. Any ideas what is going on ? Is this just the emulator or is this going to happen in game too ?
Does anyone know what layer the capsule collider for avatars is on, need it for particle collision reasons.
Is it possible to log the movement, button presses, etc, of everything you do with the controllers?
Reason I ask is because I am wondering if it’s possible to “wrap” the controllers and expose an alternative index controller to be used by the game.
I want to expose an openvr driver that simulates controllers, but I need input for it from other existing controllers and I don’t know how to do that.
Come to think of it, I think there's no exclusive lock on reading controllers is there? I could just write another app that connects to and reads a controller like any other game and just run them both simultaniously?
Hi Im wondering if anyone can help with Videos not playing in editor. They work fine when published to worlds but cant seem to get the youtube vids playing when in editor. Have tried adjusting firewall settings, making sure I have latest media packs, updated drivers. Still no luck. I have tried with various video players too.... Any tips?
WindowsVideoMedia error 0xc00d36c4 while reading (Youtubeurl)
Context: MFCreateSourceReaderFromURL
Error details: The byte stream type of the given URL is unsupported.
Track types:
So, there's definitely a way to do this, but heck if I know.
Particles colliding with/bouncing off of avatars. I'm guessing it's a specific layer that the avatar pill collider falls under, does anyone know what it is?
- Collision is only local though so you would see a particle go through them and on their end the particle would bounce off of them.
Layer 10, local only. Thank you. that's useful data to have.
hello..
Dude stuff appearing differently for the user client and for the observer clients is making me mald so bad
It's like "Ok, so on the user client everything works on but with the observer client 1 animation does not play.. I wonder what is going on from their POV lol"
Nevermind, on a second try the day and month advancement actually worked
But man syncing booleans so the result is the same on both clients is like
🔫
(Day of the week is out of sync here don't worry I was manipulating values)
What is this for?
A watch for VRChat avatars, tell (and keeps) time, date, month, year, day of the week and indicates leap years (and also takes them into account at February the 28th at midnight, so the calendar is perpetual)
I am also doing buttons for worlds that synchronize the watch with system time
You can do this much easier using the new OSC controls that VRC is finally rolling out soon
Not really, it still has to get the data from UDON
OSC has nothing to do with Udon
In fact, people have already done it in the open beta
I need system data for time, date etc OSC does get this data ?
Do you have examples ?
even if you can use OSC you need to put the watch into all the avatars
Well that's great.. All my work in vain now ?
I mean you could continue, since OSC requires an outside application to communicate the data. But it's way better for your use
my reply is to @cinder grotto
You have to do this regardless
I will probably do both, but first I will finish my own project
OSC only works for your own avatar right now
I have the buttons for the UDON Done already
Correct, but the values sync across network to others
Like I basically finished the prototype yesterday and it works well so I'm gonna go forward with it
i mean everyone can see your watch but I think what Fuujin is making is a watch for each player
I can do OSC later, it will just be different way to input the data in
No I am making a watch you can put on your avatar as a prefab basically
ah i see
nevertheless using OSC means you need an external program so its not really user friendly lol
Yeah
In my method you just either go to a premade world to sync the wath, or you can add the buttons to your world if you have one
it would be dumb to try to make something that's user friendly
Also manual time adjustment is provided in the avatar menu
OSC will be provided as a different means to set the parameters, some people might like it more, fair
OSC's power is to basically replace what mods were needed with instead external applications
This is really good because with support for QUEST, it means anyone with a quest can basically run external hardware attachments
Like perhaps slimeVR via quest through an external OST application on your laptop
I know, it's the direction VRChat chose so they can evade enabling mod support, it is a Good decision I think
Anyone know how i can trigger space calibrator manually? Im to lazy to look into the code rn
It is likely that many OSC plug-ins will be developed in the future, but if you use multiple plug-ins from different developers, they will have to create their own processes, make connections, and manage each one manually.
I think we need a plugin manager (or launcher) for non-developer users as soon as possible.
Im sure at least one person already made a generic parameter pusher gui
That's good! Is the repository public?
#open-beta-discussion message nvm i think thats a bit different https://cdn.discordapp.com/attachments/193818892613713920/944555755573506168/unknown.png you could ask them if they make it opensource
But in the best case a design like this would allow custom parameter names to be added by the users to be set and read
I have seen the message and screenshot you mention and it is a different tool than what I am thinking of.
The one you mentioned is probably a plugin that allows you to register hotkeys, but it is not a tool for plugin management.
But I think it's a very nice tool! I'll keep an eye on it to see if it becomes open source for reference.
Does anyone know precisely how floats are sent over the network? I'm trying to reproduce the algorithm exactly, so that the floats I send over OSC match perfectly to the floats that will be sent over the network. I've gathered that floats going over the network are actually 8-bit integers that get scaled from -1 to 1, but is it as simple as (byte)(x * 127) or is it fancier than that?
I have a custom controller, which uses the old Valve Index emulation, however I whilst i can "grab" things in other applications such as Neos and "The Lab", I can't figure out how to grab things such as pens in VRChat. What am I missing?
do it via osc and send stuff to /input/GrabRight ?
osc isn't out of beta yet, though.
Still, that's a good idea. 😄 I intend to send most stuff to avatars over OSC once it's available anyway.
the beta is open tho
Yes, but if I join it, I can't talk to my friends anymore!
fair
Incidentially, is there a standard convention for sending hand skeletons over OSC?
I've since discovered that I can grab things, though, but I have to select "use light touch" in VRChat's controller settings, and even then, it only works with the left hand.
idk ask in the closed beta channel or the osc discord
"the osc discord"? The OSC protocol has a discord?
sent dm
btw: i can recommend https://llamalab.com/automate/ if you guys do simple flow-based stuff on quest
Create flowcharts that make your Android smartphone or tablet perform tasks automatically.
like i just reimplemented my vr detection from windows into the quest itself. edit: nvm the quest doesnt support shell commands, so i used the "web request" block from the app. this one requires a failover block tho for failed requests when the device isnt online and additionally can use the "display on" check
Hi - I work for etee by TG0 and we are developing out etee controller driver currently. They are finger sensing controllers and we have the finger animations firing in most experiences such as HLA & Boneworks but we need some help with the integration of our driver with VRChat. I think it is a simple change on your side, I can send over the details but I need an active developer of VRChat to respond? Thanks in advance for your help!!
wrong way of contacting buddy.Try this instead
https://help.vrchat.com/hc/en-us/requests/new?ticket_form_id=360006750513
We've already logged 2 tickets without a response
they had a hello@vrchat.com mail in the past, the press@vrchat.com also still exists
OK will try those thanks!
sorry i dont know of any other way than the tickets and eventually through dms here currently.
currently your best guess would be to emulate the index controllers btw
or look at their upcoming OSC integration for custom inputs in a form of 3rd party protocol, but that might not be ideal at all
In the rules it says not to ping the team and if I try directly you have to add them as a friend to communicate which is blocked
We are emulating the Index controllers but there is a reference to etee that needs to be added in VRC directly
yeah just wait for the ticket answer
the problem is they get around 1k of these per day with a rather small team and need to filter and prioritize
sure, understand, thanks for your help.
they will answer eventually
OK cool
can anyone reccommend insanely good guides or even paid courses on project management
its my first time working on a serious world and managing nests upon nests of collection instances is already killing my fuckin head
the fact that ill need to think about how the UVs are going to work later alongside atlasing everything is worse
i can do everything else like texturing and modeling and even the process of unwrapping its just managing everything so i can have a workable environment while also preparing everything to be bundled and atlased later is not fun
Could anybody help me?
rip
Yep
any know why sometimes my frame rate doesn't match up with what OVRToolkit says my frame rate is?
Sometimes, I'll be running at 20-35% CPU, 60-80% GPU, and 70-80% VRAM, butttt my frame rate won't hit the target
instead it'll be at something like 60
if my CPU/GPU/VRAM were pegged, this would make a lot of sense, but it's still got a bit more room to push out additional frames--but it doesn't
compounding this though, is that OVR toolkit's built in FPS will often say that "yes, you are in fact hitting target FPS"
anyone have any clue what's going on/happening here?
this occurs even in worlds that only have me in it, so it's not a "public avatars suck" situation.
VRC will never hit above ~60% CPU no matter what you do. It's the nature of the engine and how it's built. If your GPU is not 95% or above, you are CPU limited. Also I believe the FPS shown in your overlay is not the same as what VRC will display since VRC can sort of 'throttle' itself while the VR environment runs higher
what are they doing, specifically to CPU limit it in such a way, and any idea why?
either case, that's kinda disappointing that a world like movie and chill, with 95% of the decals, object, feedback, etc turned off....I wind up being frame limited.
my CPU isn't even that old---i7 8700k
It's the way the game works. Unity is not great at multithreading and VRChat doesn't take every advantage of what Unity can do to multithread. Due to this, the game ends up waiting for things to complete on CPU which doesn't take up 100% of the CPU.
Also I feel you on the CPU. I have an i7 8700 and I can drop down to 20fps in packed instances. It's just that VRChat does a LOT of things in the background that require sync and time for the CPU
like, I can understand why I'm limited a lot of the time with respect to my GPU
I"m running a 1070 SC, so I''m often GPU bound and sometimes VRAM bound---it's pretty old by now
but as detailed above, a good 50% of the time, my frames will just be garbage in a world despite being at like 50% GPU and 60-70% VRAM and it's like "Uhh, what?"
the limitations of unity, I imagine, can't really be worked around----let's hope the dev team eventually takes maximium advantage of what they can do with respect to multithreading though
hopefully between that and phys bones, it'll go a long way to helping out performance
Unity is actually a very able engine to achieve great performance (Take a look at Escape from Tarkov; that game is made in Unity and looks beautiful and runs decently) but VRChat is such a complex game however with such unoptimized assets that it pushes it to the limits
yeah, I realize that a great portion of it is just---content creators being terrible at optimization of worlds and/or avatars
I just hope, one day, VRChat is able to make maximume use of the engine's performance, I suppose.
'cause right now it kinda performs like butt 😛
also, how rude of me, thank you for all the help, by the way.
Yeah it doesn't perform well and I'm sure it'll improve other the year
It's the motion smoothing that cuts the frame rate in half and pulls the next frame out of the hat (by guessing it from the previous frames) to make sure you don't stutter. This has nothing to do with VRChat.
Either take this or you reach your target frames but it is choppy and you perhaps get motion sickness
I have frame smoothing turned off because of how strapped my GPU budget is.
the circumstance I'm talking about typically occurs when I'm targeting 80 Hz, but it comes up a bit short and isn't halving or or engaging in reprojection.
I'll get 50-60 frames during these particular instances.
yeah that is the motion smoothing since you can't hit 80 smoothly even when its close
the motion smoothing option you see in the video settings of your HMD is kinda like "forcing" it
when you turn it off its still there but not as crazy as with it on
not sure about this but my assumption is that forcing motion smoothing will use more than just two frames to calculate in-between frames
the not forced will just cut your frames in half and use two frames to fill the gap so you technically still have e.g 120 but ingame it will show as 60
in these particular situations, rapid movement has jutter to it that is reminiscent of screen tearing (not quite though)
when it can't meet the target rate and goes "Forget it" and drops down to 40, I don't usually have this jutter
it's only when it's these weird in-between rates that I get the jutter
well its all super variable anyway, it differs from world to world and what not
but thats the general idea about why you are not seeing the frames that OVR tells you you should be hitting
idk where to ask this but im struggling to figure out/ find a tutorial on how to display your avatar on the side of your streams. People have mentioned using OBS OpenVR (which i have installed) but i dunno where to go past installing it
heres an image of what im talking about
Oh this is awesome! I'm adding the OSC outlet to my program!
You can project the ingame camera to the desktop, if you select the greenscreen it will render only avatars. You can use OBS to make the green transparent and only show the avatar
Yeah just add a camera component to your avatar with a few constraints like rotation
Or use the ingame camera and add it like that as Damien suggested
does anyone know what physics library vrchat uses?
it's just unity physx
ah thats what I thought
https://www.youtube.com/watch?v=7ouk8RsNCOM
Any way to reduce that?
What even is the cause of that? is it just a slow interpolation or what? the one going ahead is hittable area, and it does seem to be choppy like non-interpolated player position.
Can I change the interpolation speed if this is interpolation issue?
green is object sync, red is manual sync sending data every .2 seconds.
Maybe its a sweep?
Hello; I have an interesting dev question. Long story short, I want to run an account in-world that has no interactions with anything other than being in-world itself and reading data via Udon to put into the output log. This part is already mostly done and working; we're having it set up in the world so that, if the account in question is in it, it is teleported to a location away from everyone else and it just sits there reading the data it needs to. (Currently this requires an input trigger to enable, but this was only for testing purposes.) None of this is done by modified clients or anything like that, it's all Udon behaviours making use of the limited data it has access to and what has been created for in-world systems.
Just running VR Chat like this, even on its own, is still pretty intensive on a machine regarding GPU usage. However, you can run Unity apps headless, with no visible window and no graphics in-use (-nographics and -batchmode arguments passed to the executable on launch). Similarly, you can make it launch directly into a world if you know its full ID by putting it in the command line in the same way you launch from the website. There would be no issue here, except for the output log growing exponentially large with the following lines repeated very often:
at DŽDžDžDžDžDžDŽDŽDžDžDžDžDŽDžDžDŽDŽDžDŽDŽDŽDŽDŽDŽDŽDŽDžDžDžDŽDŽDŽDŽDžDžDžDžDŽDžDžDŽDžDŽDžDŽDžDŽ.Update () [0x00000] in <00000000000000000000000000000000>:0
2022.02.28 21:18:13 Exception - Object reference not set to an instance of an object.
at DŽDŽDŽDžDžDŽDžDžDžDŽDŽDŽDŽDŽDžDŽDŽDžDžDŽDŽDžDžDžDžDžDŽDžDžDžDžDŽDžDžDžDŽDžDŽDžDŽDŽDŽDŽDŽDžDžDž.DŽDŽDŽDŽDžDŽDŽDŽDŽDžDžDŽDŽDžDŽDŽDŽDžDŽDžDŽDŽDžDžDŽDŽDžDŽDŽDŽDžDŽDžDŽDžDŽDžDžDŽDŽDžDžDŽDŽDŽDŽDŽ () [0x00000] in <00000000000000000000000000000000>:0
at DŽDžDžDŽDŽDžDžDŽDžDžDžDŽDžDŽDŽDŽDŽDžDžDŽDŽDŽDžDŽDžDŽDŽDŽDžDžDžDžDŽDŽDŽDžDŽDŽDžDŽDžDžDžDŽDŽDžDŽ.Update () [0x00000] in <00000000000000000000000000000000>:0
2022.02.28 21:18:13 Error - [Behaviour] Caught NullReferenceException: Object reference not set to an instance of an object.
at DŽDŽDŽDžDžDžDžDŽDžDžDŽDžDŽDžDžDŽDŽDžDžDŽDŽDžDžDŽDŽDŽDŽDŽDŽDŽDŽDžDžDŽDžDžDŽDžDžDžDžDžDžDžDŽDžDž.DŽDžDžDŽDŽDžDžDŽDžDžDŽDŽDŽDŽDŽDžDžDžDŽDžDŽDŽDŽDŽDŽDžDŽDžDŽDŽDŽDŽDŽDžDŽDžDŽDŽDŽDŽDžDŽDŽDžDŽDžDž (System.Single DŽDžDŽDžDžDŽDŽDžDŽDžDžDŽDžDžDžDŽDŽDžDžDžDŽDžDžDŽDŽDžDžDžDŽDžDžDžDŽDŽDžDžDžDŽDžDŽDžDŽDŽDŽDžDŽDŽ, System.Single DžDžDŽDžDŽDžDžDŽDŽDŽDŽDŽDŽDŽDžDŽDžDŽDžDžDŽDžDžDŽDŽDŽDŽDžDžDŽDžDžDžDžDŽDŽDžDŽDŽDŽDŽDžDŽDŽDŽDŽDž) [0x00000] in <00000000000000000000000000000000>:0
at DŽDžDžDŽDžDŽDŽDžDžDŽDŽDžDžDŽDžDžDžDžDžDŽDŽDžDŽDŽDžDŽDŽDžDŽDžDŽDžDŽDžDŽDžDžDŽDŽDžDŽDŽDŽDžDŽDŽDŽ.DžDŽDŽDžDžDŽDŽDžDžDŽDŽDŽDžDŽDžDžDŽDŽDŽDŽDŽDŽDžDŽDžDŽDŽDŽDžDŽDŽDžDžDŽDŽDžDžDŽDŽDŽDžDžDŽDžDžDŽDŽ (DŽDžDžDŽDžDŽDŽDžDžDŽDŽDžDžDŽDžDžDžDžDžDŽDŽDžDŽDŽDžDŽDŽDžDŽDžDŽDžDŽDžDŽDžDžDŽDŽDžDŽDŽDŽDžDŽDŽDŽ+DžDžDžDŽDŽDŽDŽDžDžDŽDŽDŽDŽDŽDŽDŽDŽDžDžDžDžDŽDŽDžDžDŽDŽDžDŽDŽDžDŽDŽDŽDŽDžDžDŽDžDžDžDžDžDŽDžDžDŽ DŽDŽDžDŽDžDŽDŽDžDžDžDžDŽDŽDŽDžDŽDŽDŽDžDŽDŽDžDžDžDŽDžDŽDžDžDŽDŽDžDŽDŽDŽDŽDŽDžDžDžDŽDžDžDŽDŽDŽDž) [0x00000] in <00000000000000000000000000000000>:0
at DŽDžDžDŽDžDŽDŽDžDžDŽDŽDžDžDŽDžDžDžDžDžDŽDŽDžDŽDŽDžDŽDŽDžDŽDžDŽDžDŽDžDŽDžDžDŽDŽDžDŽDŽDŽDžDŽDŽDŽ.DŽDŽDŽDŽDŽDžDŽDŽDžDŽDžDŽDŽDžDžDŽDŽDŽDžDŽDŽDžDžDŽDžDžDžDžDŽDŽDžDžDŽDŽDžDžDžDŽDŽDžDŽDŽDžDŽDŽDŽDŽ () [0x00000] in <00000000000000000000000000000000>:0```
(After running VR Chat this way for an hour, the log was a lovely 500mb in size.)
I get that VR Chat isn't normally meant to run this way, considering it's a fully visual experience, but is there any way of either supressing these from the output logs while still keeping other messages? It's obviously doing so due to being run in this way, with no graphical interface, but it would be incredibly beneficial to be able to run it like this without these errors just constantly appearing every millisecond. As mentioned, no part of this is an alteration of the client itself, and I'm just wondering if this is something that could be fixed with regards to these messages in the output log.
-nolog should work in launch params
I tried it, and it actually was still producing a log amusingly, so probably something wrong in my command line there; the other issue is, though, is that we still need some data from the log accessible, output by the Udon behaviours we have.
Just.. not these many, many null object reference errors.
Well I don't believe there's a way to remove just the errors
Maybe try running in batch mode without -nographics?
This will initialize graphics properly, but still won't display anything as it's in headless mode
I have that set too
VRChat.exe --profile=2 --no-vr --enable-debug-gui -nolog -nographics -batchmode is the current full command line I have
Remove -nographics
okay, I'll give it a go
still the same thing, I'm afraid
at DŽDŽDžDžDžDžDŽDŽDŽDžDŽDžDžDŽDŽDžDžDžDŽDžDŽDžDžDžDŽDŽDžDžDŽDŽDŽDŽDžDžDžDžDŽDŽDŽDžDžDžDŽDžDŽDŽDž.Update () [0x00000] in <00000000000000000000000000000000>:0 ``` et. al.
Seems to just be a VRC thing then. Definitely not meant to be in headless mode
I don't believe you can do anything about the errors
A pity. Ah well.
.. maybe I'll put something into feature requests for it, ha ha
nah
I doubt they would do it since it would require a LOT of code refactoring for an incredibly small feature that maybe 5 people out of the 100k people would ever use
Indeedy
Ah well, thought I'd ask to see if anyone had any ideas about it, in case there was a way to fix the issue or prevent those specifically from appearing.
Also a part of me is curious as to just what is causing the issue specifically, what said null object references are.
No way to tell since VRChat is written in IL2CPP. The logs don't actually output the parts of code that give the error. This is evident from the names being that garbled mess of characters
Ah, also a pity.
Ah well, ta for the explanations and such. I'll have to think of other ways to get this running as optimised as possible, ha ha.
@dry rampart when i was getting vrchat to work in an emulator, where i had no graphics card (ie, i had onboard intel graphics exposed to the emulator as just VESA…)
I found i was able to achieve nearly 11 FPS by running it in desktop mode and shrinking the window down small - so that the game resolution was tiny.
A bit late on the reply to this but excuse me what in the fudge
I was trying to access a particular world, but none of my computers ran windows at the time.
It was an "information" world - so lots of posters, etc.
Ahh
Is there a feasible way to dynamically generate navmesh during runtime or use static navmesh dynamically at runtime?
I have a dynamically generating map (Fixed map of rooms and hallways) that can generate over the course of the map existing
Wanna see if its feasible to use native navmesh or if I'll need to design my own solution
Is navmesh even allowed in the SDK?
To my understanding yes since a few maps have mentioned having it
Hey!
I think this question fits here a bit better than the Udon-Questions.
I got a question about VRChat Quest and Webrequests
I'm trying to retrieve some NFT images to show in a world through webrequests in Udon, but it keeps saying that it doesn't have support for the async await function
Is there any way I could still use a webrequest to retrieve those images?
Thanks in advance!
I note that advertising nfts are not permitted on vrchat
That wasn't the goal
The goal is to figure out what is possible inside of VRC
No profit and no advertising
But thanks for notifying
but from what I've seen generally no on dynamically loading images using web request as like most of the prefabs I've seen before like loading a event calendar end up basically being a video player with a really low frames per second
Ahh, well I'll just keep an eye out for any solutions in the future
Thanks for the replies!
HttpWebRequesting cannot be used in Udon. AFAIK there is no net function to retrieve an image anymore(SDK2 did have a way but it was removed in SDK3)
Just bake in a copy of an NFT image in the world?
All the NFT itself does is just prove you own it. At least, in theory.
Ahh that's a shame
Thanks for the reply tho!
Yeah, I was thinking of just downloading a json file for the contract and retrieving the images beforehand
But that isn't officially implementing NFT's, that's just setting a downloaded image as texture
At the end of the day, it's going to end up as a texture. How you retrieve it has nothing to do with the end result
Does anybody try new dynamics+animations?
For sleeves as example
funny you should ask... I'm running into a possibly related problem.
I've tried disabling the script via animations. This does stop the dynamics, but bones don't return to resting position.
I've also tried adjusting pull/spring/immobile/gravity via animators -- this appears to work in the inspector during playback, but seems to have no effect in the viewport or in game.
I wonder if this is just a beta issue that will be fixed later?
Any help regarding setup with phys bones??
that would in open Beta discussion
yea but every time I do ask no one responds 
well they're not going to respond in here
Just a basic rundown of the new PhysBones system and what the different options do to the bones, as well as how they could be used in an animator. I did forget to mention gravity but DO KNOW that POSITIVE values correspond to negative force on the gravity slider. For example, 1 would cause the bones to have a force that causes them to go down to...
Hi,
I started to put together a course with the "Obstacle Course" kit.
(I only use my own models)
However, I just noticed that if I turn the HUD off and then back on, the last "action" is stuck in the display.
This is unfortunately the same in the original game, so I didn't screw it up. Has anyone managed to fix this yet?
VRCLens question: has anyone ever tried animating the drone along a path; like setting up a defined rails system? Would that be possible?
I have a mobile event avi, and would love to implement something similar to cinemachine; but with AV3.
Please let me know if this belongs in a different thread. Thanks!
Newb question here! Hello to all! I was wondering what programming languages I should learn for Unity Development. Anyone?
C#
What does C# control within Unity? (what can I do with that in a general basis?)
basically everything. every MonoBehavior (any "script" that you'd apply to an object to make it do something), every editor script that modifies how the Unity interface works, etc
it is the language to know in unity (aside from shaders if you're going that route)
Thank you!
https://github.com/vrchat-community/UdonSharp and if you're doing in World scripting for vrchat you would be using this
i'd recommend getting the hang of C# before trying U#, though. a lot of the helpful stuff that visual studio does when coding C# can get in the way with U# currently. stick to the udon graph until you understand the basics of C#
oh yeah good point
In simple terms what is UDON?
udon is a visual scripting environment that's a "safe" way for people to script in VRChat. it limits what kinds of behaviors that people can write within VRChat to prevent abuse. prior to this, you were more or less stuck with a whitelist of scripts or functions you could work with.
you can think of it as a subset of C#, sort of
I still have lots to learn it seems! Haha. Thanks for your help
yeah definitely lots to learn with like game development stuff
I am a female going into college and majoring in computer science this coming up fall. I am nervous about it all and I know it will be a struggle. But I want to specialize in VR development, it's where my heart is. VRChat opened a new world for me since it has been so hard for me to find something that I am interested in.
The math and being the only female in my CS classes is my only concern. lmao
having a personal stake in it will definitely help you learn this stuff. too bad about the demographics in your CS class, but don't let anyone stop you.
out of curiosity what would you like to accomplish in vrchat once you figure out the stuff
the math stuff will come back to you eventually. sometimes you just need the right application for it in order to really retain it. linear algebra and trigonometry are the big ones in 3D / gamedev
I fell in love with VrChat and it's possibilities. My main focus is to make VR more immersive in general. This means the avatars as well as worlds and their functionality, their physics. VR has so much potential and I want to work with a group of people to help further that.
just wanted to check because if you're going to get into Worlds and avatars you would also need to brush up on like real-time Graphics rendering knowledge stuff
I still have LOTS to learn. This summer will be full of projects for me.
you'll be fine. just start small and build up from there. if you're personally interested in it, you'll figure it out.
like if you wanted to try making a vrchat map make like a small bedroom to start
Definitely!
a handy website compiling vrchat development knowledge
Sorry for the late response. Thank you , I really appreciate it!
wanted to ask and see if it would be physically possible to have for example a bar, kind of like the form of a monkey king bar thingy. That has physics meaning i push it against the ground and the colliders stop from clipping through and the character pushing it down goes up depending on how hard you push it down. Possible?
While I'm unsure if that would be doable with a standard pickup object, I once came across a world that had huge mech arms attached to one's avatar via a station that one could "sit" in, but could still walk around and such... but the arms worked similarly to what you described, could slam them on the ground to fling yourself up. So I'd say your idea is probably possible as well
would it be possible in an avatar? or just in your own made world?
I don't think that would be doable on an avatar itself, unfortunately.
sounds like something i could request for a further game update? avatars having working colliders with the world
i believe people would have some cool ideas with it
welp, it was a good try. ill see what i can do, far as i know ill just have to ask as a request for a game update
I checked in Search but couldn't really find anything, does anyone know how to return PhysBones to rest prior to disabling them?
Well, for my use case, it looks like I don't need to turn the script off at all anyway, I can just set everything to 0 and Pull to 1 and it will return to rest.
im tryna run a vrm through unity and it aint working :/ (I work with a Mac btw)
Im currently making an undead ashe
Good day can someone help me. My acount of unity dont let me loggin
if theres an expert here who can help me i will pay you
but i need results
Anybody know if Temporary Pose Space affects the Upright Parameter?
Like if I make my height lower than crouching level, will it still count me as being crouched?
At that point isn’t it better to just sign up for another account (assuming you do this for personal use)?
So someone on vrchat canny was claiming udon users should be good enough to do things in world development like set an avatar to do a motion. I am trying to figure this out. What udon/unity code should I use to rotate a avatar’s right hand when they are holding a pickup object that has a udon script? My hope is when I click on the left click of a mouse (I think it’s called on mouse down) that I can rotate the desktop user’s hand so they can rotate an object they picked up.
Is there even a way to get the transform of the avatar/players’ hand?
PS I tried creating a udon graph for rotating the game object already it won’t work when it is held in hand for some reason it just flips back to the rotation of being held.
Desktop users can already rotate objects, it was added in an update ages ago
Really??? Damnnnn I did not know that there are keyboard controls for them UIOJKL. It’s not even written on the keyboard layout for vrchat.
Yeah idk why it's not in the docs
Hmm I am trying that out now but nothing is happening with the items in hand
You hold them I believe
Ah i found out the ‘allow manipulation in hand’ has to be checked on, thanks man!
Ah okay cool
Quick question for anybody with the authority to answer it.
I run an in-game event every Friday night.
The list of people attending is growing every week.
The issue is that it becomes a pain to invite everyone 1 by 1 and can take up to 10 minutes depending on the night.
I have experience with programming and noticed that the API for the VRC webpage is exposed and theoretically for anyone to use.
Could I get banned for making a script that invites everyone on my friends list at the beginning of our event?
The plan is to use it once at the beginning of the event, and there's no intention to spam it.
There is a small segment in #faq about API use and what you're asking is likely permitted
Though the VRChat website already has functions to create instance links that allow people to invite themselves
how do i convert my dynamic bones tp pysbones
#open-beta-announcements but that won't work on the normal version of the game
Anyone know how I can make a sword damage a player? I saw a tutorial but it must be outdated because it was for SDK2
VRC_CombatSystem is Deprecated
I have two controllers connected to Steam, why does VRChat misdetect the second set of controllers as a "waist tracker"? (and why is it ignoring the type of device it is?)
In addition, as a developer, how would I "Mute" this second set of controllers as OpenXR Toolkit hints they do?
We suppress the VR controller inputs that are normally reported by the OpenXR runtime. We are going to replace these inputs with our own.
Sounds like that was a dead end as VRChat doesn't do OpenXR? Any other possible avenues?
You can disable FBT in the quick menu options panel. Things get a bit more complicated if you still want to use FBT though.
That's exactly the complication, what if we still want to use FBT? Eg, I have a friend who plans on using SlimeVR.
if you use the ik beta, that second set of controllers will be used for elbows, which will work but will look bad
That will indeed look quite bad, why does it get used as trackers though? And is there something that I could do with an overlay or as part of the driver implementation for the primary controllers?
because it is a tracked device. Tracked device = tracker
It's still a controller, though.
it's a really really jank hack in the first place to be using a full controller just for the position data and then creating a second set of fake controllers
the proper way would be to have control over the firmware of the tracked device so that it can be presented as one and the same as the glove, without introducing a second set of controllers
I don't see either Oculus or Steam allowing that. :/
However... Even if we did have the tracking situation sorted and did our own tracking (which is a huge amount of work and cost), there's still teh issue that it woudl still be present as a device, isnt' it?
I don't see a way to tell the Oculus HMD to disable all of it's controllers.
for oculus, yeah
I mean oculus just doesn't support anything remotely like that
at least steam has a way, albeit expensive and complicated
This does make me wonder why I can't configure this stuff at the steam level - again, similar to how OpenXR apparently does it.
another option though, if you're using full body and you don't want bad elbows, you can also just get actual elbow trackers. It will pick the tracker that is closest, so it will use that and ignore the one on your hand
Oh, that's an interesting possibility - so you're suggesting to work around the hack by... Using more trackers than vrchat supports so that it maps the closest trackers to the closest places and ignores the rest?
yeah
or it's also possible that you could simply hold your hands far enough away from your body like straight forward. It has a maximum range that it will look for trackers
in the ik beta
That's an interesting possibility, too.
Other than neos, are you aware of any other games that deal with FBT?
sword and sorcery
I don't think Neos binds this second set of controllers to anything.
Blade and Sorcery, you mean?
right yeah
Nifty. Looks like I'd have to pay for that... Worth it on it's own right? I'm deaf, so I would want to know if you reckon I can play it without any audio?
eh, if you're into that kinda thing I heard it's pretty good. I am not into that kinda thing, so I don't have it
I don't actually haev FBT (yet), though, I'm mostly wanting to see how things other games that do use FBT interact with this.
I'm into uh... Nethack...
(VR is quite a step up)
Anyway, thanks for that. I still think it should be configurable, but perhaps this is something really for Steam to deal with.
In the mean time you've given some excellent workarounds. 🙂
well the reality is that there are many ways to handle it in the latest VR frameworks, but vrchat is not using the latest VR frameworks because it's extremely complicated to upgrade such a thing when you have user generated content especially with custom shaders 😅
Yeah... That's a separate debate, though. 😄 Giving content authors the ability to basically do whatever they like that does have its pros and cons.
(On that topic, I'm going to be intrigued to see if VRChat ever supports PSVR and Apple VR - over the next decade or so, anyway...)
I sincerely doubt apple and Sony with play ball on arbitrary content upload like vrchat does
Would depend on the nature of that content. VRChat's content is very arbitrary, and contains code, it's that code that's the bigger deal in that particular case.
Mod support has long been a major aspect of the Elder Scrolls series, and while this has remained the main focus for PC gamers, the feature slowly worked its way onto Xbox One too, and after much debate with Sony, it's also made its way to PlayStation 4, albeit in a severely limited fashion. Sony wouldn't approve the modding system for the game,...
basically no custom assets allowed on Skyrim mods on the PS4 and vrchat has nothing but custom assets
That's mods, though, but I would suggest that if eg, VRChat allowed you to define avatars with only a .blend file (as an example), and didn't expose the unity api to content providers, it'd go a long way.
(But would it still be VRChat? I dunno...)
that wouldn't help at all as you would still be able to do like loading copyright-infringing content
No, but it would put you in line with the developer agreement.
also Sony is probably not in the mood to give every vrchat user a PlayStation developer license you even be able to upload content in the graphics format the PlayStation knows
Wow, is that what Sony would require? I only know iOS, myself.
I don't see how vrchat can work on playstation yeah, esp when you need a PC to upload avatars
as much as we would want it since it's good hardware :<
yes you're not able to access the PlayStation Unity stuff without a developer's license
Yes, again, you wouldn't be able to expose the unity bits to the content creators.
basically rendering like 90% of vrchat inaccessible to the PlayStation players
and vrchat is not going to go through the effort of uploading everyone's Avatar/worlds is to to circumvent Sony's licensing
VRChat did go through that effort for Quest, though. Unfortunately, they'd have to do that again for the other platforms because they didn't restrict access to unity.
(So it's quite possible that VRChat will never support additional platforms - but we're being somewhat hypothetical here)
you don't require a special developer license to upload Android content
so that would be way more additional effort on Playstation compared to the quest
You also don't require a special iOS developer license to upload iOS content for iOS apps.
you kind of need though?
As an example, I could use a family tree app, and I don't need an iOS license to provide additional family trees even if those peolpe in the family tree have different media contents.
the only other platforms vrc ending up on would be any android-based VR headsets
Another example - Duolingo constantly has new content as well.
apple would probably be even less hospitable than Sony
You definitely can provide additional content. What you can't do in iOS as an example is provide code.
which renders udon useless
People use udon for avatars?
heck before you can get to that you need to deal with apple's guidelines first which is crazy restrictive
for the world's which would have to be uploaded to iOS
Yeah. But I'll point out that Quest also requires quest-specific worlds to be uploaded too. YOu could do most worlds using prepared assets or non-code stuff, they would just not be as flexible as PC worlds are.
if it works the same you'll need a mac to compile stuff for ios lol
No, THAT is the line.
You can't compile stuff without a developer license if you want to upload it.
you would pretty much break all worlds if you disable user-generated udon
But nothing stops you from providing content. THe vast majority of apps on iOS allow plenty of custom content.
you would pretty much break all worlds if you disable user-generated udon
Obviously. As happened with Quest.
you can use udon on Quest
I'm pretty sure people have ot take very special care to support Quest?
Like, you couldn't just wack in a PC world that never worked with Quest...
its not that hard, heck its easier to upload a quest world than a quest avatar
there's no scripting differences between the quest and PC udon
like there's plenty of game worlds that run on Quest
Yeah. I think we're at cross purposes here, I have repeatedly agreed that you would have to re-implement pretty much everything for an iOS version, as indeed, content creators did have to do for Quest.
the only thing preventing any world from uploading to quest is it exceeded 100mb
I have also pointed out that a VRChat that complied with the restrictions might not be VRChat anymore at that point.
so basically this is a blank lose exercises vrchat is never going to go to the trouble to support those platforms
and I suppose technically there some shaders that don't compiled on the quest
yeah but its not an error within unity, it just simply doesnt work
good to know
and also questions of what apple and Sony would think of the direct user to user monetization that vrchat is planning
like fortnite funbucks being purchasable outside of the Apple Store was enough to get a major lawsuit
and I don't think vrchat Avatar and World creators would have the patience to deal with 4 completely different platforms
and 2 using like completely proprietary graphics apis
Hello wise wizards of VRChat 👋 …I’ve stumbled into your abode to ask how I would go about adding an echo to player voices (with udon I’d assume)? I didn’t even know it was possible until I visited a world called Kenopsia yesterday; which has some really soothing vocal reverb.
I’m looking to make a VR echo-chamber, one of those ancient domes that purposefully amplifies echos; where singers and musicians would perform.
udon is definitely how you would do that
Does vr chat use node-ipc since it's built on unity?
@obtuse kindle Rumour is that unity uses node-ipc, and that the issue I assume you're worried about was fixed in 3.1.1
(I've not confirmed either way myself)
You can see that they claim to have fixed the issue if you look at their change logs.
yeah I don't really want a crazy person's bad idea malware protest on my computer
What a nightmare for confidence in open source projects
Unfortunately this is a known, and common, issue for npm projects (and many package managers).
But with dilligence easily handled: use a lock file, and check for changed dependencies and ensure they are all up to scratch.
Does anyone know how VRC-Lens handles camera over-ride? Trying to create a modified version (which is a-okay according to to the terms of use); but struggling to understand the inner workings. Any advice is appreciated. Thanks!
I believe it uses a Render texture that overrides the built-in one for VRC
Thanks Slvr! You're right. After some poking around, I was able to get the "depth-output" render texture to output to a screenspace shader; but unfortunately, it looks like update render texture won't sync for other players.
It never will sync. It's local only
VRCLens was only ever local only for your camera
I should have seen that coming, looks like my grand idea is dead in the water then. Shoot.
What was the idea
I have a DJ booth avatar set up with various gimmicks; one of which is a built in VRCLens rails system (work in progress).
I was hoping to set-up the DJ booth avatar, so that the DJ could drop their VR Camera into a sphere, and it would be over-ridden by this VRCLens rails system.
you can't sync what you're seeing through your camera, but you can totally enable a camera and let them render it on their end
however it will be friends-only
And I have hope! Thanks Phasedragon. I'm struggling to understand the distinction though. Could you clarify?
just enable the camera as you normally would. It will render to the render texture
For others to see it iirc it needs to start with the camera component's camera.enable property turned off then you need to animate it on, when you do the component turns on for friends as well.
Any idea how to change the layers in an avatar camera though? I can only get it to show anything by checking 'everything' but then it also captures the UI and menus and stuff, but if I even turn off that layer it reverts to skybox. Just checking the UI layer alone also shows skybox weirdly. Ideally I'd use a new custom layer but something tells me vrc is doing something funky with them and I couldn't find the docs on it.
the skybox is not a layer, it's a clear flag
yeah, thus the phrasing 'reverts to skybox' I'm not super concerned about what the backdrop is - if set up right it should never hit it.
what do you want to show/not show?
ideally - A plane I have it pointing at, and a pen, both of which I can mark as being in a different layer. Honestly though just showing the rest of the world too, or avatars, would be alright, the UI is the most annoying thing. Just, the more control the better, and I want to understand how layers work in vrc.
you cannot change the layers of objects on your avatars
gotcha, then the sdk or vrc is enforcing that they're all in the same layer. That's fine. Do you know what that layer is?
if you don't want to see ui in the camera just... disable the ui layer?
hm I could probably do some shader stencil shennanigans to get it to behave how I want.
as for the UI layer... I tried that a bunch because yeah it totally should be that simple but it still showed skybox. Maybe I misclicked a bunch? My conclusion from last night was that the UI layer in unity wasn't where vrc was putting their UI
anyway, thanks for this confirmation. Saves me a bunch of confused testing.
3 tutorials later & I think I finally understand what you're both getting at. The end of the tunnel is in sight. Thanks PhaseDragon, thanks Pager!
ill show you how to create a camera system on vrchat, as simple as i could make it
Good day all 🙂 I am trying to set up a post processing layer to effect the vrc camera only (so when people take pics they come out brighter) is this possible?
On an avatar or in world?
in world
Yes, it’s possible. I’ve seen it done in Shaderfest & Club Orion. I’m not sure exactly how to pull it off though. Probably something to do with VRC layers.
Ps. It works!
Hi, I want to script my own avatar to act like an npc in my VRChat world, can anyone guide on where to start? or maybe some sources I could follow
I want to add some AI features to the avatar, can I just use UDON or do I need to use something else? thanks
Wrong unity version
Will need to downgrade the project to 2019.4.31f1
Is there some documentation on non udon programming with normal c#?
Or do you need to use Udon now? I don't really get it ._.
You can check the pinned messages in #udon-general
Other than that UdonSharp might be what you want as it compiles c# to udon
Something that I thought for quite sometime
Is VRChat more intensive client or server side?
Would instances benefit from being hosted in a scalable infrastructure framework such as Agones, using Kubernetes auto-scaling on the server side?
Or is the 80-player limit on instances related to client-side limits
Client side. Everything gets calculated on the client which is why FPS is so low sometimes
If you've been to one of those stress tests where there were 120+ people in the same instance, Photon tends to basically die after 80 players
It works, you just end up at like 15fps
And that's because of everything going on every frame
Anyone here knowledgeable about unity particle systems? Developing an avatar that uses mesh particles and it should only equate to 2502 polygons but the sdk says I’m using 5504 mesh particle polygons
Can’t really figure out why it says such
Guess I should also clarify 2502 is the tri count
Not quads
Are you creating two of the particle?
Hard to explain exactly
It’s a lego game styled avatar and it’s parts are split across 3 particle systems for the dying animation but it shouldn’t add up to anything higher than 2502
VRChat counts the max possible polys. Even if you only ever show one at a time, if there is a single possibility of it having 2 (max particle count) then it will count those
I don’t believe so
Each particle system plays at once for the full effect so I’m not entirely sure where it’s pulling the rest of the polygons from
i'll look into it some more but it shouldn't have any reason to have so much extra polygons to consider
What's the max particles set to
Oh wait would it consider max particles even if it’s limited with a set seed?
Yes
That explains it then
I’ll have to brainstorm how I could improve it some I suppose
It’s set to very poor because of it but I’d imagine it wouldn’t actually cause performance issues considering the particle meshes are even more low poly than the avatar itself
Well mesh particles can get intense too
If you were able to fix the 5k poly issue you'll be at Poor with 2502
Yeah
I’ll have to think about how I’d wanna approach it
Thanks for the feedback though
Definitely wouldn’t have figured that out myself
Has anyone had an issue with the in game camera crashing your world? I’m running max frames for a pc build and ready to publish to labs but can’t til I fix this. No idea why this would be happening. Anyone else have this issue?
Why can’t I upload this avatar template I have I am new to this and I don’t understand
hey, so, i want to create a prop, such as a gun, that can be loaded in on a holster. if i reach down and grab it, i'd like it to be picked up into my character hand. i would also like the ability to then throw it onto the ground and have it stay there, while being physically active (like if i walk into it, it will get pushed). does anyone have any resources they could point me towards to achieve this?
okay so i have half the solution. making the item equip-able on the holster is no problem. i just need to add physics. if i let go.
i didnt see a vrchat sdk popup in screen when i imported it and there also isnt a vrchat sdk option on the top bar
You're supposed to be using Unity 2019.4.31f1
Your smartness scares me
does anyone know why using prefabs in a build would cause the world to crash when using the camera?
Heyo, I'm not sure if this is advanced enough for this channel, but I'll try anyway:
My avatar has some stuff on it that aims at a target. With Dynamics, I'm trying to give other players the ability to pick up the target and move it around. I can get it working fine by putting the target on the end of a long physbone "leash." However...
is there a better way to do this? I'd like the target to be totally free, not leashed to me.
Basically: the target has to be a physbone to be grabbable, so I need three transforms. I make the third the aim target, I make the first (physbone root) the child of another transform. I put a parent constraint on THAT transform, TO the third/target physbone transform. My intent was the user would pick up the target, and the whole assembly would "come with..."
because it was looped around and parent constrained to itself. I just get scrambled, flickering behavior though, when I try to pick it up this way (very fair).
The use case of this is, my avatar is a constraint puppet, you can pick it up by the scruff of its neck. However, there's a chair on the avatar. If you sit in the chair AND try to pick up the avatar by its scruff, you go rocketing away along the vector of your pickup. I love this, it's great. But as it is you only shoot out to the end of the physbone "leash" the target's on.
If I could figure out how to get a completely free target, people would go shooting off into infinity(?). And that would be super fun. I'd really like that.
If I'm stuck just making a really long leash for my target, that's fine. But it would be much more fun to get a totally free target (that I could recall when it was dropped by the person).
Hello, does anyone know how to fix this sdk problem?
Assets\VRCSDK\Dependencies\VRChat\Editor\Components\AutoAddSpatialAudioComponents.cs(204,54): error CS0234: The type or namespace name 'Components' does not exist in the namespace 'VRC.SDK3' (are you missing an assembly reference?)
SO this should be the right channel:
Since its advanced development And thought process...
At no point did anyone on your development team think:
-
We might have 300 Million Users worldwide,
That cant use blender and unity but want to 3D content Create> -
OH People are going to have to use blender and unity,
The 2 most noninclusive, nonfriendly, non-intuitive UI, free programs on the planet.
That in 28 Years times have failed to keep up with modern tech in most of their updates. -
hey, let's create a simple Improvement UI,
That makes the programs more user-friendly and intuitive.
And can be installed into the programs
So content creators can create content and rooms for our
game/Social virtual chat program. -
For 3d Art creation programs specifically,
hey let's code in a VR Chat armature(Chat dummy to place meshes and skins on)/Pop in, material combiner/optimizer with selective abilities Select the materials you wish to combine), Mesh/polygon optimization(selective as well). A vr Chat avatar / Object import / exporter:
As an Add- On
while we're at it let's install A
UI Update ADD on: to make it more User friendly and intuitive for all our content creators,
after all, it is an open-source program, and we can legally do that.
If i could code all this stuff myself I would
But I'm Not that skilled when it comes to raw coding or modifying python command coding.( its not easy either way.)
15 years in Blender, 10 in unity,
still can't figure out more than the 4 basic tasks.
been playing with your API packets for 4 months now and still can't get a decent avatar,
or world created.
-
Learn them
-
Learn them
-
Learn the UI they made for it
-
This is called VRoid Studio
I find it SUPER hard to believe you've spent more than 15 days in blender or Unity
Also hint hint, you don't need to do anything with an "API packet" to make an avatar or world
Trying to access the player camera using GameObject.find("")
Does anyone know the name of it?
Are you using UdonSharp?
Yes 😅
I myself haven't tried this but it's likely the player camera is tagged "Main Camera"
So try GameObject.FindWithTag("Main Camera");
Method not exposed to Udon 😅
Rip
UdonSharp doesn't allow FindGameObjectsWithTag either?
If it does, just loop through that return array and check if the tag is "Main Camera"
Makes sense. Find isn't super optimized during runtime
I understand that jetdogg had something in their notes about it on the forums. But I could not find the name of the camera in there. I don't have their discord either ahh. Are they in this server by any chance? 🤔
No idea
You can also try Camera.main or Camera.allCameras and loop through to get the one tagged "Main Camera" too
Camera.main I have tried, I will try allCameras now 😄
Distance culling for player layer but still render the other layers
I don't think you can adjust culling for separate layers
Maybe with the use of a second camera 🤔 I would still have to disable the players being shown in the main camera though and need access to it 😅
I have tried messing with the reference camera settings but it still shows players rip.
I think VRC overrides some settings
And it makes sense these methods are blocked for these reasons
Yeah 😅
I just tried the other options you thought of as well but they did not work either. Anyhow, thank you very very much for the ideas! ❤️
It is much appreciated
😄
Yeah I don't believe they have any methods open for getting it for that reason
Messing with the player camera would open a lot of malicious code
Ahhh
Interesting
I was thinking possibly as a toggle in the event world to reduce the fov of a second camera that only renders players and the far clip plane. Less avatars more frames? 🤔😂
If it's not possible because of possible malicious intent I understand ahaha.
Thank you though, the quick response was very nice 🤗
You can still do this by rendering a second camera at the player's location however it hurts performance
Would the performance hit be worth it in a world with say 40 very poor avatars? And do you have an idea on how to do such a thing if it is worth it?
There's no reason to do that if it hurts performance
I'd say it's very not worth
But yeah I don't believe there's a way to get the player camera object to modify it due to malicious intents
So tired of toxic creators/Coders>
since this is online blocked.
Sadly, its most of the modern world's laws make it so have to be inclusive- and create equality( including and not limited to beginners' neurodiverse, disabled, non-disabled) etc,
IT's Actually the law. Fail to follow that law. guess what you lose your physical property to a very specific nation. And the coders then have to answer to a very specific person.
and the nation that did this made it impossible for google info research to rely heavily on search engines and the law is ironclad because they use the laws of every nation against them..
and since the number are quite high and there are over 300 computer programs that are far more complex than game development software, have made their software user-friendly, inclusive... etc. that new boss won't take any excuses for not being inclusive.
so my previous message about development still stands.
so to make sumthing like this in a 3D game development program should take about 6 -12 hours not 14 days- never from start to finish. also, this is drawn in retro 3D.
so again i will ask.
VR Chat armature(Chat dummy to place meshes and skins on)/Pop in, material combiner/optimizer with selective abilities Select the materials you wish to combine), Mesh/polygon optimization(selective as well). A vr Chat avatar / Object import / exporter:
As an Add- On
software for advanced development techniques in B for artists.
the folks on the vrchat Discord don't really have much ability to change how 3D software behaves
he spams it everywhere he can
also with like blender it's not that terribly hard to like rearrange UI and make add-ons that help automate tasks
so like sharing blender startup files and making add-ons would probably do more to help then complaining on here
honestly even second life where you can create avatars within the program itself, there's still a bit of learning to do before you can make advanced stuff. So the only solution is the devs implement one single avatar system and force everyone to use a fixed set of accessories
like honestly more Ready Player me like programs that can upload straight to vrchat probably wouldn't hurt as far as easy-to-use Avatar stuff
true!
also would be nice to have the option that doesn't have a bad case of the crypto Bros
MY blender lay VS my B for artist UI, same program source code.
But as you can see i got a lot farther in about 4 days in the program.
ID post by gimp 3d ART lay out but i can't for the life of me figure out how to screen shot whil using a ios keyboard on windows XD
ive messed with ready player nft and a lot of the textures just
are broken
or mapped incorrectly after you receive the fbx
"our avatar creator blew up!" they said
ive never gotten the automatic uploading to work but kudos when it does for other people tbh
There are plenty of video games that when they were hacked and code unlocked PC>
you could create full Anthromorphs and clothes Using their base meshes, Using their Character creator UI,( many of which are free and their source code is open for modders now a days)
Blend = open-source code,
so let me put it simply lLIke.
By VR Chat creating a User interface you can install in blenders base source code,
They Could Essentail have their own character creator.
that can be directly exported to a unity file.
and people will have 100% optimized avatars and skins.
If they did the same for unity,
more optimized worlds, and less work in the long run...
I'm An Artist & Visual Application type, not a back application coder,
This means i have to see the final application and the code as it runs.
1 thing that Sucks about HF-ASD
The back application coding and recoding is far beyond my abilities.
Also, i deal in facts, not complaints. huge difference. I'll let the assumption slide.
So I'm hacking together some stuff to be able to send strings through osc. Anyone know if someone made something like that before? I'd love to save time and skip over the writing the protocol and animation controllers.
Uploads straight to VRChat so your low-effort self can do something
You could send in each string character unicode via int but it'd only update 4 times a second as OSC can only update that fast
Yeah that's my plan. Just making sure I'm not reinventing the wheel. Guess I'm starting from scratch
I think someone already has built a text to text in OSC
Beautiful thanks.
sending one code point at a time could do some quirky stuff in some cases but not much you can do about it since vrc only supports primitives
normally OSC can do arrays...
added 3d tracking on my dog into vrchat, so everyone can pet him
i love that it's just a disembodied corgi head
gotta get your dog a headset so he can have phantom touch
im working my way up to a full body...
Full body doggo tracking
Yeah so one marker is giving me a point in 3d space with no rotation (since I'm not assuming it's strapped on in any rotation). So I'm using that for his head.
Then with a second one, I'm going to be able to have rotation. So I can orient his torso. But that's still like a static model.
With a third one I can have him look around with his head. To give some real life into him.
Then if course using some basic pose detection, I can add simple sit/walking/like down animations that will be detected by the external program and sent over as an int. To really bring him to life.
It would sure be nice to have tracker support built in to vrchat so I don't have to pipe in through osc, but I get that's way too much of a hassle
idk if anyone is interested, but now have full support for adding an object on your avatar thats tracked by a vive tracker and updated in real time.
robort hand
It’s so cool seeing what people are capable of making damn
Can I use float values as little as 0.0000001 in VRChat ?
I have done the windows import before but when I try to upload for android I get this:
When I fix it my model disappears
I need vr avatar descriptor in order for the sdk to see it and the skinmesh deletion just nukes my model
Been wracking my brain trying to find something online
Update: just needed to reinstall everything and it worked. Thank you spark.
Does changing the fixed timestep in a world actually make any difference when within VRChat concerning FixedUpdate?
It doesn't, fixed timestep is based on headset framerate
And desktop will be 1/90
Thanks! ❤️
Am interested
yoo that's actually awesome, would love to see how that works
I have 2 spare vive trackers I could use
I have a program running that talks to steam VR using the open VR API to poll the location of the hmd and the external tracker. Then it calculates the transform from the hmd to the tracker. Then sends the 6 poses using osc to an avatar which is has an object added under the head transform on the armature. There's then 6 children under there that each have an animation for each of the 6 axis that get transformed by the osc variables. Finally below that we have the visible object, in this case a dog head (because I strap it to my dog's neck).
Just wait till his head and body are individually controlled
Yes. Let's normalize VR pets
how are you stopping the game from using the tracker?
do you just turn it on after calibrating?
Is there a way to set the default position that the avatar thumbnail camera in unity spawns?
Looking for some help/advice with using UdonMotion by lox9973
gitlab.com/lox9973/UdonMotion
There is a sample project there and I am wondering how to use a users model instead of the demo shapell
This is part of a larger 3D Printing project, Feel free to DM me or add my in VRC and I can explain more.
Have you tried importing a user's model and replacing the 'shapell' prefabs in the scene with that?
I will try that, but the goal would ultimately be bringing in a random players avatar.
Similar to this world by Lox9973
wrld_6888716f-815b-4bcf-ab52-dc06e4c91033
a world cannot load a player's model at runtime and then use it
I am sure I am using the wrong language, my apologies.
If you have time to check out the world I listed above, that is pretty much what I am trying to do.
I also just recently visited the Shader Fest 2021, and there is a secret room that opens up if you go through all the sections. That is exactly what I am trying to accomplish, but my searches have turned up little
https://cdn.discordapp.com/attachments/815350303649824768/962176859389448232/CEditor_TemplateUpdate.mp4
My controller editor now supports instantly adding templates such as Hand Gestures or any other previously created feature.
Automatically handles making the parameters unique so that you can re-apply the template however many times.
Anyone know how I would go about importing a model without any legs?
Make the rig have legs still. The mesh can be legless
cool thanks
ive ended up breaking the builder. not sure how, i was just going thru the checklist for quest then the ui disappeared so im just kinda staring at this
ive fixed it. its good now
is there a way to get particles to align to the normal of the object they're colliding with? i have a sub-emitter for splatter decals that i want to align to the collider normal, but right now i can only get them to align to the velocity of the source particle
this is on an avatar btw
Hi there!
Question I wanna automate a process with invite request through the api?
So I wanna to accept like the first 40 of world invite requests to limit like the amount of people that are able to get in.
Will the api flag this as malicious? since so far I read through api docs etc (that I could find)
I got to get all notifications in 1 request but got to send out for every individual user a invite request to the world?
Guys
Hi
I am new to VR chat, but i am an experienced programmer, I noticed that you can create stuff with C# for vrchat, right?
Isn't that a BIG rce vector?
do vr chat sandboxes the code or something?
custom scripts aren't allowed at all on avatars. as for worlds, VRChat has their "Udon" system which is a visual node based programming system. there's also U#, so you can write C# like code instead, which is better for people who already know programming. I don't make worlds, so it's possible I might be wrong on some details. (feel free to correct me anyone)
Interesting
I really hope there aren't many security vulnerabilities in this language
being able to execute custom code by just joining a room sounds pretty scary
I've not heard of any of that happening
wasnt udon like a VM
What’s this Udon thing anyways? VRChat Udon is a programming language built completely in-house by the VRChat Development Team. It is designed to be secure, performant, and easy to use via the VRChat Udon Node Graph, a built-in visual programming interface that uses nodes and wires (we call them “no...
there it is
there are some results if you search "vr chat RCE"
Taking advantage of unknown security vulnerabilities, hackers may have hacked into people’s computers by simply adding them to a chat room within the popular virtual reality applications Steam VR and VRChat. Security researchers Alex Radocea and Philip Pettersson discovered vulnerabilities in three completely different virtual reality platforms ...
how old is that post?
Also, i saw this room where you can get reproduce videos from youtube, that means you can do http requests, that means you can just http request a malicious server and log everyone's ip
Yeah, if you modify the VRChat client it becomes possible. Which you shouldn't even be doing anyway.
dude, its not about "if you modify your client" if there is a vulnerability it will be used by malicious actors
no, http request is not possible, what that room does is VERY different from requesting video from youtube
what do they do then?
you need to understand that vrchat has a lot of limitations that people cannot do, including http requests
but how do they get the youtube videos then?
uses whatever the method unity is using to play youtube, im not that sure of the specifics
bruh
to get data from the internet you have to do an HTTP request
its literally impossible otherwise
it's based on yt-dl https://github.com/ytdl-org/youtube-dl
Command-line program to download videos from YouTube.com and other video sites - GitHub - ytdl-org/youtube-dl: Command-line program to download videos from YouTube.com and other video sites
yes
it comes bundled in with the game
I also saw rooms that stream movies that aren't in youtube
streaming mp4 movies from servers directly is possible
OOF
you are saying that's an exploit?
yes, youtube-dl can also use other video streaming services, as mentioned in the description
please remove all video playing capabilities RIGHT NOW
well, this only means that someone could log your IP by joining their room
if they play a video stored in their server and they just keep the logs
when your computer requests that video from the server
If you enable "Allow Untrusted URLs" yes
yes, that's possible. In fact I have a log of people's countries who played videos in my video world
yeah, now you only allow google to log you, that's nice
Do you know if there is any bug reporting program om vr chat?
there should be a Canny section for that
I mean like security bugs
yeah you can make a canny for whatever security bug you have in your mind
thanks ❤️
like surfing the modern web is a huge privacy invasion
true
For exploits the Ticket system #vrchat-support, everything else is on the feedback forums the others mentioned.

