Install
You need a VRChat avatar project on Unity 2022.3 with the current SDK, and VRCFury 1.1279.0 or newer, which is free. VRCFury does all the wiring, so there is no animator, menu or parameter work for you to do.
- Import the
.unitypackageinto your avatar project. - Drag one prefab onto your avatar's root object. Only one.
- Build and upload.
That is the whole install. The menu appears in your Action Menu under AVRFX Light.
Do not install this alongside it. Remove 1.x from your project and your avatar first. See Upgrading from 1.x.
Choosing a prefab
Three prefabs ship in the package and you install exactly one of them.
| Studio Light V2.0 | LITE - 3 Lights | LITE - 1 Light | |
|---|---|---|---|
| Lights | 3 | 3 | 1 |
| Beam shapes | 8 | Plain beam | Plain beam |
| Sharing menu | Yes | Yes | Not applicable |
| Make Invisible | Yes | Yes | Yes |
| Parameter bits | 23 | 23 | 19 |
| Rank floor | Very Poor | Very Poor | Poor |
Take the full prefab unless you have a reason not to. LITE - 3 Lights drops the beam shapes and adds fewer components to your avatar stats, but it uses the same 23 bits and lands on the same performance rank, so it is not a lighter option in the ways people usually mean. LITE - 1 Light is the one that genuinely costs less: 19 bits, and the only prefab that can reach Poor rather than Very Poor.
The menu
Everything lives in your Action Menu under AVRFX Light. Two controls sit at the top level and apply to everything:
- All Lights Off kills the illumination from every light at once while the stands stay standing. Built for photography: compare a shot lit and unlit without disturbing your setup. It moves and resets nothing.
- Make Invisible hides the physical fixtures while the light keeps working, so you get the lighting with no hardware in your shot.
Below that, each light has its own folder. The three lights are labelled Red, Blue and Green as names only, matching the stripes on the poles and the menu icons. Any light can shine any color. On LITE - 1 Light the menu is flat, with no folders.
Placing a light
- Show turns the light on. While it is shown and unlocked it floats about a meter in front of you so you can position it.
- Lock Placement freezes it in the world exactly where it stands. Unlock and it follows you again.
There is no leash and no distance limit. You walk to where you want the light and lock it there.
Stand still for about a second before you lock, and stay still for a second or two after. Each person freezes the light against their own view of where you were standing. If you are still moving, that view lags yours and the light sits slightly off for them. Pause, lock, wait, and it lands almost exactly where you placed it. Fine-tune with the handles after that if you need to.
The Position submenu holds:
| Control | What it does |
|---|---|
| Angle | Head tilt, from 35 degrees below horizontal to 95 degrees above |
| Height | Telescoping pole, about 1.3 m of travel |
| Rotation | Full 360 degree swivel of the fixture |
| Follow Me | The head keeps aiming at you as you move (local only; other players see the Angle setting) |
| Lock Aim | Freezes the aim on the spot you are standing on |
| Reset Handles | Snaps a hand-adjusted light back to its menu pose |
Follow Me runs on your client only. You see the light track you smoothly and it is correct in your own photos and video. Other players see the light at its Angle setting instead. This is deliberate: VRChat has no way to stream a moving aim target smoothly, so it is kept clean for the person using it rather than jittery for everyone else.
Light controls
| Control | Range | Notes |
|---|---|---|
| Brightness | 0 to 12 | Default 2 |
| Hue | 8 stops | White, Red, Orange, Yellow, Green, Blue, Purple, Pink. Positions between stops blend. The lens glows in the chosen color |
| Temperature | 2,000 K to 20,000 K | The dial's midpoint is neutral white at 6,500 K. Turn one way for cool daylight, the other for warm tungsten |
| Beam Width | 5 to 150 degrees | Tight pinspot through to a near-hemisphere wash. 65 degrees at the midpoint |
| Light Range | 1 m to 30 m | Default about 15 m |
| Shadows | On or off | Real-time soft shadows, on by default |
Shapes and animations
Beam shapes, full prefab only
Eight projections: Soft Circle (the default), Hard Circle, Very Soft, Solid Square, Square, Window Pane, Dot Grid and Ring. The LITE prefabs use a plain spotlight beam and have no Shape menu.
Animations
Ten animated patterns plus Solid, which is the off position: Rainbow, Pulse, Candle Flicker, Strobe, Police, Disco, Lightning, Fireplace, TV Glow and Aurora. A Speed dial scales playback from paused up to 4x, defaulting to 2x. The lens emission follows whichever pattern is running.
Strobe, Police, Disco and Lightning flash, strobe or change color rapidly. Flashing light can trigger seizures, migraines, nausea or disorientation in people with photosensitive epilepsy or similar sensitivities, including people with no previous history. Use these with care around others in shared spaces, and stop immediately if anyone present feels unwell.
Sharing
On the full and LITE - 3 Lights prefabs, each light can Apply to All, apply to or copy from a specific light, and Reset Light with a hold to confirm. Sharing copies settings, not world placement.
Adjusting by hand
In VR you can grab the light and fine-tune it directly. The collar on the pole slides the height; the handle on the head tilts the aim. Parts stay where you release them, with no springback.
Handles do nothing while a light is unlocked, because unlocked means it is still following you and it is held rigid so placement stays precise. The workflow is place it, lock it, then fine-tune by hand.
- Friends can grab and adjust your lights too.
- Unlocking clears hand adjustments and returns the parts to their menu-set pose, because unlocking means you are repositioning the light.
- Reset Handles does the same thing from the menu.
Desktop players can use VRChat's standard grab, but this is built for VR.
What other players see
This section is worth reading properly, because two parts of it behave differently.
Nobody needs anything installed
Anyone who can see your avatar sees the lights, the illumination, the shadows, the shapes and the animations, with nothing on their end.
Settings sync
Colors, brightness, temperature, beam width, range, shadows, shape, pattern, speed and the position dials all sync to everyone within seconds, including people who join after you. Hidden lights are skipped while syncing, so a one-light setup converges roughly three times faster than three lights.
Placement does not sync as a position
When you lock a light, everyone already in the instance freezes it on their own view of where you stood. Pause still for about a second, lock, then stay still for a second or two, and that view matches yours closely enough that the light lands on the same spot. Anyone who joins afterwards sees no light at all. They never witnessed the placement, so it would hang in the wrong spot for them, usually floating in front of you. Showing nothing beats showing something wrong. Unlock and re-lock to release it to everyone currently there, new arrivals included.
This is a VRChat limitation rather than a setting. An avatar has no way to communicate a world position to another player, so there is currently nothing to send.
VRChat has teased features that would give avatars a way to share this kind of data. If they ship in a usable form, late joiners seeing your placement correctly is exactly what they would be used for here, and it is intended to change. That depends entirely on VRChat, so treat it as something being watched rather than something promised, and buy on what the asset does today.
Shadows and cameras
Shadows behave inconsistently through VRChat's camera. In particular, shadows cast by other players may not appear in camera output even though they are visible in your VR view, so what you see in headset and what lands in the shot are not always the same.
This is VRChat's own handling of shadows in the camera rather than anything the asset controls. If a shot depends on a player's shadow, check the camera preview before you rely on it.
Hand adjustments
The grab motion itself syncs live, so people present watch you slide or tilt the light in real time. The resulting pose is session state: it is not saved, does not survive an avatar reload, and late joiners see the menu-set pose.
What survives a reload
All your menu settings are saved and come back exactly as you left them. The lights themselves always start off after an avatar reload or a world change. Placement does not survive a reload anyway, and loading into a busy instance already lit costs everyone nearby frames, so you switch them on when you want them.
Performance rank
One light caps an avatar at Poor. Two or more make it Very Poor. LITE - 1 Light is the only prefab that reaches Poor.
This is VRChat's rating of real Light components, not a defect in this asset. Any avatar asset using real lights has the same ceiling, and real lights are the entire point of this one. Some players choose not to display avatars at those ranks.
Disabled components still count, so the full prefab's 24 Light components all appear in your stats even though only three can ever be lit at once. It does not worsen the category, which is already Very Poor above one light.
What is genuinely efficient here is parameter space: 23 bits of VRChat's 256 for a full three-light kit, 19 for LITE - 1 Light. That is a separate thing from performance rank.
Upgrading from 1.x
2.0 is not an in-place upgrade. Running 1.x and 2.0 at the same time breaks the asset and throws errors, on top of duplicating menu entries and wasting parameter space.
- Remove the 1.x prefab from your avatar.
- Delete the 1.x folder from your project.
- Import 2.0, drag one prefab onto your avatar root, and re-upload.
2.0 is in your Gumroad library at no extra cost if you bought 1.x. You do not pay again.
Troubleshooting
The menu is not there after uploading
Check VRCFury is installed and up to date, that the prefab sits on the avatar's root object, and that the upload actually succeeded. Check the Unity console for errors.
Duplicate menu entries
Two copies are installed. Usually this is 1.x left in the project. See Upgrading from 1.x.
The light will not move when I grab it
Lock it first. Handles are inert while a light is unlocked.
A friend's light is a little off from mine
You locked while moving. Stand still for about a second, unlock and lock again, then stay still for a second or two. See Placing a light.
A friend cannot see my light
If they joined after you locked it, that is expected. Unlock and re-lock. See What other players see.
No shadows
Shadows render only for viewers whose own VRChat graphics settings allow them. That is standard VRChat behavior and nothing you can set from the asset.
Shadows show in VR but not in my photo
Shadows cast by other players in particular can go missing from camera output while still showing in your headset. See Shadows and cameras.
Not enough parameter space
VRCFury's Parameter Compressor can usually make room. LITE - 1 Light needs 19 bits instead of 23.
Specifications
| Lights | 3, or 1 on LITE - 1 Light |
| Parameter bits | 23, or 19 on LITE - 1 Light, of VRChat's 256 |
| Brightness | 0 to 12, default 2 |
| Color temperature | 2,000 K to 20,000 K, neutral white at the midpoint |
| Hue stops | 8 |
| Beam width | 5 to 150 degrees |
| Light range | 1 m to 30 m |
| Head tilt | 35 degrees below to 95 degrees above horizontal |
| Pole travel | About 1.3 m |
| Beam shapes | 8, full prefab only |
| Animations | 10 patterns plus Solid, speed up to 4x |
| Triangles per rig | About 2,300 |
| Requirements | Unity 2022.3, current VRChat SDK, VRCFury 1.1279.0 or newer |
| Platform | PC avatars only. VRChat does not allow light components on Quest avatars |
Licensing is covered on the terms page. The full terms ship inside the download and are what govern your use of the asset.