💹ArchiveXL
Adding stuff to the game, for the major-leagues
Summary
Published: August 2023 by manavortex
As suggested by psiberx, the general usage documentation for ArchiveXL will be kept in this wiki for ease of use. You can find the readme on github or check the repository's wiki section.
OK, so what is this?
ArchiveXL (nexus | github) is one of the core frameworks of Cyberpunk 2077 modding. Together with TweakXL, It allows you to add things to the game, such as
world sectors (deletions and additions)
custom lipsync maps
Translations (check How does the game assign display names?for a guide)
If you want to look up garment appearance slots: The princess is in another castle. Check Different equipment slots instead.
This page will document how to set item properties via tags & suffixes (the vanilla way), or via dynamic switching (new, cool, version >= 1.5).
Let's dive right in.
Variants and suffixes
What are variants, what do I need them for?
When adding items, you will normally offer multiple mesh appearances (variants), for example, the same shirt in black, white, and red. This is what you're modding for, after all: making cool things.
And what are suffixes?
On top of having different colours, you also have different circumstances – for example camera states: not even Johnny Silverhand wears his sunglasses in first person perspective.
CDPR deals with this by using suffixes, which are tedious to use. psiberx has since created a better system (dynamic appearances or conditions), which are much easier to use.
For more detail on this, please see the sub-page ArchiveXL: Suffixes and Substitutions
Tags
Tags are a way to add extra information to entities or appearances. They are defined on their own sub-page: ArchiveXL: Tags
Dynamic appearances
If you have ever tried to make ten colour variants of an item for two body genders with four different states of feet, then you're familiar with the struggle. Version 1.5.0 of ArchiveXL solves this problem by introducing dynamic variants, allowing you to define rules to hook up your yaml straight to the mesh entity. picking components and even appearances dynamically.
For a tutorial about this, check ItemAdditions: Dynamic Appearances
Dynamic Appearances: the diagram
Here's an overview of how the dynamic variants work. By comparison, this is the old diagram. Especially for items with many appearances, the new way is much faster.
Last updated