I already know that my ends on my script are misplaced, the script isn't working regardless.
remote.OnServerEvent:Connect(function(player)
if usingPower == false then
usingPower = true
ifMaster(player)
while usingPower == true do
Endurance = Endurance - 1
wait(1)
if Endurance == 0 then
break
end
end
elseif usingPower == true then
usingPower = false
unMaster(player)
end
end
My ifMaster(player) and unMaster(player) I confirmed to work. its this specific script that the issue comes from. It does operate the ifMaster(player) function, but the usingPower value is not updated.

3 comments
you never defined 'usingPower'
That was inferred
besides if I had never defined usingPower the first line would not have worked as it would have returned as nil