--Converted with ttyyuu12345's model to script plugin v4 function sandbox(var,func) local env = getfenv(func) local newenv = setmetatable({},{ __index = function(self,k) if k=="script" then return var else return env[k] end end, }) setfenv(func,newenv) return func end cors = {} mas = Instance.new("Model",game:GetService("Lighting")) Tool0 = Instance.new("Tool") Folder1 = Instance.new("Folder") RemoteFunction2 = Instance.new("RemoteFunction") RemoteFunction3 = Instance.new("RemoteFunction") LocalScript4 = Instance.new("LocalScript") Script5 = Instance.new("Script") Camera6 = Instance.new("Camera") Part7 = Instance.new("Part") Tool0.Name = "Drive" Tool0.Parent = mas Tool0.TextureId = "rbxassetid://549863293" Tool0.CanBeDropped = false Tool0.ToolTip = "Click on an player or npc to drive em like an car" Folder1.Name = "Remotes" Folder1.Parent = Tool0 RemoteFunction2.Name = "ServerControl" RemoteFunction2.Parent = Folder1 RemoteFunction3.Name = "ClientControl" RemoteFunction3.Parent = Folder1 LocalScript4.Parent = Tool0 table.insert(cors,sandbox(LocalScript4,function() --Made by DunclubDuncan Tool = script.Parent Handle = Tool:WaitForChild("Handle") Players = game:GetService("Players") RunService = game:GetService("RunService") UserInputService = game:GetService("UserInputService") InputCheck = Instance.new("ScreenGui") InputCheck.Name = "InputCheck" InputButton = Instance.new("Frame") InputButton.Name = "InputMonitor" InputButton.BackgroundTransparency = 1 InputButton.Size = UDim2.new(1, 0, 1, 0) InputButton.Parent = InputCheck Animations = {} LocalObjects = {} Remotes = Tool:WaitForChild("Remotes") ServerControl = Remotes:WaitForChild("ServerControl") ClientControl = Remotes:WaitForChild("ClientControl") ToolEquipped = false function SetAnimation(mode, value) if not ToolEquipped or not CheckIfAlive() then return end if mode == "PlayAnimation" and value and ToolEquipped and Humanoid then for i, v in pairs(Animations) do if v.Animation == value.Animation then v.AnimationTrack:Stop() table.remove(Animations, i) end end local AnimationTrack = Humanoid:LoadAnimation(value.Animation) table.insert(Animations, {Animation = value.Animation, AnimationTrack = AnimationTrack}) AnimationTrack:Play(value.FadeTime, value.Weight, value.Speed) elseif mode == "StopAnimation" and value then for i, v in pairs(Animations) do if v.Animation == value.Animation then v.AnimationTrack:Stop(value.FadeTime) table.remove(Animations, i) end end end end function DisableJump(Boolean) if PreventJump then PreventJump:disconnect() end if Boolean then PreventJump = Humanoid.Changed:connect(function(Property) if Property == "Jump" then Humanoid.Jump = false end end) end end function CheckIfAlive() return (((Character and Character.Parent and Humanoid and Humanoid.Parent and Humanoid.Health > 0 and Head and Head.Parent and Player and Player.Parent) and true) or false) end function Equipped(Mouse) Character = Tool.Parent Player = Players:GetPlayerFromCharacter(Character) Humanoid = Character:FindFirstChild("Humanoid") Head = Character:FindFirstChild("Head") ToolEquipped = true if not CheckIfAlive() then return end PlayerMouse = Mouse Mouse.KeyDown:connect(function(Key) InvokeServer("KeyPress", {Key = Key, Down = true}) end) Mouse.KeyUp:connect(function(Key) InvokeServer("KeyPress", {Key = Key, Down = false}) end) Mouse.Button1Down:connect(function() InvokeServer("MouseDown", {Down = true}) end) Mouse.Button1Up:connect(function() InvokeServer("MouseDown", {Down = false}) end) local PlayerGui = Player:FindFirstChild("PlayerGui") if PlayerGui then if UserInputService.TouchEnabled then InputCheckClone = InputCheck:Clone() InputCheckClone.InputMonitor.InputBegan:connect(function() InvokeServer("Button1Click", {Down = true}) end) InputCheckClone.InputMonitor.InputEnded:connect(function() InvokeServer("Button1Click", {Down = false}) end) InputCheckClone.Parent = PlayerGui end end end function Unequipped() ToolEquipped = false if InputCheckClone and InputCheckClone.Parent then InputCheckClone:Destroy() end for i, v in pairs(Animations) do if v and v.AnimationTrack then v.AnimationTrack:Stop() end end for i, v in pairs(LocalObjects) do if v.Object then v.Object.LocalTransparencyModifier = 0 end end for i, v in pairs({PreventJump, ObjectLocalTransparencyModifier}) do if v then v:disconnect() end end Animations = {} LocalObjects = {} end function InvokeServer(mode, value) local ServerReturn pcall(function() ServerReturn = ServerControl:InvokeServer(mode, value) end) return ServerReturn end function OnClientInvoke(mode, value) if not ToolEquipped or not CheckIfAlive() or not mode then return end if mode == "PlayAnimation" and value then SetAnimation("PlayAnimation", value) elseif mode == "StopAnimation" and value then SetAnimation("StopAnimation", value) elseif mode == "PlaySound" and value then value:Play() elseif mode == "StopSound" and value then value:Stop() elseif mode == "MouseData" then return {Position = PlayerMouse.Hit.p, Target = PlayerMouse.Target} elseif mode == "DisableJump" then DisableJump(value) elseif mode == "SetLocalTransparencyModifier" and value then pcall(function() local ObjectFound = false for i, v in pairs(LocalObjects) do if v == value then ObjectFound = true end end if not ObjectFound then table.insert(LocalObjects, value) if ObjectLocalTransparencyModifier then ObjectLocalTransparencyModifier:disconnect() end ObjectLocalTransparencyModifier = RunService.RenderStepped:connect(function() local Camera = game:GetService("Workspace").CurrentCamera for i, v in pairs(LocalObjects) do if v.Object and v.Object.Parent then local CurrentTransparency = v.Object.LocalTransparencyModifier local ViewDistance = (Camera.CoordinateFrame.p - Head.Position).Magnitude if ((not v.AutoUpdate and (CurrentTransparency == 1 or CurrentTransparency == 0)) or v.AutoUpdate) then if ((v.Distance and ViewDistance <= v.Distance) or not v.Distance) then v.Object.LocalTransparencyModifier = v.Transparency else v.Object.LocalTransparencyModifier = 0 end end else table.remove(LocalObjects, i) end end end) end end) end end ClientControl.OnClientInvoke = OnClientInvoke Tool.Equipped:connect(Equipped) Tool.Unequipped:connect(Unequipped) end)) Script5.Parent = Tool0 table.insert(cors,sandbox(Script5,function() --Made by DunclubDuncan Tool = script.Parent Handle = Tool:WaitForChild("Handle") --Mesh = Handle:WaitForChild("Mesh") IT = Instance.new CF = CFrame.new VT = Vector3.new RAD = math.rad C3 = Color3.new UD2 = UDim2.new BRICKC = BrickColor.new ANGLES = CFrame.Angles EULER = CFrame.fromEulerAnglesXYZ COS = math.cos ACOS = math.acos SIN = math.sin ASIN = math.asin ABS = math.abs MRANDOM = math.random FLOOR = math.floor wait() local Effects = IT("Folder",script.Parent) Debris = game:GetService("Debris") local TweenService = game:GetService("TweenService") function SetTween(SPart,CFr,MoveStyle2,outorin2,AnimTime) local MoveStyle = Enum.EasingStyle[MoveStyle2] local outorin = Enum.EasingDirection[outorin2] local dahspeed=1 local tweeningInformation = TweenInfo.new( AnimTime/dahspeed, MoveStyle, outorin, 0, false, 0 ) local MoveCF = CFr local tweenanim = TweenService:Create(SPart,tweeningInformation,MoveCF) tweenanim:Play() end --//=================================\\ --|| SAZERENOS' ARTIFICIAL HEARTBEAT --\\=================================// ArtificialHB = Instance.new("BindableEvent", script) ArtificialHB.Name = "ArtificialHB" script:WaitForChild("ArtificialHB") frame = 1/60 tf = 0 allowframeloss = false tossremainder = false lastframe = tick() script.ArtificialHB:Fire() game:GetService("RunService").Heartbeat:connect(function(s, p) tf = tf + s if tf >= frame then if allowframeloss then script.ArtificialHB:Fire() lastframe = tick() else for i = 1, math.floor(tf / frame) do script.ArtificialHB:Fire() end lastframe = tick() end if tossremainder then tf = 0 else tf = tf - frame * math.floor(tf / frame) end end end) function PositiveAngle(NUMBER) if NUMBER >= 0 then NUMBER = 0 end return NUMBER end function NegativeAngle(NUMBER) if NUMBER <= 0 then NUMBER = 0 end return NUMBER end function Swait(NUMBER) if NUMBER == 0 or NUMBER == nil then ArtificialHB.Event:wait() else for i = 1, NUMBER do ArtificialHB.Event:wait() end end end function QuaternionFromCFrame(cf) local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() local trace = m00 + m11 + m22 if trace > 0 then local s = math.sqrt(1 + trace) local recip = 0.5 / s return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5 else local i = 0 if m11 > m00 then i = 1 end if m22 > (i == 0 and m00 or m11) then i = 2 end if i == 0 then local s = math.sqrt(m00 - m11 - m22 + 1) local recip = 0.5 / s return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip elseif i == 1 then local s = math.sqrt(m11 - m22 - m00 + 1) local recip = 0.5 / s return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip elseif i == 2 then local s = math.sqrt(m22 - m00 - m11 + 1) local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip end end end function QuaternionToCFrame(px, py, pz, x, y, z, w) local xs, ys, zs = x + x, y + y, z + z local wx, wy, wz = w * xs, w * ys, w * zs local xx = x * xs local xy = x * ys local xz = x * zs local yy = y * ys local yz = y * zs local zz = z * zs return CFrame.new(px, py, pz, 1 - (yy + zz), xy - wz, xz + wy, xy + wz, 1 - (xx + zz), yz - wx, xz - wy, yz + wx, 1 - (xx + yy)) end function QuaternionSlerp(a, b, t) local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4] local startInterp, finishInterp; if cosTheta >= 0.0001 then if (1 - cosTheta) > 0.0001 then local theta = ACOS(cosTheta) local invSinTheta = 1 / SIN(theta) startInterp = SIN((1 - t) * theta) * invSinTheta finishInterp = SIN(t * theta) * invSinTheta else startInterp = 1 - t finishInterp = t end else if (1 + cosTheta) > 0.0001 then local theta = ACOS(-cosTheta) local invSinTheta = 1 / SIN(theta) startInterp = SIN((t - 1) * theta) * invSinTheta finishInterp = SIN(t * theta) * invSinTheta else startInterp = t - 1 finishInterp = t end end return a[1] * startInterp + b[1] * finishInterp, a[2] * startInterp + b[2] * finishInterp, a[3] * startInterp + b[3] * finishInterp, a[4] * startInterp + b[4] * finishInterp end function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET) local NEWMESH = IT(MESH) if MESH == "SpecialMesh" then NEWMESH.MeshType = MESHTYPE if MESHID ~= "nil" and MESHID ~= "" then NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID end if TEXTUREID ~= "nil" and TEXTUREID ~= "" then NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID end end NEWMESH.Offset = OFFSET or VT(0, 0, 0) NEWMESH.Scale = SCALE NEWMESH.Parent = PARENT return NEWMESH end function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR) local NEWPART = IT("Part") NEWPART.formFactor = FORMFACTOR NEWPART.Reflectance = REFLECTANCE NEWPART.Transparency = TRANSPARENCY NEWPART.CanCollide = false NEWPART.Locked = true NEWPART.Anchored = true if ANCHOR == false then NEWPART.Anchored = false end NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR)) NEWPART.Name = NAME NEWPART.Size = SIZE NEWPART.Position = script.Parent.Handle.Position NEWPART.Material = MATERIAL NEWPART:BreakJoints() NEWPART.Parent = PARENT return NEWPART end function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP) local NEWSOUND = nil coroutine.resume(coroutine.create(function() NEWSOUND = IT("Sound") NEWSOUND.Parent = PARENT NEWSOUND.Volume = VOLUME NEWSOUND.Pitch = PITCH NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID NEWSOUND:play() if DOESLOOP == true then NEWSOUND.Looped = true else repeat wait(1) until NEWSOUND.Playing == false NEWSOUND:remove() end end)) return NEWSOUND end function WACKYEFFECT(Table) local TYPE = (Table.EffectType or "Sphere") local SIZE = (Table.Size or VT(1,1,1)) local ENDSIZE = (Table.Size2 or VT(0,0,0)) local TRANSPARENCY = (Table.Transparency or 0) local ENDTRANSPARENCY = (Table.Transparency2 or 1) local CFRAME = (Table.CFrame or script.Parent.Handle.CFrame) local MOVEDIRECTION = (Table.MoveToPos or nil) local ROTATION1 = (Table.RotationX or 0) local ROTATION2 = (Table.RotationY or 0) local ROTATION3 = (Table.RotationZ or 0) local MATERIAL = (Table.Material or "Neon") local COLOR = (Table.Color or C3(1,1,1)) local TIME = (Table.Time or 45) local SOUNDID = (Table.SoundID or nil) local SOUNDPITCH = (Table.SoundPitch or nil) local SOUNDVOLUME = (Table.SoundVolume or nil) local USEBOOMERANGMATH = (Table.UseBoomerangMath or false) local BOOMERANG = (Table.Boomerang or 0) local SIZEBOOMERANG = (Table.SizeBoomerang or 0) local REFLECT = (Table.Reflectance or 0) coroutine.resume(coroutine.create(function() local PLAYSSOUND = false local SOUND = nil local EFFECT = CreatePart(3, Effects, MATERIAL, REFLECT, TRANSPARENCY, BRICKC("Pearl"), "Effect", VT(1,1,1), true) if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then PLAYSSOUND = true SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false) end EFFECT.Color = COLOR local MSH = nil if TYPE == "Sphere" then MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0)) elseif TYPE == "Block" or TYPE == "Box" then MSH = IT("BlockMesh",EFFECT) MSH.Scale = SIZE elseif TYPE == "Wave" then MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8)) elseif TYPE == "Ring" then MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0)) elseif TYPE == "Slash" then MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0)) elseif TYPE == "Round Slash" then MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0)) elseif TYPE == "Swirl" then MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "168892432", "", SIZE, VT(0,0,0)) elseif TYPE == "Skull" then MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0)) elseif TYPE == "Crystal" then MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0)) end if MSH ~= nil then local BOOMR1 = 1+BOOMERANG/50 local BOOMR2 = 1+SIZEBOOMERANG/50 local MOVESPEED = nil if MOVEDIRECTION ~= nil then if USEBOOMERANGMATH == true then MOVESPEED = ((CFRAME.p - MOVEDIRECTION).Magnitude/TIME)*BOOMR1 else MOVESPEED = ((CFRAME.p - MOVEDIRECTION).Magnitude/TIME) end end local GROWTH = nil if USEBOOMERANGMATH == true then GROWTH = (SIZE - ENDSIZE)*(BOOMR2+1) else GROWTH = (SIZE - ENDSIZE) end local TRANS = TRANSPARENCY - ENDTRANSPARENCY if TYPE == "Block" then EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))) else EFFECT.CFrame = CFRAME end if USEBOOMERANGMATH == true then for LOOP = 1, TIME+1 do Swait() MSH.Scale = MSH.Scale - (VT((GROWTH.X)*((1 - (LOOP/TIME)*BOOMR2)),(GROWTH.Y)*((1 - (LOOP/TIME)*BOOMR2)),(GROWTH.Z)*((1 - (LOOP/TIME)*BOOMR2)))*BOOMR2)/TIME if TYPE == "Wave" then MSH.Offset = VT(0,0,-MSH.Scale.Z/8) end EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME if TYPE == "Block" then EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))) else EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3)) end if MOVEDIRECTION ~= nil then local ORI = EFFECT.Orientation EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-(MOVESPEED)*((1 - (LOOP/TIME)*BOOMR1))) EFFECT.Orientation = ORI end end else for LOOP = 1, TIME+1 do Swait() MSH.Scale = MSH.Scale - GROWTH/TIME if TYPE == "Wave" then MSH.Offset = VT(0,0,-MSH.Scale.Z/8) end EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME if TYPE == "Block" then EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))) else EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3)) end if MOVEDIRECTION ~= nil then local ORI = EFFECT.Orientation EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED) EFFECT.Orientation = ORI end end end EFFECT.Transparency = 1 if PLAYSSOUND == false then EFFECT:remove() else repeat Swait() until EFFECT:FindFirstChildOfClass("Sound") == nil EFFECT:remove() end else if PLAYSSOUND == false then EFFECT:remove() else repeat Swait() until EFFECT:FindFirstChildOfClass("Sound") == nil EFFECT:remove() end end end)) end Players = game:GetService("Players") Debris = game:GetService("Debris") RbxUtility = LoadLibrary("RbxUtility") Create = RbxUtility.Create BaseUrl = "rbxassetid://" BaseRobux = Tool.Handle:Clone() Animations = {} Rate = (1 / 60) ReloadTime = 0 ToolEquipped = false Remotes = Tool:WaitForChild("Remotes") ServerControl = (Remotes:FindFirstChild("ServerControl") or Create("RemoteFunction"){ Name = "ServerControl", Parent = Remotes, }) ClientControl = (Remotes:FindFirstChild("ClientControl") or Create("RemoteFunction"){ Name = "ClientControl", Parent = Remotes, }) for i, v in pairs(Tool:GetChildren()) do if v:IsA("BasePart") and v ~= Handle then v:Destroy() end end Tool.Enabled = true function IsABuildersClubMember() return (Player.MembershipType ~= Enum.MembershipType.None) end function RemoveOutlines(part) part.TopSurface, part.BottomSurface, part.LeftSurface, part.RightSurface, part.FrontSurface, part.BackSurface = 10, 10, 10, 10, 10, 10 end CFuncs = { Part = {Create = function(Parent, Material, Reflectance, Transparency, BColor, Name, Size) local Part = Create("Part")({Parent = Parent, Reflectance = Reflectance, Transparency = Transparency, CanCollide = false, Locked = true, BrickColor = BrickColor.new(tostring(BColor)), Name = Name, Size = Size, Material = Material}) RemoveOutlines(Part) return Part end } , Mesh = {Create = function(Mesh, Part, MeshType, MeshId, OffSet, Scale) local Msh = Create(Mesh)({Parent = Part, Offset = OffSet, Scale = Scale}) if Mesh == "SpecialMesh" then Msh.MeshType = MeshType Msh.MeshId = MeshId end return Msh end } , Mesh = {Create = function(Mesh, Part, MeshType, MeshId, OffSet, Scale) local Msh = Create(Mesh)({Parent = Part, Offset = OffSet, Scale = Scale}) if Mesh == "SpecialMesh" then Msh.MeshType = MeshType Msh.MeshId = MeshId end return Msh end } , Weld = {Create = function(Parent, Part0, Part1, C0, C1) local Weld = Create("Weld")({Parent = Parent, Part0 = Part0, Part1 = Part1, C0 = C0, C1 = C1}) return Weld end } , Sound = {Create = function(id, par, vol, pit) coroutine.resume(coroutine.create(function() local S = Create("Sound")({Volume = vol, Pitch = pit or 1, SoundId = "http://www.roblox.com/asset/?id="..id, Parent = par or workspace}) wait() S:play() game:GetService("Debris"):AddItem(S, 8) end )) end } , Song = {Create = function(id, par, vol, pit) coroutine.resume(coroutine.create(function() local S = Create("Sound")({Volume = vol, Pitch = pit or 1, SoundId = "http://www.roblox.com/asset/?id="..id, Parent = par or workspace}) wait() S.Name = "Song" S:play() S.Looped = true end )) end } , ParticleEmitter = {Create = function(Parent, Color1, Color2, LightEmission, Size, Texture, Transparency, ZOffset, Accel, Drag, LockedToPart, VelocityInheritance, EmissionDirection, Enabled, LifeTime, Rate, Rotation, RotSpeed, Speed, VelocitySpread) local fp = Create("ParticleEmitter")({Parent = Parent, Color = ColorSequence.new(Color1, Color2), LightEmission = LightEmission, Size = Size, Texture = Texture, Transparency = Transparency, ZOffset = ZOffset, Acceleration = Accel, Drag = Drag, LockedToPart = LockedToPart, VelocityInheritance = VelocityInheritance, EmissionDirection = EmissionDirection, Enabled = Enabled, Lifetime = LifeTime, Rate = Rate, Rotation = Rotation, RotSpeed = RotSpeed, Speed = Speed, VelocitySpread = VelocitySpread}) return fp end } } local TinyPart = Create("Part"){ Parent = nil, Material = "SmoothPlastic", Reflectance = 0, Transparency = 1, Name = "TeamTagHandle", Size = Vector3.new(0.05, 0.05, 0.05), Locked = false, CanCollide = false, } local TinySeat = Create("VehicleSeat"){ Parent = nil, Material = "SmoothPlastic", Reflectance = 0, Transparency = 1, Name = "FetSeat", Size = Vector3.new(0.05, 0.05, 0.05), Locked = false, CanCollide = true, } function seat(thing) local TinySeat2 = TinySeat:Clone() TinySeat2.Parent = thing CFuncs.Weld.Create(thing, TinySeat2, (thing:FindFirstChild("HumanoidRootPart") or thing:FindFirstChild("Torso")), CFrame.new(0,0.5,0), CFrame.new(0,0,0)) coroutine.resume(coroutine.create(function() local hum2 = thing:FindFirstChildOfClass("Humanoid") while true do wait() if hum2.Sit == true and TinySeat2.Parent ~= nil then hum2.Sit = false end if TinySeat2.Occupant == nil and TinySeat2.Parent ~= nil then hum2.PlatformStand = true end end end)) TinySeat2.Changed:connect(function(property) if property == "Occupant" then if TinySeat2.Occupant then local player = game.Players:GetPlayerFromCharacter(TinySeat2.Occupant.Parent) if player then if player.Character == thing then local hum2 = thing:FindFirstChildOfClass("Humanoid") hum2.Jump = true end local PTchar = player.Character PTchar.Parent = thing for _,v2 in pairs(PTchar:GetChildren()) do if v2:isA("BasePart") then if v2.Name ~= "HumanoidRootPart"then v2.Transparency = 1 if v2:FindFirstChild("face") then local face = v2:FindFirstChild("face") coroutine.resume(coroutine.create(function() face.Parent = PTchar end)) end end end if v2:isA("Accessory") then v2.Handle.Transparency = 1 end end while TinySeat2.Occupant do wait() local hum1 = player.Character:FindFirstChildOfClass("Humanoid") local move1 = hum1.MoveDirection local hum2 = thing:FindFirstChildOfClass("Humanoid") local HTorso = (thing:FindFirstChild("HumanoidRootPart") or thing:FindFirstChild("Torso")) if thing.Parent ~= nil and thing:FindFirstChildOfClass("Humanoid") and HTorso ~= nil then coroutine.resume(coroutine.create(function() if (move1-Vector3.new()).magnitude > .5 then hum2:MoveTo(HTorso.Position + move1*(hum2.WalkSpeed/2)) hum2.PlatformStand = false end end)) end end for _,v2 in pairs(PTchar:GetChildren()) do if v2:isA("BasePart") then if v2.Name ~= "HumanoidRootPart"then v2.Transparency = 0 end end if v2:isA("Accessory") then v2.Handle.Transparency = 0 end local face = PTchar:FindFirstChild("face") coroutine.resume(coroutine.create(function() face.Parent = PTchar.Head end)) end PTchar.Parent = thing.Parent coroutine.resume(coroutine.create(function() local HTorso = thing:FindFirstChild("Torso") or thing:FindFirstChild("UpperTorso") PTchar:MoveTo(HTorso.Position) end)) TinySeat2:Destroy() end end end end) end function Fire(TargetPosition,targ) local SpawnPosition= Handle.CFrame local TargetDirection = CFrame.new(SpawnPosition.p, TargetPosition) local EFFECT = CreatePart(3, workspace, "Glass", -15, .5, BRICKC("Really red"), "Effect", VT(1,1,1), true) local MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", VT(1,1,1), VT(0,0,0)) game:GetService("Debris"):AddItem(EFFECT, 1) EFFECT.CFrame = TargetDirection SetTween(EFFECT,{CFrame = TargetDirection*CF(0,0,-2000),Transparency=1,Reflectance = -1},"Quad","Out",.4) SetTween(MSH,{Scale = VT(0,0,4000)},"Quad","Out",.4) if targ~= nil and targ.Parent:FindFirstChildOfClass("Humanoid") and (targ.Parent:FindFirstChild("HumanoidRootPart") or targ.Parent:FindFirstChild("Torso")) and not targ.Parent:FindFirstChild("FetSeat") then seat(targ.Parent) WACKYEFFECT({Time = 30,EffectType = "Wave", Size = VT(5,0,5), Size2 = VT(3,10,3), Transparency = 0, Transparency2 = 1, CFrame = Tool.Parent.PrimaryPart.CFrame*CF(0,-3,0)*CFrame.Angles(math.rad(0),0,0), RotationX = 0, RotationY = 2, RotationZ = 0, Material = "Neon", Color = C3(1,0,0),SoundID = 260433768, SoundPitch = 1, SoundVolume = 2}) wait() coroutine.resume(coroutine.create(function() Tool.Parent.PrimaryPart.CFrame = targ.Parent.PrimaryPart.CFrame end)) print(targ.Parent.Name.." Has now an seat") end end Tool.Handle.Transparency = 1 function Activated() local MouseData = InvokeClient("MouseData") if not Tool.Enabled or not CheckIfAlive() or not MouseData or not MouseData.Position then return end Tool.Enabled = false --Tool.Sound:Play() --wait(1) Fire(MouseData.Position,MouseData.Target) wait(ReloadTime) Tool.Enabled = true end function CheckIfAlive() return (((Character and Character.Parent and Humanoid and Humanoid.Parent and Humanoid.Health > 0 and Player and Player.Parent) and true) or false) end function Equipped(Mouse) Character = Tool.Parent Player = Players:GetPlayerFromCharacter(Character) Humanoid = Character:FindFirstChild("Humanoid") if not CheckIfAlive() then return end ToolEquipped = true end function Unequipped() ToolEquipped = false end function OnServerInvoke(player, mode, value) if player ~= Player or not ToolEquipped or not value or not CheckIfAlive() then return end end function InvokeClient(Mode, Value) local ClientReturn = nil pcall(function() ClientReturn = ClientControl:InvokeClient(Player, Mode, Value) end) return ClientReturn end ServerControl.OnServerInvoke = OnServerInvoke Tool.Activated:connect(Activated) Tool.Equipped:connect(Equipped) Tool.Unequipped:connect(Unequipped) end)) Camera6.Name = "ThumbnailCamera" Camera6.Parent = Tool0 Camera6.CFrame = CFrame.new(-4.9871726, 0.0290265176, 0.00962322857, 0.00304074143, 0.00531486468, -0.999981284, 1.81898919e-12, 0.999985874, 0.00531488936, 0.999995351, -1.61612061e-05, 0.00304069882) Camera6.CoordinateFrame = CFrame.new(-4.9871726, 0.0290265176, 0.00962322857, 0.00304074143, 0.00531486468, -0.999981284, 1.81898919e-12, 0.999985874, 0.00531488936, 0.999995351, -1.61612061e-05, 0.00304069882) Camera6.FieldOfView = 22.5 Camera6.Focus = CFrame.new(-2.98721004, 0.0183967389, 0.00354183093, 1, 0, 0, 0, 1, 0, 0, 0, 1) Camera6.focus = CFrame.new(-2.98721004, 0.0183967389, 0.00354183093, 1, 0, 0, 0, 1, 0, 0, 0, 1) Part7.Name = "Handle" Part7.Parent = Tool0 Part7.CFrame = CFrame.new(-181.801544, 268.103943, 2804.72852, 1, -1.31518533e-07, 2.98020559e-08, 1.31518533e-07, 1, -2.31752679e-08, -2.98020559e-08, 2.31752857e-08, 1) Part7.Position = Vector3.new(-181.80154418945312, 268.10394287109375, 2804.728515625) Part7.Transparency = 1 Part7.Size = Vector3.new(0.05000000074505806, 0.05000000074505806, 0.05000000074505806) Part7.BottomSurface = Enum.SurfaceType.Smooth Part7.CanCollide = false Part7.TopSurface = Enum.SurfaceType.Smooth Part7.FormFactor = Enum.FormFactor.Custom Part7.formFactor = Enum.FormFactor.Custom for i,v in pairs(mas:GetChildren()) do v.Parent = owner.Character pcall(function() v:MakeJoints() end) end mas:Destroy() for i,v in pairs(cors) do spawn(function() pcall(v) end) end