AVRFX Documentation

Studio Light 2.0

Placeable studio lighting for VRChat avatars. Install it, place it, and control everything from your Action Menu. This page covers setup, every control, and what other players do and do not see.

Version 2.0.0

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.

  1. Import the .unitypackage into your avatar project.
  2. Drag one prefab onto your avatar's root object. Only one.
  3. Build and upload.

That is the whole install. The menu appears in your Action Menu under AVRFX Light.

Already own version 1

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.

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.

Pause, then lock

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 is for you

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.

Photosensitivity

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.

Lock the light first

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.

This may improve later

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

Expect Poor or Very Poor

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.

  1. Remove the 1.x prefab from your avatar.
  2. Delete the 1.x folder from your project.
  3. 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.