ZonePlus v3.2.0 | Construct dynamic zones and effectively determine players and parts within their boundaries

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

Just thought I would share this in case you wanted to merge this fix!


I always knew about ZonePlus, but I never needed it until now. Thanks for making great stuff! :heart:

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)
	)```

a really great module, i used it a lot of times & it helped greatly!

It will be really hard to move away from it in the future. I suggest reading this post before you use it.

1 Like