How can I get all characters within a part using :GetPartsInPart?

I haven’t used :GetPartsInPart yet so I’m not sure if I can use it for this (if not what’s an alternative?), but it seems like I can so how can I get all characters using :GetPartsInPart Instead of getting every part? I can’t seem to figure out how to use overlap params. I’m trying to experiment with a push the payload type of game and wanna get all the characters near the payload and be able to do stuff so yeah.

Here’s the code I currently have I basically tried to make it so whenever the table from GetPartsInPart changes do something.

local CharactersInRadius = ServerStorage:WaitForChild("CharactersInRadius")
RunService.Heartbeat:Connect(function()
	if CharactersInRadius.Value ~= #workspace:GetPartsInPart(PAYLOAD.Radius.RealRadius) then
	    warn("Stuff In Radius Changed")
		CharactersInRadius.Value = #workspace:GetPartsInPart(PAYLOAD.Radius.RealRadius)
	end
end)

CharactersInRadius:GetPropertyChangedSignal("Value"):Connect(function()
--> Do stuff 
end)

1 Like

Try using ZonePlus, it allows you to create dynamic zones like what you’re looking to accomplish and track players within it. It’s a plugin to simplify the Region3 system. This will be much more efficient than trying to track players based on GetPartsInPart

If the part has CanCollide disabled but CanTouch enabled just use :GetTouchingParts(), to get all the parts which are touching the part with its collisions disabled, then just traverse over those parts & find out which belong to players, then build a list of players which are inside of the particular part.