Common Problems and How to Fix Them
Published: October 08 2023 by Last documented update: February 18 2024 by
In this guide, I will do my best to address the most common first person issues I've seen, and how to fix them.
This guide assumes that you have an already working in-game item, and at least a basic understanding of WolvenKit.
To implement anything in this guide, you will need with the mod's files. You already have that if you're fixing your own mod (hopefully). If not, check out this guide on how to analyze other mods!
If you are modifying someone else's mod:
If you are changing someone else's mod, the easiest thing is to the same as the mod's .archive
file and add all the files from the original mod. You can do that by switching to the and for archive:name_of_file
For more information on this, read here.
If you're creating a fix for someone else's asset, why not drop them the final files - or a link to this guide?
This is probably the most common problem I've seen, and is also thankfully the easiest to fix.
Open up the mesh entity (.ent
) file for the item you need to fix:
Expand the components
array, then find any component
s with Mesh
in their types, and check if they require fixing. In my example project, it's both the jacket and the sleeves.
Scroll down and find the array renderingPlaneAnimationParam
, which will most likely be grayed out.
Click on it. In the right pane, change None
to renderPlane.
Instead of renderPlane
, you can also use renderPlaneLeftArm
and renderPlaneRightArm
individually.
Repeat this process for any other component, as needed
When finished, save the file (either Ctrl + S or the Save button top left).
Install and test the mod in-game. If you did it correctly, your sleeves should now render properly.
To fix this problem, you need to hide your item in first person perspective.
This part of the guide will show you how to turn the entire item invisible. If you don't want that, check #problem-3-partial-hiding-justdraculathings
This fix starts in the .yaml
file (which should live under your Wolvenkit project's resources
folder in the subfolder r6/tweaks
, perhaps in a subfolder).
If you are editing someone else's mod, you need to copy their .yaml
to your project. If you don't know which file that is, check their Nexus mod files, as it will be part of the original .zip file.
If you don't have a yaml because you're changing an in-game item for some reason, you need to start at #fixing-the-root-entity. If you convert it to a dynamic appearance, you can stick to these parts in the rest of the guide.
Open the file in any text editor (recommended: Notepad++)
Helpful documentation on .yaml files resides here. Hopefully it looks something like this:
Check if there is something called $instances
. If yes, the mod is using ItemAdditions: Dynamic Appearances and you are done here — go to #dynamic-variants-hiding-fpp
Find the line appearanceSuffixes
. Again, If the mod is using ItemAdditions: Dynamic Appearances (there is something called $instances), you can skip this step.
If the line isn't there, add it. Use the same number of leading spaces as in the surrounding lines!
Add the line itemsFactoryAppearanceSuffix.Camera
to the array. If you have something else in there, add a comma.
Repeat this process for any other items in the .yaml
that you need to fix.
Save and close the file.
For dynamic appearances (if the yaml has a key called $instances
), go to #dynamic-variants-hiding-fpp
Switch back to Wolvenkit.
Open the root entity (.ent) file (it should have an array called appearances
)
You now have two ways of hiding the item in first person:
This will not work with ItemAdditions: Dynamic Appearances!
Find the array tags
at the end of the list.
In the panel on the right, click "add new item" (the yellow +) until you have an empt text field.
In the text field, enter EmptyAppearance:FPP
Find and expand the appearances
array.
For each entry in there, you need to complete the following steps (the example project has only one entry).
Select each entry
Duplicate it via right-click menu
For the old entry: Change its name
to end in &TPP
(third person perspective)
For the new entry:
Change the name
to end in &FPP
(first person camera)
Change the depotPath to base\characters\appearances\player\items\empty_appearance.app
change the appearanceName
to default
For legacy appearances (if the yaml does not have a key called $instances
), go to #legacy-variants-hiding-fpp
Switch back to Wolvenkit.
Pick one of the two options below (we recommend#hiding-fpp-in-the-.app)
Open the .app file in Wolvenkit
Open the appearances
array
Select each appearance and add &camera=tpp
to the name.
Open the #mesh-component-entity-simple-entity in Wolvenkit
Open the components
array
Select each component with Mesh
in its type and add &camera=tpp
to the name
Alternatively, you can duplicate the component and have two for different meshes. This will be covered in #problem-3-partial-hiding-justdraculathings
Save and close the file. Repeat the whole process for any other items that need to be obliterated in first person. Install and test. If all went well, no more obstructed vision!
Fixing this is very similar to Problem #2, just with a few extra steps.
Create an additional FPP appearance by following the steps in #hiding-fpp-via-appearance-definition. Skip 2.4.3 and 2.4.4.
The depotPath
should point at the same .app file as the &TPP appearance.
Change the value for appearanceName. For example, add _fpp
Open your .app file and expand the appearances
array.
You need to repeat the following steps for every appearance in the .app.
Select an appearance and duplicate it
Change its name
to correspond to the appearanceName
that you used in your root entity (Step 3)
At this point, it can be done in a few ways, depending on some factors:
Open up the appearance's partsValue
array
Open the .ent file that is linked inside
In the .ent file, open the components
array and check any component with Mesh in its name:
Open the linked .mesh file in Wolvenkit
Select Mesh Preview
In the right-hand panel, you will see a list of checkboxes.
If there is only one submesh, you need to edit it in Blender to split off or delete the offending parts - complete the section #creating-a-second-.mesh before proceeding. I'll wait.
Toggle them off until the part that is in your face turns invisible. In my example, submesh 01 hides the upper collar.
Remember the number (01 in the example below)
Proceed to the section for Chunk Masks.
You can learn more about chunk masks under 3d objects: .mesh files -> Submeshes, Materials and Chunks. This is not necessary for the purpose of this guide.
Switch back to the appearance (.app) file
Expand your first person appearance.
Expand the partsOverrides
array. If it's empty, click on the array itself, then in the right pane, click create item in array.
Select componentsOverrides
by clicking on it.
In the right panel, click on the yellow + to create a new item in array.
Open up the mesh entity (.ent) file and expand the components
array.
Find the component that needs its parts hidden and copy the name. In my example, the component is examplejacket1_fur
.
Back to the appearance (.app) file. Paste the component's name from the mesh entity into the componentName
field.
Click on chunkMask
and uncheck the submeshes that you want to hide. (You found out which ones that were in #finding-the-right-submesh - In my example it was submesh 01)
Optional: If you need to hide more parts or affect more components/meshes, rinse and repeat.
Save the appearance (.app) file and install the mod to test. If all went well, there should no longer be parts clipping into view.
The clean way to do this is to split the original mesh into submeshes, which you can then hide via chunkmasks. If you want to do that, skip straight to #editing-the-.mesh
To show a different item (one with the clipping bits removed) in first person perspective, we need to create a second .mesh file and a corresponding meshentity .ent that we can display. This guide will show you how.
Duplicate the .mesh
file that's clipping in first person. For my example, I'm using the jacket mesh
Duplicate the meshentity .ent
file that belongs to the .mesh
file.
Change their names to end in _fpp to indicate that this is a mesh for the first person perspective (or do whatever you want, but this guide assumes...)
In the .app
file, open your first person appearance.
Add a partsOverride
by following the steps under #chunk-masks (skip step 9)
Change the depotPath to your new _fpp meshentity file.
Save and close the .app – it is now pointing at your new _fpp meshentity.
In the _fpp meshentity file, open the components array
Select the component with Mesh in its name, open it and change the depotPath for the mesh to your new _fpp mesh file.
Save and close the .ent - it is now pointing at your _fpp mesh.
For the next step, we need to export our .mesh file and edit it. You can use any 3d editing program, but this guide will use Blender 3.6 and the Wolvenkit Blender IO Suite.
Optional, but recommended: If you don't have the Wolvenkit Blender IO Suite installed, do that now.
Export your _fpp .mesh file.
If the export throws an error, uncheck the Export Materials option in the settings panel (you don't need it)
You now have a .glb
file in your project's raw
folder. You can find it like this:
Switch the Project Explorer to the source
or raw
tab
Right-click on your exported file
Select the option to show it in Windows Explorer
Now, hit up the 3d editing: Submeshes page and edit your mesh.
If you stuck to the guide, you shouldn't run into any errors. If you do, check the Troubleshooting your mesh edits page, or reach out to us on Discord in #mod-dev-chat.
???
Profit
In Wolvenkit, find the
When you are done, use the to import back the .glb file.
the project