There is a variety of resources, see scripting helpers, etc. If you looked carefully or searched it in google, you could find the relevant way of connecting a touched event with a player. The event connects with the player, not the humanoid. The humanoid is used here to ensure that the player is actually touching it. It’s like seeing if…
if 2+2 == 5 then
print("wrong")
elseif 2+2 == 4 then
print("correct")
We need to ensure that the player actually exists, and hasn’t died.
On another note, it should be getting the local player only who has touched the part, not everyone else as well. I might have overlooked it tho, so just define the local player in this case. Of course the local player is every client itself, so they can all touch the part. However, it shouldn’t activate for everyone if one person touches it.
There is no need to disable the controls using server scripts. In fact, the module is located in Player/PlayerScripts which isn’t accessible from the server. Controls are client sided and is meant to be.