As you can see, kill bricks are scripted and put around Roblox obbies or other games for a while. But I can see most of them react fast. Some are slow. The most common script used is:
local p = script.Parent
p.Touched:Connect(function(part)
if not part.Parent then return end
local char = part.Parent
local hum = char:FindFirstChildOfClass("Humanoid") --Or they use FindFirstChild haha.
if hum then
hum.Health = -1
end
end
end)
The script above uses the "Touched" event on BaseParts to react on player's interactions. But this could cause a huge amount of memory waste for the server. Even adding a debounce would cause trouble, if you use debounces. Other players could easily get through the brick at the last second without dying after somebody touched it.
The second method I've seen and which is bad is Checking local's character parts. Which is a local script and this can easily be exploited.
Are there any other methods? Advices in improving?

2 comments
Not areas, he want's "Bricks"that kill players.
That answer is completely incorrect. What would you expect from checking frequently Region3? Just creating waste of memory. I can see that you didn't read the post carefully.