Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
How to edit the in-game Main Menu and Pause Menu
Open WolvenKit and create a New Project
on the new Project go to Asset Browser and find the the following paths:
First Path is for the Main Menu (after the Breaching Screen)
The Second Path is for Pause Menu when you press ESC:
Add both files to your new Project.
Editing the files:
Select the Inkwidget that you want to edit and choose "open this file" option
This guide is valid for both files (main menu and pause menu)
From here move to the new open window were we are going to start editing our menu and you should see something like this:
Follow this exact file structure and here you can change the button size:
Change the values to Negative side to make the buttons smaller or to Positive to make them bigger.
Button Spacing:
Same rule apply as Button Size and the path for it can be fond here:
Again, change the values to Negative side to make the spacing smaller or to Positive to make the spacing bigger.
Button Inner Shadow:
Same rule apply as the other two and the path for it can be found here:
Here change the values to negative ones (except Right value - Changing that will make the shadow to not fill the button on the right side) as we want the inner button drop shadow to fit inside button rectangle.
Inner Writing Font Size:
Same rule apply as the others and the path for it can be found here:
Here is entirely up to you, how big or small you want the font (default size is 50) and as usual, bigger number makes the font bigger and smaller number makes the font smaller
If everything is done correctly, you should end up with something like this:
How to create a custom interface via inkwidgets and animate via inkanims
Inkwidgets are a mapping of widgets and effects onto a 2D plane.
The structure of inkwidget is a graph/tree with parent and children nodes.
anchor - This is treated as the center of the widget. It is what animations are centered, scaled, and rotated around.
margin - This is what allows precise positioning of the widget by adding space in the corresponding direction. Can use negative numbers as values as well. Widget Preview in WolvenKit is useful when adjusting margin values.
parentWidget - This should always point back to the parent. When you are creating or editing children, make sure to right-click the parent in WolvenKit and select 'Copy Handle', then right-click the child parentWidget and select 'Paste Handle'.
effects - Enable certain effects that can be triggered from a corresponding .inkanim file. Note that overlaying two of the same effect on the same widget can cause flickering when rendered in game, even if the animation times are offset, so test in game when trying this. Effects must be triggered from a inkanimEffectInterpolator with the matching effectName and effectType in the inkanim file.
renderTransform - Adds the ability to perform a scale, rotation, and shear to the widget. Without this, you would need multiple source graphics in different orientations/sizes, so using this is useful.
textureAtlas - Full path to the inkatlas file that contains your image.
texturePart - The name of the part of the graphic defined in the inkatlas file.
visible - Shows or hides the widget. Useful when testing or aligning widgets in Widget Preview.
Each animation needs a definition (what kind of animation) and target (which widget animation applies to).
There are a set number of different animation types. Their names are mostly self-explanatory. In WolvenKit, use 'Create Handle' on a handleinkanimInterpolator to choose a animation.
duration - The time in seconds that the animation should last.
startDelay - Time in seconds from the beginning of the animation that this animation should trigger.
startValue/endValue - Can be a single value if using something like a transparency animation (0 is transparent, 1 is opaque), or more values for example a 2D coordinate if using a translation animation.
effectName - Must match with a named effect in the inkwidget file to trigger.
effectType - Choose one of the available types of effects. Must match with the effect type defined in the inkwidget file.
The last definition are AdvertPauseEvents. These are the times in seconds from the start of the animation that the animated inkwidget can pause when moving out of animation range in game. Multiple of these can be defined to make it possible to pause at multiple points in the animation.
Can have any number of values, relating to the corresponding inkwidget file children nodes. Define these values, adding a new element in the array for each nested child as needed. For example, if you want to animate a widget that is nested in the first child, and the sixth child within the first child, then the target path would be 0 # 0, 1 # 5.
The definitions and targets are linked by their index in the array (e.g. first definition uses the first target, and so on). The last target doesn't have a path because it corresponds to the AdvertPauseEvent definition, but do not delete this as the inkanim should have the same number of targets as definitions.
Ensure that the total number of inkWidgetLibraryItems in the inkwidget file is the same as the total number sequences in the inkanim file - 1 (subtract one because Root inkWidgetLibraryItem is a given and not counted). Also, the order of the sequences in inkanim should be the same order of the inkWidgetLibraryItems in the inkwidget file.
Expanding Cyberpunk's base UI
This is the landing page for guides that teach you how to influence Cyberpunk's base UI and its textures.
For a full overview of guides linked here, please check the link tree on the left.
How to add custom preview images by using a custom .inkatlas file
Uploaded: ??? by Last documented update: Mar 18 2024 by yellingintothevoid
This guide will teach you how to make custom inventory preview icons.
Technically, this guide is a subsection of the ArchiveXL item additions guide, but you can use it to make any kind of preview item.
The guide below will teach you how to make preview icons. While it's a technically a subsection of the ArchiveXL item additions guide, you can use the steps below to make any kind of preview item.
Difficulty Level: You know how to read and can either edit images or make use of the corresponding guide. While the process is easy, it also is, unfortunately, quite tedious!
If you want to have gendered preview icons, check here.
For a script to generate inkatlas files, check The Magnificent Doctor Presto's github
To learn more about the files involved, check Game icons: The inkatlas file
If you downloaded the example project (#getting-the-files), the preview is already hooked up. Otherwise, download the template archive for your kind of template (kindly provided by Apart).
Okay, you do you. Here's how:
You should now have a structure like this:
You have two options on taking preview pictures. Both are relatively tedious, since you have to do it by hand. This is not a step-by-step, but you can find a few pointers here:
You can export your mesh with all its materials to Blender and take your preview pictures there:
This part of the guide is a bit longer, since it tells you how to get decent-quality preview pictures. If you don't care for that (you should, but we all hate it), you can skip ahead to #hooking-up-the-inkatlas.
The idea is to combine mods that make V invisible and a ReShade filter called DepthAlpha.fx to create in-game screenshots of your item where the background is transparent. This means you don't have to spend a lot of time painstakingly removing the background manually in Photoshop. The screenshots taken with DepthAlpha.fx only need a little bit of cleanup (#creating-the-actual-icon), but can be basically directly imported into the .xbm
file containing your icons.
Using ReShade is, of course, entirely optional, but teaching how to mask out objects in Photoshop is outside the scope of this tutorial.
Invisible V by manavortex or the Invisibility Cap and Shoes by PinkyDude
Optional, but highly recommended:
DepthAlpha.fx (make sure to set up the depth buffer properly)
AppearanceCreatorMod or Equipment-EX
Preparation:
Start the game
Equip the invisibility garment and the item you want to create icons for.
To switch through appearances on-the-fly, you can use AppearanceCreatorMod while V is in the center of the camera.
Alternatively, you can save outfits for all colour variations of your outfit In Equipment-EX:
Lighting:
Optional: Finding a good spot
If you can't be bothered, you can simply teleport to the window of Saburo's office:
Make sure to have some decent lighting on your item.
Sometimes, it can be helpful to disable RTX to create icons. The screenshot of item on the left in the image below was taken using Path Tracing and DLSS, the one on the right using rasterised lighting without DLSS:
If your item is a jacket, the shadows on the inside can look broken with RTX.
If your item is jewellery made from glossy metal, you might get unwanted reflections with RTX.
If your item features fine textures, you might want to disable RTX, so that you can also disable DLSS/FSR without burning up your graphics card.
If your item is a piece of clothing made from glossy material, you might want RTX reflections.
To actually take the screenshot, position the Photo Mode camera so that it is rougly parallel to the bottom edge of your photo booth.
Set the Field of View to about 30 to prevent distortion when taking a closeup.
Move the camera so that the item fills the entirety of your screen without cutting off a part of it.
If you're using ReShade:
3.1 Enable DepthAlpha.fx in ReShade. Check Colorize Transparency
and adjust the Range
until your item is the only visible object in the scene.
3.2 Disable Colorize Transparency
and take the screenshot using ReShade (not the built-in Photo Mode).
Switch to the pose tab and cycle through all appearances of your item and take a screenshot of each one (make sure you haven't skipped any!).
You can use AppearanceCreatorMod to switch appearances without changing the tab!
Open the first of your screenshots in Photoshop and drop all other screenshots of the item onto the one you've just opened.
Select the newly created Smart Objects, right click them and select "Rasterize Layers".
Select the first layer and hide all other layers.
Go to "Layer" in the menubar at the top of your screen on the left and select "Layer Mask" → "From Transparency".
Create a new colour fill layer and choose a colour that contrasts with your item.
Double click the layer mask on your first layer in the layers window to enter Select and Mask mode.
Make sure your View Mode is set to "On Layers" and play around with the "Global Refinements" until the outline of your item looks smooth.
Smooth <5, Feather <1, Contrast 30-50, and Shift Edge of around -30% works quite well usually. Highly depends on how intricate your item is.
Duplicate the Layer Mask onto your other layers.
From here on out, you can play around with a bunch of Adjustment Layers with Clipping Masks for each of your layers/appearances. I recommend some Levels Adjustments to set proper black and white points, as well as Black & White Adjustment Layers for items that are black, grey, silver or white and so on.
Once you're done with that, select each layer and its Adjustment Layers, right click them, and select "Convert to Smart Object".
Give each layer a meaningful name and save your image as a .psd
.
Open this .psd
and import the Smart Objects of your icons into it. The .psd
is based on the preview_icons.xbm
found in manavortex's Archive XL item additions and guide and can be easily used with projects based on the guide.
With all layers selected in Photoshop, transform them so that the longest side is 158px.
Align each item to the centre of each grey square.
Hide all other layers except your icons.
Now save the image as a .png
in the raw folder of your WolvenKit project.
Import the .png
into your WolvenKit project with the TEXG_Generic_UI
TextureGroup
setting and make sure that "Transparency from alpha channel" is enabled.
Open the file in WolvenKit.
Open the list slots
.
For the first two inkTextureSlot
items, set the value for DepotPath
to the relative path of your xbm (tutorial\torso\my_custom_shirt\ops\preview_icons.xbm
):
Save the file. If it doesn't update, reload it (Hotkey: Ctrl+R
)
You now have a tab "PartMapping", where you can see which texture corresponds to which slot: select it on the left and check the partsName
, which corresponds to the entry in the slot's parts
array:
Congratulations! You now have preview icons!
You can now hook up your preview icon(s) to whatever mod you are making.
If you want to use gendered preview icons, check here. In this case, you do not add an icon record to your item.
Check the code box below — the last three lines add a preview icon.
Please refer to the ArchiveXL guide for an explanation of the other properties, as this page will only hold information about preview icons.
atlasResourcePath
: relative path to your .inkatlas file
atlasPartName
: slot name in your .inkatlas file (which you can see in the PartsMapping
tab)
Again, please note that indent is crucial here, as it determines the node structure. The first line needs to have an indent of 0, the lines from $base
to icon
need to have two spaces, and the lines atlasResourcePath
and atlasPartName
need to have four.
If you run into any issues with your texture's transparency, please check the textures import/export guide!
This is a sub-page of "" and only contains information on how to hook up gendered variants once you already have the files. If you aren't quite there yet, refer to the other guide first.
For the technical documentation, check TweakXL's .
This will not work unless your item is using the corresponding suffix. Without it, the game has no way to tell male and female items apart.
If you want to know more about this, you can read up here:
If you don't have a gendered item yet, see the original ArchiveXL guide, section "".
Type the following command into your CET browser:
That won't help you if you want to path items in bulk, but it'll help you to spot mistakes. For the rest, please keep reading.
By adding an icon
property to your item's yaml, you're setting the UIIcon
property of your record. The generated records will be the same for all genders, variants and tags.
If you want to use a gendered preview picture, you can create a more specific record yourself. In this case, you can delete the icon entry from your item.
Its name will follow this schema:
ENTITYNAME,
APPEARANCENAME
, SUFFIXES
and VISUALTAGS
above are placeholders for the corresponeding fields in your YAML.
For example, if you have the following item:
… then you'd define a preview image like this:
The trailing underscore separates the empty visual tags from the suffixes entry.
Your items won't need an icon record anymore, the assignment now happens by magic!
It does! All you need to do is to add the appearanceSuffix Gender
and define an anchor for your $instances
, like this:
ArchiveXL will ignore suffixes for dynamic variants, but they need to be present in the yaml file for the icons to work.
Then, you can define your preview images (remember to strip away the ! and + from the variants):
The rest just works (tm)
Given an item with multiple variants:
The icon definition would then look like:
You can also use static variants - the same rules apply, even if the result looks strange.
Given an item with a mixture of static and dynamic variants:
The icon definition would then look like:
Adjustment Layers | Converted to Smart Objects |
---|---|
Creating a custom inkatlas
Okay, now you've added something! But it doesn't have a preview icon yet - you'll have to add this manually. For this purpose, you'll have to edit an image.
For a guide how to ensure image transparency, see here ⇗.
Cyberpunk uses xbm as format for its textures. These textures are then mapped (divided into slices) by inkatlas files. The individual slots can then use these individual slices for various purposes, such as UI elements like phone call icons and image previews.
If you want to use the in-game previews, you can find them under base\gameplay\gui\common\icons\items
Download the template archive: Template Download ⇗ This includes the following files:
Template | Size of slot image |
---|---|
Template Credits: Apart
This guide assumes you already have a collection of pre-made icons. If you don't and are unsure where to begin, you can refer to The item addition guide ⇗, specifically the "Making the icon" section for guidance.
From the template file, choose "40_items_inkatlas_template" and paste both the .inkatlas and .xbm files into a folder of your preference within your Wolvenkit project.
In this guide, we'll use the tutorial\ops
folder as an example.
We are renaming both files to preview_icons
to avoid confusion in the future:
Export preview_icons.xbm
via the Export tool.
Open 40_item_template.pdn
(Provided on the template archive) in paint.net and put all your icons in.
Once you're done, hide the background layer and overwrite the file you've created in Step 1:
Import the file using the Import Tool. Make sure that "IsGamma" under the Import tool options is turned off, everything else should already be OK.
You can now open preview_images.xbm
in Wolvenkit and see your new, edited items.
Link the xbm file to the inkatlas: copy the relative path (right click on the file -> "copy relative path") and paste it on the texture slot on the inkatlas (image A)
(Optional) If you want to connect the inkatlas with your item, refer to the ArchiveXL ⇗ guide for detailed instructions. In the YAML file created for your item, include the path in the "icon" section (Image B).
Published: July 15. 2023 by Last documented edit: Mar 24 2024 by manavortex
This guide tells you how to add a custom HUD icon for a weapon. It is a subsection of the ItemAdditions: Weapons guide, but since the same principle applies for all parts of the UI, it can be used standalone.
We need an .inkatlas file and a texture.
Download the correct template from the wiki's github repository. For a hudicon, that's weapons_hudicon.zip
Extract both files to a fitting subfolder in your Wolvenkit project.
Now we need to custompath those files:
Open your .inkatlas
file
Open the slots
array
Click on each slot and set the value to your texture's relative path
If you're cool with your slot's name being your_custom_hudicon
, you can change its name:
Expand the first slot (the one with the number 0)
Expand its list of parts
Select the first entry your_custom_hudicon
and change its name to whatever you want to use in the yaml
Export your .xbm (texture) via Wolvenkit, then edit the resulting .png in chosen your image editor of choice.
For more info on texture editing (and transparency!), check Textures: Importing, editing, exporting
For a (far) more detailed guide, check creating custom inventory icons
Once you are done, Import your PNG over the xbm with those settings:
Edit the inkatlas file as in the icon creation guide.
Now that you have a custom preview icon, it's time to hook it up. You do this by editing the .yaml file.
You'll find written instructions below the screenshot.
Add a HUDWeaponIcons
entry at the root level of your .yaml (no indent). Give it a name, such as HUDWeaponIcons.TheFallout
in the screenshot above.
It has the following properties (indent level 1):
Add a new property to the weapon that refers to the record you have created above:
That's it! After starting the game,
Key | Value | Explanation |
---|---|---|
5_outfits
160x320 (x5)
5_weapons
360x120 (x5)
40_items_inkatlas_template
160x160 (x40)
$type
gamedataUIIcon_Record
This tells the game that it's a UI icon
atlasResourcePath
path/to/your/file.inkatlas
relative path to your inkatlas file (right-click it in Wolvenkit and select "Copy relative path")
atlasPartName
slot_02
name of the icon's slot in the inkatlas. If you don't know it, see here.
hudIcon
HUDWeaponIcons.TheFallout