diff --git a/Content.Shared/_Starlight/Movement/Components/MovementBodyPartHinderedByShoes.cs b/Content.Shared/_Starlight/Movement/Components/MovementBodyPartHinderedByShoes.cs
new file mode 100644
index 00000000000..d135854afb6
--- /dev/null
+++ b/Content.Shared/_Starlight/Movement/Components/MovementBodyPartHinderedByShoes.cs
@@ -0,0 +1,18 @@
+using Robust.Shared.GameStates;
+using Robust.Shared.Physics;
+using Robust.Shared.Physics.Systems;
+
+namespace Content.Shared._Starlight.Movement.Components;
+
+///
+/// A component that applies a percentange-based modifier to movement speed while this mob is wearing shoes.
+/// Typical use-case is to apply a movement penalty (slow) to a mob that puts on shoes.
+///
+/// This component is applied to leg BodyParts (e.g. natural limbs like LeftLegFelionoid).
+///
+[RegisterComponent, NetworkedComponent]
+public sealed partial class MovementBodyPartHinderedByShoesComponent : Component
+{
+ [DataField]
+ public float HinderModifier = 0.0f;
+}
\ No newline at end of file
diff --git a/Content.Shared/_Starlight/Movement/MovementHinderedByShoesSystem.cs b/Content.Shared/_Starlight/Movement/MovementHinderedByShoesSystem.cs
new file mode 100644
index 00000000000..72a54973d12
--- /dev/null
+++ b/Content.Shared/_Starlight/Movement/MovementHinderedByShoesSystem.cs
@@ -0,0 +1,40 @@
+using Content.Shared.Inventory;
+using Content.Shared.Body.Components;
+using Content.Shared.Movement.Systems;
+using Content.Shared._Starlight.Movement.Components;
+
+namespace Content.Shared._Starlight.Movement;
+
+public sealed class MovementHinderedByShoesSystem : EntitySystem
+{
+ [Dependency] private readonly InventorySystem _inventory = default!;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnRefreshSpeed);
+ }
+
+ private void OnRefreshSpeed(EntityUid uid, BodyComponent body, ref RefreshMovementSpeedModifiersEvent args)
+ {
+ // shoes check
+ if (!_inventory.TryGetSlotEntity(uid, "shoes", out var _))
+ return;
+
+ float hinderModifier = 0f;
+
+ foreach (var legEntity in body.LegEntities)
+ {
+ if (!TryComp(legEntity, out var legModifier))
+ continue;
+
+ hinderModifier += legModifier.HinderModifier;
+ }
+
+ if (hinderModifier > 0f)
+ {
+ args.ModifySpeed(1f, 1f - hinderModifier);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Resources/Locale/en-US/_Starlight/datasets/names/felionoid.ftl b/Resources/Locale/en-US/_Starlight/datasets/names/felionoid.ftl
new file mode 100644
index 00000000000..fca5a444fe1
--- /dev/null
+++ b/Resources/Locale/en-US/_Starlight/datasets/names/felionoid.ftl
@@ -0,0 +1,115 @@
+names-felionoid-dataset-1 = Slinkshadow
+names-felionoid-dataset-2 = Oceanclaw
+names-felionoid-dataset-3 = Dewmist
+names-felionoid-dataset-4 = Silktuft
+names-felionoid-dataset-5 = Emberwhisk
+names-felionoid-dataset-6 = Hazeleap
+names-felionoid-dataset-7 = Tailyn
+names-felionoid-dataset-8 = Sparktail
+names-felionoid-dataset-9 = Windstalker
+names-felionoid-dataset-10 = Rainseeker
+names-felionoid-dataset-11 = Tidewhisk
+names-felionoid-dataset-12 = Ambergleam
+names-felionoid-dataset-13 = Goldentuft
+names-felionoid-dataset-14 = Echofur
+names-felionoid-dataset-15 = Saffronpaw
+names-felionoid-dataset-16 = Tanglebranch
+names-felionoid-dataset-17 = Pearlfur
+names-felionoid-dataset-18 = Cindernose
+names-felionoid-dataset-19 = Thundermew
+names-felionoid-dataset-20 = Nimblepaw
+names-felionoid-dataset-21 = Silkshine
+names-felionoid-dataset-22 = Aspenclaw
+names-felionoid-dataset-23 = Marshwhisk
+names-felionoid-dataset-24 = Crystalsight
+names-felionoid-dataset-25 = Frostwhisper
+names-felionoid-dataset-26 = Glowstripe
+names-felionoid-dataset-27 = Rainwhisker
+names-felionoid-dataset-28 = Vixenwhisk
+names-felionoid-dataset-29 = Flurrypaw
+names-felionoid-dataset-30 = Shimmercoat
+names-felionoid-dataset-31 = Marblesnout
+names-felionoid-dataset-32 = Frostnose
+names-felionoid-dataset-33 = Ripplepelt
+names-felionoid-dataset-34 = Blazeheart
+names-felionoid-dataset-35 = Furlow
+names-felionoid-dataset-36 = Snugglefur
+names-felionoid-dataset-37 = Brackenfur
+names-felionoid-dataset-38 = Emberglow
+names-felionoid-dataset-39 = Murmurstream
+names-felionoid-dataset-40 = Sparkfur
+names-felionoid-dataset-41 = Galepaw
+names-felionoid-dataset-42 = Beetletuft
+names-felionoid-dataset-43 = Luminix
+names-felionoid-dataset-44 = Mosswhisk
+names-felionoid-dataset-45 = Swiftstripe
+names-felionoid-dataset-46 = Pinebreeze
+names-felionoid-dataset-47 = Cloverpelt
+names-felionoid-dataset-48 = Sprucepelt
+names-felionoid-dataset-49 = Orangestripe
+names-felionoid-dataset-50 = Cobbleclaw
+names-felionoid-dataset-51 = Snorast
+names-felionoid-dataset-52 = Skywhisker
+names-felionoid-dataset-53 = Heatherbreez
+names-felionoid-dataset-54 = Sleetnose
+names-felionoid-dataset-55 = Cinderclaw
+names-felionoid-dataset-56 = Mistgaze
+names-felionoid-dataset-57 = Scratchal
+names-felionoid-dataset-58 = Creekpad
+names-felionoid-dataset-59 = Driftshade
+names-felionoid-dataset-60 = Sunstreak
+names-felionoid-dataset-61 = Dawnleap
+names-felionoid-dataset-62 = Moonfur
+names-felionoid-dataset-63 = Wildstripe
+names-felionoid-dataset-64 = Starleap
+names-felionoid-dataset-65 = Thistletuft
+names-felionoid-dataset-66 = Jaderiver
+names-felionoid-dataset-67 = Fuzzlen
+names-felionoid-dataset-68 = Lightwhisk
+names-felionoid-dataset-69 = Thunderpad
+names-felionoid-dataset-70 = Whiskara
+names-felionoid-dataset-71 = Nettlefur
+names-felionoid-dataset-72 = Brighteyes
+names-felionoid-dataset-73 = Breezeflick
+names-felionoid-dataset-74 = Fernshade
+names-felionoid-dataset-75 = Leafglimmer
+names-felionoid-dataset-76 = Quartzpaw
+names-felionoid-dataset-77 = Mialorin
+names-felionoid-dataset-78 = Sableplume
+names-felionoid-dataset-79 = Briarstem
+names-felionoid-dataset-80 = Whirltail
+names-felionoid-dataset-81 = Patchwhisk
+names-felionoid-dataset-82 = Spindlewhisk
+names-felionoid-dataset-83 = Mewtara
+names-felionoid-dataset-84 = Minttail
+names-felionoid-dataset-85 = Maplewhisk
+names-felionoid-dataset-86 = Shadowgleam
+names-felionoid-dataset-87 = Stonepelt
+names-felionoid-dataset-88 = Ripplewhisk
+names-felionoid-dataset-89 = Flarepelt
+names-felionoid-dataset-90 = Nightwhisper
+names-felionoid-dataset-91 = Stormwhisk
+names-felionoid-dataset-92 = Lichenpelt
+names-felionoid-dataset-93 = Stormclaw
+names-felionoid-dataset-94 = Velvetfur
+names-felionoid-dataset-95 = Twinklepaw
+names-felionoid-dataset-96 = Purrlix
+names-felionoid-dataset-97 = Moonwhisker
+names-felionoid-dataset-98 = Frostgleam
+names-felionoid-dataset-99 = Duskfang
+names-felionoid-dataset-100 = Clawrin
+names-felionoid-dataset-101 = Nighthiss
+names-felionoid-dataset-102 = Mireclaw
+names-felionoid-dataset-103 = Felisar
+names-felionoid-dataset-104 = Rooktail
+names-felionoid-dataset-105 = Rowantail
+names-felionoid-dataset-106 = Ironjaw
+names-felionoid-dataset-107 = Pawslyn
+names-felionoid-dataset-108 = Softpurr
+names-felionoid-dataset-109 = Glimmerwhisk
+names-felionoid-dataset-110 = Mossycloud
+names-felionoid-dataset-111 = Starfleck
+names-felionoid-dataset-112 = Pebblesnout
+names-felionoid-dataset-113 = Whisperwind
+names-felionoid-dataset-114 = Ocelotstripe
+names-felionoid-dataset-115 = Flamefur
diff --git a/Resources/Prototypes/Guidebook/species.yml b/Resources/Prototypes/Guidebook/species.yml
index 6bef125145e..30b5cde08e9 100644
--- a/Resources/Prototypes/Guidebook/species.yml
+++ b/Resources/Prototypes/Guidebook/species.yml
@@ -27,6 +27,7 @@
- Sheleg # Frontier
- Harpy # DeltaV
- Felinid # DeltaV
+ - Felionoid # Starlight
- Oni # DeltaV
- Chitinid # DeltaV
- Rodentia # DeltaV
@@ -143,3 +144,9 @@
name: species-name-thaven
text: "/ServerInfo/_Impstation/Guidebook/Mobs/Thaven.xml"
+ # Starlight
+- type: guideEntry
+ id: Felionoid
+ name: species-name-felionoid
+ text: "/ServerInfo/_StarLight/Guidebook/Mobs/Felionoid.xml"
+
diff --git a/Resources/Prototypes/Loadouts/Miscellaneous/survival.yml b/Resources/Prototypes/Loadouts/Miscellaneous/survival.yml
index 5342faae07c..a62350ef61f 100644
--- a/Resources/Prototypes/Loadouts/Miscellaneous/survival.yml
+++ b/Resources/Prototypes/Loadouts/Miscellaneous/survival.yml
@@ -19,6 +19,7 @@
- Moth
- Reptilian
- Avali #🌟Starlight🌟
+ - Felionoid #🌟Starlight🌟
- Protogen
- type: loadoutEffectGroup
diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml
index 48cd46a9f0c..d52c440cdc9 100644
--- a/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml
+++ b/Resources/Prototypes/Nyanotrasen/Entities/Mobs/Species/felinid.yml
@@ -75,10 +75,10 @@
Male: MaleFelinid
Female: FemaleFelinid
Unsexed: MaleFelinid
- - type: ItemCougher
- item: Hairball
- action: ActionHairball
- coughPopup: hairball-cough
+# - type: ItemCougher # commented out, didnt work anyways
+# item: Hairball
+# action: ActionHairball
+# coughPopup: hairball-cough
- type: Felinid
- type: NpcFactionMember
factions:
diff --git a/Resources/Prototypes/Species/species_weights.yml b/Resources/Prototypes/Species/species_weights.yml
index 67690da2b15..db98ec70ca1 100644
--- a/Resources/Prototypes/Species/species_weights.yml
+++ b/Resources/Prototypes/Species/species_weights.yml
@@ -22,3 +22,4 @@
Synth: 4
Chitinid: 3 # DeltaV - Chitinid, see Prototypes/DeltaV/Entities/Mobs/Species/chitinid.yml
Shadekin: 2
+ Felionoid: 3 # Starlight
diff --git a/Resources/Prototypes/_StarLight/Body/Organs/felionoid.yml b/Resources/Prototypes/_StarLight/Body/Organs/felionoid.yml
new file mode 100644
index 00000000000..0c8464273f2
--- /dev/null
+++ b/Resources/Prototypes/_StarLight/Body/Organs/felionoid.yml
@@ -0,0 +1,7 @@
+- type: entity
+ id: OrganFelionoidEyes
+ parent: OrganHumanEyes
+ name: eyes
+ suffix: Felionoid
+ description: "The eyes of a Felionoid."
+ # Removed OrganVisualization component (unknown); visual handled elsewhere if needed.
\ No newline at end of file
diff --git a/Resources/Prototypes/_StarLight/Body/Parts/felionoid.yml b/Resources/Prototypes/_StarLight/Body/Parts/felionoid.yml
new file mode 100644
index 00000000000..ad428b1bc55
--- /dev/null
+++ b/Resources/Prototypes/_StarLight/Body/Parts/felionoid.yml
@@ -0,0 +1,203 @@
+- type: entity
+ id: PartFelionoid
+ parent: [BaseItem, BasePart]
+ name: "felionoid body part"
+ abstract: true
+ components:
+# - type: Damageable
+# damageContainer: Biological
+# - type: BodyPart
+# - type: ContainerContainer
+# containers:
+# bodypart: !type:Container
+# ents: []
+# - type: StaticPrice
+# price: 100
+# - type: Tag
+# tags:
+# - Trash
+ - type: Extractable
+ juiceSolution:
+ reagents:
+ - ReagentId: Fat
+ Quantity: 1
+ - ReagentId: Blood
+ Quantity: 5
+
+- type: entity
+ id: TorsoFelionoid
+ name: "felionoid torso"
+ parent: [PartFelionoid, BaseTorso]
+ components:
+ - type: Sprite
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "torso"
+ - type: Icon
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "torso"
+# - type: BodyPart
+# partType: Torso
+ - type: Extractable
+ juiceSolution:
+ reagents:
+ - ReagentId: Fat
+ Quantity: 1
+ - ReagentId: Blood
+ Quantity: 5
+
+- type: entity
+ id: HeadFelionoid
+ name: "felionoid head"
+ parent: [PartFelionoid, BaseHead]
+ components:
+ - type: Sprite
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "head"
+ - type: Icon
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "head"
+# - type: BodyPart
+# partType: Head
+# vital: true
+# - type: Input
+# context: "ghost"
+# - type: Tag
+# tags:
+# - Head
+ - type: Extractable
+ juiceSolution:
+ reagents:
+ - ReagentId: Fat
+ Quantity: 1
+ - ReagentId: Blood
+ Quantity: 5
+
+- type: entity
+ id: LeftArmFelionoid
+ name: "left felionoid arm"
+ parent: [PartFelionoid, BaseLeftArm]
+ components:
+ - type: Sprite
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "l_arm"
+ - type: Icon
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "l_arm"
+# - type: BodyPart
+# partType: Arm
+# symmetry: Left
+
+- type: entity
+ id: RightArmFelionoid
+ name: "right felionoid arm"
+ parent: [PartFelionoid, BaseRightArm]
+ components:
+ - type: Sprite
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "r_arm"
+ - type: Icon
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "r_arm"
+# - type: BodyPart
+# partType: Arm
+# symmetry: Right
+
+- type: entity
+ id: LeftHandFelionoid
+ name: "left felionoid hand"
+ parent: [PartFelionoid, BaseLeftHand]
+ components:
+ - type: Sprite
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "l_hand"
+ - type: Icon
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "l_hand"
+# - type: BodyPart
+# partType: Hand
+# symmetry: Left
+
+- type: entity
+ id: RightHandFelionoid
+ name: "right felionoid hand"
+ parent: [PartFelionoid, BaseRightHand]
+ components:
+ - type: Sprite
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "r_hand"
+ - type: Icon
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "r_hand"
+# - type: BodyPart
+# partType: Hand
+# symmetry: Right
+
+- type: entity
+ id: LeftLegFelionoid
+ name: "left felionoid leg"
+ parent: [PartFelionoid, BaseLeftLeg]
+ components:
+ - type: Sprite
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "l_leg"
+ - type: Icon
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "l_leg"
+# - type: BodyPart
+# partType: Leg
+# symmetry: Left
+# - type: MovementBodyPart
+# sprintSpeed : 5.625
+# maxDensity: 55
+# - type: MovementBodyPartHinderedByShoes
+# hinderModifier: 0.08
+
+- type: entity
+ id: RightLegFelionoid
+ name: "right felionoid leg"
+ parent: [PartFelionoid, BaseRightLeg]
+ components:
+ - type: Sprite
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "r_leg"
+ - type: Icon
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "r_leg"
+# - type: BodyPart
+# partType: Leg
+# symmetry: Right
+# - type: MovementBodyPart
+# sprintSpeed : 5.625
+# maxDensity: 55
+# - type: MovementBodyPartHinderedByShoes
+# hinderModifier: 0.08
+
+- type: entity
+ id: LeftFootFelionoid
+ name: "left felionoid foot"
+ parent: [PartFelionoid, BaseLeftFoot]
+ components:
+ - type: Sprite
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "l_foot"
+ - type: Icon
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "l_foot"
+# - type: BodyPart
+# partType: Foot
+# symmetry: Left
+
+- type: entity
+ id: RightFootFelionoid
+ name: "right felionoid foot"
+ parent: [PartFelionoid, BaseRightFoot]
+ components:
+ - type: Sprite
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "r_foot"
+ - type: Icon
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: "r_foot"
+# - type: BodyPart
+# partType: Foot
+# symmetry: Right
diff --git a/Resources/Prototypes/_StarLight/Body/Prototypes/felionoid.yml b/Resources/Prototypes/_StarLight/Body/Prototypes/felionoid.yml
new file mode 100644
index 00000000000..1f0cf7b7a6c
--- /dev/null
+++ b/Resources/Prototypes/_StarLight/Body/Prototypes/felionoid.yml
@@ -0,0 +1,58 @@
+- type: body
+ id: Felionoid
+ name: "felionoid"
+ root: torso
+ slots:
+ head:
+ part: HeadFelionoid
+ connections:
+ - torso
+ organs:
+ brain: OrganHumanBrain
+ eyes: OrganFelionoidEyes
+ tongue: OrganHumanTongue
+# eye_implant: null
+# brain_implant: null
+ torso:
+ part: TorsoFelionoid
+ connections:
+ - right arm
+ - left arm
+ - right leg
+ - left leg
+ - head # Shitmed
+ organs:
+ heart: OrganAnimalHeart
+ lungs: OrganHumanLungs
+ stomach: OrganReptilianStomach
+ liver: OrganHumanLiver
+ kidneys: OrganHumanKidneys
+# cavity: null
+ right arm:
+ part: RightArmFelionoid
+ connections:
+ - right hand
+ left arm:
+ part: LeftArmFelionoid
+ connections:
+ - left hand
+ right hand:
+ part: RightHandFelionoid
+# organs:
+# hand_implant: null
+ left hand:
+ part: LeftHandFelionoid
+# organs:
+# hand_implant: null
+ right leg:
+ part: RightLegFelionoid
+ connections:
+ - right foot
+ left leg:
+ part: LeftLegFelionoid
+ connections:
+ - left foot
+ right foot:
+ part: RightFootFelionoid
+ left foot:
+ part: LeftFootFelionoid
diff --git a/Resources/Prototypes/_StarLight/Datasets/Names/felionoid.yml b/Resources/Prototypes/_StarLight/Datasets/Names/felionoid.yml
new file mode 100644
index 00000000000..e29fed8c2bb
--- /dev/null
+++ b/Resources/Prototypes/_StarLight/Datasets/Names/felionoid.yml
@@ -0,0 +1,5 @@
+- type: localizedDataset
+ id: names_felionoid
+ values:
+ prefix: names-felionoid-dataset-
+ count: 115
diff --git a/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/felionoid_facial_hair.yml b/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/felionoid_facial_hair.yml
new file mode 100644
index 00000000000..b07e909275c
--- /dev/null
+++ b/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/felionoid_facial_hair.yml
@@ -0,0 +1,44 @@
+- type: marking
+ id: FelionoidFacialHairBeard
+ bodyPart: FacialHair
+ markingCategory: FacialHair
+ speciesRestriction: [Felionoid]
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_facial_hair.rsi
+ state: beard_s
+
+- type: marking
+ id: FelionoidFacialHairColonel
+ bodyPart: FacialHair
+ markingCategory: FacialHair
+ speciesRestriction: [Felionoid]
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_facial_hair.rsi
+ state: colonel_s
+
+- type: marking
+ id: FelionoidFacialHairFu
+ bodyPart: FacialHair
+ markingCategory: FacialHair
+ speciesRestriction: [Felionoid]
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_facial_hair.rsi
+ state: fu_s
+
+- type: marking
+ id: FelionoidFacialHairMane
+ bodyPart: FacialHair
+ markingCategory: FacialHair
+ speciesRestriction: [Felionoid]
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_facial_hair.rsi
+ state: mane_s
+
+- type: marking
+ id: FelionoidFacialHairNeck
+ bodyPart: FacialHair
+ markingCategory: FacialHair
+ speciesRestriction: [Felionoid]
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_facial_hair.rsi
+ state: neck_s
diff --git a/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/felionoid_hair.yml b/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/felionoid_hair.yml
new file mode 100644
index 00000000000..5424e21dceb
--- /dev/null
+++ b/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/felionoid_hair.yml
@@ -0,0 +1,71 @@
+- type: marking
+ id: FelionoidHairCrestedQuills
+ bodyPart: Hair
+ markingCategory: Hair
+ speciesRestriction: [Felionoid]
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_hair.rsi
+ state: crestedquills_s
+
+- type: marking
+ id: FelionoidHairFlowing
+ bodyPart: Hair
+ markingCategory: Hair
+ speciesRestriction: [Felionoid]
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_hair.rsi
+ state: flowing_s
+
+- type: marking
+ id: FelionoidHairHawk
+ bodyPart: Hair
+ markingCategory: Hair
+ speciesRestriction: [Felionoid]
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_hair.rsi
+ state: hawk_s
+
+- type: marking
+ id: FelionoidHairKeelQuills
+ bodyPart: Hair
+ markingCategory: Hair
+ speciesRestriction: [Felionoid]
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_hair.rsi
+ state: keelquills_s
+
+- type: marking
+ id: FelionoidHairKeetQuills
+ bodyPart: Hair
+ markingCategory: Hair
+ speciesRestriction: [Felionoid]
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_hair.rsi
+ state: keetquills_s
+
+- type: marking
+ id: FelionoidHairKingly
+ bodyPart: Hair
+ markingCategory: Hair
+ speciesRestriction: [Felionoid]
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_hair.rsi
+ state: kingly_s
+
+- type: marking
+ id: FelionoidHairMange
+ bodyPart: Hair
+ markingCategory: Hair
+ speciesRestriction: [Felionoid]
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_hair.rsi
+ state: mange_s
+
+- type: marking
+ id: FelionoidHairNights
+ bodyPart: Hair
+ markingCategory: Hair
+ speciesRestriction: [Felionoid]
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_hair.rsi
+ state: nights_s
\ No newline at end of file
diff --git a/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/felionoid_parts.yml b/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/felionoid_parts.yml
new file mode 100644
index 00000000000..701519ae05d
--- /dev/null
+++ b/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/felionoid_parts.yml
@@ -0,0 +1,8 @@
+- type: marking
+ id: FelionoidTailAnimated
+ bodyPart: Tail
+ markingCategory: Tail
+ speciesRestriction: []
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_parts.rsi
+ state: tail_wagging
\ No newline at end of file
diff --git a/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/felionoid_tattoos.yml b/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/felionoid_tattoos.yml
new file mode 100644
index 00000000000..8a67e6d7745
--- /dev/null
+++ b/Resources/Prototypes/_StarLight/Entities/Mobs/Customization/Marking/felionoid_tattoos.yml
@@ -0,0 +1,55 @@
+- type: marking
+ id: TattooFelionoidHeartLeftArm
+ bodyPart: LArm
+ markingCategory: Arms
+ speciesRestriction: [Felionoid]
+ coloring:
+ default:
+ type:
+ !type:TattooColoring
+ fallbackColor: "#666666"
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_tattoos.rsi
+ state: heart_l_arm
+
+- type: marking
+ id: TattooFelionoidHeartRightArm
+ bodyPart: RArm
+ markingCategory: Arms
+ speciesRestriction: [Felionoid]
+ coloring:
+ default:
+ type:
+ !type:TattooColoring
+ fallbackColor: "#666666"
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_tattoos.rsi
+ state: heart_r_arm
+
+- type: marking
+ id: TattooFelionoidHiveChest
+ bodyPart: Chest
+ markingCategory: Chest
+ speciesRestriction: [Felionoid]
+ coloring:
+ default:
+ type:
+ !type:TattooColoring
+ fallbackColor: "#666666"
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_tattoos.rsi
+ state: hive_s
+
+- type: marking
+ id: TattooFelionoidNightlingChest
+ bodyPart: Chest
+ markingCategory: Chest
+ speciesRestriction: [Felionoid]
+ coloring:
+ default:
+ type:
+ !type:TattooColoring
+ fallbackColor: "#666666"
+ sprites:
+ - sprite: _Starlight/Mobs/Customization/felionoid_tattoos.rsi
+ state: nightling_s
diff --git a/Resources/Prototypes/_StarLight/Entities/Mobs/Player/felionoid.yml b/Resources/Prototypes/_StarLight/Entities/Mobs/Player/felionoid.yml
new file mode 100644
index 00000000000..4cf1accac8d
--- /dev/null
+++ b/Resources/Prototypes/_StarLight/Entities/Mobs/Player/felionoid.yml
@@ -0,0 +1,5 @@
+- type: entity
+ save: false
+ name: Urist Felionoid
+ parent: BaseMobFelionoid
+ id: MobFelionoid
\ No newline at end of file
diff --git a/Resources/Prototypes/_StarLight/Entities/Mobs/Species/felionoid.yml b/Resources/Prototypes/_StarLight/Entities/Mobs/Species/felionoid.yml
new file mode 100644
index 00000000000..98136148287
--- /dev/null
+++ b/Resources/Prototypes/_StarLight/Entities/Mobs/Species/felionoid.yml
@@ -0,0 +1,210 @@
+- type: entity
+ name: Urist McFelionoid
+ parent: BaseMobHuman
+ # removed BaseSpeciesPickupable, handled by another engine
+ id: BaseMobFelionoid
+ abstract: true
+ components:
+# - type: LanguageKnowledge
+# speaks:
+# - GalacticCommon
+# - Nekomimetic
+# understands:
+# - GalacticCommon
+# - Nekomimetic
+# - Cat
+# - type: Absorbable
+ # copied from felinid
+ - type: Sprite
+ scale: 0.8, 0.8
+ - type: HumanoidAppearance
+ species: Felionoid
+ hideLayersOnEquip: # Frontier
+ - Hair # Frontier
+ - HeadTop # Frontier
+ # HL start: Hide genital markings on equip
+ - Genital
+ - Penis
+ - Breasts
+ # HL end
+ - type: Fixtures
+ fixtures:
+ fix1:
+ shape:
+ !type:PhysShapeCircle
+ radius: 0.30
+ density: 110
+ restitution: 0.0
+ mask:
+ - MobMask
+ layer:
+ - MobLayer
+ - type: Body
+ prototype: Felionoid
+ - type: Damageable
+ damageContainer: Biological
+ damageModifierSet: Vox
+ - type: SlowOnDamage
+ speedModifierThresholds:
+ 51: 0.7 # 60%
+ 68: 0.5 # 80%
+ - type: MeleeWeapon
+ soundHit:
+ collection: AlienClaw
+ angle: 30
+ animation: WeaponArcClaw
+ attackRate: 2
+ damage:
+ types:
+ Slash: 3
+ - type: Speech
+ speechVerb: Felionoid
+ allowedEmotes: ['Mew', 'Hiss', 'Meow', 'Growl', 'Purr', 'Trill']
+ - type: DamageOnHighSpeedImpact # Landing on all fours!
+ damage:
+ types:
+ Blunt: 1
+ - type: Stamina
+ - type: TypingIndicator
+ proto: felinid
+ - type: PseudoItem
+ storedOffset: 0,17
+ shape:
+ - 0,0,1,4
+ - 0,2,3,4
+ - 4,0,5,4
+ - type: Vocal
+ sounds:
+ Male: MaleFelionoid
+ Female: FemaleFelionoid
+ Unsexed: MaleFelionoid
+ - type: Felinid
+ - type: NpcFactionMember
+ factions:
+ - NanoTrasen
+ - Felinid # Frontier
+ - type: Reactive
+ groups:
+ Flammable: [ Touch ]
+ Extinguish: [ Touch ]
+ reactions:
+ - reagents: [ Water, SpaceCleaner ]
+ methods: [ Touch ]
+ effects:
+ - !type:WashCreamPieReaction
+ - !type:Emote
+ emote: Hiss
+ showInChat: false
+ - type: Icon
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: felionoid
+ requiredLegs: 2
+ - type: OwOAccent
+ - type: MobThresholds
+ thresholds:
+ 0: Alive
+ 85: Critical
+ 170: Dead
+ - type: Butcherable
+ butcheringType: Spike
+ spawned:
+ - id: FoodMeatHuman
+ amount: 3
+ - type: DamageVisuals
+ damageOverlayGroups:
+ Brute:
+ sprite: Mobs/Effects/brute_damage.rsi
+ color: "#7a8bf2"
+ - type: Tag
+ tags:
+ - CanPilot
+ - FootstepSound
+ - DoorBumpOpener
+ - AnomalyHost
+ - Felionoid
+ - type: Inventory
+ speciesId: felionoid
+ displacements:
+ jumpsuit:
+ sizeMaps:
+ 32:
+ sprite: _Starlight/Mobs/Species/Felionoid/displacement.rsi
+ state: jumpsuit
+ eyes:
+ sizeMaps:
+ 32:
+ sprite: _Starlight/Mobs/Species/Felionoid/displacement.rsi
+ state: eyes
+ gloves:
+ sizeMaps:
+ 32:
+ sprite: _Starlight/Mobs/Species/Felionoid/displacement.rsi
+ state: hand
+ head:
+ sizeMaps:
+ 32:
+ sprite: _Starlight/Mobs/Species/Felionoid/displacement.rsi
+ state: head
+ back:
+ sizeMaps:
+ 32:
+ sprite: _Starlight/Mobs/Species/Felionoid/displacement.rsi
+ state: back
+ ears:
+ sizeMaps:
+ 32:
+ sprite: _Starlight/Mobs/Species/Felionoid/displacement.rsi
+ state: ears
+ shoes:
+ sizeMaps:
+ 32:
+ sprite: _Starlight/Mobs/Species/Felionoid/displacement.rsi
+ state: shoes
+
+- type: entity
+ parent: BaseSpeciesDummy
+ id: MobFelionoidDummy
+ categories: [ HideSpawnMenu ]
+ components:
+ - type: HumanoidAppearance
+ species: Felionoid
+ - type: Body
+ prototype: Felionoid
+ - type: Inventory
+ speciesId: felionoid
+ displacements:
+ jumpsuit:
+ sizeMaps:
+ 32:
+ sprite: _Starlight/Mobs/Species/Felionoid/displacement.rsi
+ state: jumpsuit
+ eyes:
+ sizeMaps:
+ 32:
+ sprite: _Starlight/Mobs/Species/Felionoid/displacement.rsi
+ state: eyes
+ gloves:
+ sizeMaps:
+ 32:
+ sprite: _Starlight/Mobs/Species/Felionoid/displacement.rsi
+ state: hand
+ head:
+ sizeMaps:
+ 32:
+ sprite: _Starlight/Mobs/Species/Felionoid/displacement.rsi
+ state: head
+ back:
+ sizeMaps:
+ 32:
+ sprite: _Starlight/Mobs/Species/Felionoid/displacement.rsi
+ state: back
+ ears:
+ sizeMaps:
+ 32:
+ sprite: _Starlight/Mobs/Species/Felionoid/displacement.rsi
+ state: ears
+ shoes:
+ sizeMaps:
+ 32:
+ sprite: _Starlight/Mobs/Species/Felionoid/displacement.rsi
+ state: shoes
diff --git a/Resources/Prototypes/_StarLight/Species/felionoid.yml b/Resources/Prototypes/_StarLight/Species/felionoid.yml
new file mode 100644
index 00000000000..7ef2e745710
--- /dev/null
+++ b/Resources/Prototypes/_StarLight/Species/felionoid.yml
@@ -0,0 +1,159 @@
+- type: species
+ id: Felionoid
+ name: species-name-felionoid
+ roundStart: true
+ prototype: MobFelionoid
+ sprites: MobFelionoidSprites
+ markingLimits: MobFelionoidMarkingLimits
+ dollPrototype: MobFelionoidDummy
+ skinColoration: Hues
+ defaultSkinTone: "#666666"
+ maleFirstNames: names_felionoid
+ femaleFirstNames: names_felionoid
+ naming: First
+# customName: true
+# minHeight: 0.8
+# defaultHeight: 0.8
+# maxHeight: 0.9
+# standardSize: 170
+# standardWeight: 48
+# standardDensity: 45
+
+- type: speciesBaseSprites
+ id: MobFelionoidSprites
+ sprites:
+ Head: MobFelionoidHead
+ Snout: MobHumanoidAnyMarking
+ Hair: MobHumanoidAnyMarking
+ FacialHair: MobHumanoidAnyMarking
+ Chest: MobFelionoidTorso
+ Eyes: MobFelionoidEyes
+ LArm: MobFelionoidLArm
+ RArm: MobFelionoidRArm
+ LHand: MobFelionoidLHand
+ RHand: MobFelionoidRHand
+ LLeg: MobFelionoidLLeg
+ RLeg: MobFelionoidRLeg
+ LFoot: MobFelionoidLFoot
+ RFoot: MobFelionoidRFoot
+ Tail: MobHumanoidAnyMarking
+
+- type: markingPoints
+ id: MobFelionoidMarkingLimits
+ onlyWhitelisted: true
+ points:
+ Hair:
+ points: 1
+ required: false
+ FacialHair:
+ points: 1
+ required: false
+ Head:
+ points: 1
+ required: true
+ Snout:
+ points: 1
+ required: true
+ Arms:
+ points: 4
+ required: true
+ Legs:
+ points: 4
+ required: true
+ Chest:
+ points: 1
+ required: false
+ Tail:
+ points: 1
+ required: true
+ defaultMarkings: [ FelionoidTailAnimated ]
+
+- type: humanoidBaseSprite
+ id: MobFelionoidEyes
+ baseSprite:
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: eyes
+
+- type: humanoidBaseSprite
+ id: MobFelionoidHead
+ baseSprite:
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: head
+
+- type: humanoidBaseSprite
+ id: MobFelionoidHeadMale
+ baseSprite:
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: head
+
+- type: humanoidBaseSprite
+ id: MobFelionoidHeadFemale
+ baseSprite:
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: head
+
+- type: humanoidBaseSprite
+ id: MobFelionoidTorso
+ baseSprite:
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: torso
+
+- type: humanoidBaseSprite
+ id: MobFelionoidTorsoMale
+ baseSprite:
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: torso
+
+- type: humanoidBaseSprite
+ id: MobFelionoidTorsoFemale
+ baseSprite:
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: torso
+
+- type: humanoidBaseSprite
+ id: MobFelionoidLLeg
+ baseSprite:
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: l_leg
+
+- type: humanoidBaseSprite
+ id: MobFelionoidLArm
+ baseSprite:
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: l_arm
+
+- type: humanoidBaseSprite
+ id: MobFelionoidLHand
+ baseSprite:
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: l_hand
+
+- type: humanoidBaseSprite
+ id: MobFelionoidLFoot
+ baseSprite:
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: l_foot
+
+- type: humanoidBaseSprite
+ id: MobFelionoidRLeg
+ baseSprite:
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: r_leg
+
+- type: humanoidBaseSprite
+ id: MobFelionoidRArm
+ baseSprite:
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: r_arm
+
+- type: humanoidBaseSprite
+ id: MobFelionoidRHand
+ baseSprite:
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: r_hand
+
+- type: humanoidBaseSprite
+ id: MobFelionoidRFoot
+ baseSprite:
+ sprite: _Starlight/Mobs/Species/Felionoid/parts.rsi
+ state: r_foot
diff --git a/Resources/Prototypes/_StarLight/Voice/speech_emote_sounds.yml b/Resources/Prototypes/_StarLight/Voice/speech_emote_sounds.yml
index 3d696c7acb7..d0df6c4766d 100644
--- a/Resources/Prototypes/_StarLight/Voice/speech_emote_sounds.yml
+++ b/Resources/Prototypes/_StarLight/Voice/speech_emote_sounds.yml
@@ -78,3 +78,91 @@
collection: FelionoidPurrs
Growl:
collection: FelionoidGrowls
+
+- type: emoteSounds
+ id: MaleFelionoid
+ params:
+ variation: 0.125
+ sounds:
+ Scream:
+ collection: FelionoidScreams
+ Laugh:
+ collection: MaleLaugh
+ Sneeze:
+ collection: MaleSneezes
+ Cough:
+ collection: MaleCoughs
+ Crying:
+ collection: MaleCry
+ Whistle:
+ collection: Whistles
+ Sigh:
+ collection: MaleSigh
+ Yawn:
+ collection: MaleYawn
+ Snore:
+ collection: Snores
+ Mew:
+ collection: FelionoidMews
+ Hiss:
+ collection: FelionoidHisses
+ Meow:
+ collection: FelionoidMeows
+ Purr:
+ collection: FelionoidPurrs
+ Growl:
+ collection: FelionoidGrowls
+ Trill:
+ collection: FelionoidTrills
+ Gasp:
+ collection: MaleGasp
+ DefaultDeathgasp:
+ collection: MaleDeathGasp
+ Weh:
+ collection: Weh
+ Hew:
+ collection: Hew
+
+- type: emoteSounds
+ id: FemaleFelionoid
+ params:
+ variation: 0.125
+ sounds:
+ Scream:
+ collection: FelionoidScreams
+ Laugh:
+ collection: FemaleLaugh
+ Sneeze:
+ collection: FemaleSneezes
+ Cough:
+ collection: FemaleCoughs
+ Crying:
+ collection: FemaleCry
+ Sigh:
+ collection: FemaleSigh
+ Yawn:
+ collection: FemaleYawn
+ Snore:
+ collection: Snores
+ Whistle:
+ collection: Whistles
+ Mew:
+ collection: FelionoidMews
+ Hiss:
+ collection: FelionoidHisses
+ Meow:
+ collection: FelionoidMeows
+ Purr:
+ collection: FelionoidPurrs
+ Growl:
+ collection: FelionoidGrowls
+ Trill:
+ collection: FelionoidTrills
+ Gasp:
+ collection: FemaleGasp
+ DefaultDeathgasp:
+ collection: FemaleDeathGasp
+ Weh:
+ collection: Weh
+ Hew:
+ collection: Hew
\ No newline at end of file
diff --git a/Resources/ServerInfo/_StarLight/Guidebook/Mobs/Felionoid.xml b/Resources/ServerInfo/_StarLight/Guidebook/Mobs/Felionoid.xml
new file mode 100644
index 00000000000..d1448d73df0
--- /dev/null
+++ b/Resources/ServerInfo/_StarLight/Guidebook/Mobs/Felionoid.xml
@@ -0,0 +1,29 @@
+
+ # Felionoid
+
+
+
+
+
+ A smaller feline species that is light on their feet.
+
+ ## Racial Features
+ Their unarmed claw attacks deal [color=red]3[/color] points of Slash damage with a hit rate that is [color=yellow]2[/color] times faster than humans.
+
+ Additionally, Felionoids can run [color=lightgreen]25%[/color] faster than humans [color=yellow]when not wearing shoes[/color]. They run [color=lightgreen]5%[/color] faster when wearing shoes.
+
+ Felionoids are also more vulnerable to damage:
+ - They fall into a critical state at [color=red]85[/color] points of damage.
+ - They die at [color=red]170[/color] points of damage.
+
+ ## Weapon Knockback
+ Felionoids will find that large caliber weapons will push them around. They receive [color=yellow]Stun Damage[/color] for every shot fired from a large caliber weapon.
+
+ In general, the weapons that will give you knockback are [color=yellow]Rifles, Sniper Rifles, Shotguns, LMGs, HMGs, and Grenade Launchers.[/color]
+
+ Look out especially on Rocket launchers, as since they are recoilless, you will actually get [color=red]pulled forward with the rocket[/color] for a short distance.
+ - The safest weapons to use that will give you no knockback are [color=green]Pistols and SMGs[/color].
+ - No slips can help mitigate some of the knockback from firing weapons, but not all of it!
+ - Also keep in mind that any stamina resistance you have DOES work to reduce the stamina damage from these weapons.
+
+
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/beard_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/beard_s.png
new file mode 100644
index 00000000000..2d562d15750
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/beard_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/colonel_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/colonel_s.png
new file mode 100644
index 00000000000..e128ab91233
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/colonel_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/fu_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/fu_s.png
new file mode 100644
index 00000000000..058de336925
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/fu_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/mane_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/mane_s.png
new file mode 100644
index 00000000000..c5bc1ff4ce6
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/mane_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/meta.json b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/meta.json
new file mode 100644
index 00000000000..2763fba57a1
--- /dev/null
+++ b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/meta.json
@@ -0,0 +1,31 @@
+{
+ "version": 1,
+ "license": "Custom",
+ "copyright": "Darkrell",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "colonel_s",
+ "directions": 4
+ },
+ {
+ "name": "fu_s",
+ "directions": 4
+ },
+ {
+ "name": "neck_s",
+ "directions": 4
+ },
+ {
+ "name": "beard_s",
+ "directions": 4
+ },
+ {
+ "name": "mane_s",
+ "directions": 4
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/neck_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/neck_s.png
new file mode 100644
index 00000000000..01080b0af79
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_facial_hair.rsi/neck_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/crestedquills_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/crestedquills_s.png
new file mode 100644
index 00000000000..88000335207
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/crestedquills_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/flowing_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/flowing_s.png
new file mode 100644
index 00000000000..b2747e6fd27
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/flowing_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/hawk_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/hawk_s.png
new file mode 100644
index 00000000000..e54aa1918da
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/hawk_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/keelquills_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/keelquills_s.png
new file mode 100644
index 00000000000..b27d37fcba9
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/keelquills_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/keetquills_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/keetquills_s.png
new file mode 100644
index 00000000000..6025ceb39d5
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/keetquills_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/kingly_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/kingly_s.png
new file mode 100644
index 00000000000..1e827a4496b
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/kingly_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/long_braid_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/long_braid_s.png
new file mode 100644
index 00000000000..b9a67062042
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/long_braid_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/mange_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/mange_s.png
new file mode 100644
index 00000000000..251917aaf7d
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/mange_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/meta.json b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/meta.json
new file mode 100644
index 00000000000..2039f3827a4
--- /dev/null
+++ b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/meta.json
@@ -0,0 +1,47 @@
+{
+ "version": 1,
+ "license": "Custom",
+ "copyright": "Darkrell",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "crestedquills_s",
+ "directions": 4
+ },
+ {
+ "name": "keelquills_s",
+ "directions": 4
+ },
+ {
+ "name": "keetquills_s",
+ "directions": 4
+ },
+ {
+ "name": "kingly_s",
+ "directions": 4
+ },
+ {
+ "name": "nights_s",
+ "directions": 4
+ },
+ {
+ "name": "hawk_s",
+ "directions": 4
+ },
+ {
+ "name": "long_braid_s",
+ "directions": 4
+ },
+ {
+ "name": "mange_s",
+ "directions": 4
+ },
+ {
+ "name": "flowing_s",
+ "directions": 4
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/nights_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/nights_s.png
new file mode 100644
index 00000000000..41655505da5
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_hair.rsi/nights_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/meta.json b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/meta.json
new file mode 100644
index 00000000000..e8c6193eac5
--- /dev/null
+++ b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/meta.json
@@ -0,0 +1,105 @@
+{
+ "version": 1,
+ "license": "Custom",
+ "copyright": "Darkrell",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "tail_front",
+ "directions": 4
+ },
+ {
+ "name": "tail_behind",
+ "directions": 4
+ },
+ {
+ "name": "tail",
+ "directions": 4
+ },
+ {
+ "name": "tail_dodge",
+ "directions": 4
+ },
+ {
+ "name": "tail_wagging",
+ "directions": 4,
+ "delays": [
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ],
+ [
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1,
+ 0.1
+ ]
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/tail.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/tail.png
new file mode 100644
index 00000000000..bcc7ca27088
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/tail.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/tail_behind.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/tail_behind.png
new file mode 100644
index 00000000000..f3e731191ee
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/tail_behind.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/tail_dodge.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/tail_dodge.png
new file mode 100644
index 00000000000..340357f9140
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/tail_dodge.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/tail_front.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/tail_front.png
new file mode 100644
index 00000000000..181cdc5cdc9
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/tail_front.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/tail_wagging.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/tail_wagging.png
new file mode 100644
index 00000000000..d2f80b6af00
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_parts.rsi/tail_wagging.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_tattoos.rsi/heart_l_arm.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_tattoos.rsi/heart_l_arm.png
new file mode 100644
index 00000000000..0ff82bbaf26
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_tattoos.rsi/heart_l_arm.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_tattoos.rsi/heart_r_arm.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_tattoos.rsi/heart_r_arm.png
new file mode 100644
index 00000000000..774c96692c1
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_tattoos.rsi/heart_r_arm.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_tattoos.rsi/hive_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_tattoos.rsi/hive_s.png
new file mode 100644
index 00000000000..8361f55864b
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_tattoos.rsi/hive_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_tattoos.rsi/meta.json b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_tattoos.rsi/meta.json
new file mode 100644
index 00000000000..725fbb6a0db
--- /dev/null
+++ b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_tattoos.rsi/meta.json
@@ -0,0 +1,27 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from Paradise at https://github.com/ParadiseSS13/Paradise/blob/ef7a4d962915cb36b138eeb59663f0053d4906fe/icons/mob/sprite_accessories/vox/vox_body_markings.dmi and modified by Flareguy",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "heart_l_arm",
+ "directions": 4
+ },
+ {
+ "name": "heart_r_arm",
+ "directions": 4
+ },
+ {
+ "name": "hive_s",
+ "directions": 4
+ },
+ {
+ "name": "nightling_s",
+ "directions": 4
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/_Starlight/Mobs/Customization/felionoid_tattoos.rsi/nightling_s.png b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_tattoos.rsi/nightling_s.png
new file mode 100644
index 00000000000..72b0b30fd5f
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Customization/felionoid_tattoos.rsi/nightling_s.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/back.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/back.png
new file mode 100644
index 00000000000..d6d3433c281
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/back.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/ears.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/ears.png
new file mode 100644
index 00000000000..47752c311d3
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/ears.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/eyes.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/eyes.png
new file mode 100644
index 00000000000..d7fb66071a1
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/eyes.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/hand.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/hand.png
new file mode 100644
index 00000000000..4a0266dfd37
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/hand.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/head.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/head.png
new file mode 100644
index 00000000000..8b8d4643fb6
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/head.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/jumpsuit.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/jumpsuit.png
new file mode 100644
index 00000000000..96ca6789356
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/jumpsuit.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/meta.json b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/meta.json
new file mode 100644
index 00000000000..002f826b3e5
--- /dev/null
+++ b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/meta.json
@@ -0,0 +1,42 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "jumpsuit state made by PJB3005. back, hand, head, and eyes states made by Flareguy, ears and shoes made by TheShuEd",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "load": {
+ "srgb": false
+ },
+ "states": [
+ {
+ "name": "jumpsuit",
+ "directions": 4
+ },
+ {
+ "name": "back",
+ "directions": 4
+ },
+ {
+ "name": "hand",
+ "directions": 4
+ },
+ {
+ "name": "head",
+ "directions": 4
+ },
+ {
+ "name": "ears",
+ "directions": 4
+ },
+ {
+ "name": "eyes",
+ "directions": 4
+ },
+ {
+ "name": "shoes",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/shoes.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/shoes.png
new file mode 100644
index 00000000000..0bede62bf18
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/displacement.rsi/shoes.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/eyes.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/eyes.png
new file mode 100644
index 00000000000..b728f4259e9
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/eyes.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/felionoid.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/felionoid.png
new file mode 100644
index 00000000000..8b6408a5ce5
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/felionoid.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/full.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/full.png
new file mode 100644
index 00000000000..14b47c54eda
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/full.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/groin.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/groin.png
new file mode 100644
index 00000000000..cf763fa1e13
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/groin.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/head.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/head.png
new file mode 100644
index 00000000000..4fef38dbbbb
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/head.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/l_arm.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/l_arm.png
new file mode 100644
index 00000000000..c456ddb3dee
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/l_arm.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/l_foot.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/l_foot.png
new file mode 100644
index 00000000000..a34328f3db2
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/l_foot.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/l_hand.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/l_hand.png
new file mode 100644
index 00000000000..e5b2bee0d94
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/l_hand.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/l_leg.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/l_leg.png
new file mode 100644
index 00000000000..615f045ec2a
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/l_leg.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/meta.json b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/meta.json
new file mode 100644
index 00000000000..8de4209d047
--- /dev/null
+++ b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/meta.json
@@ -0,0 +1,70 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-4.0",
+ "copyright": "Darkrell",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "eyes",
+ "directions": 4
+ },
+ {
+ "name": "full"
+ },
+ {
+ "name": "groin",
+ "directions": 4
+ },
+ {
+ "name": "head",
+ "directions": 4
+ },
+ {
+ "name": "l_arm",
+ "directions": 4
+ },
+ {
+ "name": "l_foot",
+ "directions": 4
+ },
+ {
+ "name": "l_hand",
+ "directions": 4
+ },
+ {
+ "name": "l_leg",
+ "directions": 4
+ },
+ {
+ "name": "overlay_husk",
+ "directions": 4
+ },
+ {
+ "name": "r_arm",
+ "directions": 4
+ },
+ {
+ "name": "r_foot",
+ "directions": 4
+ },
+ {
+ "name": "r_hand",
+ "directions": 4
+ },
+ {
+ "name": "r_leg",
+ "directions": 4
+ },
+ {
+ "name": "torso",
+ "directions": 4
+ },
+ {
+ "name": "felionoid",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/overlay_husk.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/overlay_husk.png
new file mode 100644
index 00000000000..3f75edfb6be
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/overlay_husk.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/r_arm.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/r_arm.png
new file mode 100644
index 00000000000..e5ad36e5c4b
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/r_arm.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/r_foot.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/r_foot.png
new file mode 100644
index 00000000000..bcc4e6ff961
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/r_foot.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/r_hand.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/r_hand.png
new file mode 100644
index 00000000000..e97122aee99
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/r_hand.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/r_leg.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/r_leg.png
new file mode 100644
index 00000000000..ab991f45411
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/r_leg.png differ
diff --git a/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/torso.png b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/torso.png
new file mode 100644
index 00000000000..5dc60f5a873
Binary files /dev/null and b/Resources/Textures/_Starlight/Mobs/Species/Felionoid/parts.rsi/torso.png differ