Help Completing Chair for Players of Any Size (networking)

So, I’ve been working on a chair that works for any height, and while it works basically flawlessly locally, I’m having a really hard time getting it to work over the network.

The chair works by grabbing the positions of the player’s left foot bone and hip bone, then it uses those positions to calculate how much the seat needs to move up, down, forwards and backwards. It also references another gameObject that it uses as an anchor, it ended up being roughly where the players knees would be. It then moves the seat and the player sits almost perfectly on the seat.

Now, that all works fine locally, but to get it to work over network is proving to be another challenge entirely. First, I made a public value for both chair height and chair forwardness, and then made an event that re-calibrates for everyone, but it seems that it doesn’t update for others… except it does for one person and that one person seems to be a different random person for each person in the lobby. It seems to me that the synced values aren’t being applied globally, so I tried adding a ‘set owner’ to it to try and sync the values to the player that’s sitting, but that doesn’t seem to help. I added a testing cube that moves up and down according to the seat, and that doesn’t move an inch whenever it fails.

Here’s a look at the code. I also converted it to udon# to see if it would help me notice something I was missing, but that didn’t help.

Heck, here’s a download to if that helps:

Also, I don’t mind at all if you share the completed project and all (credit would be nice though). Also, if someone else has already made something like this, please don’t hesitate to share

1 Like

Its a cool idea & I haven’t seen it in a map before personally. I normally try to avoid using Sync because the documentation on the settings for it are vague as hell & I don’t trust it :joy:

This seems to work. Tho I can only sit in chairs with the Owner of the test build client(is this an issue for anyone else?) it seems synced for the other clients tho.

I just got rid of the networkSendEvent you had & put everything after the OnInteract -> SetPlayer inside of its own event & then did a NetworkSendEvent for it all after the SetPlayer. That way you don’t have to use the variable Sync thing because its runnig the SeatHeight & SeatForward stuff for everyone.

Hopefully it works for you! Like I said above tho… I can’t sit in chairs with anyone other than the owner in test build or it all goes scuff!

Thanks for the reply!
The test build as always been scuff for the second player in the test build, So don’t worry!

I’ll test this later on today, but it seems so simple of a fix! My only concern (and the reason I was using synced variables in the first place) is if it measures the bone height after the player has gone into a sitting animation all the measurements will be off, but this has given me a new way to approach it, Thanks!

1 Like

Hello :). nice to meet you.
Has the implementation error for the chair idea in this article been resolved?
If it’s resolved, can you please tell me how you solved the problem?
I had tried similar ideas before and failed. I’m happy to read these great ideas.

Hello there, sorry I never updated this post.

While I did get it to work somewhat, I ran into the problem of making sure the ‘player’ variable was right, which I never fixed. I never really got to re-dive into getting it to work and about a week or two ago I ran into ArchiTech who was working on a much better version. His uses the distance of the upper bone for the z offset and the distance of the lower leg for the y offset.

Also, doing it with my old method would break if someone was in full body or even just crouching…

He hasn’t released his chair scripts as its still in ‘beta’, but He has a TV asset (ArchiTechTv) that has links to his discord where you can try it out. His code’s a lot more complicated and complete, and I’ve ended up moving onto working on other things