Judging by your use of script.Parent.Back.Position
I assume that your LocalScript is within workspace
. This would be your issue as LocalScripts cannot execute in any context outside of the Backpack, Character, PlayerGui, PlayerScripts, or the ReplicatedFirst service.
To fix this issue, simply put your script in something like StarterCharacterScripts and reference the object in a different way, like so:
(Also, a magnitude check is not needed if you are getting the distance from a player's character, as you can use the DistanceFromCharacter method of the player)
03 | local UIS = game:GetService( "UserInputService" ) |
04 | local plr = game.Players.LocalPlayer |
06 | UIS.InputBegan:Connect( function (input, GPE) |
07 | if GPE then return end |
09 | if input.UserInputType = = Enum.UserInputType.Keyboard then |
10 | if input.KeyCode = = Enum.KeyCode.E then |
11 | if plr:DistanceFromCharacter(Back.Position) < = 20 then |
As a couple pointers, I've added a GameProcessedEvent
check on line 7; this is entirely optional, but recommended as the event could potentially fire while the player is chatting if this check did not exist.
I've also added a UserInputType
check on line 9 to prevent any errors from appearing regarding the KeyCode being nil
for other types of inputs.