Home - MaybeSamigroup/SVS-SardineTail GitHub Wiki

Package specification

SardineTail supports two form of package, Release and Development.

Release package is extension modified zip archive and searched from every subdirectories of

sardines

in GameRoot.

Development package is directories under

UserData/plugin/SamabakeScramble.SardineTail/packages

and works as if packaged in zip archive.

Development package is only enabled by configuration.

Naming convention of package

packageId part is identity of package, then if you change it, save file made in previous versions may lost compatibility.

version part is parsed as System.Version in .net6. So see also it for detail.

https://learn.microsoft.com/en-us/dotnet/fundamentals/runtime-libraries/system-version

If there are multiple version of a package found, only latest one is loaded.

If there are multiple, same latest version of a package like these;

  • sardines/sample-1.0.0.stp
  • sardines/subdir/sample-1.0.0.stp
  • UserData/plugin/SamabakeScramble.SardineTail/packages/sample-1.0.0

one of but unpredictable will be loaded.

Release (zip archived) package

packageName = packageId "-" version ".stp"
packageId = 1*(fchar)
varsion = 1*(DIGIT) 1*3vpart
vpart = "." 1*(DIGIT)
fchar = any character possible in directory/file on os.

example: sample-1.0.0.stp

Development package

packageName = packageId "-" version
packageId = 1*(fchar)
varsion = 1*(DIGIT) 1*3vpart
vpart = "." 1*(DIGIT)
fchar = any character possible in directory/file on os.

example: sample-1.0.0

Structure of package

Unlike hard mod or beloved Sideloader's zipmod,

SardineTail does not require list(csv) file, most of those values are provided as predefined defaults.

And remaining values should be represented by directory, files names and optional json file.

A valid SardinTail's Packages (.stp) must contain at least one of category directories.

Each directory name represents ChaListDefine.CategoryNo, aka first line of *.csv in Sideloader's zipmod (*).

(* And distribution number in second line is automatically set to 0 in SardineTail)

SardineTail is look in to sub directories of each categorry directory until all required (default value is not predefined) keys are assined.

Value representation

Each value representation is different from it's Type in Category definition section.

Name

Name type (which is used in game display) is assigned from last directory name when all requirements met.

For example, an minimal mt_face_detail category mod will be following structure.

image

Name and LineMask is required key for mt_face_detail,

so LineMask.png is assigned as LineMask value and as the last required key,

Name is Your mod name; took from the directory name

Text

Text type is assigned via values.json in directory and it's simple key:value json.

values assigned in intermediate directory are shared in sub directory, so for example following structure is valid.

  • example-package-0.0.2.stp
    • co_top
      • males
        • values.json(*1)
        • mods for male1
        • mods for male2
        • mods for male3
      • females
        • values.json(*2)
        • mods for female1
        • mods for female2
        • mods for female3

Content of *1:

{ "Sex": "2" }

