Your hands now decide what the game is looking at.
New Features
Everything above is a switch in the F10 overlay, Controls tab. Hand pointing, the hop and the X/A swap ship on; physical crouch ships off, because it only reads right if you recentered standing up.
Fixes in this release
A 6-DoF VR mod for Cyberpunk 2077, built as a RED4ext plugin -
CyberpunkVR_Stereo is the ONLY native plugin: it drives OpenXR head
tracking, real stereo, the in-headset overlay and the full-body VR avatar with
motion-controlled hands that used to live in a second DLL; and a set of CET / redscript mods add VR
weapon aiming, the physical reload, motion melee, hand-to-holster equipping and more. Everything is
configured from an in-headset F10 overlay.
Motion-controller vehicle driving demo: https://youtu.be/WKH7KeZjmx0
Repository: https://github.com/iPowerTech/cyberpunk-vr-port
β οΈ Experimental community mod. Not affiliated with CD PROJEKT RED. Use at your own risk and keep backups of your saves.
This port is developed by iPowerTech β VR driving, the hand interaction system, the physical reload, the body and gesture work, and the releases you install.
It builds on the original cyberpunk-vr-port by dariulone, which this repository is forked from and still merges from. Everything that came from upstream is credited there.
PhysicalRay evaluator,
so shotgun spread stays spread and every other shooter in the world keeps
firing from their own barrel. Optional barrel dot in both eyes, scope-zoom
aware.mods\config\huditor\, opt-in rather than installed for you.Recommended but not required: HUDitor, Visible Bullets, for HUD placement β the port ships a
VR-tuned layout for it in mods\config\huditor\ and no longer moves HUD widgets
itself.
Install RED4ext, CET and redscript first (the usual Nexus dependencies).
Download the release archive and extract its contents into your Cyberpunk 2077
game root (the folder that contains bin\, r6\, red4ext\). The files land
as:
red4ext\plugins\CyberpunkVR_Stereo\CyberpunkVR_Stereo.dll # the VR plugin: OpenXR, stereo, overlay, VRIK
red4ext\plugins\CyberpunkVR_Stereo\CyberpunkVR_Sight*.dxil # sight shaders, loaded by name at PSO swap
# NOTE: CyberpunkVR_Hands.dll is GONE -- its
# code is inside CyberpunkVR_Stereo.dll now.
# An old copy left in red4ext\plugins makes
# two plugins detour one address, which
# crashes with a fault at FFFFFFFFFFFFFFFF.
archive\pc\mod\cyberpunkvrport.archive # held props, weapon assets, the VRCAM cameras
archive\pc\mod\VRCigarette.archive.xl, vrport_basketball... # the smoking and basketball props
bin\x64\plugins\cyber_engine_tweaks\mods\CyberpunkVRPort_*\ # CET mods -- see the table below
r6\scripts\CyberpunkVRPort_*\ # redscript mods -- see the table below
r6\input\HUDitor.xml, r6\config\... # the HUDitor binding and the port's config
Then start your OpenXR runtime first, and launch the game.
There is no
dxgi.dllany more β this is a RED4ext plugin. Anything else that proxies dxgi (R.E.A.L. VR, for one) must be out ofbin\x64or the two fight over the same engine hooks;scripts\deploy_stereo.ps1moves one aside for you.
Keep only one
.dllin eachred4ext\plugins\CyberpunkVR_*folder. RED4ext loads every DLL it finds there, so a renamed backup beside the real build loads as a second copy of the plugin and the two fight over the same hooks.
From a source tree, install with:
cmake --build build --config Release --target cyberpunkvrport_stereo
pwsh scripts\deploy_stereo.ps1 -GameRoot "<game root>"
VR controller input is merged into the native CP2077 gamepad, so the in-game "Controller" key bindings apply.
Button names are the Touch ones (left controller carries X/Y, right carries A/B); Index, Vive and WMR get the same actions through their own interaction profile. A dash means the port sends nothing there.
| Motion controller | On foot | Driving | Menus |
|---|---|---|---|
| Left stick | Move β one speed, direction from the stick | Trim the latched throttle (weapon drawn); steering, if no hand is on the wheel | Navigate |
| Left stick, fully forward 0.2 s | Sprint, held | β | β |
| Left stick click | Hold = D-pad modifier; released bare = the vanilla L3 | Hold = D-pad and radio modifier; released bare = nothing | β |
| Left trigger | Aim / melee block (the lighter, empty-handed) | Brake | β |
| Left grip | Grab the magazine during a reload | Grab the wheel | Tab left (LB) |
| Left grip, hand at your left ear | Scanner, held | β | β |
| X | Reload Β· interact | Horn | β |
| Y | Weapon switch | β | β |
| Left menu button | Pause menu | Pause menu | Close |
| Right stick X | Turn β snap or smooth | Free look | Navigate |
| Right stick, fully up | Dash / dodge, once per push | β | β |
| Right stick, fully down | Crouch (R3) | β | β |
| Go down in the room | Crouch, optional β follows your knees, both ways | β | β |
| Right stick click | Slide release β racks the weapon | Autodrive | β |
| Right trigger | Fire | Throttle β or fire, weapon drawn, and the throttle latches | β |
| Right grip | Hand-to-holster equip / unequip; melee power | Grab the wheel; + left stick click = radio | Tab right (RB) |
| A | Jump β double and charge jump unchanged | β | Confirm |
| B | Magazine drop (weapon in hand); the game's own B holstered | Held 0.4 s: get out. A tap does nothing | Back |
Six things are gestures rather than buttons and answer to no press at all: a palm on the wheel hub honks, a swing is melee, a hand on what the game is offering interacts, both hands flicked up is a jump, going down in the room crouches (optional), and the tilt between your controllers steers.
X and A can be swapped (Controls tab, on by default): interact and reload move to the right thumb so they cost you nothing while walking, and jump moves to the left β which the hop gesture then makes optional. Menus and vehicles are left alone, and the presses the gestures make are never swapped.
Default VR mapping, on foot:
| Input | Action |
|---|---|
| Left stick | Move β one speed whatever the deflection, direction from the stick |
| Left stick fully forward, held 0.2 s | Sprint β held, and it survives a dash |
| Right stick X | Turn camera (snap or smooth; a snap needs a FULL push) |
| Right stick fully up | Dash (dodge, direction from the left stick) β once per push |
| Right stick fully down | Crouch (R3) |
| Squat physically | Crouch β optional (Controls tab), with an adjustable depth |
| Right thumb click | Slide release β racks the weapon (physical reload) |
| Left hand to your left ear + left grip | Scanner, toggled β squeeze to open, squeeze again to close |
| Right trigger / Left trigger | Fire / Aim (left trigger is also melee block) |
| Right grip | Hand-to-holster equip / unequip; melee power modifier |
| Left grip | Grab the magazine during a reload (at the ear it is the scanner) |
| Left stick up / down, to the stop | Page the quickhack list while the scanner is open |
| A | Jump (double jump and charge jump unchanged) |
| B, weapon in hand | Drop the magazine (physical reload) β not dodge |
| B, holstered | The game's own B again β close the phone, back out |
| X / Y | ReloadΒ·interact / Weapon switch |
| Left menu button | Pause menu |
| Swing a melee weapon | VR motion melee (native attack along the blade) |
While the scanner is open the same hand works it: the left stick to the stop pages the quickhack list (below the stop it still walks, so you can read and move), X applies the selected hack, the right trigger tags the target instead of firing, the right stick click changes the tab and left trigger + right stick zooms. The list used to sit on X and Y, which meant reaching across the face buttons with the hand that is already holding a grip at your ear β the very reach a one-hand scanner exists to avoid.
B is the port's only while a weapon is actually in your hand, because a magazine drop is the only thing the port needs it for. Holstered, it reaches the game β so the phone and the radial close normally. Known limit: with a weapon drawn, B cannot close the phone.
While driving, the same controllers do something else:
| Input | Action |
|---|---|
| Grip, hand at the wheel / handlebars | Grab it β that arm goes back to the driving animation |
| Tilt of the line through both controllers | Steering (one hand: that controller against the wheel centre) |
| Hand on the middle of the wheel | Horn β no grip needed; a hand that is grabbing never honks |
| X | Horn too β the vanilla button, back where it belongs |
| Left stick click + right grip | Radio on / off |
| Right stick click | Autodrive. Moved off the left click, which this port uses for the D-pad chord β a slip there handed the car to the autopilot. The look-back camera it replaces is a head turn in VR |
| Right trigger / Left trigger | Throttle / Brake |
| Right trigger with a weapon drawn | Fire. The throttle latches at the speed it had |
| Left stick forward / back, weapon drawn | Trim the latched throttle |
| B, held | Get out. A tap does nothing β only a deliberate hold ejects you |
| Perspective toggle | Does nothing β the camera is held in first person |
Each hand is independent, so you can hold the wheel with one and keep the other on a gun. With a weapon equipped the right hand shoots and cannot grab the wheel; holster it and the wheel is its again β and since reaching for a holster is how you draw in the first place, that hand is already off the wheel by then. A grip that is holding the wheel does nothing else: no holster equip, no magazine grab. Nothing here needs to know which vehicle you are in, because the reference pose is the game's own driving animation β bikes included.
The exit is a HOLD rather than a tap on purpose. The game's ExitVehicle_Button
carries no hold of its own, so the vehicle acts on the first frame it sees the
action β and at speed acting on it means throwing you out of the car.
D-pad chord. Hold the left stick clicked in, then pick the direction with
the right stick β up / down / left / right, to the stop, the same full push
every other gesture here asks for so that a resting thumb cannot step a list. While
the chord is held the right stick is taken out of the camera, so selecting a
direction cannot snap-turn you.
Release the left stick without having chosen a direction and it emits the normal
L3 press instead, so nothing is lost by using it β except in a vehicle, where
that click is Vehicle_Autodrive and the release emits nothing at all. The
autopilot moved to the right stick click for exactly that reason: the modifier and
the autopilot cannot share a button you hold down all the time.
Buttons follow each runtime's interaction profile (Touch / Index / Vive / WMR); customise the actual actions in the game's Settings β Key Bindings β Controller.
Hotkeys:
F7 β recenter HMDF8 β toggle the VR menu rectangle between full-HMD and a small panelF10 / Insert β open the in-headset settings overlayF11 β HUDitor's editor, if you installed it (the port rebinds it off F7)Four tabs, live, and saved to vrport.ini β nothing here needs a restart. The
driving block sits under Controls: wheel grab and its grab radius, steering
deadzone and full-lock angle, horn on/off with its hub radius,
trigger-fires-the-gun with its throttle trim rate β plus a live read-out of what
is grabbed, what the steering is doing and whether the horn is being pressed.
The launcher (before the game starts) picks the render resolution and carries a DEBUG tick-box that arms every diagnostic probe at once. Leave it off for play: it is for diagnosis and it costs both frame time and a very large log.
| Component | Type | Purpose |
|---|---|---|
CyberpunkVR_Stereo.dll | RED4ext plugin | OpenXR head tracking, the second engine view, HUD composite, sight shaders, F10 overlay, XInput merge |
CyberpunkVR_Stereo.dll | (same plugin) | Full-body avatar / hand IK, hand recoil, weapon-aim and muzzle override, smoking and reload poses, shared-memory bridge -- was CyberpunkVR_Hands.dll until the single-plugin build |
cyberpunkvrport.archive | archive | The magazine/prop carriers on the player templates, the weapon assets the reload drives, the case-ejection effects, and the 62 VRCAM camera components |
CyberpunkVRPort_Stereo | CET | Enables the VRCAM component the launcher picked |
CyberpunkVRPort_VRIK | CET | Starts hand tracking, bridges calibration, publishes the locomotion state |
CyberpunkVRPort_Weapon | CET | Decoupled weapon aim + VR motion-melee detection |
CyberpunkVRPort_Reload | CET | The physical reload β thirteen per-weapon configs, the magazine, the slide, the revolver cylinder |
CyberpunkVRPort_HandCollision | CET | Hand / finger / weapon push-out. Off since 0.1.2 (COLL_ON = false) β the body capsules came back out of the archive after a vehicle launched the player |
CyberpunkVRPort_Crosshair | CET | Hides the game's own crosshair while decoupled VR aim is on |
CyberpunkVRPort_Interact | CET | Hand-on-object interaction: with an interaction already offered, the grip presses it for a pickup and a hand laid on a device presses it by itself. Gated on the game's own focus -- which now follows the pointing hand, so looking away no longer takes the object with it |
CyberpunkVRPort_Jump | CET | The hop gesture: both hands rising together from the belly to the shoulders, in one unbroken movement, becomes A. Measures and logs whether or not the switch is on, so its thresholds can be read out of a normal session |
CyberpunkVRPort_InteractProbe | CET | Measurement only, no gameplay: asks the engine's own interaction look-at test about the object in hand and logs the answer against head and hand angles. The record of how the interaction query was found |
CyberpunkVRPort_Holster | CET + reds | Hand-to-holster equip/unequip (immersive / simple) |
CyberpunkVRPort_Smoking | CET + reds | Cigarette / lighter props, FX, audio, auto-puff |
CyberpunkVRPort_Basketball | CET + reds | VR basketball with real ball values (the physics half is redscript) |
CyberpunkVRPort_WorldMap | CET + reds | World-map head-lock |
CyberpunkVRPort_Hold | reds | Puts a real item in a hand β AddItemToSlot works from redscript and silently does nothing from CET. This is how the Overture's speedloader is carried |
CyberpunkVRPort_Melee | reds | Native melee along the blade segment |
CyberpunkVRPort_WeaponUp | reds | Stops auto-lower / auto-unequip of a drawn MELEE weapon |
CyberpunkVRPort_NoAnims | reds | Disables VR-fighting animations (keeps gameplay systems); also carries no-auto-reload and the firearm half of no-auto-lower |
CyberpunkVRPort_SettingsGuard | reds | Removes the two cascade shadow rows from the settings menu |
Cyberpunk 2077\bin\x64\cyberpunkvrport.log β the plugin's own log, and the
right file for a bug report. Quiet by default; tick DEBUG in the launcher
for per-frame diagnostics.Cyberpunk 2077\red4ext\logs\ β script validation and plugin load errors. If
redscript compilation fails, every redscript mod is off, not just the one that
failed, so check here first when something stops working all at once.Donating is your personal choice. It speeds up development and makes new features possible β nobody is forcing you to do it.
The original port upstream has its own links, and they are on its own page.
39 commits
31 commits
Lua
49.1%
C++
46.3%
Redscript
2.4%
Python
1.3%
Your hands now decide what the game is looking at.
New Features
Everything above is a switch in the F10 overlay, Controls tab. Hand pointing, the hop and the X/A swap ship on; physical crouch ships off, because it only reads right if you recentered standing up.
Fixes in this release
A 6-DoF VR mod for Cyberpunk 2077, built as a RED4ext plugin -
CyberpunkVR_Stereo is the ONLY native plugin: it drives OpenXR head
tracking, real stereo, the in-headset overlay and the full-body VR avatar with
motion-controlled hands that used to live in a second DLL; and a set of CET / redscript mods add VR
weapon aiming, the physical reload, motion melee, hand-to-holster equipping and more. Everything is
configured from an in-headset F10 overlay.
Motion-controller vehicle driving demo: https://youtu.be/WKH7KeZjmx0
Repository: https://github.com/iPowerTech/cyberpunk-vr-port
β οΈ Experimental community mod. Not affiliated with CD PROJEKT RED. Use at your own risk and keep backups of your saves.
This port is developed by iPowerTech β VR driving, the hand interaction system, the physical reload, the body and gesture work, and the releases you install.
It builds on the original cyberpunk-vr-port by dariulone, which this repository is forked from and still merges from. Everything that came from upstream is credited there.
PhysicalRay evaluator,
so shotgun spread stays spread and every other shooter in the world keeps
firing from their own barrel. Optional barrel dot in both eyes, scope-zoom
aware.mods\config\huditor\, opt-in rather than installed for you.Recommended but not required: HUDitor, Visible Bullets, for HUD placement β the port ships a
VR-tuned layout for it in mods\config\huditor\ and no longer moves HUD widgets
itself.
Install RED4ext, CET and redscript first (the usual Nexus dependencies).
Download the release archive and extract its contents into your Cyberpunk 2077
game root (the folder that contains bin\, r6\, red4ext\). The files land
as:
red4ext\plugins\CyberpunkVR_Stereo\CyberpunkVR_Stereo.dll # the VR plugin: OpenXR, stereo, overlay, VRIK
red4ext\plugins\CyberpunkVR_Stereo\CyberpunkVR_Sight*.dxil # sight shaders, loaded by name at PSO swap
# NOTE: CyberpunkVR_Hands.dll is GONE -- its
# code is inside CyberpunkVR_Stereo.dll now.
# An old copy left in red4ext\plugins makes
# two plugins detour one address, which
# crashes with a fault at FFFFFFFFFFFFFFFF.
archive\pc\mod\cyberpunkvrport.archive # held props, weapon assets, the VRCAM cameras
archive\pc\mod\VRCigarette.archive.xl, vrport_basketball... # the smoking and basketball props
bin\x64\plugins\cyber_engine_tweaks\mods\CyberpunkVRPort_*\ # CET mods -- see the table below
r6\scripts\CyberpunkVRPort_*\ # redscript mods -- see the table below
r6\input\HUDitor.xml, r6\config\... # the HUDitor binding and the port's config
Then start your OpenXR runtime first, and launch the game.
There is no
dxgi.dllany more β this is a RED4ext plugin. Anything else that proxies dxgi (R.E.A.L. VR, for one) must be out ofbin\x64or the two fight over the same engine hooks;scripts\deploy_stereo.ps1moves one aside for you.
Keep only one
.dllin eachred4ext\plugins\CyberpunkVR_*folder. RED4ext loads every DLL it finds there, so a renamed backup beside the real build loads as a second copy of the plugin and the two fight over the same hooks.
From a source tree, install with:
cmake --build build --config Release --target cyberpunkvrport_stereo
pwsh scripts\deploy_stereo.ps1 -GameRoot "<game root>"
VR controller input is merged into the native CP2077 gamepad, so the in-game "Controller" key bindings apply.
Button names are the Touch ones (left controller carries X/Y, right carries A/B); Index, Vive and WMR get the same actions through their own interaction profile. A dash means the port sends nothing there.
| Motion controller | On foot | Driving | Menus |
|---|---|---|---|
| Left stick | Move β one speed, direction from the stick | Trim the latched throttle (weapon drawn); steering, if no hand is on the wheel | Navigate |
| Left stick, fully forward 0.2 s | Sprint, held | β | β |
| Left stick click | Hold = D-pad modifier; released bare = the vanilla L3 | Hold = D-pad and radio modifier; released bare = nothing | β |
| Left trigger | Aim / melee block (the lighter, empty-handed) | Brake | β |
| Left grip | Grab the magazine during a reload | Grab the wheel | Tab left (LB) |
| Left grip, hand at your left ear | Scanner, held | β | β |
| X | Reload Β· interact | Horn | β |
| Y | Weapon switch | β | β |
| Left menu button | Pause menu | Pause menu | Close |
| Right stick X | Turn β snap or smooth | Free look | Navigate |
| Right stick, fully up | Dash / dodge, once per push | β | β |
| Right stick, fully down | Crouch (R3) | β | β |
| Go down in the room | Crouch, optional β follows your knees, both ways | β | β |
| Right stick click | Slide release β racks the weapon | Autodrive | β |
| Right trigger | Fire | Throttle β or fire, weapon drawn, and the throttle latches | β |
| Right grip | Hand-to-holster equip / unequip; melee power | Grab the wheel; + left stick click = radio | Tab right (RB) |
| A | Jump β double and charge jump unchanged | β | Confirm |
| B | Magazine drop (weapon in hand); the game's own B holstered | Held 0.4 s: get out. A tap does nothing | Back |
Six things are gestures rather than buttons and answer to no press at all: a palm on the wheel hub honks, a swing is melee, a hand on what the game is offering interacts, both hands flicked up is a jump, going down in the room crouches (optional), and the tilt between your controllers steers.
X and A can be swapped (Controls tab, on by default): interact and reload move to the right thumb so they cost you nothing while walking, and jump moves to the left β which the hop gesture then makes optional. Menus and vehicles are left alone, and the presses the gestures make are never swapped.
Default VR mapping, on foot:
| Input | Action |
|---|---|
| Left stick | Move β one speed whatever the deflection, direction from the stick |
| Left stick fully forward, held 0.2 s | Sprint β held, and it survives a dash |
| Right stick X | Turn camera (snap or smooth; a snap needs a FULL push) |
| Right stick fully up | Dash (dodge, direction from the left stick) β once per push |
| Right stick fully down | Crouch (R3) |
| Squat physically | Crouch β optional (Controls tab), with an adjustable depth |
| Right thumb click | Slide release β racks the weapon (physical reload) |
| Left hand to your left ear + left grip | Scanner, toggled β squeeze to open, squeeze again to close |
| Right trigger / Left trigger | Fire / Aim (left trigger is also melee block) |
| Right grip | Hand-to-holster equip / unequip; melee power modifier |
| Left grip | Grab the magazine during a reload (at the ear it is the scanner) |
| Left stick up / down, to the stop | Page the quickhack list while the scanner is open |
| A | Jump (double jump and charge jump unchanged) |
| B, weapon in hand | Drop the magazine (physical reload) β not dodge |
| B, holstered | The game's own B again β close the phone, back out |
| X / Y | ReloadΒ·interact / Weapon switch |
| Left menu button | Pause menu |
| Swing a melee weapon | VR motion melee (native attack along the blade) |
While the scanner is open the same hand works it: the left stick to the stop pages the quickhack list (below the stop it still walks, so you can read and move), X applies the selected hack, the right trigger tags the target instead of firing, the right stick click changes the tab and left trigger + right stick zooms. The list used to sit on X and Y, which meant reaching across the face buttons with the hand that is already holding a grip at your ear β the very reach a one-hand scanner exists to avoid.
B is the port's only while a weapon is actually in your hand, because a magazine drop is the only thing the port needs it for. Holstered, it reaches the game β so the phone and the radial close normally. Known limit: with a weapon drawn, B cannot close the phone.
While driving, the same controllers do something else:
| Input | Action |
|---|---|
| Grip, hand at the wheel / handlebars | Grab it β that arm goes back to the driving animation |
| Tilt of the line through both controllers | Steering (one hand: that controller against the wheel centre) |
| Hand on the middle of the wheel | Horn β no grip needed; a hand that is grabbing never honks |
| X | Horn too β the vanilla button, back where it belongs |
| Left stick click + right grip | Radio on / off |
| Right stick click | Autodrive. Moved off the left click, which this port uses for the D-pad chord β a slip there handed the car to the autopilot. The look-back camera it replaces is a head turn in VR |
| Right trigger / Left trigger | Throttle / Brake |
| Right trigger with a weapon drawn | Fire. The throttle latches at the speed it had |
| Left stick forward / back, weapon drawn | Trim the latched throttle |
| B, held | Get out. A tap does nothing β only a deliberate hold ejects you |
| Perspective toggle | Does nothing β the camera is held in first person |
Each hand is independent, so you can hold the wheel with one and keep the other on a gun. With a weapon equipped the right hand shoots and cannot grab the wheel; holster it and the wheel is its again β and since reaching for a holster is how you draw in the first place, that hand is already off the wheel by then. A grip that is holding the wheel does nothing else: no holster equip, no magazine grab. Nothing here needs to know which vehicle you are in, because the reference pose is the game's own driving animation β bikes included.
The exit is a HOLD rather than a tap on purpose. The game's ExitVehicle_Button
carries no hold of its own, so the vehicle acts on the first frame it sees the
action β and at speed acting on it means throwing you out of the car.
D-pad chord. Hold the left stick clicked in, then pick the direction with
the right stick β up / down / left / right, to the stop, the same full push
every other gesture here asks for so that a resting thumb cannot step a list. While
the chord is held the right stick is taken out of the camera, so selecting a
direction cannot snap-turn you.
Release the left stick without having chosen a direction and it emits the normal
L3 press instead, so nothing is lost by using it β except in a vehicle, where
that click is Vehicle_Autodrive and the release emits nothing at all. The
autopilot moved to the right stick click for exactly that reason: the modifier and
the autopilot cannot share a button you hold down all the time.
Buttons follow each runtime's interaction profile (Touch / Index / Vive / WMR); customise the actual actions in the game's Settings β Key Bindings β Controller.
Hotkeys:
F7 β recenter HMDF8 β toggle the VR menu rectangle between full-HMD and a small panelF10 / Insert β open the in-headset settings overlayF11 β HUDitor's editor, if you installed it (the port rebinds it off F7)Four tabs, live, and saved to vrport.ini β nothing here needs a restart. The
driving block sits under Controls: wheel grab and its grab radius, steering
deadzone and full-lock angle, horn on/off with its hub radius,
trigger-fires-the-gun with its throttle trim rate β plus a live read-out of what
is grabbed, what the steering is doing and whether the horn is being pressed.
The launcher (before the game starts) picks the render resolution and carries a DEBUG tick-box that arms every diagnostic probe at once. Leave it off for play: it is for diagnosis and it costs both frame time and a very large log.
| Component | Type | Purpose |
|---|---|---|
CyberpunkVR_Stereo.dll | RED4ext plugin | OpenXR head tracking, the second engine view, HUD composite, sight shaders, F10 overlay, XInput merge |
CyberpunkVR_Stereo.dll | (same plugin) | Full-body avatar / hand IK, hand recoil, weapon-aim and muzzle override, smoking and reload poses, shared-memory bridge -- was CyberpunkVR_Hands.dll until the single-plugin build |
cyberpunkvrport.archive | archive | The magazine/prop carriers on the player templates, the weapon assets the reload drives, the case-ejection effects, and the 62 VRCAM camera components |
CyberpunkVRPort_Stereo | CET | Enables the VRCAM component the launcher picked |
CyberpunkVRPort_VRIK | CET | Starts hand tracking, bridges calibration, publishes the locomotion state |
CyberpunkVRPort_Weapon | CET | Decoupled weapon aim + VR motion-melee detection |
CyberpunkVRPort_Reload | CET | The physical reload β thirteen per-weapon configs, the magazine, the slide, the revolver cylinder |
CyberpunkVRPort_HandCollision | CET | Hand / finger / weapon push-out. Off since 0.1.2 (COLL_ON = false) β the body capsules came back out of the archive after a vehicle launched the player |
CyberpunkVRPort_Crosshair | CET | Hides the game's own crosshair while decoupled VR aim is on |
CyberpunkVRPort_Interact | CET | Hand-on-object interaction: with an interaction already offered, the grip presses it for a pickup and a hand laid on a device presses it by itself. Gated on the game's own focus -- which now follows the pointing hand, so looking away no longer takes the object with it |
CyberpunkVRPort_Jump | CET | The hop gesture: both hands rising together from the belly to the shoulders, in one unbroken movement, becomes A. Measures and logs whether or not the switch is on, so its thresholds can be read out of a normal session |
CyberpunkVRPort_InteractProbe | CET | Measurement only, no gameplay: asks the engine's own interaction look-at test about the object in hand and logs the answer against head and hand angles. The record of how the interaction query was found |
CyberpunkVRPort_Holster | CET + reds | Hand-to-holster equip/unequip (immersive / simple) |
CyberpunkVRPort_Smoking | CET + reds | Cigarette / lighter props, FX, audio, auto-puff |
CyberpunkVRPort_Basketball | CET + reds | VR basketball with real ball values (the physics half is redscript) |
CyberpunkVRPort_WorldMap | CET + reds | World-map head-lock |
CyberpunkVRPort_Hold | reds | Puts a real item in a hand β AddItemToSlot works from redscript and silently does nothing from CET. This is how the Overture's speedloader is carried |
CyberpunkVRPort_Melee | reds | Native melee along the blade segment |
CyberpunkVRPort_WeaponUp | reds | Stops auto-lower / auto-unequip of a drawn MELEE weapon |
CyberpunkVRPort_NoAnims | reds | Disables VR-fighting animations (keeps gameplay systems); also carries no-auto-reload and the firearm half of no-auto-lower |
CyberpunkVRPort_SettingsGuard | reds | Removes the two cascade shadow rows from the settings menu |
Cyberpunk 2077\bin\x64\cyberpunkvrport.log β the plugin's own log, and the
right file for a bug report. Quiet by default; tick DEBUG in the launcher
for per-frame diagnostics.Cyberpunk 2077\red4ext\logs\ β script validation and plugin load errors. If
redscript compilation fails, every redscript mod is off, not just the one that
failed, so check here first when something stops working all at once.Donating is your personal choice. It speeds up development and makes new features possible β nobody is forcing you to do it.
The original port upstream has its own links, and they are on its own page.
39 commits
31 commits
Lua
49.1%
C++
46.3%
Redscript
2.4%
Python
1.3%