> For the complete documentation index, see [llms.txt](https://ccxl-tattoo-toolkit.gitbook.io/main/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ccxl-tattoo-toolkit.gitbook.io/main/tutorial/configuring-the-appearanceinfo.md).

# Configuring the appearanceInfo

As we saw earlier, our <kbd>*.inkcharcustomization*</kbd> file has a switcher and two appearanceInfos:

<figure><img src="https://181024330-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDecuWTGPSBrawvB4cIcq%2Fuploads%2FLG4hvc8ILg9SKR29uV5c%2FScreenshot%202025-03-13%20181507.png?alt=media&amp;token=6d68fa54-e913-4b68-bec6-3f8564a99717" alt=""><figcaption></figcaption></figure>

The first <kbd>gameuiAppearanceInfo</kbd> is for our *off* option; it does not call any <kbd>*.app*</kbd> resource or have any <kbd>gameuiIndexedAppearanceDefinition</kbd> . It is simply a placeholder that occupies our custom UI slot when this option is toggled. We'll just leave it alone.

## gameuiAppearanceInfo <a href="#appearance-info" id="appearance-info"></a>

Let's expand our custom tattoo <kbd>gameuiAppearanceInfo</kbd>:

<figure><img src="https://181024330-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDecuWTGPSBrawvB4cIcq%2Fuploads%2FMh81SiJGBRiRwhk1VaB6%2FScreenshot%202025-03-13%20182329.png?alt=media&amp;token=d7b59a4f-ee5b-404f-a956-0a74a010e0d7" alt=""><figcaption></figcaption></figure>

There are a handful of parameters in this appearanceInfo that make our custom tattoo work.  Mainly, we have a <kbd>resource</kbd>*:* this is a path to our tattoo <kbd>*.app*</kbd> file.  If you're unfamiliar with <kbd>*.app*</kbd> files, you can read about them [here](https://wiki.redmodding.org/cyberpunk-2077-modding/for-mod-creators-theory/files-and-what-they-do/file-formats/appearance-.app-files)—we will be configuring ours later on.

## Appearance Definitions <a href="#appearance-definitions" id="appearance-definitions"></a>

Right now, let's expand our <kbd>definitions</kbd> in the appearanceInfo:

<figure><img src="https://181024330-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDecuWTGPSBrawvB4cIcq%2Fuploads%2FtsZaS8sDYCOIePGQOYDj%2FScreenshot%202025-03-14%20003303.png?alt=media&amp;token=ea127af7-e1db-4043-9f22-df85fd2a001e" alt=""><figcaption></figcaption></figure>

We have a single <kbd>gameuiIndexedAppearanceDefinition</kbd>; this is telling our <kbd>*.app*</kbd> file which <kbd>appearanceAppearanceDefinition</kbd> to use for our tattoo. Our <kbd>*.app*</kbd> file is preconfigured to have an appearance for Male V and for Female V (<kbd>w\_\_chest\_tattoo</kbd> is our female variant of the tattoo because male/female use different <kbd>*.mesh*</kbd> files).

You can choose to rename these appearance definitions to your leisure—just be sure that your <kbd>gameuiIndexedAppearanceDefinition</kbd> is consistent with the <kbd>appearanceAppearanceDefinition</kbd> in your <kbd>*.app*</kbd> file and keep them unique to gender.

***

Let's analyze the rest of our <kbd>gameuiAppearanceInfo</kbd>&#x20;

<figure><img src="https://181024330-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDecuWTGPSBrawvB4cIcq%2Fuploads%2FsMrIk4MvC9MXttznI9zH%2FScreenshot%202025-03-14%20015918.png?alt=media&amp;token=e017d08e-dacf-465c-abb2-13e1f15e87ce" alt=""><figcaption></figcaption></figure>

<kbd>editTags</kbd> can be technically be left blank here; you will still have a working tattoo whether it is left blank or given the same values as our switcher: <kbd>NewGame</kbd> and <kbd>Ripperdoc</kbd>&#x20;

<kbd>enabled</kbd> should be set to <kbd>False</kbd>, and <kbd>hidden</kbd> should be set to <kbd>True</kbd>. If you change them, you *will* have a problem:

<div><figure><img src="https://181024330-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDecuWTGPSBrawvB4cIcq%2Fuploads%2FW5oRV5Ejkh5hNi3r8Mjp%2FCyberpunk%202077%20(C)%202020%20by%20CD%20Projekt%20RED%203_14_2025%202_06_19%20AM.png?alt=media&amp;token=1b4f6148-cc78-449b-a3e7-6749e0d3a46f" alt=""><figcaption><p>Empty switcher at the top of the character creator</p></figcaption></figure> <figure><img src="https://181024330-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDecuWTGPSBrawvB4cIcq%2Fuploads%2FXtQwjdrn9IBuC8wFmmnH%2FScreenshot%203_14_2025%202_06_00%20AM.png?alt=media&amp;token=f034234d-f796-489d-9460-1bdf8d6c78aa" alt=""><figcaption><p>Switcher defaults to custom option instead of "OFF", but the custom mesh is not displayed</p></figcaption></figure></div>

> *It is worth noting that leaving* <kbd>editTags</kbd> *blank will disappear the empty switcher problem, but **not** the default custom tattoo issue.* <kbd>gameuiAppearanceInfo</kbd> *works like a switcher (eye colors work this way) and the* <kbd>hidden</kbd> *parameter is what hides it. If you stick to the provided configurations in the template, you won't have any issues.*

<kbd>name</kbd> is the name of the <kbd>gameuiAppearanceInfo</kbd> and must be included in the <kbd>names</kbd> section of our <kbd>gameuiSwitcherOptions</kbd>; this is how the switcher and appearance are linked:

<figure><img src="https://181024330-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDecuWTGPSBrawvB4cIcq%2Fuploads%2F5fuv2DVprpGWmpqPMGYN%2FScreenshot%202025-03-14%20124449.png?alt=media&amp;token=03215fb7-90b7-4ebe-8d46-fc2fd6bdabd3" alt=""><figcaption></figcaption></figure>

Similarly, we must do the same with our UI slots between our switcher and our appearance:

<figure><img src="https://181024330-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDecuWTGPSBrawvB4cIcq%2Fuploads%2FzFWtn89PugyBKv5y6fzK%2FScreenshot%202025-03-14%20125220.png?alt=media&amp;token=b38bcdbb-21cd-4f5d-bacc-58d71376da94" alt=""><figcaption></figcaption></figure>

<kbd>randomizeCategory</kbd>, same as our switcher, will be set to <kbd>Tattoos</kbd>.

As we discussed earlier, the <kbd>resource</kbd> will be the path to our <kbd>*.app*</kbd> file, which is already configured but will need to be reconfigured if you decide to build your own <kbd>*.app*</kbd> file or rename it; if you check "Update in project files" when renaming the <kbd>*.app*</kbd> file, it will update the path automatically:

<figure><img src="https://181024330-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDecuWTGPSBrawvB4cIcq%2Fuploads%2F6Uj4AkI9cTQfTtHaV9VM%2FScreenshot%202025-03-14%20130203.png?alt=media&amp;token=54ef178a-3351-48b3-9655-7d204c94e086" alt=""><figcaption></figcaption></figure>

> *Any files that you rename in this project should follow the same procedure because the paths have already been set for you in each template. Paths will only need to be updated if you decide to use different resources like custom meshes.*

And just like that, we now have a switcher and a respective custom appearance for our new tattoo—but if you stop here, you won't have much luck getting it to work in the game; we still have to define these in our *groups.*
