Menu

PL2 Attribute Language

crazycatz00

All *.pl2 archive files contain a file named "attribute" (lower-case with no extension), which acts as a configuration file for the add-on. It specifies the type of add-on, files included in it, and other settings.

  • Keys are case-sensitive
    • All official keys are UPPERCASE
    • Custom keys can be used (They'll do nothing)
  • Comments begin with a hash symbol (#), and always begin at the start of a line
  • Text shown to the player (CAPTION) must be encoded in Shift-JIS (JASCII)
  • If two files share the same name, the one in the add-on alphabetically first is used
    • If title.txt is in both sc00.pl2 and sc01.pl2, the sc00.pl2 version is used

Keys

Key Function Used in types Example
TYPE Specifies the type of add-on Required in All TYPE=HAIR
NAME Unique internal add-on name Required in All except ARCHIVE and COORDINATE NAME=imo_hairD_06_crzy
FILE_<#> File included in *.pl2 archive
Added in internal file list
All FILE_0=imo_hairD_06_crzy.tmb
ICON_<0,1> Icon to show in Character Creation Screen
190x80px for rooms, 40x40px for others
Added in internal file list
All except ARCHIVE ICON_0=imo_hairD_06_crzy.psd
COORD_<Part Index> Assigns a file (without extension) to a specific part slot
Doesn't include the file itself
COORDINATE COORD_05=imo_cos_school_B01A
CAPTION_<0,1,3,4> Name and description for Character Creation Screen All except ARCHIVE and COORDINATE CAPTION_0=Short DarkーBrown Hair
UPPERONLY Flags only upper-wear is included.
If this key exists, even with a blank value, it is 'on'.
COSTUME, UNDER UPPERONLY=1
BOTTOMONLY Flags only lower-wear is included.
If this key exists, even with a blank value, it is 'on'.
COSTUME, UNDER BOTTOMONLY=1
HALFWEAR Flags that half removed states are included.
If this key exists, even with a blank value, it is 'on'.
UNDER HALFWEAR=1

There's also 2 unofficial keys often included in add-ons. They do nothing, but give a little more information about the add-on. They are:

  1. VERSION (Usually 100, like 1.00)
  2. SEX (always FEMALE; unmodded PL2 doesn't support a male dressing room)

Types

Type Function In Character Creation Screen?
ARCHIVE Only contains other files No
COORDINATE Defines a preset configuration of items, but does not include the files itself. As "Clothing Sets"
BG Room models and animations As the room selector
ARM Item model shown on the arm, such as a bracelet yes
BODY Bare body model; no hair, eyes, etc Yes
COSTUME Outer clothes models
May contain upper (Eg. Shirt), lower (Eg. Skirt), or both.
Upper clothes in "Clothing (Upper)"
Lower clothes in "Clothing (Lower)"
EYE Eye models Yes
FACE Item model shown on the face, such as glasses Yes
HAIR Hair model Yes
HEAD Item model shown on the head, such as a hat Yes
NECK Item model shown on the neck, such as a necklace Yes
SHOES Shoes models Yes
SOCKS Socks models Yes
UNDER Under clothes models
Upper and lower may be in the same or separate models, and may contain half removed states
Yes

Standard Add-on Format

All add-ons require a TYPE key, and for all TYPEs other then ARCHIVE the NAME key is required. Add-ons that show in the Character Creation Screen also include ICON_# and CAPTION_# keys.
All files included in that add-on, other then the attribute itself, must be specified in a FILE_# key. To specify no file, or "null", use nil. (Ex: "FILE_0=nil" in a body add-on will make the body disappear when selected.)
Captions are also specified, which are the name and description shown in the Character Creation Screen. This text must be encoded in Shift-JIS. Caption #0 is the name, and #1 is the description; one type also has a #3 and #4. Note that there is no caption #2 or #5.

Example:

TYPE=EYE
NAME=imo_eye_04
CAPTION_0=<コバルトブルーの瞳>
CAPTION_1=綺麗な濃いブルーの瞳。吸い込まれそう。
FILE_0=imo_eye_04.tmb
ICON_0=imo_eye_04.psd

This attribute file tells the game this add-on is an eye model, its internal name is "imo_eye_04", and a name (CAPTION_0) and description (CAPTION_1) for the Character Creation Screen. It also says there are 2 other files in the add-on: "imo_eye_04.tmb" (the eye model) and "imo_eye_04.psd" (its icon).

TYPE=ARCHIVE

ARCHIVE add-ons include files for use in the game, such as scripts, images, sounds, etc; they do not appear in the Character Creation Screen.
The attribute may contain any number of FILE_ keys; in this type, and only* in ARCHIVEs, the part of the key after the underscore is irrelevant, though it's usually 00.

Example:

TYPE=ARCHIVE
FILE_00=script.txt
FILE_00=sc00_testing_title.txt
FILE_00=sc00_testing_test_model.txt
FILE_00=sc00_testing_test_script.txt


TYPE=ARCHIVE
FILE_0=script.txt
FILE_1=title.txt
FILE_I like this title better=title2.txt
FILE_1337=about.txt

TYPE=COORDINATE

COORDINATE files don't contain the models with them, but tell the game which to load. As such, they use COORD_## keys instead of FILE_##.

  • The COORD_## corresponds with the Part Index
  • If the key for a part index isn't included, the part remains unchanged
  • If the value for a part is "nil", the part is removed

Example:

TYPE=COORDINATE
NAME=cos_school_B01
CAPTION_0=ブレザー系スクール制服 (夏服)
CAPTION_1=半袖スクールシャツとミニスカートの組み合わせ
ICON_0=cos_school_B01.psd
#Removes Socks
COORD_04=nil
#Lower Clothes; Loads imo_cos_school_B01A.tmb
COORD_05=imo_cos_school_B01A
#Upper clothes; Loads imo_cos_school_B01.tmb
COORD_06=imo_cos_school_B01B
#Neck item
COORD_09=imo_neck_school_01
#Removes Shoes
COORD_11=nil

TYPE=BG

Backgrounds include the model and animation for a room or area; this is the only selectable model add-on type that includes animations with it.

  • File keys are paired: FILE_0 is model 1 and FILE_1 is animation 1, FILE_2 is model 2 and FILE_3 is animation 2
  • If only one model is needed, only specify FILE_# 0 and 1
  • If no animation is needed, specify "nil" for it

Example:

#1 model, no animation
TYPE=BG
NAME=room_01
CAPTION_0=お兄ちゃんの部屋
CAPTION_1=ちょっと渋め。
FILE_0=room_01.tmb
FILE_1=nil
ICON_0=BG1.psd

#2 models, 2nd one is animated
TYPE=BG
NAME=room_01
CAPTION_0=お兄ちゃんの部屋
CAPTION_1=ちょっと渋め。
FILE_0=room_01.tmb
FILE_1=nil
FILE_2=room_01b.tmb
FILE_3=room_01b.tsb
ICON_0=BG1.psd

TYPE=COSTUME

COSTUME add-ons contain either outer-wear for upper, lower, or both. Upper and lower models can be chosen separately, even if they're in the same add-on.

  • There are two icons:
    • ICON_0 for upper
    • ICON_1 for lower
  • Four captions:
    • CAPTION_0 for upper name
    • CAPTION_1 for upper description
    • CAPTION_3 for lower name
    • CAPTION_4 for lower description
  • Two files:
    • FILE_0 for upper model
    • FILE_1 for lower model
  • There are also two "flag" keys:
    • UPPERONLY tells the game their is no lower clothes in this add-on
    • BOTTOMONLY tells the game their is no upper clothes in this add-on
      • If both are specified, the add-on will not appear in the Character Creation Screen.

Examples:

#Contains both upper and lower
TYPE=COSTUME
NAME=imo_cosE_02
CAPTION_0=<赤ライン体操服スソ出し>
CAPTION_1=赤は三年生の色。下級生あこがれの先輩色。
CAPTION_3=<赤ブルマ>
CAPTION_4=かなり目立つ赤いブルマ。走ったら速そう。
FILE_0=imo_cosE_02A.tmb
FILE_1=imo_cosE_02B.tmb
ICON_0=imo_cosE_02A.psd
ICON_1=imo_cosE_02B.psd

#Upper-wear only
TYPE=COSTUME
NAME=imo_cosE_02
CAPTION_0=<赤ライン体操服スソ出し>
CAPTION_1=赤は三年生の色。下級生あこがれの先輩色。
CAPTION_3=nil
CAPTION_4=nil
FILE_0=imo_cosE_02A.tmb
FILE_1=nil
ICON_0=imo_cosE_02A.psd
ICON_1=nil
UPPERONLY=1

#Lower-wear only
TYPE=COSTUME
NAME=imo_cosE_02
CAPTION_0=nil
CAPTION_1=nil
CAPTION_3=<赤ブルマ>
CAPTION_4=かなり目立つ赤いブルマ。走ったら速そう。
FILE_0=nil
FILE_1=imo_cosE_02B.tmb
ICON_0=nil
ICON_1=imo_cosE_02B.psd
BOTTOMONLY=1

TYPE=UNDER

UNDER add-ons contain models for upper and lower underwear. Unlike COSTUME, upper and lower pieces cannot be chosen separately in the Character Creation Screen.
There's only a single icon (ICON_0) and caption pair (CAPTION_0 for name, CAPTION_1 for description). In addition, this type also uses the UPPERONLY flag (not BOTTOMONLY), along with a new one named HALFWEAR. This type is further complicated by its FILE_# keys, as their meaning changes depending on which flags are present.

Flag FILE_0 FILE_1 FILE_2 FILE_3
None Upper fully on Lower fully on
HALFWEAR Upper fully on Lower fully on Upper half removed Lower half removed
UPPERONLY Upper & Lower fully on
UPPERONLY
& HALFWEAR
Upper & Lower fully on Upper half removed
Lower fully on
Upper fully on
Lower half removed
Upper half removed
Lower half removed

Examples:

#No flags
TYPE=UNDER
NAME=imo_underA_01
CAPTION_0=<ホワイトアンダーウェア>
CAPTION_1=清楚な白い下着セット。やっぱ白は基本だよね。
#Upper on
FILE_0=imo_underA_01A.tmb
#Lower on
FILE_1=imo_underA_01B.tmb
FILE_2=nil
FILE_3=nil
ICON_0=imo_underA_01.psd

#UPPERONLY
TYPE=UNDER
NAME=imo_underA_01
CAPTION_0=<ホワイトアンダーウェア>
CAPTION_1=清楚な白い下着セット。やっぱ白は基本だよね。
#Upper and Lower on
FILE_0=imo_underA_01.tmb
FILE_1=nil
FILE_2=nil
FILE_3=nil
ICON_0=imo_underA_01.psd
UPPERONLY=1

#HALFWEAR
VERSION=100
TYPE=UNDER
NAME=imo_underA_01
CAPTION_0=<ホワイトアンダーウェア>
CAPTION_1=清楚な白い下着セット。やっぱ白は基本だよね。
#Upper on
FILE_0=imo_underA_01A.tmb
#Lower on
FILE_1=imo_underA_01B.tmb
#Upper half-off
FILE_2=imo_underA_01HA.tmb 
#Lower half-off
FILE_3=imo_underA_01HB.tmb 
ICON_0=imo_underA_01.psd
HALFWEAR=1

#UPPERONLY and HALFWEAR
VERSION=100
TYPE=UNDER
NAME=imo_underA_01
CAPTION_0=<ホワイトアンダーウェア>
CAPTION_1=清楚な白い下着セット。やっぱ白は基本だよね。
#Upper and Lower on
FILE_0=imo_underA_01A.tmb
#Upper half-off; Lower on
FILE_1=imo_underA_01B.tmb
#Lower half-off; Upper on
FILE_2=imo_underA_01HA.tmb
#Upper and Lower half-off
FILE_3=imo_underA_01HB.tmb 
ICON_0=imo_underA_01.psd
HALFWEAR=1
UPPERONLY=1

Technical Notes

This table documents how exactly the different keys are implemented in the original PL2.

Key Access Method
TYPE "TYPE"
NAME "NAME"
FILE "FILE_"
"FILE_%d"
"FILE_0"
"FILE_1"
"FILE_2"
"FILE_3"
ICON "ICON_"
"ICON_0"
"ICON_1"
COORD "COORD_%02d"
CAPTION "CAPTION_0"
"CAPTION_1"
"CAPTION_3"
"CAPTION_4"
UPPERONLY "UPPERONLY"
BOTTOMONLY "BOTTOMONLY"
HALFWEAR "HALFWEAR"

There are other keys that are commonly put in add-ons. They are unused by both PL2 and unmodified OPL2 versions, though there are some hard-to-find EXE mods for PL2 that may use them.


Related

Wiki: Home

MongoDB Logo MongoDB