Construct dynamic zones that utilise region checking, raycasting and the new BasePart.CanTouch property to effectively determine players and parts within their boundaries.
[x] ZoneController.worldModel - a worldmodel instance called 'ZonePlusWorldModel' which is parented under ReplicatedStorage when created
[x] ZoneController.collectiveWorldModel - a table/metetable which takes all the zone world models, calls the passed function, then returns all the values as a single table
[x] update all workspace:methodName with collectiveWorldModel:methodName
[x] zone:relocate()
[x] rename zoneGroup and zone.group to container
[x] creates a secondary property called relocationContainer which is the container is the container is an Instance, otherwise creates a Folder and parents all zone.zoneParts under this, then sets this new folder as the relocationContainer
[x] add the relocationContainer (with the third param) to the janitor
[x] move relocationContainer under the ZoneController.worldModel
workspace:methodName
withcollectiveWorldModel:methodName
container
relocationContainer
which is thecontainer
is the container is an Instance, otherwise creates a Folder and parents all zone.zoneParts under this, then sets this new folder as the relocationContainer