Currently you are checking if the object “Blocking” is true. You need to put .Value to get the value of that bool (As in script.Parent.Blocking.Value). Which will be either true or false since it’s a bool. This applies to ALL values (Bool, Int, String, etc.)
I strongly advise that you try and figure out why your script isn’t working regardless of whether or not you want to have blocking in your game or not. This should be a relatively easy script to make and would provide as a great learning opportunity if there is something about it that you don’t understand. It’s those little problems that you solve over the months/years that make you a great scripter.
Avoid abandoning it until we get to an actual solution, in case others have the same issue!
I suspect that you should be putting it within a value changed event, because I assume that it is not immediately going to be set to true:
local char = script.Parent.Parent.Parent
script.Parent.Blocking.Changed:Connect(function()
while script.Parent.Blocking == true do
wait(.1)
print("Blocking")
end
end)
You forget to add Value property, it should look like this:
task.wait(1) -- waiting for character to load
local character = script.Parent.Parent.Parent
while script.Parent.Blocking.Value do
print("hey")
task.wait(0.1)
end