Previews for meshes and entities
Please note that the material preview is a rough draft implementation. Until somebody invests a bunch of time to fix it up, the preview will be neither accurate nor pretty, and many materials may not be created at all.
To be done
You can find the mesh preview inside the file editor for .mesh files in its own tab. For further explanation of the UI, see #ui-documentation
Lets you select an appearance from the list of defined appearances
Lets you select the Level of Detail, which will load higher or lower fidelity meshes to optimize performance.
When you hold the Ctrl
key, Wolvenkit will regenerate the materials from disk.
Please note that the material preview is a rough draft implementation. Until somebody invests a bunch of time to fix it up, the preview will be neither accurate nor pretty, and many materials may not be created at all.
Will create a rough approximation of the surface material. As of March 2024, this feature needs a lot of work.
REDengine file editor
What is the File Editor?
The File Editor is a document viewer and manipulator for modifying any REDengine file. WolvenKit is the only RTTI-based editor for RED4.
Starting with 1.14, Wolvenkit offers multiple editor modes. See #switching-editor-modes for details.
Starting with 1.14, Wolvenkit lets you switch editor modes by double-clicking the first button in the toolbar:
Properties that you don't normally have to edit will be hidden.
Recommended for beginners and people who don't like to scroll.
The file editor you know and love.
Coming soon™️
To edit a REDEngine file, you have to add it to your your project's archive folder first. There are two ways to do this from the Asset Browser:
double-click on a file in the Asset Browser's navigation window
select several at once, then use the Add Selected Items to Project option from the context menu
You can also open files without adding them to your project:
Right-click a file in the Asset Browser and use Open Without Adding to Project
This version of the file is read-only; you can edit it, but you can't save it.
Files in your Wolvenkit Project are accessible via Windows Explorer. It also works the other way around; however, not everything has to be compatible.
See the next section about #editing-files
TL;DR: Wolvenkit does not auto-save for you. Do it yourself, you lazy gonk!
Unless you have opened a file as read-only, you can save your changes in the following ways:
Hotkey: Ctrl+S
Save/Save All button
Unsaved files will have an asterisk next to their name in the editor tab.
Once a project is part of your Wolvenkit Project and shows up in the Project Explorer, you can open and edit it. Again you have two ways of doing that:
Double-click the file
Click on the blue icon that appears next to the file when you mouse over it
You can clear up some extra space for the File Editor by un-pinning other parts of the view with pin icon at the top right, reducing them to easily-accessible tabs.
The file editor features two resizable panels, the tree view and the editor panel.
The tree view on the left lets you browse the file's structure. All entries are indented per level and can be collapsed by category to preserve the user's sanity as much as possible.
Many entries will have descriptor entries in white or grey that give you a preview on their contents.
The File Editor Context Menu appears when you right-click on something in the File Editor. It offers different options depending on what you currently have selected. Maybe they will one day be comprehensively documented, but it will not be this day. Also, bear in mind that this is specifically about the File Editor context menu, which is not the same as the context menus in Asset Browser and Project Explorer.
Does not make sense under all circumstances, but will valiantly attempt to create a TweakXL override for the current selection (as if you had selected it in the Tweak Browser). This override will be saved as a .yaml file and, depending on the handle you tried to use it on, its contents may be useless. You must have TweakXL installed via the Plugins menu to get this option to appear in the context menu.
Creates a reference to the handle. Unlike the previous entry, this does not create an independent copy; it's a reference to the same instance of the handle, not unlike a desktop shortcut. Whatever changes you make to the reference will also transfer to the original, and this will not be immediately apparent because WolvenKit does not update this in real-time. You must save the file and reopen it to see the original and the reference showing identical values after only one of them was edited.
Exactly as it seems: it's the paste function of Copy Handle. As explained above, it pastes a reference, not a copy. Do not use this if you want a copy that you can edit independently of the original. "Why the hell wouldn't I always want that?", you might be asking. Because in some files, it can be helpful to have the same instance of a handle referenced in various places and only having to edit one of them. Do not question us, for we know the Old Ways (and if you do, the ideal avenue is to open a ticket in the Issues tab of GitHub).
Copies the currently selected item/handle for pasting inside of Wolvenkit. You can only paste items to a compatible array. If you have selected multiple items, the most recent selection will be used.
The clipboard will be cleared once you paste an item to prevent reference cloning.
Copies the currently selected items/handles for pasting inside of Wolvenkit. You can only paste items to a compatible array.
The clipboard will not be cleared once you paste. However, if you paste multiple times, all those pasted items will be identical - so if you change the file path in one of them, it will change all across your file.
You can #duplicate-item-in-array-buffer to fix this, or you can abuse it to save copy-pasting. Word of warning: if you choose the latter, you will ruin somebody's day, and it's probably going to be future you.
See #export-as-json Particularly useful for searching large files with CTRL+F in your word editor of choice. However, JSON conversion can get confused by some complex graph files. For instance, humanoid.animgraph is converted into a 300-megabyte JSON (300 times the original file's size) with over half a million lines. But hey, you can still CTRL+F it, so there's that.
Deletes the currently selected item/handle. If you have selected multiple items, the most recent selection will be used. This can also be done via the right-side window of the file editor by clicking on the red trashcan icons, as shown earlier in this article.
Deletes the currently selected items/handles.
Empties the entire list of items/handles. This is tipically accompanied by a distant, echoing voice that seems to say "That's a bold strategy, Cotton, let's see if it pays off for 'em."
Will reset the selected handle and all its values to their default greyed-out state, as if you had just created it by using Create Item in Array or Create Handle. It undoes all edits, including those by Cyberpunk's developers.
The Editor View on the right side lets you edit the selected properties (arrays, handles and variables).
You will observe different kinds of values (dropdowns, numbers, booleans, texts, enums...). Many of those appear in grey:
Those properties have not been changed by the person who touched this file, still holding their .
You can deduce quite a few things about a property's functionality by examining which parameters are untouched and which have been tweaked by Cyberpunk's developers.
Starting with 8.15, the editor has become smarter. By enabling "use validating editor" in the settings, you can turn on contextual hints:
The editor panel will show you the following kinds of controls:
The icon that says "abc" on it is the one you shall learn to fear, for it heralds the coming of a string variable. Whenever you see it next to a property you need to edit and you don't know what strings you can type in it, get ready to spend the next several hours of your life getting very well-acquainted with WolvenKit's search feature.
Some file formats offer more specific editing tools. For instance, curve properties often give you a Curve Editor, especially useful in .curveset files:
And some node-based files, such as .questphase files, offer a Graph View for viewing nodes and their connections:
Some node-based file formats, such as .animgraph and .behavior files, are not yet blessed with the Graph View, which as of February 13th 2024 is still under development. These files can be extremely complex and their properties un-collapse into so many sub-properties that it literally breaks WolvenKit's indentation:
Until the Graph View is made available for these file formats, they are to be feared.
Other than browsing and editing properties, you can also delete them, replace them, or add completely new ones.
The possibilities are endless, but most of them make the game crash. Wolvenkit will already prevent you from doing a lot of dumb things, but you can still get creative.
To edit the property structure, you'll mostly use the project tree and its context menu, whereas you edit the property's contents in the editor panel.
This section will give you an overview about the existing types of properties and what they are commonly used for.
Arrays are lists of items. They look like this:
You can duplicate, add and remove array items and change their order via drag&drop.
Arrays can contain any of the other types of data. They do not contain other arrays directly; but #handles often include other arrays.
The "Paste" operations will be disabled if the items you copied aren't compatible with your currently-selected array.
The "data" in "data structure", the lowest level of nesting. You can edit them in the editor panel to the right, and they will never hold other variables.
As the name implies, a data structure is anything that structures data. These elements can hold any collections of other data structures, variables, or handles.
Handles are a special kind of data structure, which hold pieces of executable code.
Since you can't customize editable handles, you might as well delete them.
You can also replace existing handles or add new ones from a list of handles compatible with the array:
When you select an array on the left-side window of the File Editor, you will find two types of yellow buttons on the right-side window: Create Item in Array, which sits alone at the top, and Create Handle, which appears next to every handle in the array. Clicking either of them will bring up the Type Selector: a search menu that lets you pick from a list of handles compatible with the array. The difference is that Create Item in Array adds the selected handle to the array whereas Create Handle replaces the handle it was next to, deleting it in favor of the one you picked.
In either case, the Type Selector will give you the full list of handles you can choose for the array in question, and you can narrow down the list by typing search terms such as, say, "Grenade", or "Effector", or "ofwifagbaygfaergergqhqjqtjfy" if you fall asleep on your keyboard:
As of February 13th 2024, the main branch of WolvenKit is still using the old Type Selector, which is slow and limited in its search capabilities. It works like autocomplete, so you can't just type "Effector" and get every item that has "Effector" in the name. The new Type Selector can do that and is much faster. If you don't want to wait for it to be released on the main branch (probably in 8.13.0), you can already use it in WolvenKit's nightly branch.
If you select a handle instead of an array on the left-side window, you will still get the Create Handle button on the right-side window, allowing you to replace the handle you have selected.
The red trashcan icons can also delete handles, as you've surely guessed, but there's a way to do it directly on the left-side window using the File Editor context menu. So for our next section, we proudly present... *insert drumroll here*
Attempts to copy the identifier to clipboard. If something without a tweak identifier is selected, you'll get the RedType instead. This option, like the previous one, will not appear without the installation of TweakXL via the Plugins menu.
Creates an exact copy of the currently selected item/handle, which will be inserted directly after it (this is important for e.g. in mesh files). This copy can be edited without affecting the original, unlike the next option in the context menu: