diff --git a/Content.Client/CharacterAppearance/Systems/HumanoidAppearanceSystem.cs b/Content.Client/CharacterAppearance/Systems/HumanoidAppearanceSystem.cs
index cdcfc28b33..fbb4940ced 100644
--- a/Content.Client/CharacterAppearance/Systems/HumanoidAppearanceSystem.cs
+++ b/Content.Client/CharacterAppearance/Systems/HumanoidAppearanceSystem.cs
@@ -25,6 +25,10 @@ namespace Content.Client.CharacterAppearance.Systems
private readonly HumanoidVisualLayers[] _bodyPartLayers = {
HumanoidVisualLayers.Chest,
HumanoidVisualLayers.Head,
+ HumanoidVisualLayers.Snout,
+ HumanoidVisualLayers.Frills,
+ HumanoidVisualLayers.TailBehind,
+ HumanoidVisualLayers.TailFront,
HumanoidVisualLayers.Eyes,
HumanoidVisualLayers.RArm,
HumanoidVisualLayers.LArm,
@@ -99,7 +103,6 @@ namespace Content.Client.CharacterAppearance.Systems
}
sprite.LayerSetColor(HumanoidVisualLayers.Eyes, component.Appearance.EyeColor);
-
sprite.LayerSetState(HumanoidVisualLayers.Chest, component.Sex == Sex.Male ? "torso_m" : "torso_f");
sprite.LayerSetState(HumanoidVisualLayers.Head, component.Sex == Sex.Male ? "head_m" : "head_f");
diff --git a/Content.Shared/Body/Part/BodyPartType.cs b/Content.Shared/Body/Part/BodyPartType.cs
index 137c6a72e9..b8fc2fce28 100644
--- a/Content.Shared/Body/Part/BodyPartType.cs
+++ b/Content.Shared/Body/Part/BodyPartType.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using Content.Shared.Body.Components;
using Robust.Shared.Serialization;
@@ -16,6 +16,7 @@ namespace Content.Shared.Body.Part
Arm,
Hand,
Leg,
- Foot
+ Foot,
+ Tail
}
}
diff --git a/Content.Shared/CharacterAppearance/HumanoidVisualLayers.cs b/Content.Shared/CharacterAppearance/HumanoidVisualLayers.cs
index 8aaa2bf588..662a5256b6 100644
--- a/Content.Shared/CharacterAppearance/HumanoidVisualLayers.cs
+++ b/Content.Shared/CharacterAppearance/HumanoidVisualLayers.cs
@@ -5,10 +5,14 @@ namespace Content.Shared.CharacterAppearance
[Serializable, NetSerializable]
public enum HumanoidVisualLayers : byte
{
+ TailBehind,
Hair,
FacialHair,
Chest,
Head,
+ Snout,
+ Frills,
+ Horns,
Eyes,
RArm,
LArm,
@@ -18,6 +22,7 @@ namespace Content.Shared.CharacterAppearance
LLeg,
RFoot,
LFoot,
+ TailFront,
Handcuffs,
StencilMask,
Fire,
diff --git a/Content.Shared/CharacterAppearance/HumanoidVisualLayersExtension.cs b/Content.Shared/CharacterAppearance/HumanoidVisualLayersExtension.cs
index 76da183504..ed7d3f9204 100644
--- a/Content.Shared/CharacterAppearance/HumanoidVisualLayersExtension.cs
+++ b/Content.Shared/CharacterAppearance/HumanoidVisualLayersExtension.cs
@@ -16,8 +16,15 @@ namespace Content.Shared.CharacterAppearance
case BodyPartType.Torso:
yield return HumanoidVisualLayers.Chest;
break;
+ case BodyPartType.Tail:
+ yield return HumanoidVisualLayers.TailFront;
+ yield return HumanoidVisualLayers.TailBehind;
+ break;
case BodyPartType.Head:
yield return HumanoidVisualLayers.Head;
+ yield return HumanoidVisualLayers.Snout;
+ yield return HumanoidVisualLayers.Frills;
+ yield return HumanoidVisualLayers.Horns;
yield return HumanoidVisualLayers.Eyes;
yield return HumanoidVisualLayers.FacialHair;
yield return HumanoidVisualLayers.Hair;
diff --git a/Content.Shared/Species/SpeciesPrototype.cs b/Content.Shared/Species/SpeciesPrototype.cs
index 22e43d78d6..c5b7ffceee 100644
--- a/Content.Shared/Species/SpeciesPrototype.cs
+++ b/Content.Shared/Species/SpeciesPrototype.cs
@@ -1,5 +1,6 @@
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.Manager.Attributes;
+using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
using Robust.Shared.ViewVariables;
namespace Content.Shared.Species;
@@ -28,13 +29,13 @@ public sealed class SpeciesPrototype : IPrototype
///
/// Prototype used by the species as a body.
///
- [DataField("prototype", required: true)]
+ [DataField("prototype", required: true, customTypeSerializer:typeof(PrototypeIdSerializer))]
public string Prototype { get; } = default!;
///
/// Prototype used by the species for the dress-up doll in various menus.
///
- [DataField("dollPrototype", required: true)]
+ [DataField("dollPrototype", required: true, customTypeSerializer:typeof(PrototypeIdSerializer))]
public string DollPrototype { get; } = default!;
///
diff --git a/Resources/Prototypes/Entities/Mobs/Player/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Player/reptilian.yml
new file mode 100644
index 0000000000..d2360d5556
--- /dev/null
+++ b/Resources/Prototypes/Entities/Mobs/Player/reptilian.yml
@@ -0,0 +1,23 @@
+- type: entity
+ save: false
+ name: Urist McHands The Lizardperson
+ parent: MobReptilianBase
+ id: MobReptilian
+ description: A miserable pile of scales.
+ components:
+ - type: Mind
+ showExamineInfo: true
+ - type: Input
+ context: "human"
+ - type: PlayerMobMover
+ - type: PlayerInputMover
+ - type: Alerts
+ - type: Eye
+ - type: CameraRecoil
+ - type: Examiner
+ - type: CanHostGuardian
+ - type: AiFactionTag
+ factions:
+ - NanoTrasen
+
+#Weh
diff --git a/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml
new file mode 100644
index 0000000000..dcaa6f191c
--- /dev/null
+++ b/Resources/Prototypes/Entities/Mobs/Species/reptilian.yml
@@ -0,0 +1,218 @@
+- type: entity
+ save: false
+ name: Urist McHands The Lizardperson
+ parent: MobHumanBase
+ id: MobReptilianBase
+ abstract: true
+ description: A miserable pile of scales.
+ components:
+ - type: Icon
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: full
+ - type: Sprite
+ netsync: false
+ noRot: true
+ drawdepth: Mobs
+ scale: 1, 1
+ layers:
+ - map: [ "enum.HumanoidVisualLayers.TailBehind" ]
+ color: "#34a223"
+ state: tail_smooth_behind
+ sprite: Mobs/Customization/reptilian_parts.rsi
+ - map: [ "enum.HumanoidVisualLayers.Chest" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: torso_m
+ - map: [ "enum.HumanoidVisualLayers.Head" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: head_m
+ - map: [ "enum.HumanoidVisualLayers.Snout" ]
+ color: "#34a223"
+ state: snout_round
+ sprite: Mobs/Customization/reptilian_parts.rsi
+ - map: [ "enum.HumanoidVisualLayers.Eyes" ]
+ color: "#008800"
+ sprite: Mobs/Customization/eyes.rsi
+ state: eyes
+ - map: [ "enum.HumanoidVisualLayers.RArm" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: r_arm
+ - map: [ "enum.HumanoidVisualLayers.LArm" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: l_arm
+ - map: [ "enum.HumanoidVisualLayers.RLeg" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: r_leg
+ - map: [ "enum.HumanoidVisualLayers.LLeg" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: l_leg
+ - shader: StencilClear
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: l_leg
+ - shader: StencilMask
+ map: [ "enum.HumanoidVisualLayers.StencilMask" ]
+ sprite: Mobs/Customization/masking_helpers.rsi
+ state: female_full
+ visible: false
+ - map: [ "jumpsuit" ]
+ shader: StencilDraw
+ - map: [ "enum.HumanoidVisualLayers.LHand" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: l_hand
+ - map: [ "enum.HumanoidVisualLayers.RHand" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: r_hand
+ - map: [ "enum.HumanoidVisualLayers.LFoot" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: l_foot
+ - map: [ "enum.HumanoidVisualLayers.RFoot" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: r_foot
+ - map: [ "enum.HumanoidVisualLayers.Handcuffs" ]
+ color: "#ffffff"
+ sprite: Objects/Misc/handcuffs.rsi
+ state: body-overlay-2
+ visible: false
+ - map: [ "id" ]
+ - map: [ "gloves" ]
+ - map: [ "shoes" ]
+ - map: [ "ears" ]
+ - map: [ "outerClothing" ]
+ - map: [ "eyes" ]
+ - map: [ "enum.HumanoidVisualLayers.TailFront" ]
+ color: "#34a223"
+ state: tail_smooth_front
+ sprite: Mobs/Customization/reptilian_parts.rsi
+ - map: [ "belt" ]
+ - map: [ "neck" ]
+ - map: [ "back" ]
+ - map: [ "enum.HumanoidVisualLayers.Frills" ]
+ state: frills_simple
+ color: "#34a223"
+ sprite: Mobs/Customization/reptilian_parts.rsi
+ - map: [ "enum.HumanoidVisualLayers.Horns" ]
+ state: horns_simple
+ sprite: Mobs/Customization/reptilian_parts.rsi
+ - map: [ "mask" ]
+ - map: [ "head" ]
+ - map: [ "pocket1" ]
+ - map: [ "pocket2" ]
+ - type: Body
+ template: HumanoidTemplate
+ preset: HumanPreset
+
+- type: entity
+ save: false
+ name: Urist McHands
+ parent: MobHumanDummy
+ id: MobReptilianDummy
+ abstract: true
+ description: A dummy reptilian meant to be used in character setup.
+ components:
+ - type: Sprite
+ netsync: false
+ noRot: true
+ drawdepth: Mobs
+ scale: 1, 1
+ layers:
+ - map: [ "enum.HumanoidVisualLayers.TailBehind" ]
+ color: "#34a223"
+ state: tail_smooth_behind
+ sprite: Mobs/Customization/reptilian_parts.rsi
+ - map: [ "enum.HumanoidVisualLayers.Chest" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: torso_m
+ - map: [ "enum.HumanoidVisualLayers.Head" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: head_m
+ - map: [ "enum.HumanoidVisualLayers.Snout" ]
+ color: "#34a223"
+ state: snout_round
+ sprite: Mobs/Customization/reptilian_parts.rsi
+ - map: [ "enum.HumanoidVisualLayers.Eyes" ]
+ color: "#008800"
+ sprite: Mobs/Customization/eyes.rsi
+ state: eyes
+ - map: [ "enum.HumanoidVisualLayers.RArm" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: r_arm
+ - map: [ "enum.HumanoidVisualLayers.LArm" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: l_arm
+ - map: [ "enum.HumanoidVisualLayers.RLeg" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: r_leg
+ - map: [ "enum.HumanoidVisualLayers.LLeg" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: l_leg
+ - shader: StencilClear
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: l_leg
+ - shader: StencilMask
+ map: [ "enum.HumanoidVisualLayers.StencilMask" ]
+ sprite: Mobs/Customization/masking_helpers.rsi
+ state: female_full
+ visible: false
+ - map: [ "jumpsuit" ]
+ shader: StencilDraw
+ - map: [ "enum.HumanoidVisualLayers.LHand" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: l_hand
+ - map: [ "enum.HumanoidVisualLayers.RHand" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: r_hand
+ - map: [ "enum.HumanoidVisualLayers.LFoot" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: l_foot
+ - map: [ "enum.HumanoidVisualLayers.RFoot" ]
+ color: "#34a223"
+ sprite: Mobs/Species/Reptilian/parts.rsi
+ state: r_foot
+ - map: [ "enum.HumanoidVisualLayers.Handcuffs" ]
+ color: "#ffffff"
+ sprite: Objects/Misc/handcuffs.rsi
+ state: body-overlay-2
+ visible: false
+ - map: [ "id" ]
+ - map: [ "gloves" ]
+ - map: [ "shoes" ]
+ - map: [ "ears" ]
+ - map: [ "outerClothing" ]
+ - map: [ "eyes" ]
+ - map: [ "enum.HumanoidVisualLayers.TailFront" ]
+ color: "#34a223"
+ state: tail_smooth_front
+ sprite: Mobs/Customization/reptilian_parts.rsi
+ - map: [ "belt" ]
+ - map: [ "neck" ]
+ - map: [ "back" ]
+ - map: [ "enum.HumanoidVisualLayers.Frills" ]
+ state: frills_simple
+ sprite: Mobs/Customization/reptilian_parts.rsi
+ - map: [ "enum.HumanoidVisualLayers.Horns" ]
+ state: horns_simple
+ sprite: Mobs/Customization/reptilian_parts.rsi
+ - map: [ "mask" ]
+ - map: [ "head" ]
+ - map: [ "pocket1" ]
+ - map: [ "pocket2" ]
+
+#Weh
diff --git a/Resources/Prototypes/species.yml b/Resources/Prototypes/species.yml
index 8bb50c8664..81b361fefa 100644
--- a/Resources/Prototypes/species.yml
+++ b/Resources/Prototypes/species.yml
@@ -14,6 +14,14 @@
dollPrototype: MobDwarfDummy
skinColoration: HumanToned
+- type: species
+ id: Reptilian
+ name: Reptilian
+ roundStart: false
+ prototype: MobReptilian
+ dollPrototype: MobReptilianDummy
+ skinColoration: Hues
+
- type: species
id: SlimePerson
name: Slime Person
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_aquatic.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_aquatic.png
new file mode 100644
index 0000000000..227231f7f6
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_aquatic.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_short.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_short.png
new file mode 100644
index 0000000000..71c3c4ead4
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_short.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_simple.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_simple.png
new file mode 100644
index 0000000000..a753162e53
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/frills_simple.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/horns_angler.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/horns_angler.png
new file mode 100644
index 0000000000..6988c45df6
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/horns_angler.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/horns_curled.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/horns_curled.png
new file mode 100644
index 0000000000..77114f0a90
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/horns_curled.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/horns_ram.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/horns_ram.png
new file mode 100644
index 0000000000..9ba9650e1e
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/horns_ram.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/horns_short.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/horns_short.png
new file mode 100644
index 0000000000..6a4db8eb10
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/horns_short.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/horns_simple.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/horns_simple.png
new file mode 100644
index 0000000000..d630ec6fa2
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/horns_simple.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/meta.json b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/meta.json
new file mode 100644
index 0000000000..5f8b7b955c
--- /dev/null
+++ b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/meta.json
@@ -0,0 +1,91 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "https://github.com/tgstation/tgstation/blob/165be097d54c19f2e3de9fd6d95f545bcf356768/icons/mob/mutant_bodyparts.dmi",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "tail_smooth_front",
+ "directions": 4
+ },
+ {
+ "name": "tail_spikes_front",
+ "directions": 4
+ },
+ {
+ "name": "tail_dtiger_front",
+ "directions": 4
+ },
+ {
+ "name": "tail_ltiger_front",
+ "directions": 4
+ },
+ {
+ "name": "tail_smooth_behind",
+ "directions": 4
+ },
+ {
+ "name": "tail_spikes_behind",
+ "directions": 4
+ },
+ {
+ "name": "tail_dtiger_behind",
+ "directions": 4
+ },
+ {
+ "name": "tail_ltiger_behind",
+ "directions": 4
+ },
+ {
+ "name": "snout_round",
+ "directions": 4
+ },
+ {
+ "name": "snout_roundlight",
+ "directions": 4
+ },
+ {
+ "name": "snout_sharp",
+ "directions": 4
+ },
+ {
+ "name": "snout_sharplight",
+ "directions": 4
+ },
+ {
+ "name": "horns_simple",
+ "directions": 4
+ },
+ {
+ "name": "horns_short",
+ "directions": 4
+ },
+ {
+ "name": "horns_curled",
+ "directions": 4
+ },
+ {
+ "name": "horns_ram",
+ "directions": 4
+ },
+ {
+ "name": "horns_angler",
+ "directions": 4
+ },
+ {
+ "name": "frills_simple",
+ "directions": 4
+ },
+ {
+ "name": "frills_short",
+ "directions": 4
+ },
+ {
+ "name": "frills_aquatic",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_round.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_round.png
new file mode 100644
index 0000000000..eac94a8dd5
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_round.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_roundlight.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_roundlight.png
new file mode 100644
index 0000000000..f2163ec760
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_roundlight.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_sharp.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_sharp.png
new file mode 100644
index 0000000000..3d952e9065
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_sharp.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_sharplight.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_sharplight.png
new file mode 100644
index 0000000000..00b3d347b4
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/snout_sharplight.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_dtiger_behind.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_dtiger_behind.png
new file mode 100644
index 0000000000..39fc5d539f
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_dtiger_behind.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_dtiger_front.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_dtiger_front.png
new file mode 100644
index 0000000000..04b71b9827
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_dtiger_front.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_ltiger_behind.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_ltiger_behind.png
new file mode 100644
index 0000000000..edcef3e3b1
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_ltiger_behind.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_ltiger_front.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_ltiger_front.png
new file mode 100644
index 0000000000..a300138c9b
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_ltiger_front.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_smooth_behind.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_smooth_behind.png
new file mode 100644
index 0000000000..9a452186ef
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_smooth_behind.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_smooth_front.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_smooth_front.png
new file mode 100644
index 0000000000..2b6c4f5720
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_smooth_front.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_spikes_behind.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_spikes_behind.png
new file mode 100644
index 0000000000..a361705188
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_spikes_behind.png differ
diff --git a/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_spikes_front.png b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_spikes_front.png
new file mode 100644
index 0000000000..92ac0a70c2
Binary files /dev/null and b/Resources/Textures/Mobs/Customization/reptilian_parts.rsi/tail_spikes_front.png differ
diff --git a/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/full.png b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/full.png
new file mode 100644
index 0000000000..39d9a69915
Binary files /dev/null and b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/full.png differ
diff --git a/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/head_f.png b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/head_f.png
new file mode 100644
index 0000000000..b0d7991413
Binary files /dev/null and b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/head_f.png differ
diff --git a/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/head_m.png b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/head_m.png
new file mode 100644
index 0000000000..5f97e34921
Binary files /dev/null and b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/head_m.png differ
diff --git a/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/l_arm.png b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/l_arm.png
new file mode 100644
index 0000000000..a0e2c96fda
Binary files /dev/null and b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/l_arm.png differ
diff --git a/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/l_foot.png b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/l_foot.png
new file mode 100644
index 0000000000..ce0d6b70b9
Binary files /dev/null and b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/l_foot.png differ
diff --git a/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/l_hand.png b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/l_hand.png
new file mode 100644
index 0000000000..bc206249ea
Binary files /dev/null and b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/l_hand.png differ
diff --git a/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/l_leg.png b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/l_leg.png
new file mode 100644
index 0000000000..34cafa2269
Binary files /dev/null and b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/l_leg.png differ
diff --git a/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/meta.json b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/meta.json
new file mode 100644
index 0000000000..f6f4240003
--- /dev/null
+++ b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/meta.json
@@ -0,0 +1,62 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "https://github.com/tgstation/tgstation/blob/8024397cc81c5f47f74cf4279e35728487d0a1a7/icons/mob/human_parts_greyscale.dmi",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "full"
+ },
+ {
+ "name": "head_f",
+ "directions": 4
+ },
+ {
+ "name": "head_m",
+ "directions": 4
+ },
+ {
+ "name": "l_arm",
+ "directions": 4
+ },
+ {
+ "name": "l_foot",
+ "directions": 4
+ },
+ {
+ "name": "l_hand",
+ "directions": 4
+ },
+ {
+ "name": "l_leg",
+ "directions": 4
+ },
+ {
+ "name": "r_arm",
+ "directions": 4
+ },
+ {
+ "name": "r_foot",
+ "directions": 4
+ },
+ {
+ "name": "r_hand",
+ "directions": 4
+ },
+ {
+ "name": "r_leg",
+ "directions": 4
+ },
+ {
+ "name": "torso_f",
+ "directions": 4
+ },
+ {
+ "name": "torso_m",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/r_arm.png b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/r_arm.png
new file mode 100644
index 0000000000..de8edc447d
Binary files /dev/null and b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/r_arm.png differ
diff --git a/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/r_foot.png b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/r_foot.png
new file mode 100644
index 0000000000..d39a9244c0
Binary files /dev/null and b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/r_foot.png differ
diff --git a/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/r_hand.png b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/r_hand.png
new file mode 100644
index 0000000000..8f292ffe0d
Binary files /dev/null and b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/r_hand.png differ
diff --git a/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/r_leg.png b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/r_leg.png
new file mode 100644
index 0000000000..e761dd9250
Binary files /dev/null and b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/r_leg.png differ
diff --git a/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/torso_f.png b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/torso_f.png
new file mode 100644
index 0000000000..2ee27074f8
Binary files /dev/null and b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/torso_f.png differ
diff --git a/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/torso_m.png b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/torso_m.png
new file mode 100644
index 0000000000..4ea867df2a
Binary files /dev/null and b/Resources/Textures/Mobs/Species/Reptilian/parts.rsi/torso_m.png differ