Skins are alternate character models. Pascal's Wager ships four optional outfits, one each for Terrence, Viola, Benita and Elena. They change only how the hero looks: the game always reads stats, talents and moves from the base hero, and no outfit has any gameplay data of its own. The outfits are sold as separate Steam add-ons, none of them can be earned in the game.
All skins#
| Skin id | Hero (model id) | In-game title | Type | Unlocked by default | Description (summary) |
|---|---|---|---|---|---|
| 1000 | Terrence (10001) | Terrence (Default) | Default look | Yes | None |
| 1001 | Terrence (11001) | Herald Outfit | Outfit | No | Terrence after giving up everything, with the thought that the night journey would turn into a long nightmare |
| 2000 | Viola (10002) | Viola (Default) | Default look | Yes | None |
| 2001 | Viola (11002) | Initiation Rite | Outfit | No | A coming-of-age ceremony under silver moonlight that exists only in one of Viola's deep dreams |
| 3000 | Benita (10003) | Benita (Default) | Default look | Yes | None |
| 3001 | Benita (11003) | Sleeping Beauty | Outfit | No | A reference to the bewitching flower that bloomed in a dark corner of Blessedland, still remembered in tales |
| 4000 | Norwood (10004) | Norwood (Default) | Default look | Yes | None |
| 5000 | Jerold (10005) | Jerold (Default) | Default look | Yes | None (title is still Chinese in the English text) |
| 7000 | Elena (10007) | Elena (Default) | Default look | Yes | None |
| 7001 | Elena (11007) | Enigma | Outfit | No | Elena's costume of absolute devotion to Demiurge philosophy; "Enigma" is a title given to very few Demiurges who explore taboos |
| 9301 | Elena as enemy (21039) | Irina outfit (Chinese text only) | Enemy-only look | Yes (flag) | None |
Skin 9301 is a special case; see Hidden mechanics.
Unlocking and wearing#
- Default looks have
Enable = 1in the skin table and are always available. The four outfits haveEnable = 0. The columnShowQuestIdis empty for every skin, so no quest or achievement unlocks a skin. - The outfits are tied to Steam add-on products. In the Steam product table of the game (
IapData.STEAM) the product ids are 1460740 (hero11001, Herald Outfit), 1460741 (hero11002, Initiation Rite), 1460742 (hero11003, Sleeping Beauty) and 1460745 (hero11007, Enigma), each priced at 6 CNY in the data. The same table also holds the content add-ons: 1460743dlcmaze1(price 6, the Dark Mist maze, see Deep into the Dark Mist), 1460744dlcstory1(price 18, the Tides of Oblivion story with Jerold) and 1460746dlcarcade(price 12, Arcade mode). - A skin counts as available when its id matches an entry
hero<model id>in the add-on list (CheckValidin the wardrobe and the character select) or when it is a default look. Locked outfits show a message asking the player to unlock the outfit first. - Wardrobe (
WearCtrl): lists only skins whose id is below 5000, so it shows Terrence, Viola, Benita and Norwood. Elena's outfit and Jerold appear in the character-select costume list instead (ChooseHeroCtrl), which lists every skin of the chosen hero. - In the Player Info screen the outfit toggle flips between default (index 0) and outfit (index 1) of the current hero. It is only active if the hero has an outfit at all (
GetSkinMax). - The choice is saved per hero in the story save (
heroSelectSkinList), so every save can use different outfits.
Hidden mechanics#
Model id arithmetic. A hero's outfit is a different model whose id is built from the base hero: 10000 + base index + skin index x 1000. Terrence's outfit is 11001, Viola's 11002, Benita's 11003 and Elena's 11007. ConvertHeroIdWithoutSkin reverses this (anything above 11000 is reduced by modulo 1000) so that all stat lookups use the base hero. This is why outfits can never change numbers.
Where the outfit really appears. UpdateSkin is only run in the story battle type, so the outfit is a model swap during the story. In ordinary story areas the game swaps in an outfit for Viola, Benita and Elena only when that outfit's model is in the list of loaded party members; Terrence's outfit is applied without that check. In the maze, the carriage, the Obsession Challenge and Arcade mode the outfit is applied directly without the party check.
Enemy Elena has her own look swap. In Arcade mode the code turns enemy model 20039 (Elena as a boss, stage 1006) into model 21039 whenever the player's Elena is wearing the default outfit. When the player wears Enigma, the enemy stays 20039. The skin table records this variant as skin 9301 with the Chinese title "Irina outfit"; it is never shown in menus because the wardrobe only lists ids below 5000 and the enemy has no skin selection. The purpose appears to be keeping the player and the boss visually distinct (inferred).
Flag always on in this build. In this Lua build the add-on records are created with valid = true, and the only assignments to valid anywhere in the SDK helper set it to true as well. So the Lua check can never reject an outfit once the product table has been loaded; actual ownership must be enforced by native Steam code that is not part of the scripts (inferred). Do not assume the outfits are locked by script alone.
No unlock path for Norwood and Jerold. Both have only their default look: GetSkinMax is 0 for them, so the outfit button never appears.
Trivia#
- The English description of Elena's Enigma outfit is the only skin text that mentions her philosophy; the other three are short mood lines.
- The Jerold default skin is the only one left with a Chinese name in the English text file.
Sources#
reference/lua_src/luascript/structdata/ms_storyskin.lua:1-110(skin index, lists,GetSkinListbelow 5000,GetDefaultOpen)logic/battle/battledata.lua:371-435(ConvertHeroIdWithoutSkin,ConvertHeroIdWithSkin, 20039 to 21039 rule)logic/player/animalbase.lua:1059-1125(UpdateSkin,InitSkin)structdata/fs_savestory.lua:2826-2840(InitSelectSkin,GetSelectSkin)ui/controller/wearctrl.lua:50-75, 129-200, 244-260;ui/controller/chooseheroctrl.lua:408-500;ui/controller/playerinfoctrl.lua:2987-3050sdk/iapdata.lua:328-410(Steam products 1460740 to 1460746);sdk/sdkhelper.lua:470-560, 640-660(validflag)- Tables:
es_storyskin.luarows 1-11 (SkinId, HeroId, Enable, ShowQuestId); English text: kittext/StorySkin.jsonl; hero names: kittext/HeroData.jsonl(20039 is Elena)