How do I make pickup chairs that toggle with visibility?

I’m honestly not sure if I should be asking here, but I’d imagine since I’m working with SDK3, the solution might involve using Udon.

I want to replicate the sort of chairs that you’d see in worlds like MEROOM (when that still existed, RIP) and Room of the Rain. I’d want it to be static in the air and remain in one’s hand without having to hold down the trigger.

I’ve tried:

  • Attaching a pickup object to a seat object. Either the pickup object would detach from the chair and not move it at all, or it would move, but move around with no gravity instead of remaining static in the air.

  • Making the chair itself pickupable. It works, but I have to turn off automatic holding, which would make toggling visibility on the chair impossible. Otherwise when I sit in the chair, I find myself accidentally playing Kerbal Space Program instead of VRChat.

The first thing you tried sounds like you need to look into how the pickup and rigidbody components work! If it detaches, then the seat is probably not a child of the rigidbody. If the rigidbody has no gravity… have you checked you enabled gravity on the rigibody?

I’m not familiar with how MEROOM and room of the rain do things… Are you just looking for a chair that’s hidden when someone sits down?

You can do that via Udon. There’s events for when players enter or leave stations. Doesn’t even require networking! You could use those events to control an animator.

1 Like

Extending what fax said (looks like I’m late to the party again)

For a pickup to move something, that something needs to be the child of the pickup.

Essentially what you have are two separate systems that need to be parented properly.

How you want to do this is completely up to you.
Chairs don’t need to have a physical object representing them, just a collider with a station on them. Same goes for pickups, though in the latter case its still useful to have something to see.

You could;
a) make the chair already be invisible while being the child of the pick-up (make sure to not marked it as static, static objects can’t be moved even if the parent isn’t)

b) make an “ontriggerdown()” or “oninteract()” event that toggles the chair off when the holder uses their trigger

c) attach a script to the station that fires off when onstationenter() gets called and do your logic there

1 Like

Honestly, I’m not sure how I didn’t think to make the chair the child of the pickup object. I was making the pickup object the child of the chair instead. I’ll see about making them toggle in visibility later, but it’ll do for now. Thanks!