diff --git a/NewHorizons/Builder/General/GroupBuilder.cs b/NewHorizons/Builder/General/GroupBuilder.cs
new file mode 100644
index 00000000..828a7117
--- /dev/null
+++ b/NewHorizons/Builder/General/GroupBuilder.cs
@@ -0,0 +1,30 @@
+using UnityEngine;
+using Logger = NewHorizons.Utility.Logger;
+
+namespace NewHorizons.Builder.General;
+
+public static class GroupBuilder
+{
+ ///
+ /// puts groups on objects.
+ /// run this before the gameobject is active.
+ ///
+ public static void Make(GameObject go, Sector sector)
+ {
+ Logger.LogVerbose($"putting groups on {go} (linked to {sector})");
+ if (!sector)
+ {
+ Logger.LogWarning("tried to put groups on a null sector");
+ return;
+ }
+ if (go.activeInHierarchy)
+ {
+ Logger.LogWarning("tried to put groups on an active gameobject");
+ return;
+ }
+
+ go.GetAddComponent()._sector = sector;
+ go.GetAddComponent()._sector = sector;
+ go.GetAddComponent()._sector = sector;
+ }
+}
\ No newline at end of file
diff --git a/NewHorizons/Builder/Props/DetailBuilder.cs b/NewHorizons/Builder/Props/DetailBuilder.cs
index ae7a63f7..2c849ecf 100644
--- a/NewHorizons/Builder/Props/DetailBuilder.cs
+++ b/NewHorizons/Builder/Props/DetailBuilder.cs
@@ -1,3 +1,4 @@
+using NewHorizons.Builder.General;
using NewHorizons.External.Configs;
using NewHorizons.External.Modules;
using NewHorizons.Handlers;
@@ -100,6 +101,7 @@ namespace NewHorizons.Builder.Props
prop.transform.localScale = detail.scale != 0 ? Vector3.one * detail.scale : prefab.transform.localScale;
+ if (!detail.keepLoaded) GroupBuilder.Make(prop, sector);
prop.SetActive(true);
if (prop == null) return null;