This tutorial assumes that your Wolvenkit project is called your_cool_new_pose_pack, and that your legal name is your_beautiful_name.
If that's not the case, please adjust accordingly!
Setting up the files
At any point during this guide, you can press the green Install button on Wolvenkit's toolbar to check the mod in Wolvenkit.
Step 1: Rename the folders
TL;DR
Use Wolvenkit's Rename feature with the Update in project files box checked
Use Notepad++ to edit photomode_poses_tutorial.xl. Search&replace the original path (tutorial\animations\netrunner_making_poses) with your new folder path.
We usually do this at the very end and I'm leaving you alone with it. However, this time we start by renaming the folders.
Here's how your project should look when you're done.
Select the highlighted tutorial folder and press f2. This will open the rename dialogue.
Change its name, and check the Update in project files? box
Do the same for the netrunner_making_poses folder (you want your file structure to be as tidy as it can be - future you will thank you for it)
Switch your project browser to the resources tab and open photomode_poses_tutorial.xl in notepad++:
Use Edit -> Replace (Keyboard shortcut: Ctrl+H) to open the search and replace menu. Replace the old path with your new path:
tutorial\animations\netrunner_making_poses -> your_beautiful_name\animations\your_cool_new_pose_pack
You have to adjust the paths under set and en-us to your new changed folder structure.
If you want to support more body types from the Nibbles Replacer, you can switch to the Mod Browser and enter the following search query to find all the entities:
base\characters\entities\photomode_replacer > .ent
Here's what those things do:
animations: A list of entities and animation files that you want to add to them
animations/entity: The relative path to the photomode .ent file. There are just three of them.
animations/set: The relative path to the .anims file in your Wolvenkit project.
localization/onscreens/en-us: A file with translation strings. Holds the name of your photo mode pose set.
localization.json
You can name this file whatever you want, just make sure that you change the path and name in the .xl file.
Change the yellow box UI-Photomode-tutorial-netrunner-making-poses to something unique to your mod.
To do future you a favour, use names that will make sense even after a year or two - e.g. UI-Photomode-your_beautiful_name-my_cool_poses instead of UI-Photomode-ghuawstsedr-hsarht223445
The green text is the name that will show up in photo mode.
femaleVariant is the default key - if you don't need different pose names for the male body gender, leave it empty.
The .anim file(s)
If you have created your own animations (as a replacer or for AMM), then you are already familiar with this kind of file. If not, it is time to appropriate one from the game files - pick any, since the process is just like with a replacer.
Optional: If you want your pose to move, you can set the duration in the .yaml as well!
The .yaml file
Without this file (r6/tweaks/your_beautiful_name/your_cool_new_pose_pack.yaml), the animations will be in the entity, but the photo mode won't know about them.
You can use this tool by @wolv to autogenerate your .yaml. If you do that, then you can skip this entire section and check the result.
As of Dec 17 2024, the tool is not yet up-to-date with 2.2!
The yaml file has three sections:
Adding the category
The first block will introduce your new category to the photo mode.
I recommend doing search and replace on netrunner_making_poses, because it's used a bunch of times.
PhotoModePoseCategories.netrunner_making_poses: This is the name of the category, used to assign individual pose entries to your category.
displayName: This must match the secondaryKey in your .json
Define the pose entries
If one of your poses is called idle_stand, that will break a bunch of other mods. Please re-name it in both the .anims file and the .yaml before releasing.
Now comes a long list of entries. They'll look like this:
You need to add one of those for every pose from your .anim file that you want to show up in photo mode.
PhotoModePoses.sit_chair_table_keyboard__2h_on_keyboard__make_amm_addon: This is the unique key to assign your pose to your pose set. You'll need it in the third block.
animationName: This must match the animation name in your .anim file (the green box).
category: This must match the category in the first block.
displayName: What'll show up in photo mode
Telling photo mode about the poses
You register your poses for photo mode by creating the following entry categories:
# Player and Nibblesphoto_mode.character.malePoses: - !append-oncePhotomodePoses.sit_chair_table_keyboard__2h_on_keyboard_01__thinkingphoto_mode.character.femalePoses:photo_mode.character.quadrupedPoses:# extra NPCs: female body genderphoto_mode.character.altPoses:photo_mode.character.bluemoonPoses:photo_mode.character.evelynPoses:photo_mode.character.hanakoPoses:photo_mode.character.judyPoses:photo_mode.character.lizzyPoses:photo_mode.character.meredithPoses:photo_mode.character.panamPoses:photo_mode.character.purpleforcePoses:photo_mode.character.redmenacePoses:photo_mode.character.rogueoldPoses:photo_mode.character.rogueyoungPoses:photo_mode.character.songbirdPoses:photo_mode.character.myersPoses:# extra NPCs: male body genderphoto_mode.character.adamPoses:photo_mode.character.altjohnnyPoses:photo_mode.character.johnnyPoses:photo_mode.character.goroPoses:photo_mode.character.jackiePoses:photo_mode.character.kerryPoses:photo_mode.character.riverPoses:photo_mode.character.viktorPoses:photo_mode.character.kurtPoses:photo_mode.character.reedPoses:
The entries in the list must match the unique keys that you've defined in the second block, and you need one entry per pose.
If you have different names for differently-gendered poses, you need to use the correct lists.
Finishing up
Before you can share your pose pack, you need to change the paths. If you don't and the next modder also doesn't, then only one of your mods will work.
You can find a full guide on changing the paths here.
If you rename files or folders under resources, remember to delete the old control files from your game directory.
The result
At any point during this guide, you can press the green Install button on Wolvenkit's toolbar to check the mod in Wolvenkit.
Optional: Further fine-tuning poses
Spawning props with the pose
You can find a more detailed guide on this on xbae's website.
It is possible to have certain props spawned automatically. However, this feature works only for Player V.
In your .yaml file (r6/tweaks/your_beautiful_name/your_cool_new_pose_pack.yaml), add the acceptedWeaponConfig attribute.
In the case of weapons, V spawn with whatever weapon you were holding when entering PhotoMode, or the default weapon if none was defined.
The position of the prop is defined by WeaponRight/ WeaponLeft bone.
Pose conditions [Optional]
You can limit the availability of poses by setting a poseStateConfig. For example, the following entry in your yaml will cause the pose to be unavailable unless V is swimming forwards: