diff --git a/Projects/UOContent/Regions/Custom/GreetingBusinessRegion.cs b/Projects/UOContent/Regions/Custom/GreetingBusinessRegion.cs
new file mode 100644
index 000000000..3a42706bd
--- /dev/null
+++ b/Projects/UOContent/Regions/Custom/GreetingBusinessRegion.cs
@@ -0,0 +1,39 @@
+using Server;
+using Server.Mobiles;
+using Server.Custom;
+
+namespace Server.Regions
+{
+ public class GreetingBusinessRegion : TownRegion
+ {
+ public GreetingBusinessRegion(string name, Map map, int priority, params Rectangle3D[] area)
+ : base(name, map, priority, area)
+ {
+ }
+ public override bool MountsAllowed => false;
+ public override void OnEnter(Mobile m)
+ {
+ base.OnEnter(m);
+ if (m.Player)
+ {
+ m.SendMessage($"Welcome to {this.Name}.");
+ }
+ if (m is PlayerMobile player )
+ {
+ if ( player.Mounted )
+ {
+ Server.Custom.AutoStable.StoreMount(player);
+ }
+ }
+ }
+
+ public override void OnExit(Mobile m)
+ {
+ base.OnExit(m);
+ if ( m is PlayerMobile player )
+ {
+ Server.Custom.AutoStable.RestoreMount(player);
+ }
+ }
+ }
+}
diff --git a/Projects/UOContent/Regions/Custom/GreetingDungeonRegion.cs b/Projects/UOContent/Regions/Custom/GreetingDungeonRegion.cs
new file mode 100644
index 000000000..e9a0dda1f
--- /dev/null
+++ b/Projects/UOContent/Regions/Custom/GreetingDungeonRegion.cs
@@ -0,0 +1,43 @@
+using Server;
+using Server.Mobiles;
+
+namespace Server.Regions
+{
+ public class GreetingDungeonRegion : DungeonRegion
+ {
+ public GreetingDungeonRegion(string name, Map map, int priority, params Rectangle3D[] area)
+ : base(name, map, priority, area)
+ {
+ }
+ public override bool MountsAllowed => false;
+ public override void OnEnter(Mobile m)
+ {
+ base.OnEnter(m);
+ if (m.Player)
+ {
+ m.SendMessage($"You entered {this.Name}.");
+ }
+ if (m is PlayerMobile player && player.Mounted )
+ {
+ if ( player.Mount is BaseMount )
+ {
+ Server.Custom.AutoStable.StoreMount(player);
+ }
+ else
+ {
+ BaseMount.Dismount(player);
+ player.SendMessage("Mounts are not permitted in this Dungeon.");
+ }
+ }
+ }
+
+ public override void OnExit(Mobile m)
+ {
+ base.OnExit(m);
+ if ( m is PlayerMobile player )
+ {
+ Server.Custom.AutoStable.RestoreMount(player);
+ }
+ }
+ }
+}
diff --git a/Projects/UOContent/Regions/Custom/GreetingTownRegion.cs b/Projects/UOContent/Regions/Custom/GreetingTownRegion.cs
new file mode 100644
index 000000000..3a69487c3
--- /dev/null
+++ b/Projects/UOContent/Regions/Custom/GreetingTownRegion.cs
@@ -0,0 +1,28 @@
+using Server;
+using Server.Mobiles;
+
+namespace Server.Regions
+{
+ public class GreetingTownRegion : TownRegion
+ {
+ public GreetingTownRegion(string name, Map map, int priority, params Rectangle3D[] area)
+ : base(name, map, priority, area)
+ {
+ }
+
+ public override void OnEnter(Mobile m)
+ {
+ base.OnEnter(m);
+
+ if (m.Player)
+ {
+ m.SendMessage($"Welcome to {this.Name}.");
+ }
+ }
+
+ public override void OnExit(Mobile m)
+ {
+ base.OnExit(m);
+ }
+ }
+}
diff --git a/Projects/UOContent/Regions/Custom/MountlessTownRegion.cs b/Projects/UOContent/Regions/Custom/MountlessTownRegion.cs
new file mode 100644
index 000000000..91c73a221
--- /dev/null
+++ b/Projects/UOContent/Regions/Custom/MountlessTownRegion.cs
@@ -0,0 +1,35 @@
+using Server;
+using Server.Mobiles;
+using Server.Custom;
+
+namespace Server.Regions
+{
+ public class MountlessTownRegion : TownRegion
+ {
+ public MountlessTownRegion(string name, Map map, int priority, params Rectangle3D[] area)
+ : base(name, map, priority, area)
+ {
+ }
+ public override bool MountsAllowed => false;
+ public override void OnEnter(Mobile m)
+ {
+ base.OnEnter(m);
+ if (m is PlayerMobile player )
+ {
+ if ( player.Mounted )
+ {
+ Server.Custom.AutoStable.StoreMount(player);
+ }
+ }
+ }
+
+ public override void OnExit(Mobile m)
+ {
+ base.OnExit(m);
+ if ( m is PlayerMobile player )
+ {
+ Server.Custom.AutoStable.RestoreMount(player);
+ }
+ }
+ }
+}
diff --git a/Projects/UOContent/Regions/RegionJsonRegistration.cs b/Projects/UOContent/Regions/RegionJsonRegistration.cs
index 64cc195e7..ba871cf59 100644
--- a/Projects/UOContent/Regions/RegionJsonRegistration.cs
+++ b/Projects/UOContent/Regions/RegionJsonRegistration.cs
@@ -1,4 +1,4 @@
-namespace Server.Regions;
+namespace Server.Regions;
public static class RegionJsonRegistration
{
@@ -59,5 +59,11 @@ public static class RegionJsonRegistration
// Myrmidex
RegionJsonSerializer.Register();
+
+ // Custom
+ RegionJsonSerializer.Register();
+ RegionJsonSerializer.Register();
+ RegionJsonSerializer.Register();
+ RegionJsonSerializer.Register();
}
}