diff --git a/CREDITS.csv b/CREDITS.csv
index 523106655..6020cd9e2 100644
--- a/CREDITS.csv
+++ b/CREDITS.csv
@@ -9844,6 +9844,10 @@ torso/clothes/shortsleeve/shortsleeve/female,"original by ElizaWy walkcycle only
torso/clothes/shortsleeve/shortsleeve/male,"original by ElizaWy walkcycle only; extended to all animations by adapting from longsleeve, edited to v3 bases by bluecarrot16","bluecarrot16, ElizaWy, Stephen Challener (Redshrike)","OGA-BY 3.0, CC-BY-SA 3.0, GPL 3.0",https://opengameart.org/content/liberated-pixel-cup-lpc-base-assets-sprites-map-tiles,,http://opengameart.org/content/lpc-revised-character-basics,http://opengameart.org/content/lpc-clothing-updates,,,,,,,,,,,,
torso/clothes/shortsleeve/shortsleeve/pregnant,"body by Redshrike, t-shirt by ElizaWy derived from base; pregnant tanktop by ElizaWy; tanktop edited by bluecarrot16 to make other pregnant shirts and match v3 bases","bluecarrot16, ElizaWy, Stephen Challener (Redshrike)","OGA-BY 3.0, GPL 3.0",https://opengameart.org/content/liberated-pixel-cup-lpc-base-assets-sprites-map-tiles,https://opengameart.org/content/lpc-pregnancy-bases-maternity-wear,https://opengameart.org/content/lpc-revised-character-basics,http://opengameart.org/content/lpc-clothing-updates,,,,,,,,,,,,
torso/clothes/shortsleeve/shortsleeve/teen,,"Nyom, bluecarrot16, ElizaWy, Stephen Challener (Redshrike)","CC-BY-SA 3.0, GPL 3.0",https://opengameart.org/content/lpc-teen-androgynous-short-sleeve-shirt,,,,,,,,,,,,,,,
+torso/clothes/shortsleeve/tshirt,"original by ElizaWy; spellcast/thrust/shoot/hurt adapted from original by JaidynReiman","ElizaWy, JaidynReiman","OGA-BY 3.0",http://opengameart.org/content/lpc-revised-character-basics,https://github.com/ElizaWy/LPC/tree/main/Characters/Clothing,,,,,,,,,,,,,,
+torso/clothes/shortsleeve/tshirt_vneck,"original by ElizaWy; spellcast/thrust/shoot/hurt adapted from original by JaidynReiman","ElizaWy, JaidynReiman","OGA-BY 3.0",http://opengameart.org/content/lpc-revised-character-basics,https://github.com/ElizaWy/LPC/tree/main/Characters/Clothing,,,,,,,,,,,,,,
+torso/clothes/shortsleeve/tshirt_scoop,"original by ElizaWy; spellcast/thrust/shoot/hurt adapted from original by JaidynReiman","ElizaWy, JaidynReiman","OGA-BY 3.0",http://opengameart.org/content/lpc-revised-character-basics,https://github.com/ElizaWy/LPC/tree/main/Characters/Clothing,,,,,,,,,,,,,,
+torso/clothes/shortsleeve/tshirt_buttoned,"original by ElizaWy; spellcast/thrust/shoot/hurt adapted from original by JaidynReiman","ElizaWy, JaidynReiman","OGA-BY 3.0",http://opengameart.org/content/lpc-revised-character-basics,https://github.com/ElizaWy/LPC/tree/main/Characters/Clothing,,,,,,,,,,,,,,
torso/clothes/sleeveless,,,,,,,,,,,,,,,,,,,
torso/clothes/sleeveless/sleeveless/female,"""pirate shirt"" by MadMarcel, edited to all poses by makrohn, edited from tube-top/tanktop to sleeveless by JaidynReiman, cleanup and re-drawing by ElizaWy, edits for v3 bases and further cleanup by bluecarrot16","ElizaWy, JaidynReiman, Matthew Krohn (makrohn), Marcel van de Steeg (MadMarcel)","CC-BY-SA 3.0, GPL 3.0",https://opengameart.org/content/lpc-female-orcogregoblintroll-base-walkcycle,https://opengameart.org/content/lpc-curly-hair-elven-ears-white-cape-with-blue-trim-and-more,https://opengameart.org/content/lpc-7-womens-shirts,http://opengameart.org/content/lpc-clothing-updates,,,,,,,,,,,,
torso/clothes/sleeveless/sleeveless/male,,"bluecarrot16, Matthew Krohn (makrohn), JaidynReiman, Marcel van de Steeg (MadMarcel), Nila122, Johannes Sjölund (wulax), Stephen Challener (Redshrike)",CC-BY-SA 3.0,https://opengameart.org/content/lpc-female-orcogregoblintroll-base-walkcycle,https://opengameart.org/content/lpc-curly-hair-elven-ears-white-cape-with-blue-trim-and-more,https://opengameart.org/content/more-lpc-clothes-and-hair,https://opengameart.org/content/lpc-pirates,,,,,,,,,,,,
@@ -9853,6 +9857,10 @@ torso/clothes/sleeveless/striped,,"bluecarrot16, Matthew Krohn (makrohn), Jaidyn
torso/clothes/sleeveless/tanktop,,,,,,,,,,,,,,,,,,,
torso/clothes/sleeveless/tanktop/female,"""pirate shirt"" by MadMarcel, edited to all poses by makrohn, cleanup and re-drawing by ElizaWy, edits for v3 bases and further cleanup by bluecarrot16","bluecarrot16, ElizaWy, Matthew Krohn (makrohn), Marcel van de Steeg (MadMarcel)","CC-BY-SA 3.0, GPL 3.0",https://opengameart.org/content/lpc-female-orcogregoblintroll-base-walkcycle,https://opengameart.org/content/lpc-7-womens-shirts,http://opengameart.org/content/lpc-clothing-updates,,,,,,,,,,,,,
torso/clothes/sleeveless/tanktop/pregnant,"""pirate shirt"" by MadMarcel, edited to all poses by makrohn, cleanup and re-drawing for pregnant base by ElizaWy, edits for v3 base by bluecarrot16","bluecarrot16, ElizaWy, Matthew Krohn (makrohn), Marcel van de Steeg (MadMarcel)","CC-BY-SA 3.0, GPL 3.0",https://opengameart.org/content/lpc-female-orcogregoblintroll-base-walkcycle,https://opengameart.org/content/lpc-7-womens-shirts,https://opengameart.org/content/lpc-pregnancy-bases-maternity-wear,http://opengameart.org/content/lpc-clothing-updates,,,,,,,,,,,,
+torso/clothes/sleeveless/sleeveless2,"original by ElizaWy; sleeveless adapted from original by JaidynReiman","ElizaWy, JaidynReiman","OGA-BY 3.0",http://opengameart.org/content/lpc-revised-character-basics,https://github.com/ElizaWy/LPC/tree/main/Characters/Clothing,,,,,,,,,,,,,,
+torso/clothes/sleeveless/sleeveless2_vneck,"original by ElizaWy; sleeveless adapted from original by JaidynReiman","ElizaWy, JaidynReiman","OGA-BY 3.0",http://opengameart.org/content/lpc-revised-character-basics,https://github.com/ElizaWy/LPC/tree/main/Characters/Clothing,,,,,,,,,,,,,,
+torso/clothes/sleeveless/sleeveless2_scoop,"original by ElizaWy; sleeveless adapted from original by JaidynReiman","ElizaWy, JaidynReiman","OGA-BY 3.0",http://opengameart.org/content/lpc-revised-character-basics,https://github.com/ElizaWy/LPC/tree/main/Characters/Clothing,,,,,,,,,,,,,,
+torso/clothes/sleeveless/sleeveless2_buttoned,"original by ElizaWy; sleeveless adapted from original by JaidynReiman","ElizaWy, JaidynReiman","OGA-BY 3.0",http://opengameart.org/content/lpc-revised-character-basics,https://github.com/ElizaWy/LPC/tree/main/Characters/Clothing,,,,,,,,,,,,,,
torso/clothes/tunic,,,,,,,,,,,,,,,,,,,
torso/clothes/tunic/female,"""pirate shirt"" by MadMarcel, edited to all poses by makrohn, edited from tube-top/tanktop to sleeveless then to tunic by JaidynReiman, edits for v3 bases and further cleanup by bluecarrot16","bluecarrot16, JaidynReiman, Matthew Krohn (makrohn), Marcel van de Steeg (MadMarcel)","CC-BY-SA 3.0, GPL 3.0",https://opengameart.org/content/lpc-female-orcogregoblintroll-base-walkcycle,https://opengameart.org/content/lpc-curly-hair-elven-ears-white-cape-with-blue-trim-and-more,http://opengameart.org/content/lpc-clothing-updates,,,,,,,,,,,,,
torso/clothes/tunic/female/black.png,,"bluecarrot16, JaidynReiman, Matthew Krohn (makrohn), Marcel van de Steeg (MadMarcel)","OGA-BY 3.0, CC-BY-SA 3.0, GPL 3.0",https://opengameart.org/content/lpc-female-orcogregoblintroll-base-walkcycle,https://opengameart.org/content/lpc-curly-hair-elven-ears-white-cape-with-blue-trim-and-more,http://opengameart.org/content/lpc-clothing-updates,,,,,,,,,,,,,OK
diff --git a/index.html b/index.html
index b6f2596ce..99c21efd1 100644
--- a/index.html
+++ b/index.html
@@ -128,7 +128,7 @@
Body
Body type
-XLong Ponytail
+Sleeveless 2
+Sleeveless 2 VNeck
+Sleeveless 2 Scoop
+Sleeveless 2 Buttoned
diff --git a/palettes/custom/README.md b/palettes/custom/README.md
index f48286a83..efdcd7be9 100644
--- a/palettes/custom/README.md
+++ b/palettes/custom/README.md
@@ -12,4 +12,7 @@ Custom Palettes are for specific assets that may have one or more unique colors.
#### 2. ulpc-mask-palettes.json
- Path: spritesheets/facial/masks/plain
- Combines cloth and metal palettes, along with custom "dark" and "light" palettes (possibly we could just stick with black/white from the cloth palettes but I wanted to keep the originals for legacy purposes)
-- Possibility: I considered adding a "wood" palette from one of the bows. I opted against this for now but I think it'd be a cool idea.
\ No newline at end of file
+- Possibility: I considered adding a "wood" palette from one of the bows. I opted against this for now but I think it'd be a cool idea.
+
+#### 3. lpc-revised-to-ulpc-cloth-palettes.json
+- Converts the default white color from LPC Revised to ULPC cloth palettes.
\ No newline at end of file
diff --git a/palettes/custom/lpc-revised-to-ulpc-cloth-palettes.json b/palettes/custom/lpc-revised-to-ulpc-cloth-palettes.json
new file mode 100644
index 000000000..d60673c6a
--- /dev/null
+++ b/palettes/custom/lpc-revised-to-ulpc-cloth-palettes.json
@@ -0,0 +1,252 @@
+{
+ "brown": [
+ "#1d131e",
+ "#1d131e",
+ "#411E05",
+ "#4B2B13",
+ "#4B2B13",
+ "#62351C",
+ "#744B30",
+ "#996B4A"
+ ],
+ "leather": [
+ "#2b1c1d",
+ "#2b1c1d",
+ "#311210",
+ "#4B2B13",
+ "#4B2B13",
+ "#704325",
+ "#75502D",
+ "#9A6F37"
+ ],
+ "walnut": [
+ "#1d0f0e",
+ "#1d0f0e",
+ "#3e2613",
+ "#62351c",
+ "#62351c",
+ "#744b30",
+ "#996b4a",
+ "#a17c50"
+ ],
+ "yellow": [
+ "#301723",
+ "#301723",
+ "#5F2F25",
+ "#BA5B23",
+ "#BA5B23",
+ "#D99431",
+ "#F3C03F",
+ "#FFE360"
+ ],
+ "tan": [
+ "#3e2613",
+ "#3e2613",
+ "#684415",
+ "#986A20",
+ "#986A20",
+ "#B78C41",
+ "#B7996A",
+ "#CFC587"
+ ],
+ "orange": [
+ "#301723",
+ "#301723",
+ "#5F1D1B",
+ "#9C3F23",
+ "#9C3F23",
+ "#D75B1A",
+ "#EF7E19",
+ "#FFA749"
+ ],
+ "rose": [
+ "#1d131e",
+ "#1d131e",
+ "#301723",
+ "#562323",
+ "#562323",
+ "#77372B",
+ "#8A3D28",
+ "#B05F3C"
+ ],
+ "maroon": [
+ "#1d131e",
+ "#1d131e",
+ "#400B1F",
+ "#551C22",
+ "#551C22",
+ "#682121",
+ "#832121",
+ "#AE424A"
+ ],
+ "red": [
+ "#1d131e",
+ "#1d131e",
+ "#400B1F",
+ "#651117",
+ "#651117",
+ "#82171C",
+ "#AB1E1E",
+ "#CD2429"
+ ],
+ "pink": [
+ "#1d131e",
+ "#1d131e",
+ "#54242E",
+ "#6C3536",
+ "#6C3536",
+ "#AE424A",
+ "#C36072",
+ "#E08080"
+ ],
+ "lavender": [
+ "#13112d",
+ "#13112d",
+ "#2B225A",
+ "#402E82",
+ "#402E82",
+ "#7141B2",
+ "#A966DD",
+ "#D085ED"
+ ],
+ "purple": [
+ "#180716",
+ "#180716",
+ "#13112D",
+ "#261044",
+ "#261044",
+ "#411357",
+ "#621E78",
+ "#813089"
+ ],
+ "blue": [
+ "#180716",
+ "#180716",
+ "#281E41",
+ "#322D6A",
+ "#322D6A",
+ "#3C49AD",
+ "#466AC9",
+ "#61A0EF"
+ ],
+ "navy": [
+ "#180716",
+ "#180716",
+ "#20102B",
+ "#281E41",
+ "#281E41",
+ "#322D6A",
+ "#3C49AD",
+ "#466AC9"
+ ],
+ "teal": [
+ "#180716",
+ "#180716",
+ "#1B2B47",
+ "#0E4E72",
+ "#0E4E72",
+ "#156C99",
+ "#0098B2",
+ "#00CFDF"
+ ],
+ "bluegray": [
+ "#11150b",
+ "#11150b",
+ "#0B2B28",
+ "#2E403A",
+ "#2E403A",
+ "#315B49",
+ "#557E85",
+ "#79979D"
+ ],
+ "forest": [
+ "#09131d",
+ "#09131d",
+ "#07391D",
+ "#0B1F25",
+ "#0B1F25",
+ "#0B2B28",
+ "#134507",
+ "#1B5502"
+ ],
+ "green": [
+ "#101820",
+ "#101820",
+ "#192832",
+ "#0B5C2F",
+ "#0B5C2F",
+ "#214437",
+ "#2F8136",
+ "#64A42C"
+ ],
+ "white": [
+ "#281820",
+ "#281820",
+ "#4D4A5D",
+ "#958080",
+ "#958080",
+ "#C4B59F",
+ "#E5E6C7",
+ "#FFFFFF"
+ ],
+ "sky": [
+ "#1a0d18",
+ "#1a0d18",
+ "#313148",
+ "#586B90",
+ "#586B90",
+ "#9FBBCB",
+ "#C6EEFD",
+ "#FFFFFF"
+ ],
+ "slate": [
+ "#1d131e",
+ "#1d131e",
+ "#31313E",
+ "#4A5057",
+ "#4A5057",
+ "#818B8B",
+ "#B3AFA1",
+ "#E5E6C7"
+ ],
+ "gray": [
+ "#0e0e18",
+ "#0e0e18",
+ "#201E2B",
+ "#373340",
+ "#373340",
+ "#585561",
+ "#797580",
+ "#A2A0A4"
+ ],
+ "black": [
+ "#000000",
+ "#000000",
+ "#101414",
+ "#1C2222",
+ "#1C2222",
+ "#22282A",
+ "#2A3034",
+ "#4A5057"
+ ],
+ "charcoal": [
+ "#000000",
+ "#000000",
+ "#130D14",
+ "#1C2222",
+ "#1C2222",
+ "#2A3034",
+ "#4A5057",
+ "#6E7675"
+ ],
+ "source": [
+ "#271920",
+ "#2a1722",
+ "#6f6464",
+ "#786467",
+ "#958080",
+ "#c4b59f",
+ "#e3e7d3",
+ "#ebede9"
+ ]
+ }
\ No newline at end of file
diff --git a/sheet_definitions/hair_xlong_ponytail.json b/sheet_definitions/hair_xlong_ponytail.json
index 29838b9cc..998ec0802 100644
--- a/sheet_definitions/hair_xlong_ponytail.json
+++ b/sheet_definitions/hair_xlong_ponytail.json
@@ -3,30 +3,30 @@
"type_name": "hair",
"layer_1": {
"zPos": 120,
- "male": "hair/xlong_ponytail/adult_front/",
- "muscular": "hair/xlong_ponytail/adult_front/",
- "female": "hair/xlong_ponytail/adult_front/",
- "pregnant": "hair/xlong_ponytail/adult_front/",
- "teen": "hair/xlong_ponytail/adult_front/",
- "child": "hair/xlong_ponytail/child_front/"
+ "male": "hair/xlong_ponytail/adult/mg/",
+ "muscular": "hair/xlong_ponytail/adult/mg/",
+ "female": "hair/xlong_ponytail/adult/mg/",
+ "pregnant": "hair/xlong_ponytail/adult/mg/",
+ "teen": "hair/xlong_ponytail/adult/mg/",
+ "child": "hair/xlong_ponytail/child/mg/"
},
"layer_2": {
"zPos": 9,
- "male": "hair/xlong_ponytail/adult_back/",
- "muscular": "hair/xlong_ponytail/adult_back/",
- "female": "hair/xlong_ponytail/adult_back/",
- "pregnant": "hair/xlong_ponytail/adult_back/",
- "teen": "hair/xlong_ponytail/adult_back/",
- "child": "hair/xlong_ponytail/child_back/"
+ "male": "hair/xlong_ponytail/adult/bg/",
+ "muscular": "hair/xlong_ponytail/adult/bg/",
+ "female": "hair/xlong_ponytail/adult/bg/",
+ "pregnant": "hair/xlong_ponytail/adult/bg/",
+ "teen": "hair/xlong_ponytail/adult/bg/",
+ "child": "hair/xlong_ponytail/child/bg/"
},
"layer_3": {
"zPos": 145,
- "male": "hair/xlong_ponytail/adult_top/",
- "muscular": "hair/xlong_ponytail/adult_top/",
- "female": "hair/xlong_ponytail/adult_top/",
- "pregnant": "hair/xlong_ponytail/adult_top/",
- "teen": "hair/xlong_ponytail/adult_top/",
- "child": "hair/xlong_ponytail/child_top/"
+ "male": "hair/xlong_ponytail/adult/fg/",
+ "muscular": "hair/xlong_ponytail/adult/fg/",
+ "female": "hair/xlong_ponytail/adult/fg/",
+ "pregnant": "hair/xlong_ponytail/adult/fg/",
+ "teen": "hair/xlong_ponytail/adult/fg/",
+ "child": "hair/xlong_ponytail/child/fg/"
},
"variants": [
"blonde",
@@ -72,7 +72,7 @@
"climb",
"combat",
"1h_slash",
- "1h_backslash",
+ "1h/bgslash",
"1h_halfslash"
]
}
diff --git a/sheet_definitions/torso_clothes_sleeveless2.json b/sheet_definitions/torso_clothes_sleeveless2.json
new file mode 100644
index 000000000..06b5789e9
--- /dev/null
+++ b/sheet_definitions/torso_clothes_sleeveless2.json
@@ -0,0 +1,54 @@
+{
+ "name": "Sleeveless 2",
+ "type_name": "clothes",
+ "layer_1": {
+ "zPos": 35,
+ "female": "torso/clothes/sleeveless/sleeveless2/female/",
+ "teen": "torso/clothes/sleeveless/sleeveless2/teen/"
+ },
+ "variants": [
+ "black",
+ "blue",
+ "bluegray",
+ "brown",
+ "charcoal",
+ "forest",
+ "gray",
+ "green",
+ "lavender",
+ "leather",
+ "maroon",
+ "navy",
+ "orange",
+ "pink",
+ "purple",
+ "red",
+ "rose",
+ "sky",
+ "slate",
+ "tan",
+ "teal",
+ "walnut",
+ "white",
+ "yellow"
+ ],
+ "animations": [
+ "spellcast",
+ "thrust",
+ "walk",
+ "slash",
+ "shoot",
+ "hurt",
+ "watering",
+ "idle",
+ "jump",
+ "run",
+ "sit",
+ "emote",
+ "climb",
+ "combat",
+ "1h_slash",
+ "1h_backslash",
+ "1h_halfslash"
+ ]
+}
\ No newline at end of file
diff --git a/sheet_definitions/torso_clothes_sleeveless2_buttoned.json b/sheet_definitions/torso_clothes_sleeveless2_buttoned.json
new file mode 100644
index 000000000..69fd93709
--- /dev/null
+++ b/sheet_definitions/torso_clothes_sleeveless2_buttoned.json
@@ -0,0 +1,54 @@
+{
+ "name": "Sleeveless 2 Buttoned",
+ "type_name": "clothes",
+ "layer_1": {
+ "zPos": 35,
+ "female": "torso/clothes/sleeveless/sleeveless2_buttoned/female/",
+ "teen": "torso/clothes/sleeveless/sleeveless2_buttoned/teen/"
+ },
+ "variants": [
+ "black",
+ "blue",
+ "bluegray",
+ "brown",
+ "charcoal",
+ "forest",
+ "gray",
+ "green",
+ "lavender",
+ "leather",
+ "maroon",
+ "navy",
+ "orange",
+ "pink",
+ "purple",
+ "red",
+ "rose",
+ "sky",
+ "slate",
+ "tan",
+ "teal",
+ "walnut",
+ "white",
+ "yellow"
+ ],
+ "animations": [
+ "spellcast",
+ "thrust",
+ "walk",
+ "slash",
+ "shoot",
+ "hurt",
+ "watering",
+ "idle",
+ "jump",
+ "run",
+ "sit",
+ "emote",
+ "climb",
+ "combat",
+ "1h_slash",
+ "1h_backslash",
+ "1h_halfslash"
+ ]
+}
\ No newline at end of file
diff --git a/sheet_definitions/torso_clothes_sleeveless2_scoop.json b/sheet_definitions/torso_clothes_sleeveless2_scoop.json
new file mode 100644
index 000000000..a027c3d47
--- /dev/null
+++ b/sheet_definitions/torso_clothes_sleeveless2_scoop.json
@@ -0,0 +1,54 @@
+{
+ "name": "Sleeveless 2 Scoop",
+ "type_name": "clothes",
+ "layer_1": {
+ "zPos": 35,
+ "female": "torso/clothes/sleeveless/sleeveless2_scoop/female/",
+ "teen": "torso/clothes/sleeveless/sleeveless2_scoop/teen/"
+ },
+ "variants": [
+ "black",
+ "blue",
+ "bluegray",
+ "brown",
+ "charcoal",
+ "forest",
+ "gray",
+ "green",
+ "lavender",
+ "leather",
+ "maroon",
+ "navy",
+ "orange",
+ "pink",
+ "purple",
+ "red",
+ "rose",
+ "sky",
+ "slate",
+ "tan",
+ "teal",
+ "walnut",
+ "white",
+ "yellow"
+ ],
+ "animations": [
+ "spellcast",
+ "thrust",
+ "walk",
+ "slash",
+ "shoot",
+ "hurt",
+ "watering",
+ "idle",
+ "jump",
+ "run",
+ "sit",
+ "emote",
+ "climb",
+ "combat",
+ "1h_slash",
+ "1h_backslash",
+ "1h_halfslash"
+ ]
+}
\ No newline at end of file
diff --git a/sheet_definitions/torso_clothes_sleeveless2_vneck.json b/sheet_definitions/torso_clothes_sleeveless2_vneck.json
new file mode 100644
index 000000000..fedb59c8a
--- /dev/null
+++ b/sheet_definitions/torso_clothes_sleeveless2_vneck.json
@@ -0,0 +1,54 @@
+{
+ "name": "Sleeveless 2 VNeck",
+ "type_name": "clothes",
+ "layer_1": {
+ "zPos": 35,
+ "female": "torso/clothes/sleeveless/sleeveless2_vneck/female/",
+ "teen": "torso/clothes/sleeveless/sleeveless2_vneck/teen/"
+ },
+ "variants": [
+ "black",
+ "blue",
+ "bluegray",
+ "brown",
+ "charcoal",
+ "forest",
+ "gray",
+ "green",
+ "lavender",
+ "leather",
+ "maroon",
+ "navy",
+ "orange",
+ "pink",
+ "purple",
+ "red",
+ "rose",
+ "sky",
+ "slate",
+ "tan",
+ "teal",
+ "walnut",
+ "white",
+ "yellow"
+ ],
+ "animations": [
+ "spellcast",
+ "thrust",
+ "walk",
+ "slash",
+ "shoot",
+ "hurt",
+ "watering",
+ "idle",
+ "jump",
+ "run",
+ "sit",
+ "emote",
+ "climb",
+ "combat",
+ "1h_slash",
+ "1h_backslash",
+ "1h_halfslash"
+ ]
+}
\ No newline at end of file
diff --git a/sheet_definitions/torso_clothes_tshirt.json b/sheet_definitions/torso_clothes_tshirt.json
new file mode 100644
index 000000000..53273c7d5
--- /dev/null
+++ b/sheet_definitions/torso_clothes_tshirt.json
@@ -0,0 +1,54 @@
+{
+ "name": "TShirt",
+ "type_name": "clothes",
+ "layer_1": {
+ "zPos": 35,
+ "female": "torso/clothes/shortsleeve/tshirt/female/",
+ "teen": "torso/clothes/shortsleeve/tshirt/teen/"
+ },
+ "variants": [
+ "black",
+ "blue",
+ "bluegray",
+ "brown",
+ "charcoal",
+ "forest",
+ "gray",
+ "green",
+ "lavender",
+ "leather",
+ "maroon",
+ "navy",
+ "orange",
+ "pink",
+ "purple",
+ "red",
+ "rose",
+ "sky",
+ "slate",
+ "tan",
+ "teal",
+ "walnut",
+ "white",
+ "yellow"
+ ],
+ "animations": [
+ "spellcast",
+ "thrust",
+ "walk",
+ "slash",
+ "shoot",
+ "hurt",
+ "watering",
+ "idle",
+ "jump",
+ "run",
+ "sit",
+ "emote",
+ "climb",
+ "combat",
+ "1h_slash",
+ "1h_backslash",
+ "1h_halfslash"
+ ]
+}
\ No newline at end of file
diff --git a/sheet_definitions/torso_clothes_tshirt_buttoned.json b/sheet_definitions/torso_clothes_tshirt_buttoned.json
new file mode 100644
index 000000000..8ad5311c4
--- /dev/null
+++ b/sheet_definitions/torso_clothes_tshirt_buttoned.json
@@ -0,0 +1,54 @@
+{
+ "name": "TShirt Buttoned",
+ "type_name": "clothes",
+ "layer_1": {
+ "zPos": 35,
+ "female": "torso/clothes/shortsleeve/tshirt_buttoned/female/",
+ "teen": "torso/clothes/shortsleeve/tshirt_buttoned/teen/"
+ },
+ "variants": [
+ "black",
+ "blue",
+ "bluegray",
+ "brown",
+ "charcoal",
+ "forest",
+ "gray",
+ "green",
+ "lavender",
+ "leather",
+ "maroon",
+ "navy",
+ "orange",
+ "pink",
+ "purple",
+ "red",
+ "rose",
+ "sky",
+ "slate",
+ "tan",
+ "teal",
+ "walnut",
+ "white",
+ "yellow"
+ ],
+ "animations": [
+ "spellcast",
+ "thrust",
+ "walk",
+ "slash",
+ "shoot",
+ "hurt",
+ "watering",
+ "idle",
+ "jump",
+ "run",
+ "sit",
+ "emote",
+ "climb",
+ "combat",
+ "1h_slash",
+ "1h_backslash",
+ "1h_halfslash"
+ ]
+}
\ No newline at end of file
diff --git a/sheet_definitions/torso_clothes_tshirt_scoop.json b/sheet_definitions/torso_clothes_tshirt_scoop.json
new file mode 100644
index 000000000..9bb016912
--- /dev/null
+++ b/sheet_definitions/torso_clothes_tshirt_scoop.json
@@ -0,0 +1,54 @@
+{
+ "name": "TShirt Scoop",
+ "type_name": "clothes",
+ "layer_1": {
+ "zPos": 35,
+ "female": "torso/clothes/shortsleeve/tshirt_scoop/female/",
+ "teen": "torso/clothes/shortsleeve/tshirt_scoop/teen/"
+ },
+ "variants": [
+ "black",
+ "blue",
+ "bluegray",
+ "brown",
+ "charcoal",
+ "forest",
+ "gray",
+ "green",
+ "lavender",
+ "leather",
+ "maroon",
+ "navy",
+ "orange",
+ "pink",
+ "purple",
+ "red",
+ "rose",
+ "sky",
+ "slate",
+ "tan",
+ "teal",
+ "walnut",
+ "white",
+ "yellow"
+ ],
+ "animations": [
+ "spellcast",
+ "thrust",
+ "walk",
+ "slash",
+ "shoot",
+ "hurt",
+ "watering",
+ "idle",
+ "jump",
+ "run",
+ "sit",
+ "emote",
+ "climb",
+ "combat",
+ "1h_slash",
+ "1h_backslash",
+ "1h_halfslash"
+ ]
+}
\ No newline at end of file
diff --git a/sheet_definitions/torso_clothes_tshirt_vneck.json b/sheet_definitions/torso_clothes_tshirt_vneck.json
new file mode 100644
index 000000000..ba7ee4a71
--- /dev/null
+++ b/sheet_definitions/torso_clothes_tshirt_vneck.json
@@ -0,0 +1,54 @@
+{
+ "name": "TShirt VNeck",
+ "type_name": "clothes",
+ "layer_1": {
+ "zPos": 35,
+ "female": "torso/clothes/shortsleeve/tshirt_vneck/female/",
+ "teen": "torso/clothes/shortsleeve/tshirt_vneck/teen/"
+ },
+ "variants": [
+ "black",
+ "blue",
+ "bluegray",
+ "brown",
+ "charcoal",
+ "forest",
+ "gray",
+ "green",
+ "lavender",
+ "leather",
+ "maroon",
+ "navy",
+ "orange",
+ "pink",
+ "purple",
+ "red",
+ "rose",
+ "sky",
+ "slate",
+ "tan",
+ "teal",
+ "walnut",
+ "white",
+ "yellow"
+ ],
+ "animations": [
+ "spellcast",
+ "thrust",
+ "walk",
+ "slash",
+ "shoot",
+ "hurt",
+ "watering",
+ "idle",
+ "jump",
+ "run",
+ "sit",
+ "emote",
+ "climb",
+ "combat",
+ "1h_slash",
+ "1h_backslash",
+ "1h_halfslash"
+ ]
+}
\ No newline at end of file
diff --git a/source_index.html b/source_index.html
index d398e7466..d6196be7f 100755
--- a/source_index.html
+++ b/source_index.html
@@ -127,7 +127,7 @@ Body
Body type