ArchiveXL: adding Photo Mode Poses
How to hook up custom photo mode poses with ArchiveXL
Summary
Published: May 09 2023 by @manavortex Last documented update: December 17 2024 by @manavortex
This guide will walk you through adding poses to Cyberpunk 2077's photo mode with ArchiveXL.
Difficulty: You know how to read ;)
Easy Photomode Poses by wolv will do all this automatically and is up-to-date with 2.2! You can skip a bunch of reading and just use the required tool
Wait, this is not what I want!
To make poses from scratch, check Poses/Animations: make your own
To scale poses/animations, check Scaling Poses/Animations
Prerequisites:
We will hook up an existing .anims
file to photo mode. If you don't have one, you can find a dummy file in the AMM pose guide.
Tool versions:
Cyberpunk 2077 2.2
WolvenKit >= 8.15.0
Notepad++ (you can use any text editor, but N++ is recommended)
Required mods (2.2)
Your finished pose mod will have the following dependencies:
Getting the files
Download either of these files:
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 theUpdate in project files
box checkedUse Notepad++ to edit
photomode_poses_tutorial.xl
. Search&replace the original path (tutorial\animations\netrunner_making_poses
) with your new folder path.Test. The. Mod.
Proceed to Step 2: hook up your poses
Step by step
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?
boxDo 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

Hit "Replace All"
Save your file (Keyboard shortcut:
Ctrl+S
)Now, rename the files under
resources
as well:photomode_poses_tutorial.xl
->your_cool_new_pose_pack.xl
r6\tweaks\tutorial\photomode_poses_tutorial.yaml
->r6\tweaks\tutorial\your_cool_new_pose_pack.yaml
Rename
r6\tweaks\tutorial
tor6\tweaks\your_beautiful_name
That's it for the renaming. Time to test!
Install the mod, and make sure that you still have photo mode poses.
Step 2: hook up your poses
The .xl file
This file tells Cyberpunk to load your custom poses and will be in the same folder as the .archive file for your mod. It looks like this:
You have to adjust the paths under set
and en-us
to your new changed folder structure.
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
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 ofUI-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.
Just as a reminder, here's how they look:

You will need the green text in your .yaml file.
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.
PhotoModePoseCategories.netrunner_making_poses
: This is the name of the category, used to assign individual pose entries to your category.displayName:
This must match thesecondaryKey
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. You can use yaml anchors to minimize copy-pasting:
Add both code blocks:
Characters with *AddPoses
will use the poses defined under &AddPoses
. If you don't want a character to use certain poses, don't put *AddPoses
next to their photomode.character
entry.
An entry without YAML anchors, where poses are manually appended to each character, looks like this:

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


Optional: Further fine-tuning poses
Spawning props with the pose
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:
Once installed, it will be in the same folder as the .archive
file for your mod — so you should name it your_mod_name.archive.xl
Your file should look like this:
While editing .xl files, make sure to keep the indent (the number of spaces at the beginning of the line). If you fuck up, you can use yamllint to check.
From the
animations
section, delete the blocks that you don't wantReplace
tutorial\animations\netrunner_making_poses\pXa.anims
with the relative path to your.anim
file(s) as copied from Wolvenkit's project browserReplace
tutorial\animations\netrunner_making_poses\localization.json
with the relative path to your.json
file as copied from Wolvenkit's project browserOptional: For compatibility with older game versions, copy the code under
animations:
(not the label itself) from the<= 2.1 page
in the code box above and add it to your file.Optional, but recommended: Run your .xl file through yamllint to check for syntax errors.
Save your file.
The .xl is now updated to support vanilla Photomode NPC and Photomode NPV!
Before finishing up, make sure to run your file through yamlLint and get rid of any errors.
Finishing up
Last updated
Was this helpful?