--[[ 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: 14532301415,13423624885,11502853991,14053485259,13779879140,14443132226 can be same stuff but different colors there are 54 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 sin=math.sin local cos=math.cos local abs=math.abs local rad=math.rad local min=math.min local clamp=math.clamp 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 cfl=CFrame.lookAt local angles=CFrame.Angles local u2=UDim2.new local e=Enum local rp=RaycastParams.new local cs=ColorSequence.new local csk=ColorSequenceKeypoint.new --no need to index instances every time to call their functions local Clone=game.Clone local ClearAllChildren=game.ClearAllChildren local Destroy=game.Destroy local IsA=game.IsA local FindFirstChildOfClass=game.FindFirstChildOfClass local FindFirstChildWhichIsA=game.FindFirstChildWhichIsA local GetChildren=game.GetChildren local GetDescendants=game.GetDescendants local IsDescendantOf=game.IsDescendantOf local GetPropertyChangedSignal=game.GetPropertyChangedSignal --findfirstchildofclass faster than getservice local plrs=FindFirstChildOfClass(game,"Players") local rs=FindFirstChildOfClass(game,"RunService") local ws=FindFirstChildOfClass(game,"Workspace") local uis=FindFirstChildOfClass(game,"UserInputService") local gs=FindFirstChildOfClass(game,"GuiService") local lp=plrs.LocalPlayer local pg=FindFirstChildOfClass(lp,"PlayerGui") local mouse=lp:GetMouse() local stepped=rs.Stepped local heartbeat=rs.Heartbeat local renderstepped=rs.RenderStepped local GetPlayers=plrs.GetPlayers local Raycast=ws.Raycast local Connect=heartbeat.Connect local Disconnect=Connect(GetPropertyChangedSignal(game,"CreatorId"),type).Disconnect local Wait=heartbeat.Wait local GetMouseLocation=uis.GetMouseLocation local GetFocusedTextBox=uis.GetFocusedTextBox local GetMouseDelta=uis.GetMouseDelta local IsMouseButtonPressed=uis.IsMouseButtonPressed local IsKeyDown=uis.IsKeyDown 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 Inverse=cf_0.Inverse local Lerp=cf_0.Lerp local guiTheme={ guiTitle="patchma hub", windowTitleColor=c3(0,0,1), windowTopColor=c3(0,0,0), windowBottomColor=c3(0,0,0.584314), windowMinimizedSize={X=220,Y=22}, windowRegularSize={X=220,Y=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 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) local c=GetChildren(p) for i=1,#c do local v=c[i] if IsA(v,cl) and (v.Name==n) then return v 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 Wait(stepped) 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 IsA(v,"MeshPart") then return v.MeshId, v.TextureID elseif IsA(v,"BasePart") then v=FindFirstChildOfClass(v,"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=Clone(v) local c=GetChildren(v) for i=1,#c do local v=c[i] if IsA(v,"SpecialMesh") then v.Name=rs() ClearAllChildren(v) else Destroy(v) 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 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.ClipsDescendants=true i1.Position=u2(0.5,0,0.5,-150) i1.Size=u2(0,guiTheme.windowRegularSize.X,0,guiTheme.windowRegularSize.Y) i1.Name=rs() i1.Parent=i9 i2.BackgroundColor3=c3(1,1,1) i2.BorderSizePixel=0 i2.Position=u2(0,5,0,guiTheme.windowMinimizedSize.Y-2) i2.Size=u2(1,-10,0,guiTheme.windowRegularSize.Y-guiTheme.windowMinimizedSize.Y-3) 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,guiTheme.windowMinimizedSize.Y/2) 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,guiTheme.windowMinimizedSize.Y) 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 guimin=false local minloop=false local i1X=guiTheme.windowRegularSize.X local i1Y=guiTheme.windowRegularSize.Y local i1Xdest=i1X local i1Ydest=i1Y Connect(i7.MouseButton1Click,function() guimin = not guimin if guimin then i8.Color=cs({csk(0,c3(0,0,0)),csk(1,c3(0,0,0))}) i1Xdest=guiTheme.windowMinimizedSize.X i1Ydest=guiTheme.windowMinimizedSize.Y else i8.Color=cs({csk(0,c3(0,0,0)),csk(1,c3(0,0,0.584314))}) i1Xdest=guiTheme.windowRegularSize.X i1Ydest=guiTheme.windowRegularSize.Y end if minloop then return end minloop=true i2.Visible=true sine=osclock() local lastsine=sine while true do sine=osclock() local deltaTime=(sine-lastsine)*10 lastsine=sine local difX=i1Xdest-i1X local difY=i1Ydest-i1Y if (abs(difY)<=1) and (abs(difX)<=1) then i1X=i1Xdest i1Y=i1Ydest i1.Size=u2(0,i1X,0,i1Y) break end i1X=i1X+difX*deltaTime i1Y=i1Y+difY*deltaTime i1.Size=u2(0,i1X,0,i1Y) twait() end i2.Visible=not guimin minloop=false 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 Disconnect(rendersteppedcon) Disconnect(inputendedcon) end end local function rendersteppedf() local off = GetMouseLocation(uis)-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 GetFocusedTextBox(uis) then mouseStart=GetMouseLocation(uis) dragStart=window.Position if rendersteppedcon then Disconnect(rendersteppedcon) end rendersteppedcon = Connect(renderstepped,rendersteppedf) if inputendedcon then Disconnect(inputendedcon) end inputendedcon = Connect(uis.InputEnded,inputendedf) end end Connect(obj.MouseEnter,function() if inputbegancon then Disconnect(inputbegancon) end inputbegancon = Connect(uis.InputBegan,inputbeganf) end) Connect(obj.MouseLeave,function() Disconnect(inputbegancon) end) local function ondes(d) if IsA(d,"GuiObject") then local thisEntered = false local thisAdded = false local con0 = Connect(d.MouseEnter,function() thisEntered = true if (not thisAdded) and d.Active then activeEntered = activeEntered + 1 thisAdded = true end end) local con1 = Connect(d.MouseLeave,function() thisEntered = false if thisAdded then activeEntered = activeEntered - 1 thisAdded = false end end) local con2 = Connect(GetPropertyChangedSignal(d,"Active"),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 = Connect(d.AncestryChanged,function() if not IsDescendantOf(d,window) then if thisEntered then activeEntered = activeEntered - 1 end Disconnect(con0) Disconnect(con1) Disconnect(con2) Disconnect(con3) end end) end end Connect(window.DescendantAdded,ondes) local des=GetDescendants(window) 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 Connect(i2.MouseButton1Click,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 flingchangestate=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 IsDescendantOf(c,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 FindFirstChildWhichIsA(c,"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() local newcam=ws.CurrentCamera while not newcam do Wait(GetPropertyChangedSignal(ws,"CurrentCamera")) newcam=ws.CurrentCamera end cam=newcam 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 Disconnect(camcon0) Disconnect(camcon1) camcon0=nil end if not c then if cam.CameraType==enumCamS then cam.CameraType=camt end return Disconnect(camcon2) end camcon0=Connect(GetPropertyChangedSignal(cam,"CFrame"),function() if cam.CFrame~=camcf then cam.CFrame=camcf end end) camcon1=Connect(GetPropertyChangedSignal(cam,"CameraType"),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=Connect(GetPropertyChangedSignal(ws,"CurrentCamera"),onnewcamera) onnewcamera() local rGravity=ws.Gravity Connect(GetPropertyChangedSignal(ws,"Gravity"),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 camrot=cfl(v3_0,camcf.LookVector) local cammag=-(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*Inverse(v.C1) if not tfind(refreshedjoints,part1) then refreshjointsI(part1) end elseif part0 and (part1==part) then cframes[part0]=cframes[part]*v.C1*Inverse(v.C0) 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 IsA(v,"Attachment") and IsDescendantOf(c,ws) then local v1=attachments[v.Name] if v1 then local p=v.Parent if (p.Parent~=c) and IsDescendantOf(p,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 IsDescendantOf(p1,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 Connect(newc.DescendantAdded,discharscripts) for i,v in pairs(GetDescendants(newc)) do if IsA(v,"Script") then v.Disabled=true end end end local hrp=timegp(newc,"HumanoidRootPart","BasePart",10) if not (hrp and c and IsDescendantOf(newc,ws)) then return end c=newc local fi,fv=next(flingtable) if fi then if flingchangestate then local hum=FindFirstChildOfClass(c,"Humanoid") if hum then hum:ChangeState(e.HumanoidStateType.Physics) end end 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 lerpsJump() else lerpsFall() end refreshjointsI(rootpart) tclear(refreshedjoints) if abs(Yvel)>1 then noYvelTime=0 else noYvelTime=min(noYvelTime+delta*0.3,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 IsDescendantOf(part,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) swtc("changestate when fling",{ {value=true,text="yes"}, {value=false,text="no"} },function(v) flingchangestate=v end) lbl("(limb collision)") local disguiscripts=nil swtc("new gui scripts",{ {value=true,text="disable"}, {value=false,text="keep"} },function(v) disguiscripts=v end) Connect(pg.DescendantAdded,function(v) if c and disguiscripts and IsA(v,"Script") then --mind Enum.RunContext.Client v.Disabled=true end end) swtc("new character scripts",{ {value=function(v) if IsA(v,"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=FindFirstChildOfClass(game,"CoreGui") end) if not iscg then i6.Text="PLAYERGUI MODE" i9.Parent=pg twait(3) i6.Text=guiTheme.guiTitle end