Scripting help Instances

Script:

 local players = game:GetService("Players")
    local jumpparts = game.Workspace.JumpParts
    game.ReplicatedStorage.PlayerEvents.Jump.OnServerEvent:Connect(function(x,plr)
    	for a,b in pairs(jumpparts:GetChildren()) do
    	for i,v in pairs(players:GetPlayers()) do	
    	if plr:WaitForChild("Jumped").Value == true then
    	coroutine.wrap(function()
    				while wait(.1) do
    					warn("works")
    				end
    		end)()
    	   end	
    	  end
    	end	
    end)

Problem: Not prints “works” and the error: Infinite yield possible on 'Players.Player:WaitForChild(“Jumped”)

local script:

local UIS = game:GetService("UserInputService")
local Jumped = Instance.new("BoolValue",game.Players.LocalPlayer)
Jumped.Name = "Jumped"
Jumped.Value = false
UIS.InputBegan:connect(function(input,gameProcessed)
if input.KeyCode == Enum.KeyCode.Space then
Jumped.Value = true
local JumpEvent = game:GetService("ReplicatedStorage").PlayerEvents:WaitForChild("Jump")
JumpEvent:FireServer(game.Players.LocalPlayer)
wait(.4)
Jumped.Value = false
end
end)

adding things on the client does not replicate to server. Make the value on the server for this. (also changing the value of it won’t replicate either).