My "Player" has some BoolValues stored inside. There is a LocalScript called "keyboardTrack" that constantly keeps changing their values every time the player press or unpress "w", "a", "s", "d,", "space", and "LShift". There it is:
local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local holdingW = player.keyboard.holdingW.Value
local holdingA = player.keyboard.holdingA.Value
local holdingS = player.keyboard.holdingS.Value
local holdingD = player.keyboard.holdingD.Value
local holdingShift = player.keyboard.holdingShift.Value
local holdingSpace = player.keyboard.holdingSpace.Value
function onKeyDown(key)
if key == "w" then holdingW = true end
if key == "a" then holdingA = true end
if key == "s" then holdingS = true end
if key == "d" then holdingD = true end
if key == " " then holdingSpace = true end
if (key:byte() == 48) then holdingShift = true end
end
function onKeyUp(key)
if key == "w" then holdingW = false end
if key == "a" then holdingA = false end
if key == "s" then holdingS = false end
if key == "d" then holdingD = false end
if key == " " then holdingSpace = false end
if (key:byte() == 48) then holdingShift = false end
end
mouse.KeyDown:connect(onKeyDown)
mouse.KeyUp:connect(onKeyUp)
The thing is that there is another LocalScript stored in the Player's "Character" that creates local variables pointing to the same BoolValues, but they won't update as the "keyboardTrack" change them! Why?

2 comments
so, instead of using local x = "BoolValue Path", I would use only the path? Isn't there a way to make pointers or something?
Thanks for that answer, it really helped me out ;)