--[[ patchma hub by MyWorld one last unpatch... IDs of paid accessories: -for arms 11159410305,11263254795 or 14255556501,14255554762 or 12344545199,12344591101 -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 48 ways to make a rig with the ids above IDs of free accessories: 3033910400,3409612660,3438342658,3398308134,4324158403,3822880197,4154538250,3443038622,4819740796 ]] --no need to get and index the library tables with function names every time the script uses them local osclock=os.clock local tspawn=task.spawn local twait=task.wait local schar=string.char 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 script doesnt have to read global varaibles every time to get them --why not have them saved in local varaibles for faster access times local pairs=pairs local next=next local pcall=pcall local type=type local typeof=typeof local game=game 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 rp=RaycastParams.new local cs=ColorSequence.new local csk=ColorSequenceKeypoint.new --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 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 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 --setting empty fenv for the rest of the script later local function noglobals() 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 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 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/45 local function getFallingTime(Ypos,destY,gravity) local velY=25.01 local fallingTime=0 gravity=gravity*sft while (Ypos>destY) or (velY>0) do fallingTime=fallingTime+sft velY=velY-gravity Ypos=Ypos+(velY*sft) end return fallingTime end local function getMeshOfPart(v) if v:IsA("MeshPart") then return v.MeshId, v.TextureID elseif v:IsA("BasePart") then v=v:FindFirstChildOfClass("SpecialMesh") if v then return v.MeshId, v.TextureId end end return nil, nil 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 emptyfunction() end local guiTheme={ guiTitle="patchma hub", windowTitleColor=c3(0,0,1), windowTopColor=c3(0,0,0), windowBottomColor=c3(0,0,0.584314), windowMinimizedSize=u2(0,220,0,22), windowRegularSize=u2(0,220,0,290), buttonsTextColor=c3(0.0941177,0.317647,0.878431), labelsTextColor=c3(0.560784,0.560784,0.560784), listTopColor=c3(0,0,0), listBottomColor=c3(0.0705882,0.0705882,0.0705882) } local accessorylimbs={ {meshid="11263221350",textureid="11263219250",C0=angles(1.5707963267948966,0,1.5707963267948966),Name="Left Arm"}, {meshid="11159370334",textureid="11159284657",C0=angles(-1.5707963267948966,0,1.5707963267948966),Name="Right Arm"}, {meshid="14255522247",textureid="",C0=angles(1.5707963267948966,0,1.5707963267948966),Name="Left Arm"}, {meshid="14255522247",textureid="",C0=angles(-1.5707963267948966,0,1.5707963267948966),Name="Right Arm"}, {meshid="12344207333",textureid="",C0=angles(2,0,0),Name="Left Arm"}, {meshid="12344206657",textureid="",C0=angles(2,0,0),Name="Right Arm"}, {meshid="11159370334",textureid="11159285454",C0=angles(1.5707963267948966,0,1.5707963267948966),Name="Left Leg"}, {meshid="12652772399",textureid="12652775021",C0=cf(0,-0.125,0),Name="Right Leg"}, {meshid="14768684979",textureid="",C0=angles(0,0,1.5707963267948966),Name="Left Leg"}, {meshid="14768684979",textureid="",C0=angles(0,0,1.5707963267948966),Name="Right Leg"}, {meshid="14768666349",textureid="",C0=cf_0,Name="Torso"}, {meshid="14241018198",textureid="",C0=cf_0,Name="Torso"}, {meshid="13421774668",textureid="",C0=cf_0,Name="Torso"}, {meshid="4324138105",textureid="4324138210",C0=angles(-1.6144295580947547,1.5707963267948966,0)*cf(-0.125,0.3,0),Name="Left Arm"}, {meshid="4154474745",textureid="4154474807",C0=angles(1.5271630954950384,-1.5707963267948966,0)*cf(-0.125,-0.3,0),Name="Left Arm"}, {meshid="3030546036",textureid="3650191503",C0=angles(1.5271630954950384,1.5707963267948966,0)*cf(0.125,-0.3,0),Name="Right Arm"}, {meshid="3030546036",textureid="3443321249",C0=angles(-1.6144295580947547,-1.5707963267948966,0)*cf(0.125,0.3,0),Name="Right Arm"}, {meshid="3030546036",textureid="3360974849",C0=angles(1.5271630954950384,1.5707963267948966,0)*cf(-0.125,-0.35,0),Name="Left Leg"}, {meshid="3030546036",textureid="3360978739",C0=angles(-1.6144295580947547,-1.5707963267948966,0)*cf(-0.125,0.3,0),Name="Left Leg"}, {meshid="3030546036",textureid="3033898741",C0=angles(1.5271630954950384,-1.5707963267948966,0)*cf(0.125,-0.35,0),Name="Right Leg"}, {meshid="3030546036",textureid="3409604993",C0=angles(-1.6144295580947547,1.5707963267948966,0)*cf(0.125,0.3,0),Name="Right Leg"}, {meshid="4819720316",textureid="4819722776",C0=angles(0,0,0.2617993877991494),Name="Torso"} } local i1=i("Frame") local i2=i("Frame") local i3=i("ScrollingFrame") local i4=i("UIListLayout") local i5=i("UIGradient") local i6=i("TextBox") local i7=i("TextButton") local i8=i("UIGradient") local i9=i("ScreenGui") i1.AnchorPoint=v2(0.5,0) i1.BackgroundColor3=c3(1,1,1) 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,1,1) 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({csk(0,guiTheme.listTopColor),csk(1,guiTheme.listBottomColor)}) i5.Rotation=90 i6.Font=e.Font.SourceSans i6.FontSize=e.FontSize.Size18 i6.ClearTextOnFocus=false i6.Text=guiTheme.guiTitle i6.TextColor3=guiTheme.windowTitleColor i6.TextSize=16 i6.AnchorPoint=v2(0.5,0) i6.BackgroundTransparency=1 i6.Position=u2(0.5,0,0,11) 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,0,20) i7.Name=rs() i7.Parent=i1 i7.Font=e.Font.SourceSans 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({csk(0,guiTheme.windowTopColor),csk(1,guiTheme.windowBottomColor)}) i8.Rotation=90 i9.ZIndexBehavior=e.ZIndexBehavior.Sibling i9.IgnoreGuiInset=true i9.ResetOnSpawn=false i9.DisplayOrder=2147483647 i9.Name=rs() local min=false i7.MouseButton1Click:Connect(function() min = not min if min then i2.Visible=false i8.Color=cs({csk(0,c3(0,0,0)),csk(1,c3(0,0,0))}) i1.Size=guiTheme.windowMinimizedSize else i1.Size=guiTheme.windowRegularSize i8.Color=cs({csk(0,c3(0,0,0)),csk(1,c3(0,0,0.584314))}) i2.Visible=true end 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("TextBox") local i2=i("TextButton") i1.Font=e.Font.SourceSans i1.FontSize=e.FontSize.Size14 i1.Text=txt i1.ClearTextOnFocus=false i1.Position=u2(0.5,0,0.5,0) i1.TextColor3=guiTheme.buttonsTextColor i1.Name=rs() i1.Parent=i2 i2.BackgroundTransparency=1 i2.TextTransparency=1 i2.Size=u2(1,0,0,14) i2.Name=rs() if f then i2.MouseButton1Click:Connect(f) end i2.Parent=i3 return i1 end local function lbl(txt) local i1=i("TextBox") local i2=i("Frame") i1.Font=e.Font.SourceSans i1.FontSize=e.FontSize.Size14 i1.Text=txt i1.ClearTextOnFocus=false i1.TextColor3=guiTheme.labelsTextColor i1.Position=u2(0.5,0,0.5) i1.BackgroundTransparency=1 i1.Name=rs() i1.Parent=i2 i2.Size=u2(1,0,0,14) i2.BackgroundTransparency=1 i2.Name=rs() i2.Parent=i3 return i1 end Draggable(i1) lbl("by MyWorld") lbl("discord.gg/QMy5f6DrbH") local allowshiftlock=nil local ctrltp=nil local placeholders=nil local clickfling=nil local highlightflingtargets=nil local discharscripts=nil local c=nil local function stopreanimate() if c then c=nil return true end return false 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 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 walkSpeed = 16 --your walkspeed (can be changed at runtime) local jumpPower = 50 --your jump power (can be changed at runtime) local gravity = 196.2 --how fast the characters velocity decreases while falling (can be changed at runtime) 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 if stopreanimate() then return end c=lp.Character if not (c and c:IsDescendantOf(ws)) then return end local rootpart=gp(c,"HumanoidRootPart","BasePart") or gp(c,"Torso","BasePart") or gp(c,"UpperTorso","BasePart") or timegp(c,"HumanoidRootPart","BasePart",0.5) or c:FindFirstChildWhichIsA("BasePart") if not rootpart then return end 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 camcon2=nil local function onnewcamera() refcam() if camcon0 then camcon0:Disconnect() camcon1:Disconnect() camcon0=nil end if not c then if cam.CameraType==enumCamS then cam.CameraType=camt end return camcon2:Disconnect() end camcon0=cam:GetPropertyChangedSignal("CFrame"):Connect(function() if cam.CFrame~=camcf then cam.CFrame=camcf end end) camcon1=cam:GetPropertyChangedSignal("CameraType"):Connect(function() if cam.CameraType~=enumCamS then cam.CameraType=enumCamS end end) if cam.CameraType~=enumCamS then cam.CameraType=enumCamS end if cam.CFrame~=camcf then cam.CFrame=camcf end end camcon2=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 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 R6parts={ head={Name="Head"}, torso={Name="Torso"}, root={Name="HumanoidRootPart"}, leftArm={Name="Left Arm"}, rightArm={Name="Right Arm"}, leftLeg={Name="Left Leg"}, rightLeg={Name="Right Leg"} } rootpart=R6parts.root local cframes={} for i,v in pairs(R6parts) do cframes[v]=cfr end local 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) }, { Name="RootJoint", Part0=rootpart,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) }, { 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) }, { 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) }, { 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) }, { 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) } } local refreshedjoints={} local refreshjointsI=nil refreshjointsI=function(part) tinsert(refreshedjoints,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(refreshedjoints,part1) then refreshjointsI(part1) end elseif part0 and (part1==part) then cframes[part0]=cframes[part]*v.C1*v.C0:Inverse() if not tfind(refreshedjoints,part0) then refreshjointsI(part0) end end end end refreshjointsI(rootpart) tclear(refreshedjoints) local attachments={ RightShoulderAttachment={R6parts.rightArm,cf(0,1,0,1,0,0,0,1,0,0,0,1)}, RightGripAttachment={R6parts.rightArm,cf(0,-1,0,1,0,0,0,1,0,0,0,1)}, LeftFootAttachment={R6parts.leftLeg,cf(0,-1,0,1,0,0,0,1,0,0,0,1)}, LeftShoulderAttachment={R6parts.leftArm,cf(0,1,0,1,0,0,0,1,0,0,0,1)}, LeftGripAttachment={R6parts.leftArm,cf(0,-1,0,1,0,0,0,1,0,0,0,1)}, RootAttachment={rootpart,cf(0,0,0,1,0,0,0,1,0,0,0,1)}, RightFootAttachment={R6parts.rightLeg,cf(0,-1,0,1,0,0,0,1,0,0,0,1)}, NeckAttachment={R6parts.torso,cf(0,1,0,1,0,0,0,1,0,0,0,1)}, BodyFrontAttachment={R6parts.torso,cf(0,0,-0.5,1,0,0,0,1,0,0,0,1)}, BodyBackAttachment={R6parts.torso,cf(0,0,0.5,1,0,0,0,1,0,0,0,1)}, LeftCollarAttachment={R6parts.torso,cf(-1,1,0,1,0,0,0,1,0,0,0,1)}, RightCollarAttachment={R6parts.torso,cf(1,1,0,1,0,0,0,1,0,0,0,1)}, WaistFrontAttachment={R6parts.torso,cf(0,-1,-0.5,1,0,0,0,1,0,0,0,1)}, WaistCenterAttachment={R6parts.torso,cf(0,-1,0,1,0,0,0,1,0,0,0,1)}, WaistBackAttachment={R6parts.torso,cf(0,-1,0.5,1,0,0,0,1,0,0,0,1)}, HairAttachment={R6parts.head,cf(0,0.6,0,1,0,0,0,1,0,0,0,1)}, HatAttachment={R6parts.head,cf(0,0.6,0,1,0,0,0,1,0,0,0,1)}, FaceFrontAttachment={R6parts.head,cf(0,0,-0.6,1,0,0,0,1,0,0,0,1)}, FaceCenterAttachment={R6parts.head,cf(0,0,0,1,0,0,0,1,0,0,0,1)} } 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 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 getPartFromMesh(m,t,blacklist) if blacklist then for v,_ in pairs(cframes) do if v.m and (not tfind(blacklist,v)) and sfind(v.m,m) and sfind(v.t,t) then return v end end else for v,_ in pairs(cframes) do if v.m and sfind(v.m,m) and sfind(v.t,t) then return v end end end local p={m=m,t=t} cframes[p]=cfr local j={C0=cf_0,C1=cf_0,Part0=p} p.j=j return p end local function getPartJoint(p) if cframes[p] then local j=p.j if j then return j end for i,v in pairs(joints) do if v.Part0==p then return v end end for i,v in pairs(joints) do if v.Part1==p then return v end end end return nil end local function getAccWeldFromMesh(m,t) return getPartJoint(getPartFromMesh(m,t)) end local raycastparams=rp() 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 rootparts={} for i=1,#accessorylimbs do local v=accessorylimbs[i] v.p=getPart(v.Name) end local ondes=nil ondes=function(v) if v:IsA("Attachment") then local v1=attachments[v.Name] if v1 then local p=v.Parent if (p.Parent~=c) and p:IsDescendantOf(c) then local meshid,textureid=getMeshOfPart(p) if meshid then local found=false for i,_ in pairs(cframes) do if (meshid==i.m) and (textureid==i.t) then local p1=i.p if p1 and p1:IsDescendantOf(c) then if p1==p then found=true break end else found=true i.p=p break end else local j=i.j if j and sfind(meshid,i.m) and sfind(textureid,i.t) then i.m=meshid i.t=textureid i.l=p.Position i.p=p i.j=nil i.Name=p.Name j.C0=v.CFrame j.C1=v1[2] j.Part1=v1[1] tinsert(joints,j) found=true break end end end if not found then for i=1,#accessorylimbs do local l=accessorylimbs[i] if l.p and sfind(meshid,l.meshid) and sfind(textureid,l.textureid) then local t={Name=p.Name,l=p.Position,m=meshid,t=textureid,p=p} if placeholders then t.v=makeplaceholder(p) end cframes[t]=p.CFrame tinsert(joints,{Part0=t,Part1=l.p,C0=l.C0,C1=cf_0}) l.p=nil found=true break end end if not found then local t={Name=p.Name,l=p.Position,m=meshid,t=textureid,p=p} if placeholders then t.v=makeplaceholder(p) end cframes[t]=v.CFrame tinsert(joints,{Part0=t,Part1=v1[1],C0=v.CFrame,C1=v1[2]}) end end end end end end end local function onplayer(v) local lastc=nil local function oncharacter() local newc=v.Character if c and newc and (newc~=lastc) then lastc=newc characters[v]=newc refreshrayfilter() if v==lp then if discharscripts then newc.DescendantAdded:Connect(discharscripts) for i,v in pairs(newc:GetDescendants()) do if v:IsA("Script") then v.Disabled=true end end end local hrp=timegp(newc,"HumanoidRootPart","BasePart",10) if not (hrp and c and newc:IsDescendantOf(ws)) then return end 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.v if p then p:Destroy() end end for i,v in pairs(flingtable) do if v then v:Destroy() end end mouseBehavior=nil 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 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 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 mouseBehavior=enumMLCP local rotation=uis:GetMouseDelta()*mradN05 local camoffpos=camoff.Position camoff=cf(camoffpos,camoffpos+camoff.LookVector)*angles(rotation.Y,rotation.X,0) else mouseBehavior=enumMD end if lastMouseBehavior~=mouseBehavior then lastMouseBehavior=mouseBehavior uis.MouseBehavior=mouseBehavior 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 cframes[rootpart]=cfr if onground then if xzvel==v3_0 then lerpsIdle() else lerpsWalk() end elseif Yvel>0 then lerpsJump() else lerpsFall() end refreshjointsI(rootpart) tclear(refreshedjoints) 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 local claimpos=primarypart.Position local claimposY=claimpos.Y for i,v in pairs(cframes) do local part=i.p if part and (not part.Anchored) and part:IsDescendantOf(ws) then if part.ReceiveAge==0 then local placeholder=i.v if placeholder then placeholder.Parent=nil end if novoid and (v.Yspeedlimit then vel=vel.Unit*speedlimit v=v+(lastpos+vel*delta)-v.Position end i.l=v.Position if vel.Magnitude<0.15 then v=v+idleoff end local claimtime=i.c if claimtime then if sine-claimtime#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) local disguiscripts=nil swtc("new gui scripts",{ {value=true,text="disable"}, {value=false,text="keep"} },function(v) disguiscripts=v end) pg.DescendantAdded:Connect(function(v) if c and disguiscripts and v:IsA("Script") then --mind Enum.RunContext.Client v.Disabled=true end end) swtc("new character scripts",{ {value=function(v) if v:IsA("Script") then --mind Enum.RunContext.Client v.Disabled=true end end,text="disable"}, {value=false,text="keep"} },function(v) discharscripts=v end) local iscg,_=pcall(function() i9.Parent=game:FindFirstChildOfClass("CoreGui") end) if not iscg then i6.Text="PLAYERGUI MODE" i9.Parent=pg twait(3) i6.Text=guiTheme.guiTitle end end pcall(setfenv,noglobals,{}) noglobals()