Apartment Complex has a drop zone lol
"Disallow safe zone monuments" does not seem to be applying to the new Apartment Complex, which for some reason has a drop zone. I think the default config excludes Tier0, but for people like me who don't, it's a problem! I've manually blacklisted it.

Do you have another monument close that actually does have a drop zone? I ran into a problem sort of like this, I think DropZoneDistanceTolerance is set to high, I think it's 200? I have mine at 100 now.

No, it's kind of off on a peninsula... I think it's because I removed the default Tier0 restriction, and the vanilla prefab must include a drop zone for some reason (maybe for extra fun on hardcore?)

It doesn't have a dropzone according to rusthelp website. I allow it to visit T0 monuments too and it has never dropped at apartments. Strange.

It absolutely has a drop zone - I just wrote some plugin logic to walk the transform parent hierarchy of every drop zone on the map, and got this:

[Team Report] ***** DROP ZONE @(-1266.45, 7.51, -1276.81)/D21
[Team Report] ***** transform=DropZone (UnityEngine.Transform)@(-1266.45, 7.51, -1276.81)/D21
[Team Report] ***** transform=assets/bundled/prefabs/autospawn/monument/medium/apartments_complex_1.prefab (UnityEngine.Transform)@(-1173.25, 7.08, -1233.81)/E20​


Merged post

It looks like Apartment Complex's MonumentInfo doesn't report it being a safe zone.

Here is some potentially better logic for determining if a drop zone is inside a safe zone trigger:
  public virtual bool InSafeZone(Vector3 position)
  {
    if (false == BaseGameMode.GetActiveGameMode(true)?.safeZone) return false;
    foreach (var safeZone in TriggerSafeZone.allSafeZones)
    {
      if (position != safeZone?.triggerCollider?.ClosestPoint(position)) continue;
      Puts($"***** position={position} in safeZone@{safeZone.transform.position}/{MapHelper.PositionToString(safeZone.transform.position)}");
      return true;
    }
    return false;
  }
​

Wow, good find. I checked with UnityEngine.Object.FindObjectsByType<CH47DropZone>(FindObjectsSortMode.None) and did see it too.
I have about a dozen dropzones, oddly last night it did drop one there. Good job rusthelp - Good job facepunch! That can't be intentional right!?

think you can replace the safe zone check in PrintDropZones() with this, in order to handle this case:

                if (_config.DisallowSafeZoneMonuments)
                {
                    if (monumentInfo.IsSafeZone)
                        continue;

                    // handle case that monument is not marked as a safe zone,
                    //  but one exists at a contained drop location anyway
                    var allow = true;
                    foreach (var dropZone in CH47DropZone.dropZones)
                    {
                        var dzPosition = dropZone.transform.position;

                        // ignore drop zone if not in this monument
                        if (!monumentInfo.IsInBounds(dropZone.transform.position))
                            continue;

                        foreach (var safeZone in TriggerSafeZone.allSafeZones)
                        {
                            // ignore drop zone if not in this safe zone
                            if (safeZone.triggerCollider.ClosestPoint(dzPosition) != dzPosition)
                                continue;

                            // this drop zone is in this monument AND is in a
                            //  safe zone trigger; mark disallowed and break out
                            allow = false;
                            break;
                        }

                        // break out if disallowed
                        if (!allow)
                            break;
                    }

                    // ignore monument if disallowed
                    if (!allow)
                        continue;
                }