--[[ I comit oof IDs of accessories: -for arms 11159410305,11263254795 or 14255556501,14255554762 -for legs 14768693948,14768701869 or 11159483910,12652786974 -for torso 14255528083 or 13421786478 or 14768678294 or anything else that covers ur torso. examples: 13423624885,11502853991,14053485259,13779879140,14443132226 can be same stuff but different colors there are 32 ways to make a rig with the ids above ]] --findfirstchildofclass faster than getservice local plrs=game:FindFirstChildOfClass("Players") local rs=game:FindFirstChildOfClass("RunService") local ws=game:FindFirstChildOfClass("Workspace") local uis=game:FindFirstChildOfClass("UserInputService") local gs=game:FindFirstChildOfClass("GuiService") local cg=game:FindFirstChildOfClass("CoreGui") local lp=plrs.LocalPlayer local pg=lp:FindFirstChildOfClass("PlayerGui") local mouse=lp:GetMouse() local stepped=rs.Stepped local heartbeat=rs.Heartbeat local renderstepped=rs.RenderStepped local osclock=os.clock local tspawn=task.spawn local twait=task.wait local schar=string.char local sbyte=string.byte local ssub=string.sub local sfind=string.find local supper=string.upper local mrandom=math.random local clamp=math.clamp local sin=math.sin local cos=math.cos local abs=math.abs local rad=math.rad local tinsert=table.insert local tclear=table.clear local tclone=table.clone local tfind=table.find local tunpack=table.unpack --the loops dont have to read globals to get the "pairs" or "next" variable every time local pairs=pairs local next=next local i=Instance.new local v2=Vector2.new local v3=Vector3.new local c3=Color3.new local cf=CFrame.new local angles=CFrame.Angles local u2=UDim2.new local e=Enum local cs=ColorSequence.new local csk=ColorSequenceKeypoint.new local sine=osclock() local deltaTime=0 local v3_0=v3(0,0,0) local v3_101=v3(1,0,1) local v3_010=v3(0,1,0) local v3_001=v3(0,0,1) local cf_0=cf(0,0,0) local v3_xz=v3_101*10 local v3_net=v3_010*25.01 local function makepcall(f) if type(f)=="function" then return function(...) local a={...} local r=nil pcall(function() r={f(tunpack(a))} end) return tunpack(r or {}) end end return function() end end local function rs(l) l=l or mrandom(8,15) local s="" for i=1,l do if mrandom(1,2)==1 then s=s..schar(mrandom(65,90)) else s=s..schar(mrandom(97,122)) end end return s end local function dfind(t,v) for i,v1 in pairs(t) do if v1==v then return i end end return nil end local function gp(p,n,cl) if typeof(p)=="Instance" then local c=p:GetChildren() for i=1,#c do local v=c[i] if (v.Name==n) and v:IsA(cl) then return v end end end return nil end local function loopgp(...) while true do local r=gp(...) if r then return r end stepped:Wait() end end local function timegp(p,n,c,t) t=osclock()+t while t>osclock() do local r=gp(p,n,c) if r then return r end stepped:Wait() end return nil end local function getNetlessVelocity(realVel) --if true then return v3_0 end --if true then return realPartVelocity end --if true then return v3_net end if realVel.Magnitude>25.01 then realVel=realVel.Unit*25.01 end return realVel*v3_xz+v3_net end local sft=1/60 local function getFallingTime(startY,destY,gravity) local velY=25.01 local currY=startY local fallingTime=0 while (currY>destY) or (velY>0) do fallingTime=fallingTime+sft velY=velY-sft*gravity currY=currY+velY*sft end return fallingTime end local isClientInstance=makepcall(function(i) return ssub(i:GetDebugId(),1,1)=="0" end) local isServerInstance=function(i) return not isClientInstance(i) end local shp=(((type(getfenv)=="function") and getfenv()) or {}).sethiddenproperty local guiTheme={ guiTitle="Hiso hub", windowTopColor=c3(0,0,0), windowBottomColor=c3(0,0,0), windowMinimizedSize=u2(0,290,0,22), windowRegularSize=u2(0,290,0,520), buttonsTextColor=c3(1,1,1), labelsTextColor=c3(0.5,0.5,0.5), listTopColor=c3(0,0,0), listBottomColor=c3(0.5,0,0) } local i1=i("Frame") local i2=i("Frame") local i3=i("ScrollingFrame") local i4=i("UIListLayout") local i5=i("UIGradient") local i6=i("TextLabel") local i7=i("TextButton") local i8=i("UIGradient") local i9=i("ScreenGui") local i10=i("TextButton") i1.AnchorPoint=v2(0.5,0) i1.BackgroundColor3=c3(1,0,0) i1.BorderSizePixel=0 i1.Position=u2(0.5,0,0.5,-150) i1.Size=guiTheme.windowRegularSize i1.Name=rs() i1.Parent=i9 i2.BackgroundColor3=c3(1,0,0) i2.BorderSizePixel=0 i2.Position=u2(0,5,0,20) i2.Size=u2(1,-10,1,-25) i2.Name=rs() i2.Parent=i1 i3.Active=true i3.BackgroundTransparency=1 i3.BorderSizePixel=0 i3.Size=u2(1,-3,1,0) i3.AutomaticCanvasSize=e.AutomaticSize.Y i3.CanvasSize=u2(0,0,0,0) i3.ScrollBarThickness=7 i3.Name=rs() i3.Parent=i2 i4.Name=rs() i4.Parent=i3 i4.SortOrder=e.SortOrder.LayoutOrder i5.Name=rs() i5.Parent=i2 i5.Color=cs({[1]=csk(0,guiTheme.listTopColor),[2]=csk(1,guiTheme.listBottomColor)}) i5.Rotation=90 i6.Font=e.Font.SourceSansBold i6.FontSize=e.FontSize.Size18 i6.Text=guiTheme.guiTitle i6.TextColor3=c3(1,1,1) i6.TextSize=16 i6.BackgroundTransparency=1 i6.BorderSizePixel=0 i6.Position=u2(0,1,0,1) i6.Size=u2(1,-2,0,20) i6.Name=rs() i6.Parent=i1 i7.AnchorPoint=v2(1,0) i7.BackgroundTransparency=1 i7.Position=u2(1,0,0,0) i7.Size=u2(0,40,1,0) i7.Name=rs() i7.Parent=i6 i7.Font=e.Font.SourceSansBold i7.FontSize=e.FontSize.Size18 i7.Text="=" i7.TextColor3=c3(1,1,1) i7.TextSize=16 i8.Name=rs() i8.Parent=i1 i8.Color=cs({[1]=csk(0,guiTheme.windowTopColor),[2]=csk(1,guiTheme.windowBottomColor)}) i8.Rotation=90 i9.ZIndexBehavior=e.ZIndexBehavior.Sibling i9.IgnoreGuiInset=true i9.ResetOnSpawn=false i9.Name=rs() i10.AnchorPoint=v2(1,0) i10.BackgroundTransparency=1 i10.Position=u2(0.13,0,0,0) i10.Size=u2(0,40,1,0) i10.Name=rs() i10.Parent=i6 i10.Font=e.Font.SourceSansBold i10.FontSize=e.FontSize.Size18 i10.RichText = true i10.Text="X" i10.TextColor3=c3(1,1,1) i10.TextSize=16 local stopreanimate=function() return nil end local min=false i7.MouseButton1Click:Connect(function() min = not min if min then i2.Visible=false i8.Color=cs({[1]=csk(0,c3(0,0,0)),[2]=csk(1,c3(0,0,0))}) i1.Size=guiTheme.windowMinimizedSize else i1.Size=guiTheme.windowRegularSize i8.Color=cs({[1]=csk(0,c3(0,0,0)),[2]=csk(1,c3(0,0,0))}) i2.Visible=true end end) i10.MouseButton1Click:Connect(function() i1:Destroy() i2:Destroy() i3:Destroy() i4:Destroy() i5:Destroy() i6:Destroy() i7:Destroy() i8:Destroy() i9:Destroy() stopreanimate() end) local function Draggable(window,obj) local MB1enum = e.UserInputType.MouseButton1 local TOUCHenum = e.UserInputType.Touch obj = obj or window local activeEntered = 0 local mouseStart = nil local dragStart = nil local inputbegancon = nil local rendersteppedcon = nil local inputendedcon = nil local function inputendedf(a) a=a.UserInputType if (a==MB1enum) or (a==TOUCHenum) then rendersteppedcon:Disconnect() inputendedcon:Disconnect() end end local function rendersteppedf() local off = uis:GetMouseLocation()-mouseStart window.Position=dragStart+u2(0,off.X,0,off.Y) end local function inputbeganf(a) a=a.UserInputType if ((a==MB1enum) or (a==TOUCHenum)) and (activeEntered==0) and not uis:GetFocusedTextBox() then mouseStart=uis:GetMouseLocation() dragStart=window.Position if rendersteppedcon then rendersteppedcon:Disconnect() end rendersteppedcon = renderstepped:Connect(rendersteppedf) if inputendedcon then inputendedcon:Disconnect() end inputendedcon = uis.InputEnded:Connect(inputendedf) end end obj.MouseEnter:Connect(function() if inputbegancon then inputbegancon:Disconnect() end inputbegancon = uis.InputBegan:Connect(inputbeganf) end) obj.MouseLeave:Connect(function() inputbegancon:Disconnect() end) local function ondes(d) if d:IsA("GuiObject") then local thisEntered = false local thisAdded = false local con0 = d.MouseEnter:Connect(function() thisEntered = true if (not thisAdded) and d.Active then activeEntered = activeEntered + 1 thisAdded = true end end) local con1 = d.MouseLeave:Connect(function() thisEntered = false if thisAdded then activeEntered = activeEntered - 1 thisAdded = false end end) local con2 = d:GetPropertyChangedSignal("Active"):Connect(function() if thisEntered then if thisAdded and not d.Active then activeEntered = activeEntered - 1 thisAdded = false elseif d.Active and not thisAdded then activeEntered = activeEntered + 1 thisAdded = true end end end) local con3 = nil con3 = d.AncestryChanged:Connect(function() if not d:IsDescendantOf(window) then if thisEntered then activeEntered = activeEntered - 1 end con0:Disconnect() con1:Disconnect() con2:Disconnect() con3:Disconnect() end end) end end window.DescendantAdded:Connect(ondes) local des=window:GetDescendants() for i=1,#des do ondes(des[i]) end end local function btn(txt, f) local i1=i("TextButton") i1.AutomaticSize=e.AutomaticSize.Y i1.BackgroundTransparency=1 i1.Size=u2(1,0,0,0) i1.Name=rs() i1.Font=e.Font.SourceSans i1.FontSize=e.FontSize.Size14 i1.Text=txt i1.TextColor3=guiTheme.buttonsTextColor if f then i1.MouseButton1Click:Connect(f) end i1.Parent=i3 return i1 end local function lbl(txt) local i1=i("TextLabel") i1.Font=e.Font.SourceSansBold i1.FontSize=e.FontSize.Size14 i1.Text=txt i1.TextColor3=guiTheme.labelsTextColor i1.AutomaticSize=e.AutomaticSize.Y i1.BackgroundTransparency=1 i1.Size=u2(1,0,0,0) i1.Name=rs() i1.Parent=i3 return i1 end Draggable(i1) lbl("By: hiso") lbl("powered by patchma") local allowshiftlock=nil local ctrltp=nil local simrad=nil local placeholders=nil local clickfling=nil local highlightflingtargets=nil local claimwait=nil local stopreanimate=function() return nil end local function reanimate() --[[ FDless reanimate by MyWorld aka no client sided instances "what else do i optimize here" ]] local novoid = true --prevents parts from going under workspace.FallenPartsDestroyHeight if you control them local placeholders = placeholders --makes client sided accessories replacing the real ones when unavailable local speedlimit = 3000 --makes your parts move slower if the magnitude of their velocity is higher than this local retVelTime = 0.51 --time that claimed parts have velocity to reclaim in case u lose them local R15toR6 = true --adds fake r6 parts and joints for animations if your character is r15 local walkSpeed = 16 --your walkspeed (can be changed at runtime) local jumpPower = 50 --your jump power (can be changed at runtime) local allowshiftlock = allowshiftlock --allows the user to use shiftlock (can be changed at runtime) local gravity = 196.2 --how fast the characters velocity decreases while falling (can be changed at runtime) local simrad = simrad --sets simulation radius to this with sethiddenproperty if its set to a number local ctrlclicktp = ctrltp --makes you teleport where u point ur mouse cursor at when click and hold ctrl down local clickfling = clickfling --makes you fling the person you clicked when its available to do so local flingvel = v3(15000,16000,15000) --the rotation velocity that ur character will have while flinging local highlightflingtargets = highlightflingtargets --highlights characters that are going to get flung local c=lp.Character if stopreanimate() or not (c and c:IsDescendantOf(ws)) then return end local hum=c:FindFirstChildOfClass("Humanoid") local rootpart=gp(c,"HumanoidRootPart","BasePart") or gp(c,"Torso","BasePart") or gp(c,"UpperTorso","BasePart") or (hum and hum.RootPart) or timegp(c,"HumanoidRootPart","BasePart",0.5) or c:FindFirstChildWhichIsA("BasePart") if not rootpart then return end R15toR6=R15toR6 and hum and (hum.RigType==e.HumanoidRigType.R15) simrad = (type(simrad)=="number") and (type(shp)=="function") and simrad local cam=nil --theres a way to have ws.currentcamera nil on heartbeat and still have the game run normally local function refcam() cam=ws.CurrentCamera while not cam do ws:GetPropertyChangedSignal("CurrentCamera"):Wait() cam=ws.CurrentCamera end end refcam() local camcf=cam.CFrame local enumCamS=e.CameraType.Scriptable local camt=cam.CameraType local camcon0=nil local camcon1=nil local function onnewcamera() refcam() if camcon0 then camcon0:Disconnect() camcon0=nil end if not c then if cam.CameraType==enumCamS then cam.CameraType=camt end return camcon1:Disconnect() end camcon0=cam.Changed:Connect(function(p) if not c then camcon0:Disconnect() return camcon1:Disconnect() end if (p=="CFrame") and (cam.CFrame~=camcf) then cam.CFrame=camcf elseif (p=="CameraSubject") or (p=="CameraType") then local subj=cam.CameraSubject if subj and subj:IsA("Humanoid") and (subj.Parent==c) and (cam.CameraType~=enumCamS) then cam.CameraType = enumCamS end end end) local subj=cam.CameraSubject if subj and subj:IsA("Humanoid") and (subj.Parent==c) and (cam.CameraType~=enumCamS) then cam.CameraType=enumCamS end cam.CFrame=camcf end camcon1=ws:GetPropertyChangedSignal("CurrentCamera"):Connect(onnewcamera) onnewcamera() local rGravity=ws.Gravity ws:GetPropertyChangedSignal("Gravity"):Connect(function() rGravity=ws.Gravity end) local fpdh=ws.FallenPartsDestroyHeight novoid=novoid and (fpdh+1) local function getMeshOfPart(v) if typeof(v)=="Instance" then if v:IsA("MeshPart") then return v.MeshId, v.TextureID else v=v:FindFirstChildOfClass("SpecialMesh") if v then return v.MeshId, v.TextureId end end end return nil, nil end local joints={} local cframes={} local des=c:GetDescendants() for i=1,#des do local v=des[i] if v:IsA("JointInstance") then tinsert(joints,{ Name=v.Name, C0=v.C0, C1=v.C1, Part0=v.Part0, Part1=v.Part1 }) elseif v:IsA("BasePart") then cframes[v]=v.CFrame end end local function makeplaceholder(v) if typeof(v)~="Instance" then return nil end if not v.Archivable then v.Archivable=true end v=v:Clone() local c=v:GetChildren() for i=1,#c do local v=c[i] if v:IsA("SpecialMesh") then v.Name=rs() v:ClearAllChildren() else v:Destroy() end end v.Name=rs() v.Anchored=true v.CanCollide=false v.Transparency=0.25 v.Parent=ws return v end local function filterInstance(v) local ins=v if isClientInstance(v) then v={CFrame=v.CFrame,Name=v.Name,Anchored=true} else local meshid,textureid=getMeshOfPart(v) if meshid and (meshid~="") and textureid and (textureid~="") and (v.Parent~=c) then if placeholders then v={CFrame=v.CFrame,Name=v.Name,Anchored=true,meshid=meshid,textureid=textureid,placeholder=makeplaceholder(v)} else v={CFrame=v.CFrame,Name=v.Name,Anchored=true,meshid=meshid,textureid=textureid} end else v={CFrame=v.CFrame,Name=v.Name,Anchored=true} end end for i,v1 in pairs(tclone(cframes)) do if i==ins then cframes[ins]=nil cframes[v]=v1 end end for i,v1 in pairs(joints) do if v1.Part0==ins then v1.Part0=v elseif v1.Part1==ins then v1.Part1=v end end if rootpart==ins then rootpart=v end return v end for i,v in pairs(joints) do v.Part0=filterInstance(v.Part0) v.Part1=filterInstance(v.Part1) end local Yvel=0 local cfr=rootpart.CFrame local pos=cfr.Position local primarypart=nil local shiftlock=false local firstperson=false local xzvel=v3_0 local v3_0150=v3_010*1.5 local camoff=cf(v3_0,camcf.LookVector) camoff=camoff-v3_001*(camcf.Position-(pos+v3_0150)).Magnitude local refreshjointsinternal=nil refreshjointsinternal=function(part,refreshed) if not part then return end tinsert(refreshed,part) for i,v in pairs(joints) do local part0=v.Part0 local part1=v.Part1 if part1 and (part0==part) then cframes[part1]=cframes[part]*v.C0*v.C1:Inverse() if not tfind(refreshed,part1) then refreshjointsinternal(part1,refreshed) end elseif part0 and (part1==part) then cframes[part0]=cframes[part]*v.C1*v.C0:Inverse() if not tfind(refreshed,part0) then refreshjointsinternal(part0,refreshed) end end end end local function refreshjoints(v) refreshjointsinternal(v,{}) end if R15toR6 then local R6parts={ head={Name="Head",Anchored=true}, torso={Name="Torso",Anchored=true}, root={Name="HumanoidRootPart",Anchored=true}, leftArm={Name="Left Arm",Anchored=true}, rightArm={Name="Right Arm",Anchored=true}, leftLeg={Name="Left Leg",Anchored=true}, rightLeg={Name="Right Leg",Anchored=true} } for i,v in pairs(R6parts) do cframes[v]=cfr end tinsert(joints,{ Name="Neck", Part0=R6parts.torso,Part1=R6parts.head, C0=cf(0,1,0,-1,0,0,0,0,1,0,1,-0), C1=cf(0,-0.5,0,-1,0,0,0,0,1,0,1,-0) }) tinsert(joints,{ Name="RootJoint", Part0=R6parts.root,Part1=R6parts.torso, C0=cf(0,0,0,-1,0,0,0,0,1,0,1,-0), C1=cf(0,0,0,-1,0,0,0,0,1,0,1,-0) }) tinsert(joints,{ Name="Right Shoulder", Part0=R6parts.torso,Part1=R6parts.rightArm, C0=cf(1,0.5,0,0,0,1,0,1,-0,-1,0,0), C1=cf(-0.5,0.5,0,0,0,1,0,1,-0,-1,0,0) }) tinsert(joints,{ Name="Left Shoulder", Part0=R6parts.torso,Part1=R6parts.leftArm, C0=cf(-1,0.5,0,0,0,-1,0,1,0,1,0,0), C1=cf(0.5,0.5,0,0,0,-1,0,1,0,1,0,0) }) tinsert(joints,{ Name="Right Hip", Part0=R6parts.torso,Part1=R6parts.rightLeg, C0=cf(1,-1,0,0,0,1,0,1,-0,-1,0,0), C1=cf(0.5,1,0,0,0,1,0,1,-0,-1,0,0) }) tinsert(joints,{ Name="Left Hip" , Part0=R6parts.torso,Part1=R6parts.leftLeg, C0=cf(-1,-1,0,0,0,-1,0,1,0,1,0,0), C1=cf(-0.5,1,0,0,0,-1,0,1,0,1,0,0) }) tinsert(joints,{ Part0=R6parts.root,Part1=rootpart, C0=cf_0,C1=cf_0 }) refreshjoints(rootpart) local function getpart(n) for i,_ in pairs(cframes) do if (i.Name==n) and not dfind(R6parts,i) then return i end end return nil end local function makejoint(p0, p1, p2) p1=getpart(p1) p2=getpart(p2) if not (p1 and p2) then return end for i,v in pairs(joints) do if (v.Part0==p1) and (v.Part1==p2) then joints[i]=nil elseif (v.Part0==p2) and (v.Part1==p1) then joints[i]=nil end end tinsert(joints,{ Part0=p0,Part1=p1, C0=cf_0, C1=cframes[p1]:Inverse()*cframes[p0] }) end makejoint(R6parts.head,"Head","UpperTorso") makejoint(R6parts.leftArm,"LeftUpperArm","UpperTorso") makejoint(R6parts.rightArm,"RightUpperArm","UpperTorso") makejoint(R6parts.leftLeg,"LeftUpperLeg","LowerTorso") makejoint(R6parts.rightLeg,"RightUpperLeg","LowerTorso") makejoint(R6parts.torso,"LowerTorso","HumanoidRootPart") end local function getPart(name,blacklist) for i,v in pairs(cframes) do if (i.Name==name) and not (blacklist and tfind(blacklist,i)) then return i end end return nil end local function getPartFromMesh(meshid,textureid,blacklist) for v,_ in pairs(cframes) do if (type(v)=="table") and not (blacklist and tfind(blacklist,v)) then if v.meshid and sfind(v.meshid,meshid) and sfind(v.textureid,textureid) then return v end end end return nil end local function getJoint(name) for i,v in pairs(joints) do if v.Name==name then return v end end return {C0=cf_0,C1=cf_0} end local function getPartJoint(handle) for i,v in pairs(joints) do if v.Part0==handle then return v end end for i,v in pairs(joints) do if v.Part1==handle then return v end end return nil end local function getAccWeldFromMesh(...) return getPartJoint(getPartFromMesh(...) or {}) or {C0=cf_0,C1=cf_0} end local accessorylimbs={ {meshid="4819720316",textureid="4819722776",C0=angles(0,0,rad(15)),Name="Torso"}, {meshid="14768684979",textureid="",C0=angles(rad(0),rad(0),rad(-90)),Name="Left Arm"}, {meshid="14768684979",textureid="",C0=angles(rad(0),rad(0),rad(90)),Name="Right Arm"}, {meshid="11263221350",textureid="11263219250",C0=angles(rad(0),rad(0),rad(-90)),Name="Left Leg"}, {meshid="11159370334",textureid="11159284657",C0=angles(rad(0),rad(0),rad(90)),Name="Right Leg"}, {meshid="14255522247",textureid="14255543546",C0=angles(rad(0),rad(0),rad(-90)),Name="Left Leg"}, {meshid="14255522247",textureid="14255543546",C0=angles(rad(0),rad(0),rad(90)),Name="Right Leg"}, {meshid="4819720316",textureid="4819722776",C0=angles(0,0,rad(15)),Name="Torso"}, {meshid="14768666349",textureid="",C0=cf_0,Name="Torso"}, {meshid="14241018198",textureid="",C0=cf_0,Name="Torso"}, {meshid="13421774668",textureid="",C0=cf_0,Name="Torso"} } local alignblacklist={} for i=1,#accessorylimbs do local v=accessorylimbs[i] local p=getPart(v.Name) local h=getPartFromMesh(v.meshid,v.textureid,alignblacklist) local w=getPartJoint(h) if p and w then w.C0=v.C0 w.Part0=h w.C1=cf_0 w.Part1=p tinsert(alignblacklist,h) end end local raycastparams=RaycastParams.new() raycastparams.FilterType=e.RaycastFilterType.Blacklist raycastparams.RespectCanCollide=true local rayfilter={} local characters={} local function refreshrayfilter() tclear(rayfilter) for i,v in pairs(characters) do tinsert(rayfilter,v) end raycastparams.FilterDescendantsInstances=rayfilter end local flingtable={} local cframes1={} local lastpositions={} local claimtimes={} local rootparts={} local ondes=nil ondes=function(v) local meshid1,textureid1=getMeshOfPart(v) if meshid1 then for i,v1 in pairs(cframes) do if type(i)=="table" and not dfind(cframes1,i) then local meshid=i.meshid if meshid and (meshid1==meshid) and (textureid1==i.textureid) then cframes1[v]=i lastpositions[v]=v.Position break end end end elseif v:IsA("SpecialMesh") then ondes(v.Parent) end end local function onplayer(v) local lastc=nil local function oncharacter() local newc=v.Character if newc and (newc ~= lastc) then lastc=newc characters[v]=newc refreshrayfilter() local hrp=timegp(newc,"HumanoidRootPart","BasePart",10) if not (hrp and c and newc:IsDescendantOf(ws)) then return end if v==lp then c=newc local fi,fv=next(flingtable) if fi then for i,v in pairs(tclone(flingtable)) do if not c then return end local startpos=i.Position local stoptime=sine+3 while true do twait() if sine>stoptime then break end if (startpos-i.Position).Magnitude>200 then break end local tcf=i.CFrame+i.Velocity*(sin(sine*15)+1) if novoid and (tcf.Y0 then camoff=camoff-camoff.Position end firstperson=camoff.Z==0 end end) local function predictionfling(target) if not c then return twait() and false end if typeof(target)~="Instance" then target=mouse.Target if not target then return twait() and false end end if target:IsA("Humanoid") or target:IsA("BasePart") then target=target.Parent if target:IsA("Accessory") then target=target.Parent end end if (not target:IsA("Model")) or (target==c) then return twait() and false end local targetpart=gp(target,"HumanoidRootPart","BasePart") or gp(target,"Torso","BasePart") or gp(target,"UpperTorso","BasePart") if not (targetpart and targetpart:IsDescendantOf(ws)) then return twait() and false end if highlightflingtargets then local h=i("Highlight") h.Name=rs() h.Adornee=target h.FillColor=c3(1,0,0) h.OutlineColor=c3(1,0,0) h.FillTransparency=0.5 h.OutlineTransparency=0 h.Parent=i9 flingtable[targetpart]=h else flingtable[targetpart]=false end twait() return true end if ctrlclicktp then ctrlclicktp=KeyCode.LeftControl local tpoff=v3_010*3 if clickfling then mouse.Button1Down:Connect(function() if mouse.Target then if uis:IsKeyDown(ctrlclicktp) then pos=mouse.Hit.Position+tpoff cfr=cf(pos,pos+camoff.LookVector*v3_101) xzvel=v3_0 Yvel=0 else predictionfling() end end end) else mouse.Button1Down:Connect(function() if mouse.Target and uis:IsKeyDown(ctrlclicktp) then pos=mouse.Hit.Position+tpoff cfr=cf(pos,pos+camoff.LookVector*v3_101) xzvel=v3_0 Yvel=0 end end) end elseif clickfling then mouse.Button1Down:Connect(predictionfling) end local noYvelTime=1 local lastsine=sine local con=nil local function mainFunction() if not c then for i,v in pairs(cframes) do local p=i.placeholder if p then p:Destroy() end end for i,v in pairs(flingtable) do if v then v:Destroy() end end uis.MouseBehavior=enumMD onnewcamera() local c=lp.Character if c then cam.CameraSubject=c:FindFirstChildOfClass("Humanoid") end return con and con:Disconnect() end sine=osclock() local delta=sine-lastsine deltaTime=clamp(delta*10,0,1) lastsine=sine if shiftlock then if allowshiftlock then uis.MouseBehavior=enumMLC local rotation=uis:GetMouseDelta()*mradN05 local camoffpos=camoff.Position camoff=cf(camoffpos,camoffpos+camoff.LookVector)*angles(rotation.Y,rotation.X,0) else shiftlock=false end elseif firstperson then uis.MouseBehavior=enumMLC local rotation=uis:GetMouseDelta()*mradN05 local camoffpos=camoff.Position camoff=cf(camoffpos,camoffpos+camoff.LookVector)*angles(rotation.Y,rotation.X,0) elseif uis:IsMouseButtonPressed(enumMB2) then uis.MouseBehavior=enumMLCP local rotation=uis:GetMouseDelta()*mradN05 local camoffpos=camoff.Position camoff=cf(camoffpos,camoffpos+camoff.LookVector)*angles(rotation.Y,rotation.X,0) else uis.MouseBehavior=enumMD end local raycastresult=ws:Raycast(pos,v3_010*(fpdh-pos.Y),raycastparams) local onground=nil if raycastresult then raycastresult=raycastresult.Position onground=(pos.Y-raycastresult.Y)<3.01 if onground then Yvel=0 cfr=cfr+v3_010*(raycastresult.Y+3-pos.Y)*clamp(delta*20,0,1) if spacePressed then Yvel=jumpPower end else Yvel=Yvel-gravity*delta if pos.Y+Yvel*delta0 then xzvel=xzvel.Unit*walkSpeed end cfr=cf(pos,pos+camoff.LookVector*v3_101) elseif xzvel.Magnitude>0 then xzvel=xzvel.Unit*walkSpeed cfr=cfr:Lerp(cf(pos,pos+xzvel),deltaTime) end cfr=cfr+(xzvel+(v3_010*Yvel))*delta pos=cfr.Position camcf=cf(pos,pos+camoff.LookVector)+camoff.LookVector*camoff.Z+v3_0150 if shiftlock and not firstperson then camcf=camcf+camcf.RightVector*1.75 end if cam then cam.CFrame=camcf end if onground then if xzvel==v3_0 then lerpsIdle() else lerpsWalk() end elseif Yvel>0 then lerpsJump() else lerpsFall() end cframes[rootpart]=cfr refreshjoints(rootpart) if abs(Yvel)>1 then noYvelTime=0 else noYvelTime=clamp(noYvelTime+delta*0.3,0,1) xzvel=xzvel*(1-noYvelTime) end local idlerv=v3(sin((sine-0.0375)*16),sin(sine*16),sin((sine+0.075)*16)) local idleoff=idlerv*0.001 for i,v in pairs(cframes) do local p=i.placeholder if p then if p.Parent~=ws then p.Parent=ws end p.CFrame=v end end local claimpos=primarypart.Position for i,v in pairs(cframes1) do if (not i.Anchored) and i:IsDescendantOf(ws) then if i.ReceiveAge==0 then local p=v.placeholder if p and p.Parent then p.Parent=nil end v=cframes[v] local lastpos=lastpositions[i] local vel=(v.Position-lastpos)/delta if vel.Magnitude>speedlimit then vel=vel.Unit*speedlimit v=v+(lastpos+vel*delta)-v.Position end lastpositions[i]=v.Position if vel.Magnitude<0.15 then v=v+idleoff end if novoid and (v.Y#options then current=1 end local option=options[current] swtcbtn.Text=txt..": "..option.text onchanged(option.value) end swtcbtn=btn("change",btnpressed) btnpressed() return swtcbtn end swtc("client sided placeholders",{ {value=true,text="yes"}, {value=false,text="no"} },function(v) placeholders=v end) swtc("highlight fling targets",{ {value=true,text="yes"}, {value=false,text="no"} },function(v) highlightflingtargets=v end) swtc("allow shiftlock",{ {value=true,text="yes"}, {value=false,text="no"} },function(v) allowshiftlock=v end) swtc("ctrl click tp",{ {value=true,text="yes"}, {value=false,text="no"} },function(v) ctrltp=v end) swtc("click fling",{ {value=true,text="yes"}, {value=false,text="no"} },function(v) clickfling=v end) swtc("claim mode",{ {value=false,text="nowait"}, {value=true,text="safer"} },function(v) claimwait=v end) if type(shp)=="function" then swtc("simulation radius",{ {value=1000,text="on"}, {value=false,text="off"} },function(v) simrad=v end) else lbl("simulation radius: unavailable") end local iscg,_=pcall(function() i9.Parent=cg end) if not iscg then i6.Text="PLAYERGUI MODE" i9.Parent=pg twait(3) i6.Text=guiTheme.guiTitle end