Skip to main content

Skin Affinity Info

Version History

Build VersionChange DateChange TypeDescription
6760422025-06-21stableCurrent 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:

CharacterNumber of SkinsDescription
walter47+Walter's scout-themed and adventure skins
wanda43+Wanda's time-manipulation themed skins
warly56+Warly's chef and culinary-themed skins
wathgrithr75+Wigfrid's warrior and valkyrie-themed skins
waxwell69+Maxwell's gentleman and shadow-themed skins
webber65+Webber's spider and child-themed skins
wendy62+Wendy's gothic and mourning-themed skins
wes63+Wes's mime and performer-themed skins
wickerbottom62+Wickerbottom's librarian and scholarly skins
willow62+Willow's fire and pyromaniac-themed skins
wilson61+Wilson's scientist and gentleman skins
winona64+Winona's engineer and factory worker skins
wolfgang61+Wolfgang's strongman and circus skins
woodie64+Woodie's lumberjack and nature-themed skins
wormwood47+Wormwood's plant and nature-themed skins
wortox56+Wortox's imp and demonic-themed skins
wurt50+Wurt's merm and aquatic-themed skins
wx7862+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 skins
  • hand_[character]_[theme] - Hand/glove accessories
  • legs_[character]_[theme] - Leg/pants accessories
  • feet_[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 themed
  • formal - Formal wear and elegant attire
  • ice - Ice/winter themed skins
  • lunar - Moon/celestial themed
  • nature - Natural/plant themed
  • rose - Rose/romantic themed
  • shadow - Shadow/dark themed
  • survivor - Survival gear themed
  • victorian - Victorian era styled
  • yule - 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:

  1. Source: export_accountitems.lua script processes account item data
  2. Update Trigger: Game content updates and new skin releases
  3. Format: Maintains consistent Lua table structure
  4. Validation: Ensures all character-skin relationships are valid