Why does this script double jump script not work once enabled?

local UserInputService = game:GetService("UserInputService")
local localPlayer = game.Players.LocalPlayer
local character
local humanoid

local canDoubleJump = false
local hasDoubleJumped = false
local oldPower
local TIME_BETWEEN_JUMPS = 0.2
local DOUBLE_JUMP_POWER_MULTIPLIER = 2

function onJumpRequest()
	if not character or not humanoid or not character:IsDescendantOf(workspace) or
		humanoid:GetState() == Enum.HumanoidStateType.Dead then
		return
	end

	if canDoubleJump and not hasDoubleJumped then
		hasDoubleJumped = true
		humanoid.JumpPower = oldPower * DOUBLE_JUMP_POWER_MULTIPLIER
		humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
	end
end

local function characterAdded(newCharacter)
	character = newCharacter
	humanoid = newCharacter:WaitForChild("Humanoid")
	hasDoubleJumped = false
	canDoubleJump = false
	oldPower = humanoid.JumpPower

	humanoid.StateChanged:connect(function(old, new)
		if new == Enum.HumanoidStateType.Landed then
			canDoubleJump = false
			hasDoubleJumped = false
			humanoid.JumpPower = oldPower
		elseif new == Enum.HumanoidStateType.Freefall then
			wait(TIME_BETWEEN_JUMPS)
			canDoubleJump = true
		end
	end)
end

if localPlayer.Character then
	characterAdded(localPlayer.Character)
end

localPlayer.CharacterAdded:connect(characterAdded)
UserInputService.JumpRequest:connect(onJumpRequest)
--This is an event that happens when the round ends
game.ReplicatedStorage.GetWinners.OnClientEvent:Connect(function()
	script.Enabled = false
end)

I have this script I found from the Roblox Documentation. I want to utilize it in a voting system. What I’ve done is have this script be enabled once the round starts and if it’s been voted on. But nothing happens once the script is enabled. What’s wrong?

You’re using a global variable “script” in a script that has no such variable.

local UserInputService = game:GetService(“UserInputService”)
local localPlayer = game.Players.LocalPlayer
local character
local humanoid

local canDoubleJump = false
local hasDoubleJumped = false
local oldPower
local TIME_BETWEEN_JUMPS = 0.2
local DOUBLE_JUMP_POWER_MULTIPLIER = 2

function onJumpRequest()
if not character or not humanoid or not character:IsDescendantOf(workspace) or
humanoid:GetState() == Enum.HumanoidStateType.Dead then
return
end

if canDoubleJump and not hasDoubleJumped then
	hasDoubleJumped = true
	humanoid.JumpPower = oldPower * DOUBLE_JUMP_POWER_MULTIPLIER
	humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
end

end

local function characterAdded(newCharacter)
character = newCharacter
humanoid = newCharacter:WaitForChild(“Humanoid”)
hasDoubleJumped = false
canDoubleJump = false
oldPower = humanoid.JumpPower

humanoid.StateChanged:connect(function(old, new)
	if new == Enum.HumanoidStateType.Landed then
		canDoubleJump = false
		hasDoubleJumped = false
		humanoid.JumpPower = oldPower
	elseif new == Enum.HumanoidStateType.Freefall then
		wait(TIME_BETWEEN_JUMPS)
		canDoubleJump = true
	end
end)

end

if localPlayer.Character then
characterAdded(localPlayer.Character)
end

localPlayer.CharacterAdded:connect(characterAdded)
UserInputService.JumpRequest:connect(onJumpRequest)

game.Voting.DoubleJump.OnClientInvoke = function(option_index)
if option_index == 1 then
script.Enabled = true
end
end

game.ReplicatedStorage.GetWinners.OnClientEvent:Connect(function()