English | 简体中文
SkinTattoo is a Dalamud plugin that composites image decals onto Final Fantasy XIV character skin textures in real time. It operates entirely in UV space, previews through Penumbra, and does not modify the game installation. The plugin is still under active development; bugs are expected. Feedback is welcome via GitHub Issues or Discord.
- Project PNG decals onto character skin (diffuse + normal) with live preview through Penumbra.
- Per-layer emissive with independent color and intensity; ColorTable-based PBR editing (character.shpk / skin.shpk / iris.shpk).
- Per-layer emissive animation: Pulse, Flicker, Gradient (two-color lerp), and Ripple (radial / linear / bidirectional wave with optional dual color) — all driven by the engine's native
m_LoopTimevia a custom DXBC injection, no per-frame CPU hook. - Iris glow support via automatic mask-red-channel generation from vanilla masks; iris supports Pulse / Flicker / Gradient via real-time CBuffer modulation.
- Multi-model UV matching: collects all meshes sharing the same material, including non-standard body mods (bibo, etc.).
- Built-in 3D editor for placing decals by clicking on the model; UV canvas with wireframe overlay and half-clip preprocessing (for mirrored UV layouts).
- Zero-flicker GPU texture swap after the first preview; no character redraw needed for subsequent parameter changes.
- Mod packaging: export a standard
.pmppackage or install directly into Penumbra through IPC.
This plugin is distributed through a custom Dalamud repository. Two manifests are published: repo.json (English card) and repo.cn.json (Chinese card). They ship the same binary — pick whichever language you prefer for the plugin installer description.
-
Type
/xlsettingsin chat, open the Experimental tab. -
Add one of the URLs below under Custom Plugin Repositories, click the
+button, then Save and Close:https://raw.githubusercontent.com/TheDeathDragon/SkinTattoo/repo/repo.jsonOr for the Chinese installer card:
https://raw.githubusercontent.com/TheDeathDragon/SkinTattoo/repo/repo.cn.json -
Open
/xlpluginsand search for SkinTattoo in the All Plugins tab, then install.
The plugin's in-game UI language is independent from the installer card — you can switch it at any time via the language dropdown on the Settings tab.
Do not manually unpack release archives into devPlugins — you will not receive updates and may conflict with installed copies.
- Type
/skintattooin chat to open the editor. - Load your character (stand on any map where your character is visible), then select a target material from the resource browser.
- Add decal layers, drag them on the UV canvas, or click directly on the 3D model.
- Parameter tweaks (position, scale, rotation, color, emissive) update the running game instantly.
Requires Dalamud SDK 14 (XIVLauncher dev hooks):
git clone --recursive https://github.com/TheDeathDragon/SkinTattoo.git
cd SkinTattoo
dotnet build -c ReleaseThe build resolves Dalamud references from %AppData%\XIVLauncherCN\addon\Hooks\dev\ by default (see Directory.Build.props). Override with DALAMUD_HOME env var if you run the international launcher.
Pull requests and issues are welcome.
SkinTattoo builds on research and prior art from the following projects:
SkinTattoo is licensed under the Apache License 2.0. See LICENSE for the full text.
