Skip to content
milkydelta edited this page Aug 3, 2026 · 5 revisions

Here are explanations of all config values. I've tried to give the options self-explanatory names, but there are some where the descriptions are required reading.

BepInEx and MelonLoader split their configuration files into categories. The other loaders do not.

Resolution

[X/Y]

Internal BepInEx BSIPA OWML Melon
ResX X ResolutionX X X
ResY Y ResolutionY Y Y

At what resolution should we render and send the scene?

  • Type: int
  • Default Value: [1920/1080]

Render Passes

Render[BG/FG/OP]

Internal BepInEx BSIPA OWML Melon
RenderBG RenderBackground ShouldRenderBG Render Background RenderBG
RenderFG RenderForeground ShouldRenderFG Render Foreground RenderFG
RenderOP RenderOptimised ShouldRenderOptimised Render Optimised RenderOP

Should we render this pass?

  • Type: bool
  • Default Value:
    • BSIPA,Melon: [true/true/true]
    • Other: [true/true/false]

SpoutSend[BG/FG/OP] - Removed in v1.1

Internal BepInEx BSIPA OWML Melon
SpoutSendBG SendBackground ShouldSendBG Send Background SendBG
SpoutSendFG SendForeground ShouldSendFG Send Foreground SendFG
SpoutSendOP SendOptimised ShouldSendOptimised Send Optimised SendOP

Should this pass have an active spout sender?

  • Type: bool
  • Default Value:
    • BSIPA,Melon: [true/true/true]
    • Other: [true/true/false]

BlankSpoutSenders

Internal BepInEx BSIPA OWML Melon
BlankSpoutSenders BlankSenders​OnRenderDispose BlankSpout​OnRenderDispose Blank Spout on Scene Change BlankSenders​OnDispose

The object that controls rendering is often destroyed on a scene change. When that happens, the spout feeds are frozen until the next scene creates a new one. This option blanks the feeds after destruction, so there's no objects seemingly stuck in place

  • Type: bool
  • Default Value:
    • BSIPA,OWML: false
    • Other: true

LayerMask[ /FG/OP]

Internal BepInEx BSIPA OWML Melon
LayerMask LayerMaskString LayerMaskString Layer Mask LayerMask
LayerMaskFG LayerMaskFG LayerMaskFG Layer Mask (FG) LayerMaskFG
LayerMaskOP LayerMaskOP LayerMaskOP Layer Mask (Op) LayerMaskOP

Overrides the culling mask of the spectator camera for a given render pass. This is a 32-bit base 2 integer as a string, which is used for a bitmask.

  • Type: string
  • Length: 0 || 32
  • Accepted Characters: '0' || '1'
  • Default Value: "00000000000000000000000000000000"

Clip Planes

GroundPlaneOn

Internal BepInEx BSIPA OWML Melon
GroundPlaneOn GroundEnabled GroundClip​PlaneEnabled Ground Plane GroundPlaneOn

Enables a second clip plane that is aligned to the playspace floor, so that the in-game ground does not appear in the foreground texture. That's desirable because the floor might otherwise appear in front of your feet.

  • Type: bool
  • Default Value: true

GroundPlaneHeight

Internal BepInEx BSIPA OWML Melon
GroundPlaneHeight GroundElevation GroundClip​PlaneElevation Ground Plane Elevation GroundPlaneHeight

How high up is that second plane? Default is 1cm to avoid Z-fighting.

  • Type: float
  • Default Value: 0.01

VerticalClipPlane

Internal BepInEx BSIPA OWML Melon
VerticalClipPlane ClipShould​BeVertical ClipPlaneShould​BeVertical Vertical Clip Plane VerticalClipPlane
clip

Constrains the primary clip plane to be vertical relative to the playspace. This is achieved by setting the Y component of the look vector to 0 before normalisation.

  • Type: bool
  • Default Value:
    • OWML: false
    • Other: true

FarClip

Internal BepInEx BSIPA OWML Melon
FarClip CameraFarClip CameraFarClip Far Clip Distance FarClip

Sets the far clip distance of the spectator camera. Objects beyond this distance will not render.

  • Type: float
  • Default Value:
    • BSIPA: 5000
    • Other: 1000

ClipBehaviour

Internal BepInEx BSIPA OWML Melon
ClipBehaviour ClipBehaviour ClipPlaneBehaviour Clip Plane Behaviour ClipBehaviour

Uhhhhh....

On OWML, "Simple" means 0, and "Distance-based" means 1

  • Type: int
  • Default Value:
    • Melon: 1
    • Other: 0

OAT_MMF_Data

ProtoMinorVer

Internal BepInEx BSIPA OWML Melon
ProtoMinorVer Protocol​MinorVersion MMFProtocol​MinorVersion LIVnyan Protocol Version Protocol​MinorVersion

Adjusts the name of the MMF and determines how/what data is read. A value of 0 is compatible with VRnyan v1.2. A value of 1 is compatible with VRnyan v1.3a2 and beyond.

  • Type: ushort
  • Default Value: 1

ReadResFromShm

Internal BepInEx BSIPA OWML Melon
ReadResFromShm Read​WindowResolution ShouldRead​Resolution​FromMMF Read Resolution from MMF ReadRes

Should we read the render resolution from shared memory? This allows OnAirTap to react to VNyan resizing.

Only useful on ProtocolMinorVer >= 1. If the read resolution is invalid, we default back to the values set above.

  • Type: bool
  • Default Value: false

ReadClipFromShm

Internal BepInEx BSIPA OWML Melon
ReadClipFromShm ReadClipPlane​Location ShouldRead​TrackerFromMMF Read Clip Location from MMF ReadClip

By default, the foreground clip plane always intersects the location of your HMD. This setting allows VRnyan to send an alternate target location to OnAirTap, such as your model's hips.

Only useful on ProtocolMinorVer >= 1. Ignored if corresponding flag is not set in MMF.

  • Type: bool
  • Default Value:
    • Melon: true
    • Other: false