Vivecraft Epic Fight Camera Offset
Overview
Vivecraft Epic Fight Camera Offset is a client-side compatibility mod that adjusts the first-person VR camera while using Vivecraft together with Epic Fight.
I created this mod because some Epic Fight animations can cause the visible first-person player model to intersect with the VR camera. During attacks, weapon stances, and other animated movements, the camera may enter the player model’s head, neck, chest, or body, obstructing the view and making combat uncomfortable.
This mod provides two camera tracking modes:
-
HEAD_POSITION, which follows the animated position of Epic Fight’s Head joint
-
FIXED, which applies configurable offsets relative to the player model’s body direction
Starting with version 0.3.1, HEAD_POSITION is the default tracking mode.
Important VR Comfort Warning
HEAD_POSITION can cause strong or rapid camera movement.
Because the camera follows the movement of Epic Fight’s animated Head joint, certain attacks, weapon stances, dodges, custom animations, or animation packs may cause the camera to shake, rise, fall, or move suddenly.
This may cause:
-
Motion sickness
-
Dizziness
-
Nausea
-
Headaches
-
Eye strain
-
Loss of balance or physical discomfort
Stop playing immediately if you begin to feel unwell.
Take a break, switch the tracking mode to FIXED, or stop using this mod if the symptoms continue. Do not continue playing through discomfort.
The intensity of the movement depends heavily on the Epic Fight animation, weapon, custom model, and animation pack being used.
HEAD_POSITION Mode
HEAD_POSITION reads the animated displacement of Epic Fight’s Head joint and applies that movement to the Vivecraft camera.
For example, some weapon stances cause the Epic Fight player model to rise slightly above its normal position. Without camera tracking, the model may move upward while the VR camera remains behind, causing the camera to become buried inside the player model.
With HEAD_POSITION, the camera follows the animated movement of the Head joint:
Vivecraft camera position
+ Epic Fight animated Head-joint displacement
+ configured camera offsets
This allows the camera to remain in a more consistent position relative to the animated player model.
Only the camera position is adjusted. Camera rotation remains controlled by the VR headset.
This means:
-
Looking around still follows the physical movement of the headset
-
Vivecraft’s room-scale head movement remains available
-
Epic Fight animations can move the camera position
-
Epic Fight animations do not directly control the direction in which the player is looking
No movement-distance limit is applied to HEAD_POSITION tracking. The camera follows the displacement provided by the animation.
Automatic fallback
HEAD_POSITION may not work with every player model, armature, animation, or Epic Fight addon.
If the mod cannot obtain a valid Head joint or animated pose, it automatically falls back to the existing FIXED body-relative offset system.
HEAD_POSITION available
→ Apply animated Head displacement and configured offsets
HEAD_POSITION unavailable
→ Apply configured FIXED offsets only
The fallback can occur when:
-
The Head joint cannot be found
-
The Epic Fight player patch is unavailable
-
The current armature is unsupported
-
The animated pose cannot be obtained
-
A custom model uses an incompatible skeleton
-
The calculated position contains invalid data
-
Another mod interferes with Epic Fight’s animation system
The fallback is automatic and does not require changing the configuration file.
FIXED Mode
FIXED applies a configurable camera offset without following the animated Head joint.
The horizontal offsets are rotated according to the direction of the Epic Fight player model’s body.
They are not based on the direction of the VR headset.
For example:
-
rightOffsetMetersalways moves toward the model’s right side -
forwardOffsetMetersalways moves toward the direction the model’s body is facing -
Looking to the side with the headset does not rotate these offsets
FIXED mode is generally more stable and may be more comfortable for players who experience motion sickness with HEAD_POSITION.
Features
-
Adjusts the Vivecraft first-person camera while Epic Fight mode is active
-
Includes HEAD_POSITION animation tracking
-
Follows Epic Fight’s animated Head-joint displacement
-
Automatically falls back to FIXED mode when Head tracking is unavailable
-
Keeps VR headset rotation independent from Epic Fight animations
-
Supports vertical camera adjustment
-
Supports forward and backward adjustment
-
Supports left and right adjustment
-
Rotates horizontal offsets according to the Epic Fight player model’s body direction
-
Can be limited to Epic Fight mode only
-
Can be limited to Vivecraft’s first-person rendering passes
-
Does not apply a movement-distance limit to HEAD_POSITION
-
Client-side only
-
Does not need to be installed on the server
Requirements
This version was created and tested for:
-
Minecraft: 1.20.1
-
Forge: 47.4.22 or later
-
Vivecraft: 1.20.1-1.3.15
-
Epic Fight: 20.14.17
Other versions may not work correctly.
Compatibility with custom Epic Fight models, armatures, animations, and addon mods cannot be guaranteed.
Installation
-
Install Forge, Vivecraft, and Epic Fight.
-
Place this mod’s JAR file in the client’s
modsfolder. -
Start Minecraft once to generate the configuration file.
-
Close Minecraft before editing the configuration.
This mod is client-side only and does not need to be installed on a dedicated server.
Remove older versions of this mod before installing a newer version. Do not keep multiple versions in the mods folder at the same time.
Configuration
After launching Minecraft once with the mod installed, the following file will be created:
config/epicfight_vr_camera_offset-client.toml
Configuration changes are loaded when Minecraft starts.
Restart Minecraft after editing the file.
Default configuration for version 0.3.1
configVersion = 4
[tracking]
trackingMode = "HEAD_POSITION"
[camera]
enabled = true
rightOffsetMeters = 0.000
verticalOffsetMeters = 0.150
forwardOffsetMeters = 0.000
epicFightModeOnly = true
firstPersonOnly = true
debugLogging = true
Configuration Options
trackingMode
trackingMode = "HEAD_POSITION"
Selects the camera tracking method.
Available values:
trackingMode = "HEAD_POSITION"
Follows Epic Fight’s animated Head-joint displacement and adds the configured camera offsets.
This is the default mode in version 0.3.1 and later.
trackingMode = "FIXED"
Disables Head-joint tracking and uses only the configured body-relative camera offsets.
FIXED mode is recommended for players who experience motion sickness, excessive camera movement, or compatibility problems with HEAD_POSITION.
enabled
enabled = true
Enables or disables all camera adjustment functions.
-
true: Camera adjustment is enabled -
false: Camera adjustment is disabled
rightOffsetMeters
rightOffsetMeters = 0.000
Moves the camera horizontally relative to the direction of the Epic Fight player model’s body.
-
Positive values move the camera toward the body’s right side
-
Negative values move the camera toward the body’s left side
Default value:
rightOffsetMeters = 0.000
Allowed range:
-2.0 to 2.0 metres
Example:
rightOffsetMeters = 0.050
This moves the camera approximately 5 centimetres toward the player model’s right side.
verticalOffsetMeters
verticalOffsetMeters = 0.150
Moves the camera vertically in world space.
-
Positive values move the camera upward
-
Negative values move the camera downward
Default value in version 0.3.1:
verticalOffsetMeters = 0.150
Allowed range:
-2.0 to 2.0 metres
In HEAD_POSITION mode, this offset is added after the animated Head-joint displacement has been calculated.
Example:
verticalOffsetMeters = 0.100
This adds an upward offset of approximately 10 centimetres.
forwardOffsetMeters
forwardOffsetMeters = 0.000
Moves the camera horizontally relative to the direction of the Epic Fight player model’s body.
-
Positive values move the camera forward
-
Negative values move the camera backward
Default value:
forwardOffsetMeters = 0.000
Allowed range:
-2.0 to 2.0 metres
Example:
forwardOffsetMeters = 0.050
This moves the camera approximately 5 centimetres forward relative to the player model’s body.
epicFightModeOnly
epicFightModeOnly = true
Controls whether the camera adjustment is applied only while Epic Fight mode is active.
-
true: Apply the adjustment only while Epic Fight mode is active -
false: Allow the adjustment outside Epic Fight mode
The recommended setting is:
epicFightModeOnly = true
firstPersonOnly
firstPersonOnly = true
Limits the camera adjustment to Vivecraft’s first-person LEFT, RIGHT, and CENTER rendering passes.
-
true: Apply the adjustment only to first-person VR rendering -
false: Do not restrict the adjustment to those rendering passes
The recommended setting is:
firstPersonOnly = true
debugLogging
debugLogging = true
Enables one-time diagnostic messages in latest.log.
These messages can help determine whether HEAD_POSITION is active or whether the mod has fallen back to FIXED mode.
When HEAD_POSITION works successfully, a message similar to the following may appear:
HEAD_POSITION active using joint Head
When Head tracking is unavailable, a message similar to the following may appear:
HEAD_POSITION unavailable; using FIXED body-relative fallback
Set this option to false if diagnostic logging is not needed.
Suggested Adjustment Method
The default HEAD_POSITION vertical offset is:
verticalOffsetMeters = 0.150
If the viewpoint feels too high, reduce it gradually:
verticalOffsetMeters = 0.100
or:
verticalOffsetMeters = 0.050
If the camera is still inside the player model, increase the value gradually.
For forward and sideways adjustments, use small values first. A value between approximately 0.02 and 0.05 metres is recommended as a starting point.
Test one setting at a time.
If HEAD_POSITION causes uncomfortable camera movement, switch to:
trackingMode = "FIXED"
Troubleshooting
Before reporting a problem:
-
Confirm that only one version of this mod is installed.
-
Confirm that the required versions of Forge, Vivecraft, and Epic Fight are installed.
-
Test with
trackingMode = "FIXED". -
Test with custom Epic Fight animation packs temporarily removed.
-
Check
latest.logfor HEAD_POSITION or fallback messages.
When reporting a problem, please include:
-
latest.log -
debug.log -
Any available crash report
-
The name and version of the affected animation pack
-
The name and version of the affected Epic Fight addon
-
The weapon or stance that causes the problem
-
Whether the problem also occurs in FIXED mode
These files and details may help identify the cause, but a fix cannot be guaranteed.
AI-Assisted Development
This mod was created with the assistance of AI.
I am not an experienced programmer, and I generally do not have enough technical ability to diagnose or fix every problem that may occur.
Because of this, I sincerely apologize in advance if I am unable to resolve crashes, compatibility problems, incorrect camera movement, or other issues.
HEAD_POSITION interacts with Epic Fight’s animation and model systems, so compatibility may vary between custom models, armatures, weapons, animations, and addon mods.
Important Data Warning
Please make a backup of your world before installing or using this mod.
Although this is a client-side camera compatibility mod, unexpected errors or incompatibilities may still occur in a heavily modded environment.
Use this mod at your own risk.
I am not responsible for:
-
Corrupted worlds
-
Damaged game data
-
Lost progress
-
Deleted or altered configuration files
-
Crashes
-
Physical discomfort or motion sickness
-
Any other problems caused directly or indirectly by using this mod
Always keep safe backups of your important Minecraft worlds and configuration files.