Content of *2: (it's default, you never need this in fact)

{ "Sex": "3" }

Store

Store type is assigned via values.json and must represents asset bundle path in package or (GameRoot)/abdata.

Reference to packaged asset bundle must be relative path.

Image

If there are Key.png in directory, it will assigned to correspond Image type Key.

You can also assign a asset in asset bundle (.unity3d) via values.json, when do so corresponding store must be set.

And also, you can reference a packaged .png file via values.json.

for example, if you want to share same thumbnail for a set coordinate, can be represented by below.

  • package-0.0.3.stp
    • co_top
      • my set coordinate top
        • values.json (*1)
        • MainTex.png
        • ColorMaskTex.png
        • ThumbTex.png
    • co_bot
      • my set coordinate bot
        • MainTex.png
        • ColorMaskTex.png
        • values.json (*2)

Content of *1:

{
  "MainAB": "bundles/yourbundle.unity3d",
  "MainData": "top"
}

Content of *2:

{
  "MainAB": "bundles/yourbundle.unity3d",
  "MainData": "bot",
  "ThumbTex:": "co_top/my set coordinate top/ThumbTex.png"
}

Asset

Asset type is assigned via values.json and corresponding store must be set.

for example:

{
  "MainAB": "bundles/yourbundle.unity3d",
  "MainData": "yourasset"
}

Csv notation

List definition in csv format is also supported.

Each csv must named after category, and its first line must have complete, correctly ordered key sets.

(category name).csv

either double or single, quoting in csv notation is not supported, so you can't also use comma.

Referencing packaged png image from csv

To reference packaged png from csv, corresponding ABKey must set to fixed value of sardinetail.unity3d.

For example you can write like this;

Kind,Possess,Name,MainAB,NipTex,ThumbAB,ThumbTex,Image,Attribute,Detail
0,1,MyMod,sardinetail.unity3d,path/from/package/root/your.png,sardinetail.unity3d,path/from/package/root/yourthumb.png,0/1/2/3/4/5,0,0

Referencing original asset

You can reference original (or hard mod's) asset bundle from package by *AB column.

If there are no corresponding asset bundle in package at initialize phase, load call for the asset will be processed normally.

When referencing original asset bundle in category with MainManifest column, MainManifest value should set to same as orginal,

Otherwise original item will be failed to load.

Mod identity

A mod is identified by its packageId which is described in Naming convention of package and its relative path from package root.

So example mod in Name is identified as sample:mt_face_detail/Your mod name.

And examples in Text are these;

  • example-package:co_top/males/mod for male1
  • example-package:co_top/males/mod for male2
  • example-package:co_top/males/mod for male3
  • example-package:co_top/females/mod for female1
  • example-package:co_top/females/mod for female2
  • example-package:co_top/females/mod for female3

By changing directory structure in package without conversion, save file made in previous versions may lost compatibility.

And csv notation mod is identified as packageId:category.csv/(Name column of mod).

So you can't have same name mod in same category within one package.

Migration between versions

To migrate old save made in before structure changed version, place a softmig.json at package root.

Content of softmig.json should have following struction:

(package version when structure change occurs) : *(old mod id):(new mod id)

for example:

{
  "1.0.1":
  {
    "co_top/mod for male1" : "co_top/males/mod for male1",
    "co_top/mod for male2" : "co_top/males/mod for male2",
    "co_top/mod for male3" : "co_top/males/mod for male3"
  }
}

Migration from hard mods

To migrate old save made in hard mod environment, place a hardmig.json at package root.

Content of hardmig.json should have following structure:

(Category) { *(list id which you assigned in hard mod) : { "ModId": (corresponding mod id in package), "Version": (your package version) } }

for example:

{
  "mt_face_detail" {
    "100000": { "ModId": "mt_face_detail/Your mod name", "Version": "1.0.0" }
  }
}

Mod id in hardmig.json is adjusted by softmig.json, so you may need to write hardmig.json only once for your initial package release.

To support migration from hardmod, SardineTail provide conversion function.

To use this function, check Enable hardmod conversion at startup configuration option and restart game.

It will take several minutes, depend on your hardmod quantity, and when title shown up, conversion has completed.

Converted packages are generated in:

UserData/plugin/SamabakeScramble.SardineTail/hardmods

Asset bundles are grouped by its minimal dependent set and packages are named after its not containing thumbs minimal named asset bundle.

By default, packages are generated in csv notation style.

If you want to structured one, check Convert hardmod into structured form in configuration.

Same asset bundle can't loaded twice, so generated package can't coexists with hardmod, because they shares common asset bundle;

SardineTail will try to generate valid hardmig.json, but if there are id conflict, only definition for first found one will be generated.

Converted package may contain conflicted mod identity. In such case, adjustment by hand is required.

Category directory and predefined defaults

bodypaint_layout

Name - Kind Name PosX PosY Rot Scale CenterX MoveX CenterY MoveY CenterScale AddScale ThumbAB ThumbTex
Type - Text Name Text Text Text Text Text Text Text Text Text Text Store Image
Default - 0 0 -4 0 0 0 0 -4 4.5 sardinetail.unity3d thumb_na

facepaint_layout

Name - Kind Name PosX PosY Rot Scale CenterX MoveX CenterY MoveY CenterScale AddScale ThumbAB ThumbTex
Type - Text Name Text Text Text Text Text Text Text Text Text Text Store Image
Default - 0 0 -2.5 0 0 0 0 -2.5 3 sardinetail.unity3d thumb_na

mole_layout

Name - Kind Name PosX PosY Rot Scale CenterX MoveX CenterY MoveY CenterScale AddScale ThumbAB ThumbTex
Type - Text Name Text Text Text Text Text Text Text Text Text Text Store Image
Default - 0 0 -0.8 0 0 0 0 -0.8 1 sardinetail.unity3d thumb_na

bo_body

Name - Kind Possess Name Sex MainManifest MainAB MainData ShapeAnimeAB ShapeAnime MainTexAB MainTex
Type - Text Text Name Text Text Store Asset Store Asset Store Image
Default - 0 1 3 abdata sardinetail.unity3d sardinetail.unity3d sardinetail.unity3d

bo_head

Name - Kind Possess Name MainManifest MainAB MainData ShapeAnimeAB ShapeAnime MainTexAB MainTex ColorMaskAB ColorMaskTex ThumbAB ThumbTex Preset
Type - Text Text Name Text Store Asset Store Asset Store Image Store Image Store Image Text
Default - 0 1 abdata sardinetail.unity3d sardinetail.unity3d sardinetail.unity3d sardinetail.unity3d sardinetail.unity3d thumb_na

bo_hair_b

Name - Kind Possess Name MainManifest MainAB MainData SetHair ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Text Store Asset Text Store Image Text Text Text
Default - 1 1 abdata sardinetail.unity3d 0 sardinetail.unity3d thumb_na 0/1/2/3/4/5 0/1 0/4

bo_hair_f

Name - Kind Possess Name MainManifest MainAB MainData ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Text Store Asset Store Image Text Text Text
Default - 0 1 abdata sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0/1/2/3/4/5 0/1/2/3/4/5

bo_hair_s

Name - Kind Possess Name MainManifest MainAB MainData ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Text Store Asset Store Image Text Text Text
Default - 0 1 abdata sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0/1/2/3/4/5 0/3/4/5

bo_hair_o

Name - Kind Possess Name MainManifest MainAB MainData ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Text Store Asset Store Image Text Text Text
Default - 0 1 abdata sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0/1/2/3/4/5 0/1/2/3/4/5

co_top

Name - Kind Possess Name MainManifest MainAB MainData NormalData StateType Coordinate NotBra NoShake Sex OverTopMaskAB OverTopMask OverBotMaskAB OverBotMask MainTexAB MainTex ColorMaskAB ColorMaskTex MainTex02AB MainTex02 ColorMask02AB ColorMask02Tex MainTex03AB MainTex03 ColorMask03AB ColorMask03Tex PaintMaskAB PaintMask NipHide KokanHide HalfUndress ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Text Store Asset Text Text Text Text Text Text Store Image Store Image Store Image Store Image Store Image Store Image Store Image Store Image Store Image Text Text Text Store Image Text Text Text
Default - 4 1 abdata sardinetail.unity3d 0 0 0 0 0 3 sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d sardinetail.unity3d sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 1 0 0 sardinetail.unity3d thumb_na 0/1/2/3/4/5 0/1/3 0/1/3

co_bot

Name - Kind Possess Name MainManifest MainAB MainData StateType Coordinate HideShorts NoShake SkirtType Sex OverTopMaskAB OverTopMask OverBotMaskAB OverBotMask MainTexAB MainTex ColorMaskAB ColorMaskTex MainTex02AB MainTex02 ColorMask02AB ColorMask02Tex MainTex03AB MainTex03 ColorMask03AB ColorMask03Tex PaintMaskAB PaintMask KokanHide ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Text Store Asset Text Text Text Text Text Text Store Image Store Image Store Image Store Image Store Image Store Image Store Image Store Image Store Image Text Store Image Text Text Text
Default - 4 1 abdata sardinetail.unity3d 0 0 1 0 0 3 sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d sardinetail.unity3d sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 0 sardinetail.unity3d thumb_na 0/1/2 0/3 0/1/2/3

co_bra

Name - Kind Possess Name MainManifest MainAB MainData NormalData StateType Coordinate MabUV Sex OverTopMaskAB OverTopMask OverBotMaskAB OverBotMask MainTexAB MainTex ColorMaskAB ColorMaskTex MainTex02AB MainTex02 ColorMask02AB ColorMask02Tex PaintMaskAB PaintMask NipHide KokanHide HalfUndress ThumbAB ThumbTex Image Attribute Detail Sort
Type - Text Text Name Text Store Asset Text Text Text Text Text Store Image Store Image Store Image Store Image Store Image Store Image Store Image Text Text Text Store Image Text Text Text Text
Default - 1 1 abdata sardinetail.unity3d 0 0 0 0 3 sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d sardinetail.unity3d sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 1 0 0 sardinetail.unity3d thumb_na 0/1/2/3/4/5 0/3 0/1/2/3 0

co_shorts

Name - Kind Possess Name MainManifest MainAB MainData StateType Sex OverTopMaskAB OverTopMask OverBotMaskAB OverBotMask MainTexAB MainTex ColorMaskAB ColorMaskTex MainTex02AB MainTex02 ColorMask02AB ColorMask02Tex PaintMaskAB PaintMask KokanHide ThumbAB ThumbTex Image Attribute Detail Sort
Type - Text Text Name Text Store Asset Text Text Store Image Store Image Store Image Store Image Store Image Store Image Store Image Text Store Image Text Text Text Text
Default - 1 1 abdata sardinetail.unity3d 0 3 sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d sardinetail.unity3d sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 1 sardinetail.unity3d thumb_na 0/1/2/3/4/5 0/1/3 0/1/2/3/4 5

co_gloves

Name - Kind Possess Name MainManifest MainAB MainData StateType NailHide Sex MainTexAB MainTex ColorMaskAB ColorMaskTex MainTex02AB MainTex02 ColorMask02AB ColorMask02Tex PaintMaskAB PaintMask ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Text Store Asset Text Text Text Store Image Store Image Store Image Store Image Store Image Store Image Text Text Text
Default - 0 1 abdata sardinetail.unity3d 1 1 3 sardinetail.unity3d sardinetail.unity3d sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

co_panst

Name - Kind Possess Name MainManifest MainAB MainData StateType Sex MainTexAB MainTex ColorMaskAB ColorMaskTex MainTex02AB MainTex02 ColorMask02AB ColorMask02Tex PaintMaskAB PaintMask KokanHide ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Text Store Asset Text Text Store Image Store Image Store Image Store Image Store Image Text Store Image Text Text Text
Default - 0 1 abdata sardinetail.unity3d 1 3 sardinetail.unity3d sardinetail.unity3d sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 0 sardinetail.unity3d thumb_na 99 99 0/1/2/3

co_socks

Name - Kind Possess Name MainManifest MainAB MainData StateType SocksDent Sex MainTexAB MainTex ColorMaskAB ColorMaskTex MainTex02AB MainTex02 ColorMask02AB ColorMask02Tex DentTexAB DentTex PaintMaskAB PaintMask ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Text Store Asset Text Text Text Store Image Store Image Store Image Store Image Store Image Store Image Store Image Text Text Text
Default - 1 1 abdata sardinetail.unity3d 1 0 3 sardinetail.unity3d sardinetail.unity3d sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d thumb_na 0/1/2/3/4/5 0/1/5/6 0/1/2/3

co_shoes

Name - Kind Possess Name MainManifest MainAB MainData StateType ShoesType Sex MainTexAB MainTex ColorMaskAB ColorMaskTex MainTex02AB MainTex02 ColorMask02AB ColorMask02Tex PaintMaskAB PaintMask ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Text Store Asset Text Text Text Store Image Store Image Store Image Store Image Store Image Store Image Text Text Text
Default - 1 1 abdata sardinetail.unity3d 1 1 1 sardinetail.unity3d sardinetail.unity3d sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d thumb_na 0/1/2/3/4 0 0/1/2/3

ao_hair

Name - Kind Possess Name MainManifest MainAB MainData Parent ThumbAB ThumbTex Image Attribute Detail Sort
Type - Text Text Name Text Store Asset Text Store Image Text Text Text Text
Default - 0 1 abdata sardinetail.unity3d a_n_hair_pin sardinetail.unity3d thumb_na 0/1/2/3/4 0/1/2/3/4/5/6/7/11 0 0

ao_head

Name - Kind Possess Name MainManifest MainAB MainData Parent HideHair ThumbAB ThumbTex Image Attribute Detail Sort
Type - Text Text Name Text Store Asset Text Text Store Image Text Text Text Text
Default - 0 1 abdata sardinetail.unity3d a_n_hair_twin_L 0 sardinetail.unity3d thumb_na 0/1/2/4 0 0 0

ao_face

Name - Kind Possess Name MainManifest MainAB MainData Parent ThumbAB ThumbTex Image Attribute Detail Sort
Type - Text Text Name Text Store Asset Text Store Image Text Text Text Text
Default - 0 1 abdata sardinetail.unity3d a_n_megane sardinetail.unity3d thumb_na 0/1/2/3/4/5 0/1/2/3/4/5/6/7/11 0 0

ao_neck

Name - Kind Possess Name MainManifest MainAB MainData Parent ThumbAB ThumbTex Image Attribute Detail Sort
Type - Text Text Name Text Store Asset Text Store Image Text Text Text Text
Default - 0 1 abdata sardinetail.unity3d a_n_bust sardinetail.unity3d thumb_na 0/1/2/3/4 0/1/2/3/4/5/6/7/9/11 0 0

ao_body

Name - Kind Possess Name MainManifest MainAB MainData Parent ThumbAB ThumbTex Image Attribute Detail Sort
Type - Text Text Name Text Store Asset Text Store Image Text Text Text Text
Default - 0 1 abdata sardinetail.unity3d a_n_back sardinetail.unity3d thumb_na 0/1/2/3/4/5 0/1/2/3/5/6/7 1 0

ao_waist

Name - Kind Possess Name MainManifest MainAB MainData Parent ThumbAB ThumbTex Image Attribute Detail Sort
Type - Text Text Name Text Store Asset Text Store Image Text Text Text Text
Default - 0 1 abdata sardinetail.unity3d a_n_waist_b sardinetail.unity3d thumb_na 0/1/2/3/4/5 99 0 0

ao_leg

Name - Kind Possess Name MainManifest MainAB MainData Parent ThumbAB ThumbTex Image Attribute Detail Sort
Type - Text Text Name Text Store Asset Text Store Image Text Text Text Text
Default - 0 1 abdata sardinetail.unity3d a_n_leg_L sardinetail.unity3d thumb_na 0/1/2/3/4/5 0/4/11 0 0

ao_arm

Name - Kind Possess Name MainManifest MainAB MainData Parent ThumbAB ThumbTex Image Attribute Detail Sort
Type - Text Text Name Text Store Asset Text Store Image Text Text Text Text
Default - 0 1 abdata sardinetail.unity3d a_n_wrist_L sardinetail.unity3d thumb_na 0/1/2/3/4/5 0/1/2/3/4/5/6 0 0

ao_hand

Name - Kind Possess Name MainManifest MainAB MainData Parent ThumbAB ThumbTex Image Attribute Detail Sort
Type - Text Text Name Text Store Asset Text Store Image Text Text Text Text
Default - 0 1 abdata sardinetail.unity3d a_n_ind_L sardinetail.unity3d thumb_na 0/1/2/3/4/5 0/1/2/3/4/5/6/9/11 0 0

ao_kokan

Name - Kind Possess Name MainManifest MainAB MainData Parent ThumbAB ThumbTex Image Attribute Detail Sort
Type - Text Text Name Text Store Asset Text Store Image Text Text Text Text
Default - 0 1 abdata sardinetail.unity3d a_n_kokan sardinetail.unity3d thumb_na 5 99 1 0

mt_face_detail

Name - Kind Possess Name MainAB NormallMapDetail LineMask ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d 0 sardinetail.unity3d thumb_na 99 99 99

mt_eyeshadow

Name - Kind Possess Name MainAB EyeshadowTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 1/2/3/4/5 0/1/2 0

mt_cheek

Name - Kind Possess Name MainAB CheekTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 1/2/3/4/5 0/1/2 0

mt_lip

Name - Kind Possess Name MainAB LipTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 1/2/3/4/5 2/3 0

mt_lipline

Name - Kind Possess Name MainAB LiplineTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 1/2/3/4 0

mt_face_paint

Name - Kind Possess Name MainAB PaintTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

mt_eyebrow

Name - Kind Possess Name MainAB EyebrowTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

mt_eye_white

Name - Kind Possess Name MainAB EyeWhiteTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

mt_eye

Name - Kind Possess Name MainAB EyeTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

mt_eye_gradation

Name - Kind Possess Name ColorMaskAB ColorMaskTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/1/2/3/4/5 0 0

mt_eye_hi_up

Name - Kind Possess Name MainAB EyeHiUpTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

mt_eyeline_up

Name - Kind Possess Name MainAB EyelineUpTex EyelineShadowTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d 0 sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

mt_eyeline_down

Name - Kind Possess Name MainAB EyelineDownTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

mt_nose

Name - Kind Possess Name MainAB NoseTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/4/5 0 0

mt_mole

Name - Kind Possess Name MainAB MoleTex ThumbAB ThumbTex MoleLayoutID Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0 99 0 0

mt_eyepipil

Name - Kind Possess Name MainAB EyepipilTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

mt_eyelid

Name - Kind Possess Name MainAB EyelidTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

mt_body_detail

Name - Kind Possess Name MainAB NormallMapDetail LineMask Sex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Image Text Store Image Text Text Text
Default - 0 1 sardinetail.unity3d 3 sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

mt_body_paint

Name - Kind Possess Name MainAB PaintTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

mt_sunburn

Name - Kind Possess Name MainAB SunburnTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 1 0

mt_nip

Name - Kind Possess Name MainAB NipTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

mt_underhair

Name - Kind Possess Name MainAB UnderhairTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

bo_nail

Name - Kind Possess Name MainManifest MainAB MainData ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Text Store Asset Store Image Text Text Text
Default - 0 1 abdata sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

bo_nail_leg

Name - Kind Possess Name MainManifest MainAB MainData ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Text Store Asset Store Image Text Text Text
Default - 0 1 abdata sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0 0

mt_pattern

Name - Kind Possess Name MainTexAB MainTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0 0 0

mt_ramp

Name - Kind Possess Name MainManifest MainAB MainTexAB MainTex MainTex02AB MainTex02 MainTex03AB MainTex03 ColorMaskAB ColorMaskTex ColorMask02AB ColorMask02Tex LampTexAB LampTex ThumbAB ThumbTex
Type - Text Text Name Text Store Store Image Store Image Store Image Store Image Store Image Text Image Store Image
Default - 0 1 abdata sardinetail.unity3d sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 sardinetail.unity3d 0 0 sardinetail.unity3d thumb_na

mt_hairgloss

Name - Kind Possess Name MainTexAB MainTex ThumbAB ThumbTex Image Attribute Detail
Type - Text Text Name Store Image Store Image Text Text Text
Default - 0 1 sardinetail.unity3d sardinetail.unity3d thumb_na 0/1/2/3/4/5 0/1/2/3/4/5 0/1/2/3/4/5

AdvancedTopic: Texture wrap mode of png texture

Texture wrap mode of packaged png images are determined by its name and path.

ThumbTex.png will be wrap mode of U:Clamp, V:Clamp, W:Clamp wherever it ware.

Others are determined by its first path; basically category name.

Textures contained under these directories will be wrap mode of U:Repeat, V:Repeat, W:Repeat;

  • bo_body
  • bo_head
  • co_bot
  • co_bra
  • co_gloves
  • co_panst
  • co_shoes
  • co_shorts
  • co_socks
  • co_tops
  • mt_body_detail
  • mt_eyeshadow
  • mt_face_detail
  • mt_sunburn
  • mt_pattern

Others will be wrap mode of U:Clamp, V:Clamp, W:Clamp.

And like ThumbTex.png, there are special names for specific wrap modes.

Name Wrap Mode(U) Wrap Mode(V) Wrap Mode(W)
RepeatRepeatRepeat.png Repeat Repeat Repeat
RepeatRepeatClamp.png Repeat Repeat Clamp
RepeatRepeatMirror.png Repeat Repeat Mirror
RepeatRepeatMirrorOnce.png Repeat Repeat Mirror Once
RepeatClampRepeat.png Repeat Clamp Repeat
RepeatClampClamp.png Repeat Clamp Clamp
RepeatClampMirror.png Repeat Clamp Mirror
RepeatClampMirrorOnce.png Repeat Clamp Mirror Once
RepeatMirrorRepeat.png Repeat Mirror Repeat
RepeatMirrorClamp.png Repeat Mirror Clamp
RepeatMirrorMirror.png Repeat Mirror Mirror
RepeatMirrorMirrorOnce.png Repeat Mirror Mirror Once
RepeatMirrorOnceRepeat.png Repeat Mirror Once Repeat
RepeatMirrorOnceClamp.png Repeat Mirror Once Clamp
RepeatMirrorOnceMirror.png Repeat Mirror Once Mirror
RepeatMirrorOnceMirrorOnce.png Repeat Mirror Once Mirror Once
ClampRepeatRepeat.png Clamp Repeat Repeat
ClampRepeatClamp.png Clamp Repeat Clamp
ClampRepeatMirror.png Clamp Repeat Mirror
ClampRepeatMirrorOnce.png Clamp Repeat Mirror Once
ClampClampRepeat.png Clamp Clamp Repeat
ClampClampClamp.png Clamp Clamp Clamp
ClampClampMirror.png Clamp Clamp Mirror
ClampClampMirrorOnce.png Clamp Clamp Mirror Once
ClampMirrorRepeat.png Clamp Mirror Repeat
ClampMirrorClamp.png Clamp Mirror Clamp
ClampMirrorMirror.png Clamp Mirror Mirror
ClampMirrorMirrorOnce.png Clamp Mirror Mirror Once
ClampMirrorOnceRepeat.png Clamp Mirror Once Repeat
ClampMirrorOnceClamp.png Clamp Mirror Once Clamp
ClampMirrorOnceMirror.png Clamp Mirror Once Mirror
ClampMirrorOnceMirrorOnce.png Clamp Mirror Once Mirror Once
MirrorRepeatRepeat.png Mirror Repeat Repeat
MirrorRepeatClamp.png Mirror Repeat Clamp
MirrorRepeatMirror.png Mirror Repeat Mirror
MirrorRepeatMirrorOnce.png Mirror Repeat Mirror Once
MirrorClampRepeat.png Mirror Clamp Repeat
MirrorClampClamp.png Mirror Clamp Clamp
MirrorClampMirror.png Mirror Clamp Mirror
MirrorClampMirrorOnce.png Mirror Clamp Mirror Once
MirrorMirrorRepeat.png Mirror Mirror Repeat
MirrorMirrorClamp.png Mirror Mirror Clamp
MirrorMirrorMirror.png Mirror Mirror Mirror
MirrorMirrorMirrorOnce.png Mirror Mirror Mirror Once
MirrorMirrorOnceRepeat.png Mirror Mirror Once Repeat
MirrorMirrorOnceClamp.png Mirror Mirror Once Clamp
MirrorMirrorOnceMirror.png Mirror Mirror Once Mirror
MirrorMirrorOnceMirrorOnce.png Mirror Mirror Once Mirror Once
MirrorOnceRepeatRepeat.png Mirror Once Repeat Repeat
MirrorOnceRepeatClamp.png Mirror Once Repeat Clamp
MirrorOnceRepeatMirror.png Mirror Once Repeat Mirror
MirrorOnceRepeatMirrorOnce.png Mirror Once Repeat Mirror Once
MirrorOnceClampRepeat.png Mirror Once Clamp Repeat
MirrorOnceClampClamp.png Mirror Once Clamp Clamp
MirrorOnceClampMirror.png Mirror Once Clamp Mirror
MirrorOnceClampMirrorOnce.png Mirror Once Clamp Mirror Once
MirrorOnceMirrorRepeat.png Mirror Once Mirror Repeat
MirrorOnceMirrorClamp.png Mirror Once Mirror Clamp
MirrorOnceMirrorMirror.png Mirror Once Mirror Mirror
MirrorOnceMirrorMirrorOnce.png Mirror Once Mirror Mirror Once
MirrorOnceMirrorOnceRepeat.png Mirror Once Mirror Once Repeat
MirrorOnceMirrorOnceClamp.png Mirror Once Mirror Once Clamp
MirrorOnceMirrorOnceMirror.png Mirror Once Mirror Once Mirror
MirrorOnceMirrorOnceMirrorOnce.png Mirror Once Mirror Once Mirror Once

Cartesian product of (Repeat,Clamp,Mirror,MirrorOnce) for each (U,V,W). (there might be typo I swear.)

You can utilize these special names via assigning in values.json or csv notation.