You wouldn’t want to remove these as they’re essential to the running of ZonePlus. ZoneController for instance handles the spatial-checking logic while Janitor helps with the tracking and cleaning of objects.
You can quickly modify the location of dependencies by searching script. within the Zone and ZoneController modules and modifying the 5 lines at the top:
I know but doing it each time you update it is kinda “time consuming” :D.
Would it be possible if you can add something like this to the original code?
local Signal = if script.Parent:FindFirstChild("Reference_Signal") then require(script.Parent:FindFirstChild("Reference_Signal").Value) else require(script.Parent.Signal)
Or I can probably just use :FindFirstChild("...",true) instead, thanks for the replying to me tho :)!
I could certainly add a variable for script.Parent to help speed this up. For your very specific use-case it wouldn’t make sense to bloat the module for something which can be modified in a few seconds.
Thanks for the reply, but it didn’t end up firing. I got around it by tracking the part when it enters, then using the itemExited event to see when it exited.
Good spot, just tested now and it doesn’t appear to be functioning for the part events. You’re right in using the player or item events partially instead for the time being which do detect exited as intended. I’ve opened up a ticket for that here:
How can i make in each zone appear something different in a gui
this is what happen to me
when i enter a zone it appears me in the gui but when i go to the other zone it doesnt.
my code:
local Zone = require(game:GetService("ReplicatedStorage").Zone)
local Test1 = workspace.RepublicaMexicanaColliders.Yucatan
local test1 = Zone.new(Test1)
local Test2 = workspace.RepublicaMexicanaColliders.Quintanaroo
local test2 = Zone.new(Test2)
test1.playerEntered:Connect(function(player)
player.PlayerGui.EstadoDisplay.Frame.Textura.Estado.Text = ("name:".."Test1")
player.PlayerGui.EstadoDisplay.Frame.Textura.Capital.Text = ("name:".."Test1")
wait(0.5)
end)
test1.playerExited:Connect(function(player)
player.PlayerGui.EstadoDisplay.Frame.Textura.Estado.Text = "you are not in a place"
player.PlayerGui.EstadoDisplay.Frame.Textura.Capital.Text = "you are not in a place"
wait(0.5)
end)
test2.playerEntered:Connect(function(player)
player.PlayerGui.EstadoDisplay.Frame.Textura.Estado.Text = ("name:".."Test2")
player.PlayerGui.EstadoDisplay.Frame.Textura.Capital.Text = ("name:".."Test2")
wait(0.5)
end)
test2.playerExited:Connect(function(player)
player.PlayerGui.EstadoDisplay.Frame.Textura.Estado.Text = "you are not in a place"
player.PlayerGui.EstadoDisplay.Frame.Textura.Capital.Text = "you are not in a place"
wait(0.5)
end)
How would I print the zone name that the player is in?
local Zone = require(game:GetService("ReplicatedStorage").Zone)
local container = workspace.SafeZoneGroup
local zone = Zone.new(container)
zone.playerEntered:Connect(function(player)
print(("player '%s' entered zone '%s'!"):format(player.Name, zone.name))
end)
zone.playerExited:Connect(function(player)
print(("player '%s' entered zone '%s'!"):format(player.Name, zone.name))
end)
local Zone = require(game:GetService("ReplicatedStorage").Zone)
local container = workspace.SafeZoneGroup
local zone = Zone.new(container)
zone.name = "AVeryCoolName"
zone.playerEntered:Connect(function(player)
print(("player '%s' entered zone '%s'!"):format(player.Name, zone.name))
end)
zone.playerExited:Connect(function(player)
print(("player '%s' entered zone '%s'!"):format(player.Name, zone.name))
end)