diff --git a/Winch/Data/POI/Dock/Destinations/CustomStorageDestination.cs b/Winch/Data/POI/Dock/Destinations/CustomStorageDestination.cs
index 426b3762..3b87f582 100644
--- a/Winch/Data/POI/Dock/Destinations/CustomStorageDestination.cs
+++ b/Winch/Data/POI/Dock/Destinations/CustomStorageDestination.cs
@@ -36,6 +36,11 @@ public class CustomStorageDestination
///
public float overflowHeight = 0.6f;
+ ///
+ /// Whether this storage is inside a building
+ ///
+ public bool isIndoors = false;
+
///
/// Whether to enable the chest mesh
///
diff --git a/Winch/Serialization/DredgeTypeHelpers.cs b/Winch/Serialization/DredgeTypeHelpers.cs
index 3ed00b76..798adcf2 100644
--- a/Winch/Serialization/DredgeTypeHelpers.cs
+++ b/Winch/Serialization/DredgeTypeHelpers.cs
@@ -355,6 +355,7 @@ public static CustomStorageDestination ParsePrebuiltStorageDestination(object va
vCam = jsonDict.TryGetValue("vCam", out object vCam) ? ParseVector3(vCam) : new Vector3(4.5f, 3.45f, 6.75f),
hasOverflow = jsonDict.TryGetValue("hasOverflow", out object hasOverflow) ? bool.Parse(hasOverflow.ToString()) : false,
overflowHeight = jsonDict.TryGetValue("overflowHeight", out object overflowHeight) ? float.Parse(overflowHeight.ToString()) : 0.6f,
+ isIndoors = jsonDict.TryGetValue("isIndoors", out object isIndoors) ? bool.Parse(isIndoors.ToString()) : false,
hasChest = jsonDict.TryGetValue("hasChest", out object hasChest) ? bool.Parse(hasChest.ToString()) : true,
hasBoxes = jsonDict.TryGetValue("hasBoxes", out object hasBoxes) ? bool.Parse(hasBoxes.ToString()) : true,
};
diff --git a/Winch/Util/DockUtil.cs b/Winch/Util/DockUtil.cs
index f1de9d1d..6f03bb8a 100644
--- a/Winch/Util/DockUtil.cs
+++ b/Winch/Util/DockUtil.cs
@@ -807,6 +807,7 @@ internal static (StorageDestination, OverflowStorageDestination, GameObject) Cre
storageDestination.highlightConditions = new List();
storageDestination.speakerRootNodeOverride = string.Empty;
storageDestination.visitSFX = visitSFX;
+ storageDestination.isIndoors = prebuilt.isIndoors;
var overflowStorageDestinationObject = new GameObject("OverflowStorageDestination");
overflowStorageDestinationObject.transform.SetParent(storageDestinationObject.transform, false);
overflowStorageDestinationObject.transform.localPosition = new Vector3(0, prebuilt.overflowHeight, 0);
@@ -819,6 +820,7 @@ internal static (StorageDestination, OverflowStorageDestination, GameObject) Cre
overflowStorageDestination.highlightConditions = new List { new UnstructedHighlightCondition { alwaysHighlight = true } };
overflowStorageDestination.speakerRootNodeOverride = string.Empty;
overflowStorageDestination.visitSFX = visitSFX;
+ overflowStorageDestination.isIndoors = prebuilt.isIndoors;
var box = StorageBox.Instantiate(storageObject.transform, false);
box.transform.localPosition = Vector3.zero;
box.transform.localEulerAngles = new Vector3(0, 360, 0);