What I want to achieve is solving this problem, obviously. I have tried a few solutions that I have thought of so far. Anyways, to the point. I have a LocalScript with the parent of StarterGui. Basically, this script disables the CanCollide off so the NPCs around can walk over a specific part while the players in the game can’t. Before the game start, CanCollide is actually enabled, but the script just turns it off so that way the NPC can walk over it without falling through it while the players can’t. The reason why the script is a LocalScript and not a Script is to prevent the NPC from being able to fall through.
There is a problem though, it works until after like 30 seconds or a bit later than that. Meaning, the players and the NPC can fall through it.
Here is the script;
local folder = game.Workspace:WaitForChild("ZombieParts")
for i, part in pairs(folder:GetChildren()) do
part.CanCollide = false
end```
What my thoughts are going through is that it should work, right?
I have a LocalScript with the parent of StarterGui . Basically, this script disables the CanCollide off so the NPCs around my map can walk over it while the players in the game can’t. Before the game start, CanCollide is actually enabled, but the script just turns it off so that way the NPC can walk over it without falling through it while the players can’t. The reason why the script is a LocalScript and not a Script is to prevent the NPC from being able to fall through.
It won’t matter how you are updating them, collision filtering is exactly what you need. If done correctly you will have it where the players can collide with it whilst the NPCs cannot.