Welcome to the Developer Update for October 22, 2026.
Today’s featured world is Spookality 2026 by …us!
Announcements
Spookality!
Yep – it’s checks watch still Spooky Season.
This week, we’ll be highlighting the top three Spookality Avatar and top three World winners on a special stream this Saturday at 12pm PT / 3PM ET! This isn’t something we’ve done before, so we’re excited to give it a shot.
Also: don’t forget to refer your friends to VRChat if you want a THIRST KILLER water bottle, or the special spooky VRRat Profile Decoration! Go here for more info: Spookality 2026 — Camp Whispering Screams | VRChat
NYE2027 - Booth Interest Form
We’re opening up New Year’s Booths to the entire community this year!
Want to make something cool to represent your VRChat Group’s milestones? Are you an amazing VRChat world creator who thinks they should be represented this year?
Please fill out this form by the end of this month.
We’ll reach out to promising developers sometime in late October/early November, when the rest of the forms go live. Yes I know that’s like, now. We’re working on it.
Placement Zones
SDK 3.10.6 (available to try now in the open beta!) will introduce a new component for world creators called VRCPlacementZone.
We’ve alluded to this a bit in our Creators Roadmap from August, but we haven’t brought it up in a Developer Update yet.
Let’s talk about it!
A placement zone defines an area of your world where you want to either allow or deny the placement of various kinds of content in VRChat. It looks like this in the worlds SDK, and is completely invisible when viewed in VRChat:
This component lets you define a box somewhere in the world with its own rotation and size. You can then control the placement of user portals, stickers, sharing pedestals and world-attached items inside that zone; for each of those types of content, you can set them to either be blocked inside the zone, or only allowed inside that zone and blocked outside it.
The main goal of this feature is to help world creators control where these objects are allowed in the world without requiring them to block them completely through their world settings page on the VRChat website.
For example, a club or game world might want to prevent portals being placed in areas where people are actively dancing/playing, but still allow them in a separate lobby area away from the action.
There are two important caveats to keep in mind:
- The “portals” setting only affects portals dropped by users. It won’t affect static portals that you’ve built into the world yourself.
- While zones can be toggled and repositioned via Udon scripting, keep in mind that they need to be kept in sync for everyone in your world to avoid mismatches, and that activating a zone won’t automatically clear content that breaks the rules for that zone.
Take a look at our beta docs for more!
Outline Renderers
A quick heads-up for world creators! In a previous release we added the ability for pickups to manually specify which renderers should be used for their outline (the thin blue line that appears around objects that you can grab).
The 3.10.6 beta SDK also introduces this to interactables – Udon scripts that implement the Interact() event. You should now see a new Outline Renderers property in your Udon Behavior component when using a script that implements interaction.
If any child renderers are listed here, VRChat will use those to construct the object’s outline instead of constructing it automatically.
The client release that goes with this will revert a previous change that automatically gathered and highlighted skinned meshes in the object for outlining, since it was found that this was regressing some content that used skinned meshes to define “hidden” shapes inside pickups and interactables.
If you find your object outlines don’t match what you’re expecting once 2026.4.1 releases, you’ll need to update your SDK to 3.10.6 and assign the renderers you want to use. Both the client and the SDK are in open beta now if you want to check this early!
See You Next Time!
We’ll be back in two weeks. See you then!


