Skin Affinity Info
Version History
| Build Version | Change Date | Change Type | Description |
|---|---|---|---|
| 676042 | 2025-06-21 | stable | Current version |
Overview
The skin_affinity_info.lua file contains character-specific skin affinity mapping data that defines which character skins are associated with each playable character in Don't Starve Together. This file is automatically generated by the export_accountitems.lua script and serves as a central registry for character skin relationships.
Usage Example
-- Access skin affinity data
local skin_affinity_info = require("skin_affinity_info")
-- Get all skins for Wilson
local wilson_skins = skin_affinity_info.wilson
-- Check if a specific skin exists for a character
local function has_character_skin(character, skin_name)
local character_skins = skin_affinity_info[character]
if character_skins then
for _, skin in ipairs(character_skins) do
if skin == skin_name then
return true
end
end
end
return false
end
Data Structure
The file returns a single table where each key is a character name and each value is an array of skin identifiers associated with that character.
Character Data Format
{
[character_name] = {
"skin_identifier_1",
"skin_identifier_2",
"skin_identifier_3",
-- ... more skin identifiers
}
}
Supported Characters
The following characters have skin affinity data defined:
| Character | Number of Skins | Description |
|---|---|---|
walter | 47+ | Walter's scout-themed and adventure skins |
wanda | 43+ | Wanda's time-manipulation themed skins |
warly | 56+ | Warly's chef and culinary-themed skins |
wathgrithr | 75+ | Wigfrid's warrior and valkyrie-themed skins |
waxwell | 69+ | Maxwell's gentleman and shadow-themed skins |
webber | 65+ | Webber's spider and child-themed skins |
wendy | 62+ | Wendy's gothic and mourning-themed skins |
wes | 63+ | Wes's mime and performer-themed skins |
wickerbottom | 62+ | Wickerbottom's librarian and scholarly skins |
willow | 62+ | Willow's fire and pyromaniac-themed skins |
wilson | 61+ | Wilson's scientist and gentleman skins |
winona | 64+ | Winona's engineer and factory worker skins |
wolfgang | 61+ | Wolfgang's strongman and circus skins |
woodie | 64+ | Woodie's lumberjack and nature-themed skins |
wormwood | 47+ | Wormwood's plant and nature-themed skins |
wortox | 56+ | Wortox's imp and demonic-themed skins |
wurt | 50+ | Wurt's merm and aquatic-themed skins |
wx78 | 62+ | WX-78's robot and mechanical-themed skins |
Skin Categories
Character skins are organized into several categories based on their naming conventions:
Body Parts
body_[character]_[theme]- Full body costume skinshand_[character]_[theme]- Hand/glove accessorieslegs_[character]_[theme]- Leg/pants accessoriesfeet_[character]_[theme]- Feet/shoe accessories
Full Character Skins
[character]_[theme]- Complete character appearance changes[character]_[theme]_d- Distinguishable variants[character]_[theme]_p- Premium/special variants
Common Themes
ancient- Ancient civilization themedformal- Formal wear and elegant attireice- Ice/winter themed skinslunar- Moon/celestial themednature- Natural/plant themedrose- Rose/romantic themedshadow- Shadow/dark themedsurvivor- Survival gear themedvictorian- Victorian era styledyule- Holiday/Christmas themed
Functions
Character Skin Lookup
-- Check if character has skins defined
local function character_has_skins(character_name)
return skin_affinity_info[character_name] ~= nil
end
-- Get skin count for character
local function get_character_skin_count(character_name)
local skins = skin_affinity_info[character_name]
return skins and #skins or 0
end
-- Find characters with specific skin theme
local function find_characters_with_theme(theme)
local characters = {}
for character, skins in pairs(skin_affinity_info) do
for _, skin in ipairs(skins) do
if string.find(skin, theme) then
table.insert(characters, character)
break
end
end
end
return characters
end
Integration Points
This data is commonly used by:
- Skin System: Character customization and appearance management
- Inventory Management: Tracking owned skins per character
- UI Systems: Displaying available skins in character selection
- Save/Load Systems: Persisting character appearance data
- Account Systems: Managing purchased and unlocked skins
Auto-Generation
This file is automatically generated and should not be manually edited. The generation process:
- Source:
export_accountitems.luascript processes account item data - Update Trigger: Game content updates and new skin releases
- Format: Maintains consistent Lua table structure
- Validation: Ensures all character-skin relationships are valid
Related Modules
skin_gifts: Gift system integration for skin itemsskin_assets: Asset definitions for character skinsprefabskins: Skin application and management systemcharacters: Character definitions and behavior