I appreciate the new reports of potential performance problems, it gave me agency to write a lightweight zone module for my own use in prod–all I really needed it to do is do the most basic checks to see if a position is within a box zone, I don’t need any bloat. Though I still think zoneplus is good for those getting started.
In any case, i believe sharing my module could help some people–either to use it or develop their own–it follows similar syntax of zoneplus, but there are new things to be aware of and much of zoneplus’s functions do not exist. So if you intend to use it, you’ll need to be able to comprehend the module script–feel free to code review or dm
It seems like it just grabs the players at the start and never changes them.
So things like LoadCharacter are completely broken.
Or maybe im just wrong
I’m trying to make a sound system and I have the sound ids in the zone part, but I’m not sure how to get that sound id. Is there some way to get the properties of the part?
I have custom characters in my game and for some reason .playerEntered or .playerExited does not fire on players. However .localPlayerEntered does.
The CanTouch and CanQuery properties are toggled on as well on the parts of the character. I have looked around for solution everywhere however I found little to no help to fix this issue.
This works perfectly except for a major inconvience while setting up.
The module “NetSignal” needs a folder in replicated storage called “NetworkEvents”, also needs a “Converter” module “modules.Utility.Converter” and among other things is practically unusable without these variables (Especially the module “Converter”).
My new module SimpleZone has support for Zones inside Zones, however you won’t exit the bigger Zone, you’ll just enter the inner Zone. However, I think by setting the .Query callback to a custom one where you only consider players that arent in other zones, you can make the player exit the outer zone too!
Hello, I’m having an issue with ZonePlus when using it with custom characters. Basically ZonePlus responds to all functions such as playerEntered and playerExited with my default roblox character, same thing happens with all other humanoid characters. However, the problem begins when I use a custom character that only contains HumanoidRootPart, Humanoid and a MeshPart (It’s basically an object, for example: a coffee cup).
Somehow ZonePlus doesn’t detect it as a player and I have been trying to solve this 2 days ago and no solutions yet, does ZonePlus depend of a specific part of the character or something to run the functions?
Yes, the answer was “ZonePlus depends of a specific part of the character to run the function”. I simply added a part to the custom character and named it Head, thanks to that now the script detects it as a player.
the zones currently dont fire their events after the players death (in a localscript), would there be any workaround to this apart from moving everything to a serverscript.
Thanks
Hello! I’ve run into a small issue with the autocomplete. I bet a lot of other people are having this issue. Requiring the module has the return type of any, which is inconvenient. The problematic code is as follows:
local referenceLocation = (game:GetService("RunService"):IsClient() and "Client") or "Server"
local referencePresent = referenceObject and referenceObject:FindFirstChild(referenceLocation)
if referencePresent then
return require(referenceObject.Value)
end
The module returns something else before the last line, which confuses the type checker. They are going to be the same value, but it won’t have the correct type. Here’s how I fixed it:
local referenceLocation = (game:GetService("RunService"):IsClient() and "Client") or "Server"
local referencePresent = referenceObject and referenceObject:FindFirstChild(referenceLocation)
local Zone = {}
Zone.__index = Zone
if not referencePresent then
ZonePlusReference.addToReplicatedStorage()
else
return require(referenceObject.Value) :: typeof(Zone)
end
having trouble detecting item enter/exit. No errors during :trackitem, but itemEntered and itemExited are not firing
local parts = attackZone:getParts()
local characters = HitboxHandler.FilterCharacters(parts)
print(characters)
for _, character in characters do
print('tracking ' .. character.Name)
attackZone:trackItem(character)
end
table.insert(
connections,
attackZone.itemEntered:Connect(function(item)
print(item.Name .. " entered")
end)
)
table.insert(
connections,
attackZone.itemExited:Connect(function(item)
print(item.Name .. " exited")
end)
)```