diff --git a/Content.Server/_MACRO/Speech/Components/AllulaloAccentComponent.cs b/Content.Server/_MACRO/Speech/Components/AllulaloAccentComponent.cs
new file mode 100644
index 00000000000..3ad04a5aba5
--- /dev/null
+++ b/Content.Server/_MACRO/Speech/Components/AllulaloAccentComponent.cs
@@ -0,0 +1,7 @@
+namespace Content.Server._MACRO.Speech.Components;
+
+///
+/// Scraw!!
+///
+[RegisterComponent]
+public sealed partial class AllulaloAccentComponent : Component;
diff --git a/Content.Server/_MACRO/Speech/EntitySystems/AllulaloAccentSystem.cs b/Content.Server/_MACRO/Speech/EntitySystems/AllulaloAccentSystem.cs
new file mode 100644
index 00000000000..c8064d5bb58
--- /dev/null
+++ b/Content.Server/_MACRO/Speech/EntitySystems/AllulaloAccentSystem.cs
@@ -0,0 +1,52 @@
+using System.Text.RegularExpressions;
+using Content.Server._MACRO.Speech.Components;
+using Content.Shared.Speech;
+
+namespace Content.Server._MACRO.Speech.EntitySystems;
+
+public sealed class AllulaloAccentSystem : EntitySystem
+{
+ private static readonly Regex RegexLowerslurR = new Regex("r{1,3}");
+ private static readonly Regex RegexUpperslurR = new Regex("R{1,3}");
+ private static readonly Regex RegexLowerdoubleCK = new Regex("ck{1,3}");
+ private static readonly Regex RegexUpperdoubleCK = new Regex("CK{1,3}");
+ private static readonly Regex RegexCasedoubleCK = new Regex("Ck{1,3}");
+ private static readonly Regex RegexCameldoubleCK = new Regex("cK{1,3}");
+ private static readonly Regex RegexLowerdoubleCKT = new Regex("ct{1,3}");
+ private static readonly Regex RegexUpperdoubleCKT = new Regex("CT{1,3}");
+ private static readonly Regex RegexCasedoubleCKT = new Regex("Ct{1,3}");
+ private static readonly Regex RegexCameldoubleCKT = new Regex("cT{1,3}");
+
+ public override void Initialize()
+ {
+ base.Initialize();
+ SubscribeLocalEvent(OnAccent);
+ }
+
+ private void OnAccent(EntityUid uid, AllulaloAccentComponent component, AccentGetEvent args)
+ {
+ var message = args.Message;
+
+ // Im not writing music in this one
+ message = RegexLowerslurR.Replace(message, "rr");
+ // Sorry to the snalienaccentsystem fans
+ message = RegexUpperslurR.Replace(message, "RR");
+ //
+ message = RegexLowerdoubleCK.Replace(message, "ck-ck");
+ //
+ message = RegexUpperdoubleCK.Replace(message, "CK-CK");
+ //
+ message = RegexCasedoubleCK.Replace(message, "Ck-ck");
+ //
+ message = RegexCameldoubleCK.Replace(message, "cK-CK");
+ //
+ message = RegexLowerdoubleCKT.Replace(message, "ck-ct");
+ //
+ message = RegexUpperdoubleCKT.Replace(message, "CK-CT");
+ //
+ message = RegexCasedoubleCKT.Replace(message, "Ck-ct");
+ //
+ message = RegexCameldoubleCKT.Replace(message, "cK-CT");
+ args.Message = message;
+ }
+}
diff --git a/Content.Shared/_MACRO/Species/UnableToWieldComponent.cs b/Content.Shared/_MACRO/Species/UnableToWieldComponent.cs
new file mode 100644
index 00000000000..985bc5b65d1
--- /dev/null
+++ b/Content.Shared/_MACRO/Species/UnableToWieldComponent.cs
@@ -0,0 +1,10 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared._MACRO.UnableToWield;
+
+[RegisterComponent, NetworkedComponent]
+public sealed partial class UnableToWieldComponent : Component
+{
+ [DataField]
+ public LocId? PopupText = "unable-to-wield-cant-do";
+}
diff --git a/Content.Shared/_MACRO/Species/UnableToWieldSystem.cs b/Content.Shared/_MACRO/Species/UnableToWieldSystem.cs
new file mode 100644
index 00000000000..c5e77eb436c
--- /dev/null
+++ b/Content.Shared/_MACRO/Species/UnableToWieldSystem.cs
@@ -0,0 +1,24 @@
+using Content.Shared.Popups;
+using Content.Shared.Wieldable;
+
+namespace Content.Shared._MACRO.UnableToWield;
+
+public sealed partial class UnableToWieldSystem : EntitySystem
+{
+ [Dependency] private SharedPopupSystem _popup = default!;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnWieldAttempt);
+ }
+
+ private void OnWieldAttempt(Entity ent, ref WieldAttemptEvent args)
+ {
+ args.Cancel();
+
+ if (ent.Comp.PopupText != null)
+ _popup.PopupClient(Loc.GetString(ent.Comp.PopupText), ent, ent);
+ }
+}
diff --git a/Content.Shared/_MACRO/TooShortForUI/Components/TooShortForUIComponent.cs b/Content.Shared/_MACRO/TooShortForUI/Components/TooShortForUIComponent.cs
new file mode 100644
index 00000000000..18574c95fc5
--- /dev/null
+++ b/Content.Shared/_MACRO/TooShortForUI/Components/TooShortForUIComponent.cs
@@ -0,0 +1,31 @@
+using Content.Shared.Whitelist;
+using Robust.Shared.GameStates;
+
+namespace Content.Shared._MACRO.TooShortForUI.Components;
+
+///
+/// Blocks the use of machine UI on blacklisted or non-whitelisted machines if the entity is not:
+/// 1) buckled into something, like a chair or a bed
+/// 2) weightless
+/// or 3) vaulted on a table.
+///
+[RegisterComponent, NetworkedComponent]
+public sealed partial class TooShortForUIComponent : Component
+{
+ ///
+ /// These entities will be allowed.
+ /// If the blacklist is null, blocks all entities.
+ ///
+ [DataField]
+ public EntityWhitelist? Whitelist;
+
+ ///
+ /// These entities will *not* be allowed.
+ /// If the blacklist is null, blocks all entities.
+ ///
+ [DataField]
+ public EntityWhitelist? Blacklist;
+
+ [DataField]
+ public LocId? PopupText = "too-short-for-ui-cant-use";
+}
diff --git a/Content.Shared/_MACRO/TooShortForUI/Components/TooShortForUiBlacklistComponent.cs b/Content.Shared/_MACRO/TooShortForUI/Components/TooShortForUiBlacklistComponent.cs
new file mode 100644
index 00000000000..f49aa7671dc
--- /dev/null
+++ b/Content.Shared/_MACRO/TooShortForUI/Components/TooShortForUiBlacklistComponent.cs
@@ -0,0 +1,7 @@
+namespace Content.Shared._MACRO.TooShortForUI.Components;
+
+///
+/// This component solely determines if an entity is NOT within height for an entity with "
+///
+[RegisterComponent]
+public sealed partial class TooShortForUiBlacklistComponent : Component;
diff --git a/Content.Shared/_MACRO/TooShortForUI/Components/TooShortForUiWhitelistComponent.cs b/Content.Shared/_MACRO/TooShortForUI/Components/TooShortForUiWhitelistComponent.cs
new file mode 100644
index 00000000000..077d3f6df4e
--- /dev/null
+++ b/Content.Shared/_MACRO/TooShortForUI/Components/TooShortForUiWhitelistComponent.cs
@@ -0,0 +1,7 @@
+namespace Content.Shared._MACRO.TooShortForUI.Components;
+
+///
+/// This component solely determines if an entity is within height for an entity with "
+///
+[RegisterComponent]
+public sealed partial class TooShortForUiWhitelistComponent : Component;
diff --git a/Content.Shared/_MACRO/TooShortForUI/TooShortForUISystem.cs b/Content.Shared/_MACRO/TooShortForUI/TooShortForUISystem.cs
new file mode 100644
index 00000000000..5d391e6dc0a
--- /dev/null
+++ b/Content.Shared/_MACRO/TooShortForUI/TooShortForUISystem.cs
@@ -0,0 +1,59 @@
+using Content.Shared._MACRO.TooShortForUI.Components;
+using Content.Shared.Buckle.Components;
+using Content.Shared.Climbing.Components;
+using Content.Shared.Gravity;
+using Content.Shared.Popups;
+using Content.Shared.UserInterface;
+using Content.Shared.Whitelist;
+using Robust.Shared.Network;
+using Robust.Shared.Physics.Components;
+using Robust.Shared.Timing;
+
+namespace Content.Shared._MACRO.TooShortForUI;
+
+public sealed partial class TooShortForUI : EntitySystem
+{
+ [Dependency] private EntityWhitelistSystem _whitelist = default!;
+ [Dependency] private IGameTiming _timing = default!;
+ [Dependency] private INetManager _net = default!;
+ [Dependency] private SharedGravitySystem _gravity = default!;
+ [Dependency] private SharedPopupSystem _popup = default!;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnUIOpenAttempt);
+ }
+
+ public void OnUIOpenAttempt(Entity ent, ref UserOpenActivatableUIAttemptEvent args)
+ {
+ // first, check if we're buckled to something, and if we are, return
+ if (TryComp(ent, out var buckle) && buckle.Buckled)
+ return;
+
+ // next, check if we're in the air. if we are, return
+ if (TryComp(ent, out var physics) && physics.BodyStatus != BodyStatus.OnGround)
+ return;
+
+ // next, check if we're weightless. you get the idea
+ if (TryComp(ent, out var gravityAffected) && _gravity.IsWeightless((ent.Owner, gravityAffected)))
+ return;
+
+ // finally, check if we're on a table.
+ if (TryComp(ent, out var climbing) && climbing.IsClimbing)
+ return;
+
+ // finally, if the target entity is on the whitelist, return if true
+ if (_whitelist.IsWhitelistPass(ent.Comp.Whitelist, args.Target))
+ return;
+
+ // if the target entity is on the blacklist or no blacklist is defined, cancel the event
+ if (_whitelist.IsWhitelistPassOrNull(ent.Comp.Blacklist, args.Target))
+ args.Cancel();
+
+ // if the event has been cancelled and there is popup text, popup
+ if (args.Cancelled && ent.Comp.PopupText != null && _net.IsClient && _timing.IsFirstTimePredicted)
+ _popup.PopupEntity(Loc.GetString(ent.Comp.PopupText), ent, ent);
+ }
+}
diff --git a/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_ask.ogg b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_ask.ogg
new file mode 100644
index 00000000000..f394430cf6f
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_ask.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_chitter.ogg b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_chitter.ogg
new file mode 100644
index 00000000000..e3f43cddca1
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_chitter.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_cry.ogg b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_cry.ogg
new file mode 100644
index 00000000000..92b0250b562
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_cry.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_deathgasp.ogg b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_deathgasp.ogg
new file mode 100644
index 00000000000..16069ce7a8f
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_deathgasp.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_exclaim.ogg b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_exclaim.ogg
new file mode 100644
index 00000000000..69471b4db5c
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_exclaim.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_laugh.ogg b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_laugh.ogg
new file mode 100644
index 00000000000..6f7fcc1d62f
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_laugh.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_say.ogg b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_say.ogg
new file mode 100644
index 00000000000..531ca041390
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_say.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_scream.ogg b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_scream.ogg
new file mode 100644
index 00000000000..66989645ac9
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Allulalo/allulalo_scream.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Allulalo/attributions.txt b/Resources/Audio/_MACRO/Voice/Allulalo/attributions.txt
new file mode 100644
index 00000000000..a4ee739aaf9
--- /dev/null
+++ b/Resources/Audio/_MACRO/Voice/Allulalo/attributions.txt
@@ -0,0 +1,9 @@
+211123 Red-tailed Hawk call, pretty close, noisy roof, Toronto 10am.wav by TRP -- https://freesound.org/s/616995/ -- License: Creative Commons 0
+
+Utahraptor Hiss by NaturesTemper -- https://freesound.org/s/622809/ -- License: Creative Commons 0
+
+RaptorintheKitchen.wav by Nerdwizard78 -- https://freesound.org/s/643927/ -- License: Creative Commons 0
+
+raptorshreak by Nerdwizard78 -- https://freesound.org/s/643850/ -- License: Creative Commons 0
+
+Sumatran laughingthrush (Garrulax bicolor) by Breviceps -- https://freesound.org/s/535813/ -- License: Creative Commons 0
\ No newline at end of file
diff --git a/Resources/Audio/_MACRO/Voice/Vox/attributions.yml b/Resources/Audio/_MACRO/Voice/Vox/attributions.yml
new file mode 100644
index 00000000000..ff63b2e5f99
--- /dev/null
+++ b/Resources/Audio/_MACRO/Voice/Vox/attributions.yml
@@ -0,0 +1,34 @@
+- files: ["voxchitter1.ogg"]
+ license: "Custom"
+ copyright: "Recorded by June Hunter Images; modified by AvianMaiden."
+ source: "https://www.youtube.com/watch?v=8xybFI2Q-No"
+
+- files: ["voxchitter2.ogg"]
+ license: "CC-BY-3.0"
+ copyright: "AlexTriceratops123, mixed to mono by DinnerCalzone (github)"
+ source: "https://web.archive.org/web/20200223000457/https://www.youtube.com/watch?v=uA5yGyB_z5U"
+
+- files: ["voxcoo1.ogg"]
+ license: "Custom"
+ copyright: "Recorded by lulzBrownie; modified by AvianMaiden."
+ source: "https://www.youtube.com/watch?v=-qS77R0Y1K8"
+
+- files: ["voxcoo2.ogg"]
+ license: "Custom"
+ copyright: "Recorded by Critter Cam; modified by AvianMaiden."
+ source: "https://www.youtube.com/watch?v=AOZmkZ72ISI"
+
+- files: ["voxcry.ogg"]
+ license: "Custom"
+ copyright: "Recorded by Wil Hershberger; modified by AvianMaiden."
+ source: "https://macaulaylibrary.org/asset/100707"
+
+- files: ["voxhiss.ogg"]
+ license: "Custom"
+ copyright: "Recorded by John Naran; modified by AvianMaiden."
+ source: "https://www.youtube.com/watch?v=ETS5NGOankI"
+
+- files: ["voxgasp1.ogg", "voxgasp2.ogg", "voxgasp3.ogg"]
+ license: "Custom"
+ copyright: "Recorded by Lance Benner; modified by AvianMaiden."
+ source: "https://macaulaylibrary.org/asset/25670251"
\ No newline at end of file
diff --git a/Resources/Audio/_MACRO/Voice/Vox/voxchitter1.ogg b/Resources/Audio/_MACRO/Voice/Vox/voxchitter1.ogg
new file mode 100644
index 00000000000..9683b8994c8
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Vox/voxchitter1.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Vox/voxchitter2.ogg b/Resources/Audio/_MACRO/Voice/Vox/voxchitter2.ogg
new file mode 100644
index 00000000000..5bc7a1ef70f
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Vox/voxchitter2.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Vox/voxcoo1.ogg b/Resources/Audio/_MACRO/Voice/Vox/voxcoo1.ogg
new file mode 100644
index 00000000000..785df668fd3
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Vox/voxcoo1.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Vox/voxcoo2.ogg b/Resources/Audio/_MACRO/Voice/Vox/voxcoo2.ogg
new file mode 100644
index 00000000000..e70062e1015
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Vox/voxcoo2.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Vox/voxcoo3.ogg b/Resources/Audio/_MACRO/Voice/Vox/voxcoo3.ogg
new file mode 100644
index 00000000000..14041338ba8
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Vox/voxcoo3.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Vox/voxcry.ogg b/Resources/Audio/_MACRO/Voice/Vox/voxcry.ogg
new file mode 100644
index 00000000000..14041338ba8
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Vox/voxcry.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Vox/voxgasp1.ogg b/Resources/Audio/_MACRO/Voice/Vox/voxgasp1.ogg
new file mode 100644
index 00000000000..629f3c95a08
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Vox/voxgasp1.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Vox/voxgasp2.ogg b/Resources/Audio/_MACRO/Voice/Vox/voxgasp2.ogg
new file mode 100644
index 00000000000..e5d07b24fea
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Vox/voxgasp2.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Vox/voxgasp3.ogg b/Resources/Audio/_MACRO/Voice/Vox/voxgasp3.ogg
new file mode 100644
index 00000000000..e74a7afbf2e
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Vox/voxgasp3.ogg differ
diff --git a/Resources/Audio/_MACRO/Voice/Vox/voxhiss.ogg b/Resources/Audio/_MACRO/Voice/Vox/voxhiss.ogg
new file mode 100644
index 00000000000..093a211f0a6
Binary files /dev/null and b/Resources/Audio/_MACRO/Voice/Vox/voxhiss.ogg differ
diff --git a/Resources/Locale/en-US/_MACRO/chat/chat-managers.ftl b/Resources/Locale/en-US/_MACRO/chat/chat-managers.ftl
new file mode 100644
index 00000000000..15508ee1ade
--- /dev/null
+++ b/Resources/Locale/en-US/_MACRO/chat/chat-managers.ftl
@@ -0,0 +1,5 @@
+chat-speech-verb-name-allulalo = Allulalo
+chat-speech-verb-allulalo-1 = whistles
+chat-speech-verb-allulalo-2 = clicks
+chat-speech-verb-allulalo-3 = chitters
+chat-speech-verb-allulalo-4 = knocks
diff --git a/Resources/Locale/en-US/_MACRO/datasets/names/allulalo.ftl b/Resources/Locale/en-US/_MACRO/datasets/names/allulalo.ftl
new file mode 100644
index 00000000000..3fe3331c6f7
--- /dev/null
+++ b/Resources/Locale/en-US/_MACRO/datasets/names/allulalo.ftl
@@ -0,0 +1,42 @@
+names-allulalo-first-1 = Lepti
+names-allulalo-first-2 = Bronto
+names-allulalo-first-3 = Apato
+names-allulalo-first-4 = Cera
+names-allulalo-first-5 = Canorus
+names-allulalo-first-6 = Luro
+names-allulalo-first-7 = Mimus
+names-allulalo-first-8 = Nycho
+names-allulalo-first-9 = Velox
+names-allulalo-first-10 = Affinis
+names-allulalo-first-11 = Alatus
+names-allulalo-first-12 = Amabilis
+names-allulalo-first-13 = Brachy
+names-allulalo-first-14 = Communis
+names-allulalo-first-15 = Deino
+names-allulalo-first-16 = Dulcis
+names-allulalo-first-17 = Erio
+names-allulalo-first-18 = Garrulus
+names-allulalo-first-19 = Halio
+names-allulalo-first-20 = Haplo
+names-allulalo-first-21 = Cursor
+
+names-allulalo-last-1 = Inin-Sada
+names-allulalo-last-2 = Aono-ni
+names-allulalo-last-3 = Nana-Sana
+names-allulalo-last-4 = Ourn-far
+names-allulalo-last-5 = Ran-ran
+names-allulalo-last-6 = Nera-Ina
+names-allulalo-last-7 = Dyan-kata
+names-allulalo-last-8 = Beca-howl
+names-allulalo-last-9 = Xena-tasa
+names-allulalo-last-10 = Lopi-den
+names-allulalo-last-11 = Colo-pota
+names-allulalo-last-12 = Valo-dexa
+names-allulalo-last-13 = Jama-valt
+names-allulalo-last-14 = Mera-ban
+names-allulalo-last-15 = Loga-nab
+names-allulalo-last-16 = Quana-bua
+names-allulalo-last-17 = Pota-pota
+names-allulalo-last-18 = Hera-Nofa
+names-allulalo-last-19 = Noro-Mon
+names-allulalo-last-20 = Sepa-dex
diff --git a/Resources/Locale/en-US/_MACRO/flavors/flavor-profiles.ftl b/Resources/Locale/en-US/_MACRO/flavors/flavor-profiles.ftl
new file mode 100644
index 00000000000..f64a358eb03
--- /dev/null
+++ b/Resources/Locale/en-US/_MACRO/flavors/flavor-profiles.ftl
@@ -0,0 +1 @@
+flavor-complex-allulalo = like hand sanitizer
diff --git a/Resources/Locale/en-US/_MACRO/markings/allulalo.ftl b/Resources/Locale/en-US/_MACRO/markings/allulalo.ftl
new file mode 100644
index 00000000000..021c723655e
--- /dev/null
+++ b/Resources/Locale/en-US/_MACRO/markings/allulalo.ftl
@@ -0,0 +1,146 @@
+# Chest
+
+marking-AllulaloUnderbelly = Underbelly
+marking-AllulaloUnderbelly-allulaloChestUnderbelly = Underbelly
+
+marking-AllulaloChestHeartMonitor = Heart Monitor
+marking-AllulaloChestHeartMonitor-allulaloChestHeartMonitor = Heart monitor
+
+# Head
+
+marking-AllulaloHeadUnderbelly = Chin
+marking-AllulaloHeadUnderbelly-allulaloHeadUnderbelly = Chin
+
+marking-AllulaloHeadNeckFluff = Neck Plumage
+marking-AllulaloHeadNeckFluff-allulaloHeadNeckFluff = Plumage
+
+marking-AllulaloHeadSpikes = Head Spikes
+marking-AllulaloHeadSpikes-allulaloHeadSpikes = Head spikes
+
+marking-AllulaloHeadNeckPlumageOutrageous = Neck Plumage (Outrageous)
+marking-AllulaloHeadNeckPlumageOutrageous-allulaloHeadNeckPlumageOutrageous = Plumage
+
+# Snout
+
+# Eyes
+marking-AllulaloEyesDefault = Eyes (Default)
+marking-AllulaloEyesDefault-allulaloEyesDefault = eyes
+
+marking-AllulaloEyesHeterochromia = Eyes (Heterochromia)
+marking-AllulaloEyesHeterochromia-allulaloEyesDefaultLeft = Left eye
+marking-AllulaloEyesHeterochromia-allulaloEyesDefaultRight = Right eye
+
+marking-AllulaloEyesUnshaded = Eyes (Glowing)
+marking-AllulaloEyesUnshaded-allulaloEyesUnshadedLeft = Left eye
+marking-AllulaloEyesUnshaded-allulaloEyesUnshadedRight = Right eye
+
+# RArm
+
+marking-AllulaloWingsDefaultRight = Default Wings
+marking-AllulaloWingsDefaultRight-allulaloArmDefaultRight = Wing
+
+marking-AllulaloWingsSplitRight = Split Wings
+marking-AllulaloWingsSplitRight-allulaloArmSplit1 = Lower feathers
+marking-AllulaloWingsSplitRight-allulaloArmSplit2 = Upper feathers
+
+marking-AllulaloWingsOwlRight = Diving Wings
+marking-AllulaloWingsOwlRight-allulaloArmOwl1 = Middle feathers
+marking-AllulaloWingsOwlRight-allulaloArmOwl2 = Pattern feathers
+marking-AllulaloWingsOwlRight-allulaloArmOwl3 = Flight feathers
+
+# LArm
+
+marking-AllulaloWingsDefaultLeft = Default Wings
+marking-AllulaloWingsDefaultLeft-allulaloArmDefaultLeft = Wing
+
+marking-AllulaloWingsSplitLeft = Split Wings
+marking-AllulaloWingsSplitLeft-allulaloArmSplit1 = Lower feathers
+marking-AllulaloWingsSplitLeft-allulaloArmSplit2 = Upper feathers
+
+marking-AllulaloWingsOwlLeft = Diving Wings
+marking-AllulaloWingsOwlLeft-allulaloArmOwl1 = Middle feathers
+marking-AllulaloWingsOwlLeft-allulaloArmOwl2 = Pattern feathers
+marking-AllulaloWingsOwlLeft-allulaloArmOwl3 = Flight feathers
+
+# RLeg
+
+# LLeg
+
+marking-AllulaloLegUnderbellyDefaultLeft= Underbelly
+marking-AllulaloLegUnderbellyDefaultLeft-allulaloLegUnderbellyDefaultLeft = left leg underbelly
+
+# RLeg
+
+marking-AllulaloLegUnderbellyDefaultRight= Underbelly
+marking-AllulaloLegUnderbellyDefaultRight-allulaloLegUnderbellyDefaultRight = right leg underbelly
+
+# UndergarmentBottom
+
+# UndergarmentTop
+
+# LFoot
+
+marking-AllulaloLegPlumageLeft= Excessive Feathers
+marking-AllulaloLegPlumageLeft-allulaloLegPlumage = plumage
+
+# RFoot
+
+marking-AllulaloLegPlumageRight= Excessive Feathers
+marking-AllulaloLegPlumageRight-allulaloLegPlumage = plumage
+
+# LHand
+
+# RHand
+
+# FacialHair
+
+# Hair
+
+# HeadSide
+
+# HeadTop
+
+marking-AllulaloHeadTopHorn = Horn
+marking-AllulaloHeadTopHorn-allulaloHeadTopHorn = Horn
+
+marking-AllulaloHeadTopFeathers = Fancy Feathers
+marking-AllulaloHeadTopFeathers-allulaloHeadTopFeathers = Feathers
+
+marking-AllulaloHeadTopCurvedHorns = Curved Horns
+marking-AllulaloHeadTopCurvedHorns-allulaloHeadTopCurvedHorns = Horns
+
+marking-AllulaloHeadTopSweptHorns = Swept horns
+marking-AllulaloHeadTopSweptHorns-allulaloHeadTopSweptHorns = Horns
+
+marking-AllulaloHeadTopStubHorns = Stub Horns
+marking-AllulaloHeadTopStubHorns-allulaloHeadTopStubHorns = Horns
+
+marking-AllulaloHeadTopPlumage1 = Plumage (Bold)
+marking-AllulaloHeadTopPlumage1-allulaloHeadTopPlumage1 = feathers
+
+marking-AllulaloHeadTopPlumage2 = Plumage (Brash)
+marking-AllulaloHeadTopPlumage2-allulaloHeadTopPlumage2 = feathers
+
+# Tail
+
+marking-AllulaloTailDefault = Tail (default)
+marking-AllulaloTailDefault-allulaloTailDefault = Tail
+marking-AllulaloTailDefault-allulaloTailDefault2 = Feathers
+marking-AllulaloTailDefault-allulaloTailDefault3 = Underbelly
+
+marking-AllulaloTailThick = Thick Tail
+marking-AllulaloTailThick-allulaloTailLarge = Tail
+marking-AllulaloTailThick-allulaloTailLarge2 = Underbelly
+marking-AllulaloTailThick-allulaloTailLarge3 = Spikes
+
+marking-AllulaloTailThickSpikes = Thick Tail with Spikes
+marking-AllulaloTailThickSpikes-allulaloTailLarge = Tail
+marking-AllulaloTailThickSpikes-allulaloTailLarge2 = Underbelly
+marking-AllulaloTailThickSpikes-allulaloTailLarge3 = Spikes
+
+marking-AllulaloTailTuft = Tuft Tail
+marking-AllulaloTailTuft-allulaloTailTuft = Tail
+marking-AllulaloTailTuft-allulaloTailTuft2 = Underbelly
+marking-AllulaloTailTuft-allulaloTailTuft3 = Feathers
+
+# RArmExtension
diff --git a/Resources/Locale/en-US/_MACRO/metabolism/metabolizer-types.ftl b/Resources/Locale/en-US/_MACRO/metabolism/metabolizer-types.ftl
new file mode 100644
index 00000000000..dd1359fcd78
--- /dev/null
+++ b/Resources/Locale/en-US/_MACRO/metabolism/metabolizer-types.ftl
@@ -0,0 +1 @@
+metabolizer-type-allulalo = Allulalo
diff --git a/Resources/Locale/en-US/_MACRO/popup/allulalo.ftl b/Resources/Locale/en-US/_MACRO/popup/allulalo.ftl
new file mode 100644
index 00000000000..9c30759c0c7
--- /dev/null
+++ b/Resources/Locale/en-US/_MACRO/popup/allulalo.ftl
@@ -0,0 +1 @@
+unable-to-wield-cant-do = You can't wield this, it's too big!
diff --git a/Resources/Locale/en-US/_MACRO/reagents/meta/biological.ftl b/Resources/Locale/en-US/_MACRO/reagents/meta/biological.ftl
new file mode 100644
index 00000000000..5cbf579550e
--- /dev/null
+++ b/Resources/Locale/en-US/_MACRO/reagents/meta/biological.ftl
@@ -0,0 +1,2 @@
+reagent-name-bloodallulalo = methylated blood
+reagent-desc-bloodallulalo = An ancient alkylate form of blood. Known to rapidly evaporate if spilled.
diff --git a/Resources/Locale/en-US/_MACRO/reagents/meta/toxins.ftl b/Resources/Locale/en-US/_MACRO/reagents/meta/toxins.ftl
new file mode 100644
index 00000000000..4de306f66f7
--- /dev/null
+++ b/Resources/Locale/en-US/_MACRO/reagents/meta/toxins.ftl
@@ -0,0 +1,2 @@
+reagent-name-ethanotoxin = ethanotoxin
+reagent-desc-ethanotoxin = A medicinal venom from the jaw of an Allulalo. Contains a blood-clotting agent and adreno-stimulants, but your heart wont like it.
diff --git a/Resources/Locale/en-US/_MACRO/species/species.ftl b/Resources/Locale/en-US/_MACRO/species/species.ftl
new file mode 100644
index 00000000000..63e7de0f6f0
--- /dev/null
+++ b/Resources/Locale/en-US/_MACRO/species/species.ftl
@@ -0,0 +1 @@
+species-name-allulalo = Allulalo
diff --git a/Resources/Locale/en-US/_MACRO/too-short-for-ui/too-short-for-ui.ftl b/Resources/Locale/en-US/_MACRO/too-short-for-ui/too-short-for-ui.ftl
new file mode 100644
index 00000000000..d57513b6acd
--- /dev/null
+++ b/Resources/Locale/en-US/_MACRO/too-short-for-ui/too-short-for-ui.ftl
@@ -0,0 +1 @@
+too-short-for-ui-cant-use = You're too short to reach the controls! Try getting up higher.
diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml
index e4c8293fcb3..ed789dbaac5 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml
@@ -91,6 +91,7 @@
# interfaces:
# enum.WiresUiKey.Key:
# type: WiresBoundUserInterface
+ - type: TooShortForUiBlacklist # MACRO
- type: entity
parent: BaseComputer
diff --git a/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml b/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml
index a250df351c5..68489d269bb 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/base_structuremachines.yml
@@ -54,6 +54,7 @@
- type: ExtensionCableReceiver
- type: LightningTarget
priority: 1
+ - type: TooShortForUiBlacklist # MACRO
- type: entity
abstract: true
diff --git a/Resources/Prototypes/Entities/Structures/Machines/holopad.yml b/Resources/Prototypes/Entities/Structures/Machines/holopad.yml
index 5c9c5c21b67..685f277e57b 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/holopad.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/holopad.yml
@@ -107,6 +107,7 @@
node: machineFrame
- !type:DoActsBehavior
acts: ["Destruction"]
+ - type: TooShortForUiWhitelist # MACRO
- type: entity
name: long-range holopad
diff --git a/Resources/Prototypes/Entities/Structures/Power/apc.yml b/Resources/Prototypes/Entities/Structures/Power/apc.yml
index 8ccd311ea35..710b700418f 100644
--- a/Resources/Prototypes/Entities/Structures/Power/apc.yml
+++ b/Resources/Prototypes/Entities/Structures/Power/apc.yml
@@ -156,6 +156,7 @@
guides:
- VoltageNetworks
- Power
+ - type: TooShortForUiBlacklist # MACRO
# APC under construction
- type: entity
diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/base_wallmount.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/base_wallmount.yml
index 3207cee0ea5..3543f57b484 100644
--- a/Resources/Prototypes/Entities/Structures/Wallmounts/base_wallmount.yml
+++ b/Resources/Prototypes/Entities/Structures/Wallmounts/base_wallmount.yml
@@ -57,3 +57,4 @@
- type: ExtensionCableReceiver
- type: LightningTarget
priority: 1
+ - type: TooShortForUiBlacklist # MACRO
diff --git a/Resources/Prototypes/Guidebook/species.yml b/Resources/Prototypes/Guidebook/species.yml
index 9783b23285d..b6b2d53ba27 100644
--- a/Resources/Prototypes/Guidebook/species.yml
+++ b/Resources/Prototypes/Guidebook/species.yml
@@ -1,8 +1,9 @@
- type: guideEntry
id: Species
name: guide-entry-species
- text: "/ServerInfo/Guidebook/Mobs/Species.xml"
+ text: "/ServerInfo/_MACRO/Guidebook/Mobs/Species.xml" #macro - redirected to our directory
children:
+ - Allulalo # macro
- Arachnid
- Diona
- Dwarf
diff --git a/Resources/Prototypes/Voice/speech_emote_sounds.yml b/Resources/Prototypes/Voice/speech_emote_sounds.yml
index a88e19f0a10..158fe648d96 100644
--- a/Resources/Prototypes/Voice/speech_emote_sounds.yml
+++ b/Resources/Prototypes/Voice/speech_emote_sounds.yml
@@ -248,6 +248,10 @@
path: /Audio/Effects/Gasp/vox_gasp.ogg
DefaultDeathgasp:
path: /Audio/Effects/Gasp/vox_DeathGasp.ogg
+ # Macrocosm start
+ Hiss:
+ path: /Audio/_MACRO/Voice/Vox/voxhiss.ogg
+ # Macrocosm end
params:
variation: 0.125
# TODO: We need vox sounds for the other emotes
diff --git a/Resources/Prototypes/_MACRO/Body/Species/allulalo.yml b/Resources/Prototypes/_MACRO/Body/Species/allulalo.yml
new file mode 100644
index 00000000000..83eec6cb1b3
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/Body/Species/allulalo.yml
@@ -0,0 +1,379 @@
+- type: markingsGroup
+ id: Allulalo
+ onlyGroupWhitelisted: true
+ limits:
+ enum.HumanoidVisualLayers.Hair:
+ limit: 1
+ required: false
+ enum.HumanoidVisualLayers.FacialHair:
+ limit: 1
+ required: false
+ enum.HumanoidVisualLayers.Head:
+ limit: 3
+ required: false
+ enum.HumanoidVisualLayers.Eyes:
+ limit: 1
+ required: True
+ default: [ AllulaloEyesDefault ]
+ enum.HumanoidVisualLayers.HeadTop:
+ limit: 1
+ required: false
+ enum.HumanoidVisualLayers.UndergarmentTop:
+ limit: 1
+ required: false
+ enum.HumanoidVisualLayers.Chest:
+ limit: 2
+ required: false
+ enum.HumanoidVisualLayers.Tail:
+ limit: 1
+ required: true
+ default: [ AllulaloTailDefault ]
+ enum.HumanoidVisualLayers.Snout:
+ limit: 1
+ required: false
+ enum.HumanoidVisualLayers.LArm:
+ limit: 1
+ required: true
+ default: [ AllulaloWingsDefaultLeft ]
+ enum.HumanoidVisualLayers.RArm:
+ limit: 1
+ required: true
+ default: [ AllulaloWingsDefaultRight ]
+ enum.HumanoidVisualLayers.LLeg:
+ limit: 1
+ required: false
+ enum.HumanoidVisualLayers.RLeg:
+ limit: 1
+ required: false
+ enum.HumanoidVisualLayers.LFoot:
+ limit: 1
+ required: false
+ enum.HumanoidVisualLayers.RFoot:
+ limit: 1
+ required: false
+
+- type: entity
+ parent: BaseSpeciesAppearance
+ id: AppearanceAllulalo
+ name: allulalo appearance
+ components:
+ - type: Inventory
+ displacements:
+ jumpsuit:
+ sizeMaps:
+ 32:
+ sprite: _MACRO/Mobs/Species/Allulalo/displacement.rsi
+ state: jumpsuit
+ head:
+ sizeMaps:
+ 32:
+ sprite: _MACRO/Mobs/Species/Allulalo/displacement.rsi
+ state: head
+ eyes:
+ sizeMaps:
+ 32:
+ sprite: _MACRO/Mobs/Species/Allulalo/displacement.rsi
+ state: glasses
+ ears:
+ sizeMaps:
+ 32:
+ sprite: _MACRO/Mobs/Species/Allulalo/displacement.rsi
+ state: ears
+ mask:
+ sizeMaps:
+ 32:
+ sprite: _MACRO/Mobs/Species/Allulalo/displacement.rsi
+ state: mask
+ neck:
+ sizeMaps:
+ 32:
+ sprite: _MACRO/Mobs/Species/Allulalo/displacement.rsi
+ state: neck
+ outerClothing:
+ sizeMaps:
+ 32:
+ sprite: _MACRO/Mobs/Species/Allulalo/displacement.rsi
+ state: outerClothing
+ gloves:
+ sizeMaps:
+ 32:
+ sprite: _MACRO/Mobs/Species/Allulalo/displacement.rsi
+ state: hands
+ shoes:
+ sizeMaps:
+ 32:
+ sprite: _MACRO/Mobs/Species/Allulalo/displacement.rsi
+ state: feet
+ belt:
+ sizeMaps:
+ 32:
+ sprite: _MACRO/Mobs/Species/Allulalo/displacement.rsi
+ state: belt
+ back:
+ sizeMaps:
+ 32:
+ sprite: _MACRO/Mobs/Species/Allulalo/displacement.rsi
+ state: back
+ suitstorage:
+ sizeMaps:
+ 32:
+ sprite: _MACRO/Mobs/Species/Allulalo/displacement.rsi
+ state: suitstorage
+ - type: Hands
+ leftHandDisplacement:
+ sizeMaps:
+ 32:
+ sprite: _MACRO/Mobs/Species/Allulalo/displacement.rsi
+ state: hand_l
+ rightHandDisplacement:
+ sizeMaps:
+ 32:
+ sprite: _MACRO/Mobs/Species/Allulalo/displacement.rsi
+ state: hand_l
+ - type: InitialBody
+ organs:
+ Torso: OrganAllulaloTorso
+ Head: OrganAllulaloHead # Hand is here!!!
+ ArmLeft: OrganAllulaloArmLeft
+ ArmRight: OrganAllulaloArmRight
+ HandLeft: OrganAllulaloHandLeft # For visuals only! They can't grip SHIT!
+ HandRight: OrganAllulaloHandRight # For visuals only!
+ LegLeft: OrganAllulaloLegLeft
+ LegRight: OrganAllulaloLegRight
+ FootLeft: OrganAllulaloFootLeft
+ FootRight: OrganAllulaloFootRight
+ Brain: OrganAllulaloBrain
+ Eyes: OrganAllulaloEyes
+ Tongue: OrganAllulaloTongue
+ Appendix: OrganAllulaloAppendix
+ Ears: OrganAllulaloEars
+ Lungs: OrganAllulaloLungs
+ Heart: OrganAllulaloHeart
+ Stomach: OrganAllulaloStomach
+ Liver: OrganAllulaloLiver
+ Kidneys: OrganAllulaloKidneys
+ - type: HumanoidProfile
+ species: Allulalo
+
+- type: entity
+ parent:
+ - AppearanceAllulalo
+ - BaseSpeciesMobOrganic
+ id: MobAllulalo
+ name: Uristia Mc-Hands
+ components:
+ - type: AllulaloAccent
+ - type: TypingIndicator
+ proto: allulalo
+ - type: Vocal
+ emoteSounds: UnisexAllulalo
+ - type: Damageable
+ damageModifierSet: Allulalo #stops them from being oppressive hopefully
+ - type: Bloodstream
+ bloodReferenceSolution:
+ reagents:
+ - ReagentId: BloodAllulalo
+ Quantity: 250 #should be 50 less than the default of 300. theyre small
+ - type: DamageVisuals
+ damageOverlayGroups:
+ Brute:
+ sprite: _MACRO/Mobs/Effects/allulalo_brute_damage.rsi
+ color: "#e5efff"
+ - type: CanEscapeInventory
+ baseResistTime: 1.0 #they break out of grabs FAST
+ - type: TooShortForUI #short fucks
+ blacklist:
+ components:
+ - TooShortForUiBlacklist
+ whitelist:
+ components:
+ - TooShortForUiWhitelist
+ - type: MeleeWeapon #bites you
+ soundHit:
+ collection: AlienClaw
+ angle: 30
+ animation: WeaponArcAllulaloBite
+ damage:
+ types:
+ Piercing: 4
+ - type: SolutionManager
+ solutions:
+ - SolutionVenomAllulalo
+ - type: MeleeChemicalInjector
+ solution: melee
+ - type: StaminaResistance
+ damageCoefficient: 1.25 #takes the disabler/batong hits needed to stun from 4 > 3
+ - type: Butcherable
+ spawned:
+ - id: FoodMeatChicken #this was yesters idea, not mine
+ amount: 5
+ - type: FireVisuals
+ sprite: Mobs/Effects/onfire.rsi
+ normalState: Monkey_burning
+ - type: Tag
+ tags:
+ - VimPilot #fuck it, theyre small enough
+ - DoorBumpOpener
+ - AnomalyHost
+ - CanPilot
+ - FootstepSound
+ - type: Speech
+ speechSounds: Allulalo
+ speechVerb: Allulalo
+ allowedEmotes: ['Chitter', 'Hiss']
+ - type: MovementSpeedModifier # They're so fast they go nyoom
+ baseWalkSpeed: 3
+ baseSprintSpeed: 5
+ - type: UnableToWield
+
+- type: entity
+ id: SolutionVenomAllulalo
+ categories: [ HideSpawnMenu ]
+ components:
+ - type: Solution
+ id: melee
+ solution:
+ reagents:
+ - ReagentId: Ethanotoxin
+ Quantity: 4 #you can bite someone four times. upped from two based on feedback
+ - type: SolutionRegeneration
+ generated:
+ reagents:
+ - ReagentId: Ethanotoxin
+ Quantity: 0.05 #20 second cooldown between bites working full power
+
+- type: entity
+ parent: OrganBase
+ id: OrganAllulalo
+ abstract: true
+ suffix: Allulalo
+
+- type: entity
+ id: OrganAllulaloMetabolizer
+ abstract: true
+ components:
+ - type: Metabolizer
+ metabolizerTypes: [ Allulalo ]
+ updateIntervalMultiplier: 1.5 # This should make them metabolize things twice as fast. I think. This new system is scary.
+
+- type: entity
+ id: OrganAllulaloVisual
+ abstract: true
+ components:
+ - type: VisualOrgan
+ data:
+ sprite: _MACRO/Mobs/Species/Allulalo/parts.rsi
+ - type: VisualOrganMarkings
+ markingData:
+ group: Allulalo
+
+- type: entity
+ parent: [ OrganAllulalo, OrganAllulaloVisual ]
+ id: OrganAllulaloExternal
+ abstract: true
+ components:
+ - type: Sprite
+ sprite: _MACRO/Mobs/Species/Allulalo/parts.rsi
+
+- type: entity
+ parent: OrganAllulalo
+ id: OrganAllulaloInternal
+ abstract: true
+ components:
+ - type: Sprite
+ sprite: Mobs/Species/Human/organs.rsi
+
+- type: entity
+ parent: [ OrganBaseTorso, OrganAllulaloExternal ]
+ id: OrganAllulaloTorso
+
+- type: entity
+ parent: [ OrganBaseHead, OrganAllulaloExternal ]
+ id: OrganAllulaloHead
+ components:
+ - type: HandOrgan
+ handID: left
+ data:
+ location: Left
+
+- type: entity
+ parent: [ OrganBaseArmLeft, OrganAllulaloExternal ]
+ id: OrganAllulaloArmLeft
+
+- type: entity
+ parent: [ OrganBaseArmRight, OrganAllulaloExternal ]
+ id: OrganAllulaloArmRight
+
+- type: entity
+ parent: [ OrganBaseHandLeftInactive, OrganAllulaloExternal ]
+ id: OrganAllulaloHandLeft
+
+- type: entity
+ parent: [ OrganBaseHandRightInactive, OrganAllulaloExternal ]
+ id: OrganAllulaloHandRight
+
+- type: entity
+ parent: [ OrganBaseLegLeft, OrganAllulaloExternal ]
+ id: OrganAllulaloLegLeft
+
+- type: entity
+ parent: [ OrganBaseLegRight, OrganAllulaloExternal ]
+ id: OrganAllulaloLegRight
+
+- type: entity
+ parent: [ OrganBaseFootLeft, OrganAllulaloExternal ]
+ id: OrganAllulaloFootLeft
+
+- type: entity
+ parent: [ OrganBaseFootRight, OrganAllulaloExternal ]
+ id: OrganAllulaloFootRight
+
+- type: entity
+ parent: [ OrganBaseBrain, OrganAllulaloInternal ]
+ id: OrganAllulaloBrain
+
+- type: entity
+ parent: [ OrganBaseEyes, OrganAllulaloInternal, OrganAllulaloExternal ]
+ id: OrganAllulaloEyes
+ components:
+ - type: Sprite
+ layers:
+ - state: eyeball-l
+ - state: eyeball-r
+ - type: VisualOrgan
+ layer: enum.HumanoidVisualLayers.Eyes
+ data:
+ sprite: _MACRO/Mobs/Species/Allulalo/parts.rsi
+ state: eyes
+
+- type: entity
+ parent: [ OrganBaseTongue, OrganAllulaloInternal ]
+ id: OrganAllulaloTongue
+
+- type: entity
+ parent: [ OrganBaseAppendix, OrganAllulaloInternal ]
+ id: OrganAllulaloAppendix
+
+- type: entity
+ parent: [ OrganBaseEars, OrganAllulaloInternal ]
+ id: OrganAllulaloEars
+
+- type: entity
+ parent: [ OrganBaseLungs, OrganAllulaloInternal, OrganHumanMetabolizer ]
+ id: OrganAllulaloLungs
+
+- type: entity
+ parent: [ OrganBaseHeart, OrganAllulaloInternal, OrganAllulaloMetabolizer ]
+ id: OrganAllulaloHeart
+
+- type: entity
+ parent: [ OrganBaseStomach, OrganAllulaloInternal, OrganHumanMetabolizer ]
+ id: OrganAllulaloStomach
+
+- type: entity
+ parent: [ OrganBaseLiver, OrganAllulaloInternal, OrganHumanMetabolizer ]
+ id: OrganAllulaloLiver
+
+- type: entity
+ parent: [ OrganBaseKidneys, OrganAllulaloInternal, OrganHumanMetabolizer ]
+ id: OrganAllulaloKidneys
\ No newline at end of file
diff --git a/Resources/Prototypes/_MACRO/Body/base_organs.yml b/Resources/Prototypes/_MACRO/Body/base_organs.yml
new file mode 100644
index 00000000000..32ee4f1ce57
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/Body/base_organs.yml
@@ -0,0 +1,37 @@
+- type: entity
+ parent: OrganBase
+ id: OrganBaseHandLeftInactive # Allows you to define a left hand that works visually only
+ name: left hand
+ abstract: true
+ components:
+ - type: Organ
+ category: HandLeft
+ - type: Sprite
+ state: l_hand
+ - type: VisualOrgan
+ layer: enum.HumanoidVisualLayers.LHand
+ data:
+ state: l_hand
+ - type: VisualOrganMarkings
+ markingData:
+ layers:
+ - LHand
+
+- type: entity
+ parent: OrganBase
+ id: OrganBaseHandRightInactive # Allows you to define a left hand that works visually only
+ name: right hand
+ abstract: true
+ components:
+ - type: Organ
+ category: HandRight
+ - type: Sprite
+ state: r_hand
+ - type: VisualOrgan
+ layer: enum.HumanoidVisualLayers.RHand
+ data:
+ state: r_hand
+ - type: VisualOrganMarkings
+ markingData:
+ layers:
+ - RHand
diff --git a/Resources/Prototypes/_MACRO/Body/organ_categories.yml b/Resources/Prototypes/_MACRO/Body/organ_categories.yml
new file mode 100644
index 00000000000..b1a13d02ff5
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/Body/organ_categories.yml
@@ -0,0 +1,2 @@
+- type: organCategory
+ id: Beak # A separate thing from the head, unlike a snout. Totally.
diff --git a/Resources/Prototypes/_MACRO/Chemistry/metabolizer_types.yml b/Resources/Prototypes/_MACRO/Chemistry/metabolizer_types.yml
new file mode 100644
index 00000000000..5aa66602dbd
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/Chemistry/metabolizer_types.yml
@@ -0,0 +1,3 @@
+- type: metabolizerType
+ id: Allulalo
+ name: metabolizer-type-allulalo
diff --git a/Resources/Prototypes/_MACRO/Damage/allulalo.yml b/Resources/Prototypes/_MACRO/Damage/allulalo.yml
new file mode 100644
index 00000000000..d3979f041d5
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/Damage/allulalo.yml
@@ -0,0 +1,6 @@
+- type: damageModifierSet
+ id: Allulalo
+ coefficients:
+ Blunt: 1.15
+ Slash: 1.15
+ Piercing: 1.15
diff --git a/Resources/Prototypes/_MACRO/Datasets/Names/allulalo.yml b/Resources/Prototypes/_MACRO/Datasets/Names/allulalo.yml
new file mode 100644
index 00000000000..d826398036c
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/Datasets/Names/allulalo.yml
@@ -0,0 +1,11 @@
+- type: localizedDataset
+ id: AllulaloFirstNames
+ values:
+ prefix: names-allulalo-first-
+ count: 21
+
+- type: localizedDataset
+ id: AllulaloLastNames
+ values:
+ prefix: names-allulalo-last-
+ count: 20
diff --git a/Resources/Prototypes/_MACRO/Entities/Effects/weapon_arc.yml b/Resources/Prototypes/_MACRO/Entities/Effects/weapon_arc.yml
new file mode 100644
index 00000000000..2fa3cd0660f
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/Entities/Effects/weapon_arc.yml
@@ -0,0 +1,12 @@
+- type: entity
+ id: WeaponArcAllulaloBite
+ parent: WeaponArcStatic
+ categories: [ HideSpawnMenu ]
+ components:
+ - type: WeaponArcVisuals
+ fadeOut: false
+ - type: Sprite
+ sprite: _MACRO/Effects/arcs.rsi
+ state: allulalo_bite
+ - type: TimedDespawn
+ lifetime: 0.299
diff --git a/Resources/Prototypes/_MACRO/Entities/Mobs/Customization/Markings/allulalo.yml b/Resources/Prototypes/_MACRO/Entities/Mobs/Customization/Markings/allulalo.yml
new file mode 100644
index 00000000000..a6dde70d728
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/Entities/Mobs/Customization/Markings/allulalo.yml
@@ -0,0 +1,324 @@
+# Chest
+
+- type: marking
+ id: AllulaloUnderbelly
+ bodyPart: Chest
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/chest.rsi
+ state: allulaloChestUnderbelly
+
+- type: marking
+ id: AllulaloChestHeartMonitor
+ bodyPart: Chest
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/chest.rsi
+ state: allulaloChestHeartMonitor
+ #shader: unshaded
+
+# Head
+
+- type: marking
+ id: AllulaloHeadUnderbelly
+ bodyPart: Head
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/head.rsi
+ state: allulaloHeadUnderbelly
+
+- type: marking
+ id: AllulaloHeadSpikes
+ bodyPart: Head
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/head.rsi
+ state: allulaloHeadSpikes
+
+# Snout
+
+# Eyes
+
+- type: marking
+ id: AllulaloEyesDefault
+ bodyPart: Eyes
+ groupWhitelist: [ Allulalo ]
+ coloring:
+ default:
+ type:
+ !type:EyeColoring
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/eyes.rsi
+ state: allulaloEyesDefault
+ forcedColoring: true
+
+- type: marking
+ id: AllulaloEyesHeterochromia
+ bodyPart: Eyes
+ groupWhitelist: [ Allulalo ]
+ coloring:
+ default:
+ type:
+ !type:EyeColoring
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/eyes.rsi
+ state: allulaloEyesDefaultLeft
+ - sprite: _MACRO/Mobs/Customization/Allulalo/eyes.rsi
+ state: allulaloEyesDefaultRight
+
+- type: marking
+ id: AllulaloEyesUnshaded
+ bodyPart: Eyes
+ groupWhitelist: [ Allulalo ]
+ coloring:
+ default:
+ type:
+ !type:EyeColoring
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/eyes.rsi
+ state: allulaloEyesUnshadedLeft
+ - sprite: _MACRO/Mobs/Customization/Allulalo/eyes.rsi
+ state: allulaloEyesUnshadedRight
+ #shader: unshaded
+
+# RArm
+
+- type: marking
+ id: AllulaloWingsDefaultRight
+ bodyPart: RArm
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/rarm.rsi
+ state: allulaloArmDefaultRight
+
+- type: marking
+ id: AllulaloWingsSplitRight
+ bodyPart: RArm
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/rarm.rsi
+ state: allulaloArmSplit1
+ - sprite: _MACRO/Mobs/Customization/Allulalo/rarm.rsi
+ state: allulaloArmSplit2
+
+- type: marking
+ id: AllulaloWingsOwlRight
+ bodyPart: RArm
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/rarm.rsi
+ state: allulaloArmOwl1
+ - sprite: _MACRO/Mobs/Customization/Allulalo/rarm.rsi
+ state: allulaloArmOwl2
+ - sprite: _MACRO/Mobs/Customization/Allulalo/rarm.rsi
+ state: allulaloArmOwl3
+
+# LArm
+
+- type: marking
+ id: AllulaloWingsDefaultLeft
+ bodyPart: LArm
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/larm.rsi
+ state: allulaloArmDefaultLeft
+
+- type: marking
+ id: AllulaloWingsSplitLeft
+ bodyPart: LArm
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/larm.rsi
+ state: allulaloArmSplit1
+ - sprite: _MACRO/Mobs/Customization/Allulalo/larm.rsi
+ state: allulaloArmSplit2
+
+- type: marking
+ id: AllulaloWingsOwlLeft
+ bodyPart: LArm
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/larm.rsi
+ state: allulaloArmOwl1
+ - sprite: _MACRO/Mobs/Customization/Allulalo/larm.rsi
+ state: allulaloArmOwl2
+ - sprite: _MACRO/Mobs/Customization/Allulalo/larm.rsi
+ state: allulaloArmOwl3
+
+# RLeg
+
+- type: marking
+ id: AllulaloLegUnderbellyDefaultRight
+ bodyPart: RLeg
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/rleg.rsi
+ state: allulaloLegUnderbellyDefaultRight
+
+# LLeg
+
+- type: marking
+ id: AllulaloLegUnderbellyDefaultLeft
+ bodyPart: LLeg
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/lleg.rsi
+ state: allulaloLegUnderbellyDefaultLeft
+
+# UndergarmentBottom
+
+# UndergarmentTop
+
+# LFoot
+
+- type: marking
+ id: AllulaloLegPlumageLeft
+ bodyPart: LFoot #dont look at me
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/lleg.rsi
+ state: allulaloLegPlumage
+
+# RFoot
+
+- type: marking
+ id: AllulaloLegPlumageRight
+ bodyPart: RFoot
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/rleg.rsi
+ state: allulaloLegPlumage
+
+# LHand
+
+# RHand
+
+# FacialHair
+
+- type: marking
+ id: AllulaloHeadNeckFluff
+ bodyPart: FacialHair
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/head.rsi
+ state: allulaloHeadNeckFluff
+
+#- type: marking #I think this one might be too much
+# id: AllulaloHeadNeckPlumageOutrageous
+# bodyPart: Tail #layering sucks
+# groupWhitelist: [ Allulalo ]
+# sprites:
+# - sprite: _MACRO/Mobs/Customization/Allulalo/head.rsi
+# state: allulaloHeadNeckPlumageOutrageous
+
+# Hair
+
+# HeadSide
+
+# HeadTop
+
+- type: marking
+ id: AllulaloHeadTopHorn
+ bodyPart: HeadTop
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/headtop.rsi
+ state: allulaloHeadTopHorn
+
+- type: marking
+ id: AllulaloHeadTopFeathers
+ bodyPart: HeadTop
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/headtop.rsi
+ state: allulaloHeadTopFeathers
+
+- type: marking
+ id: AllulaloHeadTopCurvedHorns
+ bodyPart: HeadTop
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/headtop.rsi
+ state: allulaloHeadTopCurvedHorns
+
+- type: marking
+ id: AllulaloHeadTopSweptHorns
+ bodyPart: HeadTop
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/headtop.rsi
+ state: allulaloHeadTopSweptHorns
+
+- type: marking
+ id: AllulaloHeadTopStubHorns
+ bodyPart: HeadTop
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/headtop.rsi
+ state: allulaloHeadTopStubHorns
+
+- type: marking
+ id: AllulaloHeadTopPlumage1
+ bodyPart: HeadTop
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/headtop.rsi
+ state: allulaloHeadTopPlumage1
+
+- type: marking
+ id: AllulaloHeadTopPlumage2
+ bodyPart: HeadTop
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/headtop.rsi
+ state: allulaloHeadTopPlumage2
+
+# Tail
+
+- type: marking
+ id: AllulaloTailDefault
+ bodyPart: Tail
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/tail.rsi
+ state: allulaloTailDefault
+ - sprite: _MACRO/Mobs/Customization/Allulalo/tail.rsi
+ state: allulaloTailDefault2
+ - sprite: _MACRO/Mobs/Customization/Allulalo/tail.rsi
+ state: allulaloTailDefault3
+
+- type: marking
+ id: AllulaloTailThick
+ bodyPart: Tail
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/tail.rsi
+ state: allulaloTailLarge
+ - sprite: _MACRO/Mobs/Customization/Allulalo/tail.rsi
+ state: allulaloTailLarge2
+
+- type: marking
+ id: AllulaloTailThickSpikes
+ bodyPart: Tail
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/tail.rsi
+ state: allulaloTailLarge
+ - sprite: _MACRO/Mobs/Customization/Allulalo/tail.rsi
+ state: allulaloTailLarge2
+ - sprite: _MACRO/Mobs/Customization/Allulalo/tail.rsi
+ state: allulaloTailLarge3
+
+- type: marking
+ id: AllulaloTailTuft
+ bodyPart: Tail
+ groupWhitelist: [ Allulalo ]
+ sprites:
+ - sprite: _MACRO/Mobs/Customization/Allulalo/tail.rsi
+ state: allulaloTailTuft
+ - sprite: _MACRO/Mobs/Customization/Allulalo/tail.rsi
+ state: allulaloTailTuft2
+ - sprite: _MACRO/Mobs/Customization/Allulalo/tail.rsi
+ state: allulaloTailTuft3
+
+# RArmExtension
diff --git a/Resources/Prototypes/_MACRO/Flavors/flavors.yml b/Resources/Prototypes/_MACRO/Flavors/flavors.yml
new file mode 100644
index 00000000000..ca5a4693c89
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/Flavors/flavors.yml
@@ -0,0 +1,4 @@
+- type: flavor
+ id: allulalo
+ flavorType: Complex
+ description: flavor-complex-allulalo
diff --git a/Resources/Prototypes/_MACRO/Guidebook/species.yml b/Resources/Prototypes/_MACRO/Guidebook/species.yml
new file mode 100644
index 00000000000..75d34f676c8
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/Guidebook/species.yml
@@ -0,0 +1,6 @@
+# MACROCOSM - If you enable extra species, uncomment their related guideEntry prototype here to add them to the guidebook for your players!
+
+- type: guideEntry
+ id: Allulalo
+ name: Allulalo
+ text: "/ServerInfo/_MACRO/Guidebook/Mobs/Allulalo.xml"
diff --git a/Resources/Prototypes/_MACRO/Reagents/biological.yml b/Resources/Prototypes/_MACRO/Reagents/biological.yml
new file mode 100644
index 00000000000..aaf6a766c3d
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/Reagents/biological.yml
@@ -0,0 +1,56 @@
+- type: reagent
+ id: BloodAllulalo
+ name: reagent-name-bloodallulalo
+ group: Biological
+ desc: reagent-desc-bloodallulalo
+ physicalDesc: reagent-physical-desc-thin
+ flavor: allulalo
+ color: "#c1c7d3"
+ evaporationSpeed: 0.3 #same as water
+ metabolisms: #have to redefine from basealcohol otherwise its slippery which is a hell of a can of worms for a species
+ Metabolites:
+ metabolismRate: 0.05
+ effects:
+ - !type:HealthChange
+ conditions:
+ - !type:ReagentCondition
+ reagent: Ethanol
+ min: 15
+ - !type:MetabolizerTypeCondition
+ type: [ Dwarf ]
+ inverted: true
+ damage:
+ types:
+ Poison: 0.1
+ # dwarves take less toxin damage and heal a marginal amount of brute
+ - !type:HealthChange
+ conditions:
+ - !type:ReagentCondition
+ reagent: Ethanol
+ min: 15
+ - !type:MetabolizerTypeCondition
+ type: [ Dwarf ]
+ damage:
+ types:
+ Poison: 0.02
+ - !type:EvenHealthChange
+ conditions:
+ - !type:ReagentCondition
+ reagent: Ethanol
+ min: 15
+ - !type:MetabolizerTypeCondition
+ type: [ Dwarf ]
+ damage:
+ Brute: -0.1
+ - !type:Vomit
+ probability: 0.04
+ conditions:
+ - !type:ReagentCondition
+ reagent: Ethanol
+ min: 12
+ # dwarves immune to vomiting from alcohol
+ - !type:MetabolizerTypeCondition
+ type: [ Dwarf ]
+ inverted: true
+ - !type:Drunk
+ boozePower: 2
diff --git a/Resources/Prototypes/_MACRO/Reagents/toxins.yml b/Resources/Prototypes/_MACRO/Reagents/toxins.yml
new file mode 100644
index 00000000000..cb05cf25257
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/Reagents/toxins.yml
@@ -0,0 +1,32 @@
+- type: reagent
+ id: Ethanotoxin #allulalo bite toxin. does poison damage but injects adrenaline, reduces bleeding and reduces stun time
+ name: reagent-name-ethanotoxin
+ group: Toxins
+ desc: reagent-desc-ethanotoxin
+ flavor: sour
+ color: "#cbbfe6"
+ physicalDesc: reagent-physical-desc-acrid
+ metabolisms:
+ # Should you be injecting this in a friendly? maybe
+ Metabolites:
+ effects:
+ - !type:HealthChange
+ damage:
+ types:
+ Poison: 1
+ - !type:ModifyBleed
+ amount: -2
+ - !type:AdjustReagent
+ reagent: Ethanol
+ amount: 0.1
+ - !type:GenericStatusEffect
+ key: Adrenaline # This is half-ish strength epi
+ component: IgnoreSlowOnDamage
+ time: 1.5
+ - !type:ModifyStatusEffect
+ effectProto: StatusEffectStunned
+ time: 0.5
+ type: Remove
+ - !type:ModifyKnockdown
+ time: 0.5
+ type: Remove
diff --git a/Resources/Prototypes/_MACRO/SoundCollections/disease.yml b/Resources/Prototypes/_MACRO/SoundCollections/disease.yml
new file mode 100644
index 00000000000..082958bcf3d
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/SoundCollections/disease.yml
@@ -0,0 +1,5 @@
+- type: soundCollection
+ id: UnisexSneezes
+ files:
+ - /Audio/Voice/Human/male_sneeze_1.ogg
+ - /Audio/Voice/Human/female_sneeze_1.ogg
diff --git a/Resources/Prototypes/_MACRO/Species/allulalo.yml b/Resources/Prototypes/_MACRO/Species/allulalo.yml
new file mode 100644
index 00000000000..25c6a24d15b
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/Species/allulalo.yml
@@ -0,0 +1,30 @@
+- type: species
+ id: Allulalo
+ name: species-name-allulalo
+ roundStart: true
+ prototype: MobAllulalo
+ defaultSkinTone: "#385878"
+ dollPrototype: AppearanceAllulalo
+ skinColoration: Hues
+ maleFirstNames: AllulaloFirstNames
+ femaleFirstNames: AllulaloFirstNames
+ lastNames: AllulaloLastNames
+ sexes:
+ - Male
+ - Female
+ - Unsexed
+
+# Developer Notes
+#
+# Allulalo are a small avian species with alcoholic blood reminiscent of raptors. They lack traditional hands, and instead
+# manipulate items using their beak.
+# The largest drawbacks for playing an Allulalo is the singular hand and the inability to use large machines without
+# buckling themselves or floating (be it moon-boots or lack of gravity).
+# Allulalo can also inject people they bite with a weak toxin up to four times,
+# with a 20 second recharge time (for one bite)
+# Allulalo are naturally faster than other species. It's a hefty balance concern so
+# disable it if you want by commenting out the MovementSpeedModifier component in their prototype.
+# Enabling them is a good idea if you lack avian species (Say, you only have vox enabled), and want another species
+# that introduces gameplay challenges.
+# You might want to keep them disabled in a server that doesn't prioritize non-humanoid species, or one with an abundance of
+# Avian species.
diff --git a/Resources/Prototypes/_MACRO/Voice/Allulalo.yml b/Resources/Prototypes/_MACRO/Voice/Allulalo.yml
new file mode 100644
index 00000000000..6dafa1ee939
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/Voice/Allulalo.yml
@@ -0,0 +1,53 @@
+- type: speechSounds
+ id: Allulalo
+ saySound:
+ path: /Audio/_MACRO/Voice/Allulalo/allulalo_say.ogg
+ askSound:
+ path: /Audio/_MACRO/Voice/Allulalo/allulalo_ask.ogg
+ exclaimSound:
+ path: /Audio/_MACRO/Voice/Allulalo/allulalo_exclaim.ogg
+
+- type: emoteSounds
+ id: UnisexAllulalo
+ params:
+ variation: 0.125
+ sounds:
+ Scream:
+ path: /Audio/_MACRO/Voice/Allulalo/allulalo_scream.ogg
+ Laugh:
+ path: /Audio/_MACRO/Voice/Allulalo/allulalo_laugh.ogg
+ Hiss:
+ path: /Audio/_MACRO/Voice/Vox/voxhiss.ogg
+ params:
+ volume: -5
+ Chitter:
+ path: /Audio/_MACRO/Voice/Allulalo/allulalo_chitter.ogg
+ Sneeze:
+ collection: UnisexSneezes #placeholder
+ Cough:
+ path: /Audio/Voice/Vox/vox_cough.ogg #placeholder
+ Yawn:
+ path: /Audio/_MACRO/Voice/Allulalo/allulalo_say.ogg
+ Honk:
+ collection: BikeHorn
+ Sigh:
+ path: /Audio/_MACRO/Voice/Allulalo/allulalo_say.ogg #placeholder
+ Whistle:
+ collection: Whistles
+ Crying:
+ path: /Audio/_MACRO/Voice/Allulalo/allulalo_cry.ogg
+ Weh:
+ collection: Weh
+ Gasp:
+ path: /Audio/_MACRO/Voice/Allulalo/allulalo_say.ogg
+ DefaultDeathgasp:
+ /Audio/_MACRO/Voice/Allulalo/allulalo_deathgasp.ogg
+
+- type: speechVerb
+ id: Allulalo
+ name: chat-speech-verb-name-allulalo
+ speechVerbStrings:
+ - chat-speech-verb-allulalo-1
+ - chat-speech-verb-allulalo-2
+ - chat-speech-verb-allulalo-3
+ - chat-speech-verb-allulalo-4
diff --git a/Resources/Prototypes/_MACRO/Voice/speech_emotes.yml b/Resources/Prototypes/_MACRO/Voice/speech_emotes.yml
new file mode 100644
index 00000000000..8d7c47b6b69
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/Voice/speech_emotes.yml
@@ -0,0 +1,11 @@
+- type: emote
+ id: Hiss
+ name: chat-emote-name-hiss
+ whitelist:
+ components:
+ - Respirator
+ chatMessages: ["chat-emote-msg-hiss"]
+ chatTriggers:
+ - hiss
+ - hisses
+ - hissed
diff --git a/Resources/Prototypes/_MACRO/typing_indicator.yml b/Resources/Prototypes/_MACRO/typing_indicator.yml
new file mode 100644
index 00000000000..d284fdc11cb
--- /dev/null
+++ b/Resources/Prototypes/_MACRO/typing_indicator.yml
@@ -0,0 +1,6 @@
+- type: typingIndicator
+ id: allulalo
+ spritePath: /Textures/_MACRO/Effects/speech.rsi
+ typingState: allulalo
+ idleState: allulalo-idle
+ offset: -0.45, 0.35
diff --git a/Resources/ServerInfo/_MACRO/Guidebook/Mobs/Allulalo.xml b/Resources/ServerInfo/_MACRO/Guidebook/Mobs/Allulalo.xml
new file mode 100644
index 00000000000..2d819cf63ff
--- /dev/null
+++ b/Resources/ServerInfo/_MACRO/Guidebook/Mobs/Allulalo.xml
@@ -0,0 +1,61 @@
+
+ # Allulalo
+
+
+
+
+
+ [color=red]Caution! This species has several SEVERELY limiting game mechanics and is only recommended for highly experienced players. Some jobs and tasks may be difficult or impossible to perform by yourself with only one hand.[/color]
+
+ Allulalo are a reclusive species of saurians native to the IMP-sector outer nebulae. They are rarely seen, preferring to conceal their cities deep inside asteroid fields and mask their movements with stealth fields or radio jammers. Although investigations into whether they pose a security risk to nearby stations is ongoing, successful agreements have been brokered to enable small-scale contact and occasional employment of Allulalo among Nanotrasen staff.
+
+ Observation records confirm higher land-speeds than traditionally seen among humanoids, but the unusual, pentafurcated beak they use for manipulating in the place of traditional "hands" seems to [color=#ffa500]prevent them from wielding any large weaponry.[/color] Their height also makes them unable to interface with most NT standard devices, and they are frequently seen [color=#ffa500]standing on chairs and tables or using anti-gravity technology to reach the controls.[/color]
+
+
+
+
+
+
+
+ # Biology
+
+ [color=yellow][bold]NOTE:[/bold][/color] Species damage modifiers work largely the same way worn armor does, primarily applying to external, direct sources of damage. Unless explicitly stated, these [color=yellow][bold]do not[/bold][/color] apply to intrinsic sources of damage, such extreme pressure, extreme body temperature, or metabolizing chemicals.
+
+ Allulalo have hollow bones, which results in them taking [color=#ffa500]15% more Blunt, Slash, and Piercing damage[/color]. They are also [color=#ffa500]25% more vulnerable to stuns, and their low body mass causes them to be thrown farther by impacts[/color].
+
+ Allulalo also have hyperactive hearts, which results in them [color=#ffa500]metabolising Medicine, Poisons and Narcotics 50% faster[/color]. Their heart's already-strained musculature also causes speed-increasing reagents to be [color=#ffa500]Significantly less effective.[/color], as well as causing them to burn energy faster and become [color=#ffa500]hungry and thirsty sooner than their peers[/color].
+
+ It is easy to underestimate Allulalo due to these drawbacks, but they have a major strength: [color=#1e90ff]They are incredibly mobile, and can easily outpace most humanoid species[/color].
+
+ Allulalo are also in unique posession of a highly methylated bloodstream. Due to this, [color=#1e90ff]their blood naturally evaporates on its own[/color], as well as making them [color=#1e90ff]remarkably heavyweight drinkers[/color] for their body weight.
+
+ In addition to their methylated blood, their beak saliva contains [color=#1e90ff]small amounts[/color] of the [color=#1e90ff]blood clotting agent and adreno-stimulant ethanotoxin[/color]. Allulalo have been recorded biting eachother in critical situations in order to clot wounds and boost adrenaline, but there appears to be [color=#ffa500]a lengthy delay to the toxin replenishing after repeated use[/color].
+
+
+
+
+
+ # Physical Strength
+
+ Allulalo have naturally lower body mass due to their small stature, and as such have difficulty dragging things larger than themselves.
+
+ As a result of both this and their lack of multiple "hands", Allulalo are uniquely poised to benefit from science research such as [color=#1e90ff]HARMpacks[/color] and [color=#1e90ff]tether guns[/color], and their smaller size [color=#1e90ff]allows them to pilot VIMs[/color].
+
+
+
+
+
+
+
+ ## Allulalo Naming Conventions
+
+ Allulalo names are comprised of two parts. The first half is similar in function to a human's, while the last half is a conjunction of the first syllables of both of their parent's names.
+
+ - [color=#449944]Acceptable:[/color] Halio Hera-Nofa
+ - [color=#449944]Acceptable:[/color] Sadita Ona-Rona
+ - [color=#449944]Acceptable:[/color] Unira Lota-Pota
+ - [color=#994444]Bad:[/color] Waga Baga-Bobo
+ - [color=#994444]Bad:[/color] Pete Pee-Pee
+ - [color=#994444]Bad:[/color] Benry
+
+
diff --git a/Resources/Textures/_MACRO/Effects/arcs.rsi/allulalo_bite.png b/Resources/Textures/_MACRO/Effects/arcs.rsi/allulalo_bite.png
new file mode 100644
index 00000000000..63f0c509a3d
Binary files /dev/null and b/Resources/Textures/_MACRO/Effects/arcs.rsi/allulalo_bite.png differ
diff --git a/Resources/Textures/_MACRO/Effects/arcs.rsi/meta.json b/Resources/Textures/_MACRO/Effects/arcs.rsi/meta.json
new file mode 100644
index 00000000000..b895cdbe5a2
--- /dev/null
+++ b/Resources/Textures/_MACRO/Effects/arcs.rsi/meta.json
@@ -0,0 +1,21 @@
+{
+ "version": 1,
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "license": "CC-BY-SA-3.0",
+ "copyright": "sprited by kipdotnet (github) for Impstation",
+ "states": [
+ {
+ "name": "allulalo_bite",
+ "delays": [
+ [
+ 0.1,
+ 0.1,
+ 0.1
+ ]
+ ]
+ }
+ ]
+}
diff --git a/Resources/Textures/_MACRO/Effects/speech.rsi/allulalo-idle.png b/Resources/Textures/_MACRO/Effects/speech.rsi/allulalo-idle.png
new file mode 100644
index 00000000000..5d15fc62bfb
Binary files /dev/null and b/Resources/Textures/_MACRO/Effects/speech.rsi/allulalo-idle.png differ
diff --git a/Resources/Textures/_MACRO/Effects/speech.rsi/allulalo.png b/Resources/Textures/_MACRO/Effects/speech.rsi/allulalo.png
new file mode 100644
index 00000000000..928b54da274
Binary files /dev/null and b/Resources/Textures/_MACRO/Effects/speech.rsi/allulalo.png differ
diff --git a/Resources/Textures/_MACRO/Effects/speech.rsi/anom.png b/Resources/Textures/_MACRO/Effects/speech.rsi/anom.png
new file mode 100644
index 00000000000..df898994344
Binary files /dev/null and b/Resources/Textures/_MACRO/Effects/speech.rsi/anom.png differ
diff --git a/Resources/Textures/_MACRO/Effects/speech.rsi/anomidle.png b/Resources/Textures/_MACRO/Effects/speech.rsi/anomidle.png
new file mode 100644
index 00000000000..2de3cc24f57
Binary files /dev/null and b/Resources/Textures/_MACRO/Effects/speech.rsi/anomidle.png differ
diff --git a/Resources/Textures/_MACRO/Effects/speech.rsi/apid-idle.png b/Resources/Textures/_MACRO/Effects/speech.rsi/apid-idle.png
new file mode 100644
index 00000000000..4bb35e7a26e
Binary files /dev/null and b/Resources/Textures/_MACRO/Effects/speech.rsi/apid-idle.png differ
diff --git a/Resources/Textures/_MACRO/Effects/speech.rsi/apid.png b/Resources/Textures/_MACRO/Effects/speech.rsi/apid.png
new file mode 100644
index 00000000000..05b6a58d5f5
Binary files /dev/null and b/Resources/Textures/_MACRO/Effects/speech.rsi/apid.png differ
diff --git a/Resources/Textures/_MACRO/Effects/speech.rsi/gray0.png b/Resources/Textures/_MACRO/Effects/speech.rsi/gray0.png
new file mode 100644
index 00000000000..c7d96e9b698
Binary files /dev/null and b/Resources/Textures/_MACRO/Effects/speech.rsi/gray0.png differ
diff --git a/Resources/Textures/_MACRO/Effects/speech.rsi/kode.png b/Resources/Textures/_MACRO/Effects/speech.rsi/kode.png
new file mode 100644
index 00000000000..6bf078f7dd9
Binary files /dev/null and b/Resources/Textures/_MACRO/Effects/speech.rsi/kode.png differ
diff --git a/Resources/Textures/_MACRO/Effects/speech.rsi/meta.json b/Resources/Textures/_MACRO/Effects/speech.rsi/meta.json
new file mode 100644
index 00000000000..5e236859eda
--- /dev/null
+++ b/Resources/Textures/_MACRO/Effects/speech.rsi/meta.json
@@ -0,0 +1,117 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "gray and ungu typing indicators by starlighthowls for impstation, snail typing indicators by widgetbeck for impstation, kodepiia typing indicators by LazyRiverfolk for impstation. anom typing indicators by doop for impstation",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "gray0",
+ "delays": [
+ [
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2
+ ]
+ ]
+ },
+ {
+ "name": "snail",
+ "delays": [
+ [
+ 0.2,
+ 0.3,
+ 0.3,
+ 0.5
+ ]
+ ]
+ },
+ {
+ "name": "ungu",
+ "delays": [
+ [
+ 0.4,
+ 0.4,
+ 0.4,
+ 0.4
+ ]
+ ]
+ },
+ {
+ "name": "anom",
+ "delays": [
+ [
+ 0.2,
+ 0.3,
+ 0.3,
+ 0.5
+ ]
+ ]
+ },
+ {
+ "name": "anomidle",
+ "delays": [
+ [
+ 0.5,
+ 0.6,
+ 0.6,
+ 0.7
+ ]
+ ]
+ },
+ {
+ "name": "kode",
+ "delays": [
+ [
+ 0.2,
+ 0.2,
+ 0.2,
+ 0.2
+ ]
+ ]
+ },
+ {
+ "name": "allulalo",
+ "delays": [
+ [
+ 0.3,
+ 0.3,
+ 0.3,
+ 0.3
+ ]
+ ]
+ },
+ {
+ "name": "allulalo-idle",
+ "delays": [
+ [
+ 1.0,
+ 1.0
+ ]
+ ]
+ },
+ {
+ "name": "apid",
+ "delays": [
+ [
+ 0.3,
+ 0.3,
+ 0.3,
+ 0.3
+ ]
+ ]
+ },
+ {
+ "name": "apid-idle",
+ "delays": [
+ [
+ 0.5,
+ 0.5
+ ]
+ ]
+ }
+ ]
+ }
diff --git a/Resources/Textures/_MACRO/Effects/speech.rsi/snail.png b/Resources/Textures/_MACRO/Effects/speech.rsi/snail.png
new file mode 100644
index 00000000000..14d4cc191e1
Binary files /dev/null and b/Resources/Textures/_MACRO/Effects/speech.rsi/snail.png differ
diff --git a/Resources/Textures/_MACRO/Effects/speech.rsi/ungu.png b/Resources/Textures/_MACRO/Effects/speech.rsi/ungu.png
new file mode 100644
index 00000000000..1abbcd689d1
Binary files /dev/null and b/Resources/Textures/_MACRO/Effects/speech.rsi/ungu.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/chest.rsi/allulaloChestHeartMonitor.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/chest.rsi/allulaloChestHeartMonitor.png
new file mode 100644
index 00000000000..60c1bd5acbe
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/chest.rsi/allulaloChestHeartMonitor.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/chest.rsi/allulaloChestUnderbelly.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/chest.rsi/allulaloChestUnderbelly.png
new file mode 100644
index 00000000000..8a3c843b9ce
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/chest.rsi/allulaloChestUnderbelly.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/chest.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/chest.rsi/meta.json
new file mode 100644
index 00000000000..a187fd529c3
--- /dev/null
+++ b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/chest.rsi/meta.json
@@ -0,0 +1,19 @@
+{
+ "version": 1,
+ "copyright": "sprited by kipdotnet (GitHub) and starlighthowls (Github) for Impstation",
+ "license": "CC-BY-SA-4.0",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "allulaloChestUnderbelly",
+ "directions": 4
+ },
+ {
+ "name": "allulaloChestHeartMonitor",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/allulaloEyesDefault.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/allulaloEyesDefault.png
new file mode 100644
index 00000000000..3081fe8a948
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/allulaloEyesDefault.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/allulaloEyesDefaultLeft.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/allulaloEyesDefaultLeft.png
new file mode 100644
index 00000000000..71ae193ebb1
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/allulaloEyesDefaultLeft.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/allulaloEyesDefaultRight.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/allulaloEyesDefaultRight.png
new file mode 100644
index 00000000000..fc1d294ae6e
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/allulaloEyesDefaultRight.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/allulaloEyesUnshadedLeft.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/allulaloEyesUnshadedLeft.png
new file mode 100644
index 00000000000..01d747b66de
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/allulaloEyesUnshadedLeft.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/allulaloEyesUnshadedRight.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/allulaloEyesUnshadedRight.png
new file mode 100644
index 00000000000..6317393268e
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/allulaloEyesUnshadedRight.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/meta.json
new file mode 100644
index 00000000000..bf2356db53f
--- /dev/null
+++ b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/eyes.rsi/meta.json
@@ -0,0 +1,31 @@
+{
+ "version": 1,
+ "copyright": "sprited by kipdotnet (GitHub) and starlighthowls (Github) for Impstation",
+ "license": "CC-BY-SA-4.0",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "allulaloEyesDefault",
+ "directions": 4
+ },
+ {
+ "name": "allulaloEyesDefaultLeft",
+ "directions": 4
+ },
+ {
+ "name": "allulaloEyesDefaultRight",
+ "directions": 4
+ },
+ {
+ "name": "allulaloEyesUnshadedLeft",
+ "directions": 4
+ },
+ {
+ "name": "allulaloEyesUnshadedRight",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/allulaloHeadNeckFluff.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/allulaloHeadNeckFluff.png
new file mode 100644
index 00000000000..eb26111f62a
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/allulaloHeadNeckFluff.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/allulaloHeadNeckPlumageOutrageous.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/allulaloHeadNeckPlumageOutrageous.png
new file mode 100644
index 00000000000..481faa49bb2
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/allulaloHeadNeckPlumageOutrageous.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/allulaloHeadNeckPlumageProud.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/allulaloHeadNeckPlumageProud.png
new file mode 100644
index 00000000000..3c5713d340f
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/allulaloHeadNeckPlumageProud.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/allulaloHeadSpikes.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/allulaloHeadSpikes.png
new file mode 100644
index 00000000000..2d4245f06b1
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/allulaloHeadSpikes.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/allulaloHeadUnderbelly.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/allulaloHeadUnderbelly.png
new file mode 100644
index 00000000000..11c8c232029
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/allulaloHeadUnderbelly.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/meta.json
new file mode 100644
index 00000000000..a8d77e8b697
--- /dev/null
+++ b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/head.rsi/meta.json
@@ -0,0 +1,31 @@
+{
+ "version": 1,
+ "copyright": "sprited by kipdotnet (GitHub) and starlighthowls (Github) for Impstation, plumage sprites by LandsharkRAWR",
+ "license": "CC-BY-SA-4.0",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "allulaloHeadUnderbelly",
+ "directions": 4
+ },
+ {
+ "name": "allulaloHeadNeckFluff",
+ "directions": 4
+ },
+ {
+ "name": "allulaloHeadSpikes",
+ "directions": 4
+ },
+ {
+ "name": "allulaloHeadNeckPlumageProud",
+ "directions": 4
+ },
+ {
+ "name": "allulaloHeadNeckPlumageOutrageous",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopCurvedHorns.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopCurvedHorns.png
new file mode 100644
index 00000000000..448e6cb0ff7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopCurvedHorns.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopFeathers.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopFeathers.png
new file mode 100644
index 00000000000..2e5c4905938
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopFeathers.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopHorn.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopHorn.png
new file mode 100644
index 00000000000..29639b15b24
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopHorn.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopPlumage1.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopPlumage1.png
new file mode 100644
index 00000000000..d36d6fe18a0
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopPlumage1.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopPlumage2.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopPlumage2.png
new file mode 100644
index 00000000000..73cbcb86ef3
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopPlumage2.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopStubHorns.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopStubHorns.png
new file mode 100644
index 00000000000..d61ce36f2f8
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopStubHorns.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopSweptHorns.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopSweptHorns.png
new file mode 100644
index 00000000000..7b49f2d4a63
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/allulaloHeadTopSweptHorns.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/meta.json
new file mode 100644
index 00000000000..93ab67400d6
--- /dev/null
+++ b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/headtop.rsi/meta.json
@@ -0,0 +1,39 @@
+{
+ "version": 1,
+ "copyright": "sprited by kipdotnet (GitHub) and starlighthowls (Github) for Impstation, horn and plumage sprites by landsharkRAWR",
+ "license": "CC-BY-SA-4.0",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "allulaloHeadTopFeathers",
+ "directions": 4
+ },
+ {
+ "name": "allulaloHeadTopHorn",
+ "directions": 4
+ },
+ {
+ "name": "allulaloHeadTopCurvedHorns",
+ "directions": 4
+ },
+ {
+ "name": "allulaloHeadTopStubHorns",
+ "directions": 4
+ },
+ {
+ "name": "allulaloHeadTopSweptHorns",
+ "directions": 4
+ },
+ {
+ "name": "allulaloHeadTopPlumage1",
+ "directions": 4
+ },
+ {
+ "name": "allulaloHeadTopPlumage2",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmDefaultLeft.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmDefaultLeft.png
new file mode 100644
index 00000000000..ba4e439d4f8
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmDefaultLeft.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmOwl1.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmOwl1.png
new file mode 100644
index 00000000000..cb419adaaed
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmOwl1.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmOwl2.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmOwl2.png
new file mode 100644
index 00000000000..fa43481254c
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmOwl2.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmOwl3.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmOwl3.png
new file mode 100644
index 00000000000..efac86aa5c8
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmOwl3.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmSplit1.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmSplit1.png
new file mode 100644
index 00000000000..ada5fac5c8d
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmSplit1.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmSplit2.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmSplit2.png
new file mode 100644
index 00000000000..00d859cb6d1
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/allulaloArmSplit2.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/meta.json
new file mode 100644
index 00000000000..3a12a59565c
--- /dev/null
+++ b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/larm.rsi/meta.json
@@ -0,0 +1,35 @@
+{
+ "version": 1,
+ "copyright": "sprited by kipdotnet (GitHub) and starlighthowls (Github) for Impstation",
+ "license": "CC-BY-SA-4.0",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "allulaloArmDefaultLeft",
+ "directions": 4
+ },
+ {
+ "name": "allulaloArmSplit1",
+ "directions": 4
+ },
+ {
+ "name": "allulaloArmSplit2",
+ "directions": 4
+ },
+ {
+ "name": "allulaloArmOwl1",
+ "directions": 4
+ },
+ {
+ "name": "allulaloArmOwl2",
+ "directions": 4
+ },
+ {
+ "name": "allulaloArmOwl3",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/lleg.rsi/allulaloLegPlumage.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/lleg.rsi/allulaloLegPlumage.png
new file mode 100644
index 00000000000..7ecbdb52256
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/lleg.rsi/allulaloLegPlumage.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/lleg.rsi/allulaloLegUnderbellyDefaultLeft.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/lleg.rsi/allulaloLegUnderbellyDefaultLeft.png
new file mode 100644
index 00000000000..b388ba996da
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/lleg.rsi/allulaloLegUnderbellyDefaultLeft.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/lleg.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/lleg.rsi/meta.json
new file mode 100644
index 00000000000..79dd234d9e1
--- /dev/null
+++ b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/lleg.rsi/meta.json
@@ -0,0 +1,19 @@
+{
+ "version": 1,
+ "copyright": "sprited by kipdotnet (GitHub) and starlighthowls (Github) for Impstation, plumage sprites by landsharkRAWR.",
+ "license": "CC-BY-SA-4.0",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "allulaloLegUnderbellyDefaultLeft",
+ "directions": 4
+ },
+ {
+ "name": "allulaloLegPlumage",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmDefaultRight.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmDefaultRight.png
new file mode 100644
index 00000000000..4857d8953b1
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmDefaultRight.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmOwl1.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmOwl1.png
new file mode 100644
index 00000000000..fd9dd0ef792
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmOwl1.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmOwl2.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmOwl2.png
new file mode 100644
index 00000000000..3eb545b4173
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmOwl2.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmOwl3.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmOwl3.png
new file mode 100644
index 00000000000..ddc87547cc7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmOwl3.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmSplit1.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmSplit1.png
new file mode 100644
index 00000000000..8f5878cb145
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmSplit1.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmSplit2.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmSplit2.png
new file mode 100644
index 00000000000..40748aa5a1c
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/allulaloArmSplit2.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/meta.json
new file mode 100644
index 00000000000..e0134407846
--- /dev/null
+++ b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rarm.rsi/meta.json
@@ -0,0 +1,35 @@
+{
+ "version": 1,
+ "copyright": "sprited by kipdotnet (GitHub) and starlighthowls (Github) for Impstation",
+ "license": "CC-BY-SA-4.0",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "allulaloArmDefaultRight",
+ "directions": 4
+ },
+ {
+ "name": "allulaloArmSplit1",
+ "directions": 4
+ },
+ {
+ "name": "allulaloArmSplit2",
+ "directions": 4
+ },
+ {
+ "name": "allulaloArmOwl1",
+ "directions": 4
+ },
+ {
+ "name": "allulaloArmOwl2",
+ "directions": 4
+ },
+ {
+ "name": "allulaloArmOwl3",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rleg.rsi/allulaloLegPlumage.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rleg.rsi/allulaloLegPlumage.png
new file mode 100644
index 00000000000..f9fe9618be1
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rleg.rsi/allulaloLegPlumage.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rleg.rsi/allulaloLegUnderbellyDefaultRight.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rleg.rsi/allulaloLegUnderbellyDefaultRight.png
new file mode 100644
index 00000000000..26bb798d37d
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rleg.rsi/allulaloLegUnderbellyDefaultRight.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rleg.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rleg.rsi/meta.json
new file mode 100644
index 00000000000..21be9139403
--- /dev/null
+++ b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/rleg.rsi/meta.json
@@ -0,0 +1,19 @@
+{
+ "version": 1,
+ "copyright": "sprited by kipdotnet (GitHub) and starlighthowls (Github) for Impstation, plumage sprites by landsharkRAWR.",
+ "license": "CC-BY-SA-4.0",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "allulaloLegUnderbellyDefaultRight",
+ "directions": 4
+ },
+ {
+ "name": "allulaloLegPlumage",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailDefault.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailDefault.png
new file mode 100644
index 00000000000..c6c359678ba
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailDefault.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailDefault2.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailDefault2.png
new file mode 100644
index 00000000000..88ea9ca219f
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailDefault2.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailDefault3.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailDefault3.png
new file mode 100644
index 00000000000..6673bfe3b10
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailDefault3.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailLarge.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailLarge.png
new file mode 100644
index 00000000000..0ad450dd112
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailLarge.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailLarge2.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailLarge2.png
new file mode 100644
index 00000000000..949bd1ed30f
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailLarge2.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailLarge3.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailLarge3.png
new file mode 100644
index 00000000000..bc9298908fc
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailLarge3.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailTuft.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailTuft.png
new file mode 100644
index 00000000000..964a452b311
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailTuft.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailTuft2.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailTuft2.png
new file mode 100644
index 00000000000..aa406d248bd
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailTuft2.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailTuft3.png b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailTuft3.png
new file mode 100644
index 00000000000..0e8491bda27
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/allulaloTailTuft3.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/meta.json
new file mode 100644
index 00000000000..7daba8738aa
--- /dev/null
+++ b/Resources/Textures/_MACRO/Mobs/Customization/Allulalo/tail.rsi/meta.json
@@ -0,0 +1,47 @@
+{
+ "version": 1,
+ "copyright": "sprited by kipdotnet (GitHub) and starlighthowls (Github) for Impstation",
+ "license": "CC-BY-SA-4.0",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "allulaloTailDefault",
+ "directions": 4
+ },
+ {
+ "name": "allulaloTailDefault2",
+ "directions": 4
+ },
+ {
+ "name": "allulaloTailDefault3",
+ "directions": 4
+ },
+ {
+ "name": "allulaloTailLarge",
+ "directions": 4
+ },
+ {
+ "name": "allulaloTailLarge2",
+ "directions": 4
+ },
+ {
+ "name": "allulaloTailLarge3",
+ "directions": 4
+ },
+ {
+ "name": "allulaloTailTuft",
+ "directions": 4
+ },
+ {
+ "name": "allulaloTailTuft2",
+ "directions": 4
+ },
+ {
+ "name": "allulaloTailTuft3",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_10.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_10.png
new file mode 100644
index 00000000000..7d232b4c85c
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_10.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_100.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_100.png
new file mode 100644
index 00000000000..b36d9006eeb
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_100.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_20.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_20.png
new file mode 100644
index 00000000000..8f7deb908f0
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_20.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_30.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_30.png
new file mode 100644
index 00000000000..3173a4b5425
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_30.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_50.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_50.png
new file mode 100644
index 00000000000..0345d22986f
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_50.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_70.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_70.png
new file mode 100644
index 00000000000..8cc8136a253
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Chest_Brute_70.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_10.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_10.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_10.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_100.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_100.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_100.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_20.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_20.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_20.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_30.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_30.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_30.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_50.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_50.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_50.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_70.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_70.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/Head_Brute_70.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_10.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_10.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_10.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_100.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_100.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_100.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_20.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_20.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_20.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_30.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_30.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_30.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_50.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_50.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_50.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_70.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_70.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LArm_Brute_70.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_10.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_10.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_10.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_100.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_100.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_100.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_20.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_20.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_20.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_30.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_30.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_30.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_50.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_50.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_50.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_70.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_70.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/LLeg_Brute_70.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_10.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_10.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_10.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_100.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_100.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_100.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_20.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_20.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_20.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_30.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_30.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_30.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_50.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_50.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_50.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_70.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_70.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RArm_Brute_70.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_10.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_10.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_10.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_100.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_100.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_100.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_20.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_20.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_20.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_30.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_30.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_30.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_50.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_50.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_50.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_70.png b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_70.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/RLeg_Brute_70.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/meta.json
new file mode 100644
index 00000000000..279962c4c4c
--- /dev/null
+++ b/Resources/Textures/_MACRO/Mobs/Effects/allulalo_brute_damage.rsi/meta.json
@@ -0,0 +1,44 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Drawn by Ubaser, edited by Widgetbeck and kipdotnet (github).",
+ "size": {"x": 32, "y": 32},
+ "states": [
+ {"name": "Head_Brute_10", "directions": 4},
+ {"name": "LArm_Brute_10", "directions": 4},
+ {"name": "LLeg_Brute_10", "directions": 4},
+ {"name": "RArm_Brute_10", "directions": 4},
+ {"name": "RLeg_Brute_10", "directions": 4},
+ {"name": "Chest_Brute_10", "directions": 4},
+ {"name": "Head_Brute_20", "directions": 4},
+ {"name": "LArm_Brute_20", "directions": 4},
+ {"name": "LLeg_Brute_20", "directions": 4},
+ {"name": "RArm_Brute_20", "directions": 4},
+ {"name": "RLeg_Brute_20", "directions": 4},
+ {"name": "Chest_Brute_20", "directions": 4},
+ {"name": "Head_Brute_30", "directions": 4},
+ {"name": "LArm_Brute_30", "directions": 4},
+ {"name": "LLeg_Brute_30", "directions": 4},
+ {"name": "RArm_Brute_30", "directions": 4},
+ {"name": "RLeg_Brute_30", "directions": 4},
+ {"name": "Chest_Brute_30", "directions": 4},
+ {"name": "Head_Brute_50", "directions": 4},
+ {"name": "LArm_Brute_50", "directions": 4},
+ {"name": "LLeg_Brute_50", "directions": 4},
+ {"name": "RArm_Brute_50", "directions": 4},
+ {"name": "RLeg_Brute_50", "directions": 4},
+ {"name": "Chest_Brute_50", "directions": 4},
+ {"name": "Head_Brute_70", "directions": 4},
+ {"name": "LArm_Brute_70", "directions": 4},
+ {"name": "LLeg_Brute_70", "directions": 4},
+ {"name": "RArm_Brute_70", "directions": 4},
+ {"name": "RLeg_Brute_70", "directions": 4},
+ {"name": "Chest_Brute_70", "directions": 4},
+ {"name": "Head_Brute_100", "directions": 4},
+ {"name": "LArm_Brute_100", "directions": 4},
+ {"name": "LLeg_Brute_100", "directions": 4},
+ {"name": "RArm_Brute_100", "directions": 4},
+ {"name": "RLeg_Brute_100", "directions": 4},
+ {"name": "Chest_Brute_100", "directions": 4}
+ ]
+}
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/back.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/back.png
new file mode 100644
index 00000000000..4ca30e4bcf1
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/back.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/belt.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/belt.png
new file mode 100644
index 00000000000..61d0162fb96
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/belt.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/ears.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/ears.png
new file mode 100644
index 00000000000..999f46b0815
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/ears.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/feet.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/feet.png
new file mode 100644
index 00000000000..70193f0740d
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/feet.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/glasses.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/glasses.png
new file mode 100644
index 00000000000..307ae4cbe56
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/glasses.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/hand_l.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/hand_l.png
new file mode 100644
index 00000000000..8182f5f464e
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/hand_l.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/hands.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/hands.png
new file mode 100644
index 00000000000..3c12236cbbf
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/hands.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/head.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/head.png
new file mode 100644
index 00000000000..8724c3338d8
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/head.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/jumpsuit.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/jumpsuit.png
new file mode 100644
index 00000000000..13e8b6de8b0
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/jumpsuit.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/mask.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/mask.png
new file mode 100644
index 00000000000..75cba9690bc
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/mask.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/meta.json
new file mode 100644
index 00000000000..5cbaa3abfc5
--- /dev/null
+++ b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/meta.json
@@ -0,0 +1,66 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Sprited by kipdotnet (github) for Impstation",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "load": {
+ "srgb": false
+ },
+ "states": [
+ {
+ "name": "belt",
+ "directions": 4
+ },
+ {
+ "name": "ears",
+ "directions": 4
+ },
+ {
+ "name": "glasses",
+ "directions": 4
+ },
+ {
+ "name": "jumpsuit",
+ "directions": 4
+ },
+ {
+ "name": "neck",
+ "directions": 4
+ },
+ {
+ "name": "mask",
+ "directions": 4
+ },
+ {
+ "name": "head",
+ "directions": 4
+ },
+ {
+ "name": "hands",
+ "directions": 4
+ },
+ {
+ "name": "outerClothing",
+ "directions": 4
+ },
+ {
+ "name": "feet",
+ "directions": 4
+ },
+ {
+ "name": "back",
+ "directions": 4
+ },
+ {
+ "name": "hand_l",
+ "directions": 4
+ },
+ {
+ "name": "suitstorage",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/neck.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/neck.png
new file mode 100644
index 00000000000..952f39e7d42
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/neck.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/outerClothing.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/outerClothing.png
new file mode 100644
index 00000000000..25ef71c8162
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/outerClothing.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/suitstorage.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/suitstorage.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/displacement.rsi/suitstorage.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/eyes.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/eyes.png
new file mode 100644
index 00000000000..dd196b46698
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/eyes.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/full.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/full.png
new file mode 100644
index 00000000000..2235965afca
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/full.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/head.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/head.png
new file mode 100644
index 00000000000..b5424c0f00e
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/head.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/l_arm.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/l_arm.png
new file mode 100644
index 00000000000..2975c479be7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/l_arm.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/l_foot.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/l_foot.png
new file mode 100644
index 00000000000..7f3a2fae201
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/l_foot.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/l_hand.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/l_hand.png
new file mode 100644
index 00000000000..9b875e74635
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/l_hand.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/l_leg.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/l_leg.png
new file mode 100644
index 00000000000..da891df8e82
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/l_leg.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/meta.json b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/meta.json
new file mode 100644
index 00000000000..f075ced66d4
--- /dev/null
+++ b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/meta.json
@@ -0,0 +1,58 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Sprited for impstation by starlighthowls(github), edited by kipdotnet(github)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "full"
+ },
+ {
+ "name": "eyes",
+ "directions": 4
+ },
+ {
+ "name": "head",
+ "directions": 4
+ },
+ {
+ "name": "l_arm",
+ "directions": 4
+ },
+ {
+ "name": "l_hand",
+ "directions": 4
+ },
+ {
+ "name": "l_foot",
+ "directions": 4
+ },
+ {
+ "name": "l_leg",
+ "directions": 4
+ },
+ {
+ "name": "r_arm",
+ "directions": 4
+ },
+ {
+ "name": "r_hand",
+ "directions": 4
+ },
+ {
+ "name": "r_foot",
+ "directions": 4
+ },
+ {
+ "name": "r_leg",
+ "directions": 4
+ },
+ {
+ "name": "torso",
+ "directions": 4
+ }
+ ]
+}
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/r_arm.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/r_arm.png
new file mode 100644
index 00000000000..efd4689ec07
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/r_arm.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/r_foot.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/r_foot.png
new file mode 100644
index 00000000000..cfc2399b185
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/r_foot.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/r_hand.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/r_hand.png
new file mode 100644
index 00000000000..6553477798a
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/r_hand.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/r_leg.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/r_leg.png
new file mode 100644
index 00000000000..ebde884dfd7
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/r_leg.png differ
diff --git a/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/torso.png b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/torso.png
new file mode 100644
index 00000000000..254619143f9
Binary files /dev/null and b/Resources/Textures/_MACRO/Mobs/Species/Allulalo/parts.rsi/torso.png differ