local player = game.Players.LocalPlayer local char = player.Character function tool() for _, v in ipairs(player.Backpack:GetChildren()) do if v:FindFirstChild("SyncAPI") then return v end end for _, v in ipairs(char:GetChildren()) do if v:FindFirstChild("SyncAPI") then return v end end return nil end local f3x = tool() if not f3x then warn("you dont have f3x skid") end local syncapi = f3x.SyncAPI local serverendpoint = syncapi.ServerEndpoint local function makemesh(part) local args = { [1] = "CreateMeshes", [2] = { [1] = { ["Part"] = part } } } serverendpoint:InvokeServer(unpack(args)) end --crrreee local function syncmeshtexture(part, id) local args = { [1] = "SyncMesh", [2] = { [1] = { ["Part"] = part, ["TextureId"] = "rbxassetid://"..id } } } serverendpoint:InvokeServer(unpack(args)) end local function synctrans(part,int) local args = { [1] = "SyncMaterial", [2] = { [1] = { ["Part"] = part, ["Transparency"] = int } } } serverendpoint:InvokeServer(unpack(args)) end local function syncmeshsize(part, vectora) local args = { [1] = "SyncMesh", [2] = { [1] = { ["Part"] = part, ["Scale"] = vectora } } } serverendpoint:InvokeServer(unpack(args)) end local function setcollision(part, booleana) local args = { [1] = "SyncCollision", [2] = { [1] = { ["Part"] = part, ["CanCollide"] = booleana } } } serverendpoint:InvokeServer(unpack(args)) end local function syncmeshid(part, id) local args = { [1] = "SyncMesh", [2] = { [1] = { ["Part"] = part, ["MeshId"] = "rbxassetid://"..id } } } serverendpoint:InvokeServer(unpack(args)) end function setweld(p1, p2, lead) local args = { "CreateWelds", { p1, p2 }, lead } serverendpoint:InvokeServer(unpack(args)) end local function name(part, stringa) local args = { [1] = "SetName", [2] = { [1] = part }, [3] = stringa } serverendpoint:InvokeServer(unpack(args)) end local function setanchor(part, boolean) local args = { [1] = "SyncAnchor", [2] = { [1] = { ["Part"] = part, ["Anchored"] = boolean } } } serverendpoint:InvokeServer(unpack(args)) end local function resize(part,size,cf) local args = { [1] = "SyncResize", [2] = { [1] = { ["Part"] = part, ["CFrame"] = cf, ["Size"] = size } } } serverendpoint:InvokeServer(unpack(args)) end function deletehead(part) local h = { "Remove", { part } } serverendpoint:InvokeServer(unpack(h)) end local function addSmoke(part, color, size) local argsCreate = { [1] = "CreateDecorations", [2] = { [1] = { ["Part"] = part, ["DecorationType"] = "Smoke" } } } local argsSync = { [1] = "SyncDecorate", [2] = { [1] = { ["Part"] = part, ["DecorationType"] = "Smoke", ["Size"] = size, ["Color"] = color, } } } serverendpoint:InvokeServer(unpack(argsCreate)) serverendpoint:InvokeServer(unpack(argsSync)) end function createspotlight(part) local args = { [1] = "CreateLights", [2] = { [1] = { ["Part"] = part, ["LightType"] = "SpotLight" } } } serverendpoint:InvokeServer(unpack(args)) end function synclighting(part,brightness) local args = { [1] = "SyncLighting", [2] = { [1] = { ["Part"] = part, ["LightType"] = "SpotLight", ["Brightness"] = brightness } } } serverendpoint:InvokeServer(unpack(args)) end -- train for _, v in ipairs(char:GetChildren()) do if v:IsA("BasePart") or v:IsA("MeshPart") then spawn(function() v.Anchored = true end) end end spawn(function() local hrp = char.HumanoidRootPart local trainpart = serverendpoint:InvokeServer("CreatePart", "Normal", hrp.CFrame * CFrame.new(0,-7,0), char) local torso = char:FindFirstChild("Torso") local t = torso.CFrame + Vector3.new(0, -2, 0) local smoke = serverendpoint:InvokeServer("CreatePart", "Normal", t, torso) function xd() spawn(function() local args = { [1] = "SyncMaterial", [2] = { [1] = { ["Part"] = game:GetService("Players").LocalPlayer.Character.Torso, ["Transparency"] = 1 }, [2] = { ["Part"] = game:GetService("Players").LocalPlayer.Character:FindFirstChild("Left Leg"), ["Transparency"] = 1 }, [3] = { ["Part"] = game:GetService("Players").LocalPlayer.Character.HumanoidRootPart, ["Transparency"] = 1 }, [4] = { ["Part"] = game:GetService("Players").LocalPlayer.Character:FindFirstChild("Right Leg"), ["Transparency"] = 1 }, [5] = { ["Part"] = game:GetService("Players").LocalPlayer.Character:FindFirstChild("Right Arm"), ["Transparency"] = 1 }, [6] = { ["Part"] = game:GetService("Players").LocalPlayer.Character:FindFirstChild("Left Arm"), ["Transparency"] = 1 }, [7] = { ["Part"] = game:GetService("Players").LocalPlayer.Character.Head, ["Transparency"] = 1 }, } } serverendpoint:InvokeServer(unpack(args)) end) end spawn(function() setcollision(trainpart, false) --[[ or ]] trainpart.CanCollide = false end) spawn(function() resize(trainpart, Vector3.new(5,5,10), hrp.CFrame) end) spawn(function() setweld(trainpart, hrp, trainpart) end) spawn(function() makemesh(trainpart) end) spawn(function() syncmeshsize(trainpart, Vector3.new(2,2,2)) end) spawn(function() syncmeshid(trainpart, "2231280549") end) spawn(function() syncmeshtexture(trainpart, "2231280614") end) spawn(function() setanchor(trainpart, false) end) spawn(function() game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = 60 end) spawn(function() createspotlight(torso) end) spawn(function() synclighting(torso, 100) end) for _, v in ipairs(char:GetChildren()) do if v:IsA("BasePart") or v:IsA("MeshPart") then spawn(function() v.Anchored = false end) end end spawn(function() synctrans(smoke, 1) end) spawn(function() setweld(smoke, torso, smoke) end) spawn(function() addSmoke(smoke, Color3.fromRGB(30, 30, 30), 5) end) spawn(function() setanchor(smoke,false) end) spawn(function() setcollision(smoke, false) smoke.CanCollide = false end) function sound(id) s = Instance.new("Sound",workspace); s.SoundId = "rbxassetid://"..id; s.Volume = 1 end xd() debounce = {} trainpart.Touched:Connect(function(p) local model = p:FindFirstAncestorOfClass("Model") if not model then return end local hum = model:FindFirstChildOfClass("Humanoid") if not hum then return end local players = game.Players:GetPlayerFromCharacter(model) if not players then return end if players == player then return end if model:FindFirstChild("Head") then deletehead(model.Head) end sound(475073913) s:Play() end) end)