I have this remote event for whenever a player is in the Region3 of an arena I made, and I want certain attack functions to perform whenever the player is in the Region3. I set up a remote event for it, and when the player is in the Region3, a bool value is set to true, and is fired to the server. On the server event, certain attack functions are supposed to happen, but they don't happen. I even had prints say the function was working, and that worked, but the function never happened.
Server script
InRange = false function ShootingArc(plrtorso,plr) if not InRange then return end local mouse = plr:GetMouse() local hrp = plr.Character:WaitForChild("HumanoidRootPart") local t = 1 local g = Vector3.new(0, -game.Workspace.Gravity, 0); local x0 = script.Parent.HumanoidRootPart.CFrame * Vector3.new(0, 0,-10) local v0 = (plrtorso.Position - x0 - 0.5*g*t*t)/t; local Star = game.ReplicatedStorage.MagicItems.Particles.BlazeMagic.Fire:Clone() Star.Name = "SunComet" Star.Anchored = false Star.CanCollide = false Star.Parent = workspace.MagicParts Star.CFrame = CFrame.new(x0) Star.Velocity = v0 Star.SunExplosion.Enabled = false Star.Size = Vector3.new(7,7,7) Star.Touched:Connect(function(hit) if hit.Parent == script.Parent then return end Star:Destroy() local h = hit.Parent:FindFirstChild("Humanoid") local pv = hit.Parent:FindFirstChild("PlayerSV") if h ~= nil then if pv ~= nil then print((Star.Position - hit.Parent.Torso.Position).magnitude) if (Star.Position - hit.Parent.Torso.Position).magnitude <= 60 then h:TakeDamage(800) end end end local Sun = Instance.new("Part") Sun.Parent = workspace.MagicParts Sun.Material = "Neon" Sun.BrickColor = BrickColor.new("Deep orange") Sun.Position = Star.Position Sun.Shape = "Ball" Sun.Size = Vector3.new(0,0,0) Sun.Transparency = 0 Sun.CanCollide = false Sun.Anchored = true --local SunPE = game.Workspace.Fire.SunExplosion:Clone() --SunPE.Parent = Sun --SunPE.Enabled = true for i = 1, 30 do Sun.Size = Sun.Size + Vector3.new(4,4,4) --Sun.Transparency = Sun.Transparency + 0.05 wait() end game.Debris:AddItem(Sun,.05) end) game.Debris:AddItem(Star,10) wait(2) end game.ReplicatedStorage.AreaRegions["Theos' Arena"].RemoteEvent.OnServerEvent:Connect(function(plr,InRegion) if InRegion == false then return end local char = plr.Character or plr.CharacterAdded:Wait() while true do wait(1) if InRegion == true then ShootingArc(char.Torso,plr) print("InRegion true for Theos' Arena") print(ShootingArc) else return end end end)
The local script
InRegion = false for i,v in pairs(game.ReplicatedStorage.AreaRegions:GetChildren()) do local X = math.abs(v.Point1.Position.X-v.Point2.Position.X) local X2 = (v.Point1.Position.X+v.Point2.Position.X)/2 local Y = math.abs(v.Point1.Position.Y-v.Point2.Position.Y) local Y2 = (v.Point1.Position.Y+v.Point2.Position.Y)/2 local Z = math.abs(v.Point1.Position.Z-v.Point2.Position.Z) local Z2 = (v.Point1.Position.Z+v.Point2.Position.Z)/2 local size = (Vector3.new(X,Y,Z))/2 local pos = Vector3.new(X2,Y2,Z2) local reg = Region3.new(pos - size, pos + size) local whitelist = {c.HumanoidRootPart} spawn(function() while wait(1) do InRegion = false local n = workspace:FindPartsInRegion3WithWhiteList(reg,whitelist,10) for _,v2 in pairs(n) do if v2.Parent:FindFirstChild("Humanoid") and v2.Parent == c and v2.Name == "HumanoidRootPart" then local plr = game.Players:GetPlayerFromCharacter(v2.Parent) InRegion = true if plr.AreaConfig.Area.Value ~= v.Name then plr.AreaConfig.Area.Value = v.Name MusicChange(v.Music) AmbientChange(v.Config) v.RemoteEvent:FireServer(InRegion) end end end end end) end