I had a major hacking problem on my game, so I had to turn on FilteringEnabled, but unfortunately that breaks a few of the scripts that run on my game. Is there an easy way that I can convert these scripts to be compatible with FilteringEnabled, or will I have to re-write them altogether?
Here are the scripts I'm having problems with. They are all located within ServerScriptService
DescriptionKey = "description" NameKey = "name" game.Players.PlayerAdded:connect(function(player) player.CharacterAdded:connect(function(character) ac = script.ScreenGui:Clone() ac.Parent = player.PlayerGui --Clone BillboardGui, add to character head bc = script.BillboardGui:Clone() bc.Parent = character.Head bc.Enabled = true --Create leaderstats stats = Instance.new("IntValue", player) stats.Name = "leaderstats" --Create value #1, add to leaderstats name = Instance.new("StringValue", stats) name.Name = "Name" name.Value = "" --Create value #2, add to leaderstats description = Instance.new("StringValue", stats) description.Name = "Description" description.Value = "" --Wait for player data to load player:WaitForDataReady() --Load keys description.Value = player:LoadString(DescriptionKey) name.Value = player:LoadString(NameKey) --Display information character.Head.BillboardGui.MainFrame.PlayerLabel.Text = name.Value character.Head.BillboardGui.MainFrame.OccupationLabel.Text = description.Value end) end) game.Players.PlayerRemoving:connect(function(player) --Save string, match corresponding values to keys player:SaveString(DescriptionKey, player.leaderstats.Description.Value) player:SaveString(NameKey, player.leaderstats.Name.Value) end) while true do for i,v in pairs(game.Players:GetPlayers()) do if v.leaderstats.Description.Value ~= "" then v:SaveString(DescriptionKey, v.leaderstats.Description.Value) end if v.leaderstats.Name.Value ~= "" then v:SaveString(NameKey, v.leaderstats.Name.Value) end end wait(120) --Save interval end
A cutscene that moves the camera along the map and displays the game title. The cutscene is working fine, but the button to skip it does not show up...
PlayerEntered
local cscript = script:WaitForChild("CutsceneScript") if script:findFirstChild("SkipCutsceneGuiValue") then script.SkipCutsceneGuiValue.Parent = cscript script.SkipCutsceneGui.Parent = cscript end function onPlayerEntered(player) repeat wait () until player.Character local new_script = script.CutsceneScript:clone() new_script.Parent = player.Character new_script.Disabled = false end game.Players.PlayerAdded:connect(onPlayerEntered) onPlayerEntered(game.Players:WaitForChild("Player1")) -- Has to be done since it doesn't work offline for some reason.
repeat wait () until game.Workspace.CurrentCamera ~= nil local c = game.Workspace.CurrentCamera local data = LoadLibrary("RbxUtility").DecodeJSON(script.CutsceneData.Value) local rs = game:GetService("RunService").RenderStepped function tweenCam(c1,f1,time,fov,roll) local c0,f0,fv0,r0,frames = c.CoordinateFrame,c.Focus,c.FieldOfView,c:GetRoll(),time/0.015 for i = 1,frames do c.CameraType = "Scriptable" c.CoordinateFrame = CFrame.new(c0.p:lerp(c1.p,i/frames),f0.p:lerp(f1.p,i/frames)) c.FieldOfView = (fv0+(fov-fv0)*(i*(1/frames))) c:SetRoll(r0+(roll-r0)*(i*(1/frames))) rs:wait() end end print("Running") c.CameraSubject = nil c.CameraType = "Scriptable" c.CoordinateFrame = CFrame.new(unpack(data[1].c1)) c.Focus = CFrame.new(unpack(data[1].f1)) c.FieldOfView = data[1].FOV c:SetRoll(data[1].Roll) if script:findFirstChild("SkipCutsceneGuiValue") then local gui = script.SkipCutsceneGui:clone() gui.Parent = game.Players.LocalPlayer.PlayerGui gui.Cutscene.Value = script gui.Main.Debug.Disabled = false script.SkipCutsceneGuiValue.Value = gui end for i = 2,#data do tweenCam(CFrame.new(unpack(data[i].c1)),CFrame.new(unpack(data[i].f1)),data[i].step,data[i].FOV,data[i].Roll) end c.CameraSubject = game.Players.LocalPlayer.Character.Humanoid c.CameraType = "Custom" c.FieldOfView = 70 if script:findFirstChild("SkipCutsceneGuiValue") then if script.SkipCutsceneGuiValue.Value ~= nil then script.SkipCutsceneGuiValue.Value:Destroy() end end script:Destroy()
local Weather = { "Auto", "Sunny", "Partly Cloudy", "Mostly Cloudy", "Cloudy", "Drizzle", "Freezing Drizzle", "Flurries", "Showers", "Rain / Snow Showers", "Snow Showers", "Rain", "Rain / Snow", "Snow", "Heavy Rain", "Heavy Rain / Snow", "Heavy Snow", "Thunderstorms", "Strong Thunderstorms" } local GUI = script.Parent.Frame local SelectedWeather = "Sunny" local WeatherDropDown, updateWeatherSelection = LoadLibrary("RbxGui").CreateDropDownMenu(Weather, function(value) SelectedWeather = value end) WeatherDropDown.Name = "WeatherDropDownLower" WeatherDropDown.Position = UDim2.new(0, 20, 0, 60) WeatherDropDown.Size = UDim2.new(0, 240, 0, 40) WeatherDropDown.Parent = GUI WeatherDropDown.Visible = true GUI.SetWeather.MouseButton1Click:connect(function() game.ReplicatedStorage.WeatherResources.Settings.AdminEvent:FireServer("Weather", SelectedWeather) end) GUI.SetTime.MouseButton1Click:connect(function() game.ReplicatedStorage.WeatherResources.Settings.AdminEvent:FireServer("Time", GUI.Time.Text) end) GUI.Back.MouseButton1Click:connect(function() GUI.Visible = false end) repeat wait() until game.Players.LocalPlayer ~= nil game.Players.LocalPlayer:GetMouse().KeyDown:connect(function(Key) if Key == game.ReplicatedStorage.WeatherResources.Settings.AdminHotKey.Value then GUI.Visible = true end end)
local onoff = 2 local eruption = game.Workspace.Volcano.erupt --- onoff = 2 then eruption is on --- onoff = 1 then eruption is off function onClicked(playerWhoClicked) if onoff == 1 then eruption.Value = true onoff = 2 else eruption.Value = false onoff = 1 end end script.Parent.ClickDetector.MouseClick:connect(onClicked)
while true do wait(.1) if script.Parent.Parent.erupt.Value==true then m=script.Parent.lava:Clone() m.Parent=game.Workspace m.Anchored=false m.CanCollide=true end end
function onTouch(part) local humanoid = part.Parent:findFirstChild("Humanoid") if (humanoid ~=nil) then humanoid.Health = 0 end end script.Parent.Touched:connect(onTouch)
m=script.Parent while true do wait(.01) if m.Anchored==false then wait(10) m.Transparency=.3 wait(.5) m.Transparency=.6 wait(.5) m.Transparency=.9 wait(.1) m:Remove() end end
Thank you to anyone who can help me with this. I just want to keep my game functioning without worrying about hackers making the rest of the players miserable...