Advertisement
robinmollen

Fe Floppa

Jun 27th, 2022
1,178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 27.16 KB | None | 0 0
  1. --[[
  2.     FE floppa
  3.     made by MyWorld#4430
  4.     discord.gg/pYVHtSJmEY
  5.     shirt:
  6.     https://www.roblox.com/catalog/9582295098/floppashirt
  7.     (the script will work if you dont use the shirt too)
  8. ]]
  9.  
  10. if "floppa says MyWorlds reanimate is good" then
  11.     --reanimate by MyWorld#4430 discord.gg/pYVHtSJmEY
  12.     local Vector3_101 = Vector3.new(1, 0, 1)
  13.     local netless_Y = Vector3.new(0, 25.1, 0)
  14.     local function getNetlessVelocity(realPartVelocity) --edit this if you have a better netless method
  15.         local netlessVelocity = realPartVelocity * Vector3_101
  16.         local mag = netlessVelocity.Magnitude
  17.         if mag > 0.1 then
  18.             netlessVelocity *= 100 / mag
  19.         end
  20.         netlessVelocity += netless_Y
  21.         return netlessVelocity
  22.     end
  23.     local simradius = "shp" --simulation radius (net bypass) method
  24.     --"shp" - sethiddenproperty
  25.     --"ssr" - setsimulationradius
  26.     --false - disable
  27.     local noclipAllParts = true --set it to true if you want noclip
  28.     local flingpart = "HumanoidRootPart" --the part that will be used to fling (ctrl + F "fling function")
  29.     local antiragdoll = true --removes hingeConstraints and ballSocketConstraints from your character
  30.     local newanimate = false --disables the animate script and enables after reanimation
  31.     local discharscripts = true --disables all localScripts parented to your character before reanimation
  32.     local R15toR6 = true --tries to convert your character to r6 if its r15
  33.     local hatcollide = false --makes hats cancollide (credit to ShownApe) (works only with reanimate method 0)
  34.     local humState16 = true --enables collisions for limbs before the humanoid dies (using hum:ChangeState)
  35.     local addtools = false --puts all tools from backpack to character and lets you hold them after reanimation
  36.     local hedafterneck = true --disable aligns for head and enable after neck is removed
  37.     local loadtime = game:GetService("Players").RespawnTime + 0.5 --anti respawn delay
  38.     local method = 3 --reanimation method
  39.     --methods:
  40.     --0 - breakJoints (takes [loadtime] seconds to laod)
  41.     --1 - limbs
  42.     --2 - limbs + anti respawn
  43.     --3 - limbs + breakJoints after [loadtime] seconds
  44.     --4 - remove humanoid + breakJoints
  45.     --5 - remove humanoid + limbs
  46.     local alignmode = 2 --AlignPosition mode
  47.     --modes:
  48.     --1 - AlignPosition rigidity enabled true
  49.     --2 - 2 AlignPositions rigidity enabled both true and false
  50.     --3 - AlignPosition rigidity enabled false
  51.    
  52.     local lp = game:GetService("Players").LocalPlayer
  53.     local rs = game:GetService("RunService")
  54.     local stepped = rs.Stepped
  55.     local heartbeat = rs.Heartbeat
  56.     local renderstepped = rs.RenderStepped
  57.     local sg = game:GetService("StarterGui")
  58.     local ws = game:GetService("Workspace")
  59.     local cf = CFrame.new
  60.     local v3 = Vector3.new
  61.     local v3_0 = v3(0, 0, 0)
  62.     local inf = math.huge
  63.    
  64.     local c = lp.Character
  65.    
  66.     if not (c and c.Parent) then
  67.         return
  68.     end
  69.    
  70.     c.Destroying:Connect(function()
  71.         c = nil
  72.     end)
  73.    
  74.     local function gp(parent, name, className)
  75.         if typeof(parent) == "Instance" then
  76.             for i, v in pairs(parent:GetChildren()) do
  77.                 if (v.Name == name) and v:IsA(className) then
  78.                     return v
  79.                 end
  80.             end
  81.         end
  82.         return nil
  83.     end
  84.    
  85.     local function align(Part0, Part1)
  86.         Part0.CustomPhysicalProperties = PhysicalProperties.new(0.0001, 0.0001, 0.0001, 0.0001, 0.0001)
  87.    
  88.         local att0 = Instance.new("Attachment", Part0)
  89.         att0.Orientation = v3_0
  90.         att0.Position = v3_0
  91.         att0.Name = "att0_" .. Part0.Name
  92.         local att1 = Instance.new("Attachment", Part1)
  93.         att1.Orientation = v3_0
  94.         att1.Position = v3_0
  95.         att1.Name = "att1_" .. Part1.Name
  96.    
  97.         if (alignmode == 1) or (alignmode == 2) then
  98.             local ape = Instance.new("AlignPosition", att0)
  99.             ape.ApplyAtCenterOfMass = false
  100.             ape.MaxForce = inf
  101.             ape.MaxVelocity = inf
  102.             ape.ReactionForceEnabled = false
  103.             ape.Responsiveness = 200
  104.             ape.Attachment1 = att1
  105.             ape.Attachment0 = att0
  106.             ape.Name = "AlignPositionRtrue"
  107.             ape.RigidityEnabled = true
  108.         end
  109.    
  110.         if (alignmode == 2) or (alignmode == 3) then
  111.             local apd = Instance.new("AlignPosition", att0)
  112.             apd.ApplyAtCenterOfMass = false
  113.             apd.MaxForce = inf
  114.             apd.MaxVelocity = inf
  115.             apd.ReactionForceEnabled = false
  116.             apd.Responsiveness = 200
  117.             apd.Attachment1 = att1
  118.             apd.Attachment0 = att0
  119.             apd.Name = "AlignPositionRfalse"
  120.             apd.RigidityEnabled = false
  121.         end
  122.    
  123.         local ao = Instance.new("AlignOrientation", att0)
  124.         ao.MaxAngularVelocity = inf
  125.         ao.MaxTorque = inf
  126.         ao.PrimaryAxisOnly = false
  127.         ao.ReactionTorqueEnabled = false
  128.         ao.Responsiveness = 200
  129.         ao.Attachment1 = att1
  130.         ao.Attachment0 = att0
  131.         ao.RigidityEnabled = false
  132.    
  133.         if type(getNetlessVelocity) == "function" then
  134.             local realVelocity = v3_0
  135.             local steppedcon = stepped:Connect(function()
  136.                 Part0.Velocity = realVelocity
  137.             end)
  138.             local heartbeatcon = heartbeat:Connect(function()
  139.                 realVelocity = Part0.Velocity
  140.                 Part0.Velocity = getNetlessVelocity(realVelocity)
  141.             end)
  142.             Part0.Destroying:Connect(function()
  143.                 Part0 = nil
  144.                 steppedcon:Disconnect()
  145.                 heartbeatcon:Disconnect()
  146.             end)
  147.         end
  148.     end
  149.    
  150.     local function respawnrequest()
  151.         local ccfr = ws.CurrentCamera.CFrame
  152.         local c = lp.Character
  153.         lp.Character = nil
  154.         lp.Character = c
  155.         local con = nil
  156.         con = ws.CurrentCamera.Changed:Connect(function(prop)
  157.             if (prop ~= "Parent") and (prop ~= "CFrame") then
  158.                 return
  159.             end
  160.             ws.CurrentCamera.CFrame = ccfr
  161.             con:Disconnect()
  162.         end)
  163.     end
  164.    
  165.     local destroyhum = (method == 4) or (method == 5)
  166.     local breakjoints = (method == 0) or (method == 4)
  167.     local antirespawn = (method == 0) or (method == 2) or (method == 3)
  168.    
  169.     hatcollide = hatcollide and (method == 0)
  170.    
  171.     addtools = addtools and gp(lp, "Backpack", "Backpack")
  172.    
  173.     local fenv = getfenv()
  174.     local shp = fenv.sethiddenproperty or fenv.set_hidden_property or fenv.set_hidden_prop or fenv.sethiddenprop
  175.     local ssr = fenv.setsimulationradius or fenv.set_simulation_radius or fenv.set_sim_radius or fenv.setsimradius or fenv.set_simulation_rad or fenv.setsimulationrad
  176.    
  177.     if shp and (simradius == "shp") then
  178.         spawn(function()
  179.             while c and heartbeat:Wait() do
  180.                 shp(lp, "SimulationRadius", inf)
  181.             end
  182.         end)
  183.     elseif ssr and (simradius == "ssr") then
  184.         spawn(function()
  185.             while c and heartbeat:Wait() do
  186.                 ssr(inf)
  187.             end
  188.         end)
  189.     end
  190.    
  191.     antiragdoll = antiragdoll and function(v)
  192.         if v:IsA("HingeConstraint") or v:IsA("BallSocketConstraint") then
  193.             v.Parent = nil
  194.         end
  195.     end
  196.    
  197.     if antiragdoll then
  198.         for i, v in pairs(c:GetDescendants()) do
  199.             antiragdoll(v)
  200.         end
  201.         c.DescendantAdded:Connect(antiragdoll)
  202.     end
  203.    
  204.     if antirespawn then
  205.         respawnrequest()
  206.     end
  207.    
  208.     if method == 0 then
  209.         wait(loadtime)
  210.         if not c then
  211.             return
  212.         end
  213.     end
  214.    
  215.     if discharscripts then
  216.         for i, v in pairs(c:GetChildren()) do
  217.             if v:IsA("LocalScript") then
  218.                 v.Disabled = true
  219.             end
  220.         end
  221.     elseif newanimate then
  222.         local animate = gp(c, "Animate", "LocalScript")
  223.         if animate and (not animate.Disabled) then
  224.             animate.Disabled = true
  225.         else
  226.             newanimate = false
  227.         end
  228.     end
  229.    
  230.     if addtools then
  231.         for i, v in pairs(addtools:GetChildren()) do
  232.             if v:IsA("Tool") then
  233.                 v.Parent = c
  234.             end
  235.         end
  236.     end
  237.    
  238.     pcall(function()
  239.         settings().Physics.AllowSleep = false
  240.         settings().Physics.PhysicsEnvironmentalThrottle = Enum.EnviromentalPhysicsThrottle.Disabled
  241.     end)
  242.    
  243.     local OLDscripts = {}
  244.    
  245.     for i, v in pairs(c:GetDescendants()) do
  246.         if v.ClassName == "Script" then
  247.             table.insert(OLDscripts, v)
  248.         end
  249.     end
  250.    
  251.     local scriptNames = {}
  252.    
  253.     for i, v in pairs(c:GetDescendants()) do
  254.         if v:IsA("BasePart") then
  255.             local newName = tostring(i)
  256.             local exists = true
  257.             while exists do
  258.                 exists = false
  259.                 for i, v in pairs(OLDscripts) do
  260.                     if v.Name == newName then
  261.                         exists = true
  262.                     end
  263.                 end
  264.                 if exists then
  265.                     newName = newName .. "_"    
  266.                 end
  267.             end
  268.             table.insert(scriptNames, newName)
  269.             Instance.new("Script", v).Name = newName
  270.         end
  271.     end
  272.    
  273.     c.Archivable = true
  274.     local hum = c:FindFirstChildOfClass("Humanoid")
  275.     if hum then
  276.         for i, v in pairs(hum:GetPlayingAnimationTracks()) do
  277.             v:Stop()
  278.         end
  279.     end
  280.     local cl = c:Clone()
  281.     if hum and humState16 then
  282.         hum:ChangeState(Enum.HumanoidStateType.Physics)
  283.         if destroyhum then
  284.             wait(1.6)
  285.         end
  286.     end
  287.     if hum and hum.Parent and destroyhum then
  288.         hum:Destroy()
  289.     end
  290.    
  291.     if not c then
  292.         return
  293.     end
  294.    
  295.     local head = gp(c, "Head", "BasePart")
  296.     local torso = gp(c, "Torso", "BasePart") or gp(c, "UpperTorso", "BasePart")
  297.     local root = gp(c, "HumanoidRootPart", "BasePart")
  298.     if hatcollide and c:FindFirstChildOfClass("Accessory") then
  299.         local anything = c:FindFirstChildOfClass("BodyColors") or gp(c, "Health", "Script")
  300.         if not (torso and root and anything) then
  301.             return
  302.         end
  303.         torso:Destroy()
  304.         root:Destroy()
  305.         if shp then
  306.             for i,v in pairs(c:GetChildren()) do
  307.                 if v:IsA("Accessory") then
  308.                     shp(v, "BackendAccoutrementState", 0)
  309.                 end
  310.             end
  311.         end
  312.         anything:Destroy()
  313.     end
  314.    
  315.     for i, v in pairs(cl:GetDescendants()) do
  316.         if v:IsA("BasePart") then
  317.             v.Transparency = 1
  318.             v.Anchored = false
  319.         end
  320.     end
  321.    
  322.     local model = Instance.new("Model", c)
  323.     model.Name = model.ClassName
  324.    
  325.     model.Destroying:Connect(function()
  326.         model = nil
  327.     end)
  328.    
  329.     for i, v in pairs(c:GetChildren()) do
  330.         if v ~= model then
  331.             if addtools and v:IsA("Tool") then
  332.                 for i1, v1 in pairs(v:GetDescendants()) do
  333.                     if v1 and v1.Parent and v1:IsA("BasePart") then
  334.                         local bv = Instance.new("BodyVelocity", v1)
  335.                         bv.Velocity = v3_0
  336.                         bv.MaxForce = v3(1000, 1000, 1000)
  337.                         bv.P = 1250
  338.                         bv.Name = "bv_" .. v.Name
  339.                     end
  340.                 end
  341.             end
  342.             if v:IsA("CharacterMesh") then
  343.                 v:Destroy()
  344.             else
  345.                 v.Parent = model
  346.             end
  347.         end
  348.     end
  349.    
  350.     if breakjoints then
  351.         model:BreakJoints()
  352.     else
  353.         if head and torso then
  354.             for i, v in pairs(model:GetDescendants()) do
  355.                 if v:IsA("Weld") or v:IsA("Snap") or v:IsA("Glue") or v:IsA("Motor") or v:IsA("Motor6D") then
  356.                     local save = false
  357.                     if (v.Part0 == torso) and (v.Part1 == head) then
  358.                         save = true
  359.                     end
  360.                     if (v.Part0 == head) and (v.Part1 == torso) then
  361.                         save = true
  362.                     end
  363.                     if save then
  364.                         if hedafterneck then
  365.                             hedafterneck = v
  366.                         end
  367.                     else
  368.                         v:Destroy()
  369.                     end
  370.                 end
  371.             end
  372.         end
  373.         if method == 3 then
  374.             spawn(function()
  375.                 wait(loadtime)
  376.                 if model then
  377.                     model:BreakJoints()
  378.                 end
  379.             end)
  380.         end
  381.     end
  382.    
  383.     cl.Parent = c
  384.     for i, v in pairs(cl:GetChildren()) do
  385.         v.Parent = c
  386.     end
  387.     cl:Destroy()
  388.    
  389.     local noclipmodel = (noclipAllParts and c) or model
  390.     local noclipcon = nil
  391.     local function uncollide()
  392.         if noclipmodel then
  393.             for i, v in pairs(noclipmodel:GetDescendants()) do
  394.                 if v:IsA("BasePart") then
  395.                     v.CanCollide = false
  396.                 end
  397.             end
  398.         else
  399.             noclipcon:Disconnect()
  400.         end
  401.     end
  402.     noclipcon = stepped:Connect(uncollide)
  403.     uncollide()
  404.    
  405.     for i, scr in pairs(model:GetDescendants()) do
  406.         if (scr.ClassName == "Script") and table.find(scriptNames, scr.Name) then
  407.             local Part0 = scr.Parent
  408.             if Part0:IsA("BasePart") then
  409.                 for i1, scr1 in pairs(c:GetDescendants()) do
  410.                     if (scr1.ClassName == "Script") and (scr1.Name == scr.Name) and (not scr1:IsDescendantOf(model)) then
  411.                         local Part1 = scr1.Parent
  412.                         if (Part1.ClassName == Part0.ClassName) and (Part1.Name == Part0.Name) then
  413.                             align(Part0, Part1)
  414.                             break
  415.                         end
  416.                     end
  417.                 end
  418.             end
  419.         end
  420.     end
  421.    
  422.     if (typeof(hedafterneck) == "Instance") and head then
  423.         local aligns = {}
  424.         local con = nil
  425.         con = hedafterneck.Changed:Connect(function(prop)
  426.             if (prop == "Parent") and not hedafterneck.Parent then
  427.                 con:Disconnect()
  428.                 for i, v in pairs(aligns) do
  429.                     v.Enabled = true
  430.                 end
  431.             end
  432.         end)
  433.         for i, v in pairs(head:GetDescendants()) do
  434.             if v:IsA("AlignPosition") or v:IsA("AlignOrientation") then
  435.                 i = tostring(i)
  436.                 aligns[i] = v
  437.                 v.Destroying:Connect(function()
  438.                     aligns[i] = nil
  439.                 end)
  440.                 v.Enabled = false
  441.             end
  442.         end
  443.     end
  444.    
  445.     for i, v in pairs(c:GetDescendants()) do
  446.         if v and v.Parent then
  447.             if v.ClassName == "Script" then
  448.                 if table.find(scriptNames, v.Name) then
  449.                     v:Destroy()
  450.                 end
  451.             elseif not v:IsDescendantOf(model) then
  452.                 if v:IsA("Decal") then
  453.                     v.Transparency = 1
  454.                 elseif v:IsA("ForceField") then
  455.                     v.Visible = false
  456.                 elseif v:IsA("Sound") then
  457.                     v.Playing = false
  458.                 elseif v:IsA("BillboardGui") or v:IsA("SurfaceGui") or v:IsA("ParticleEmitter") or v:IsA("Fire") or v:IsA("Smoke") or v:IsA("Sparkles") then
  459.                     v.Enabled = false
  460.                 end
  461.             end
  462.         end
  463.     end
  464.    
  465.     if newanimate then
  466.         local animate = gp(c, "Animate", "LocalScript")
  467.         if animate then
  468.             animate.Disabled = false
  469.         end
  470.     end
  471.    
  472.     if addtools then
  473.         for i, v in pairs(c:GetChildren()) do
  474.             if v:IsA("Tool") then
  475.                 v.Parent = addtools
  476.             end
  477.         end
  478.     end
  479.    
  480.     local hum0 = model:FindFirstChildOfClass("Humanoid")
  481.     if hum0 then
  482.         hum0.Destroying:Connect(function()
  483.             hum0 = nil
  484.         end)
  485.     end
  486.    
  487.     local hum1 = c:FindFirstChildOfClass("Humanoid")
  488.     if hum1 then
  489.         hum1.Destroying:Connect(function()
  490.             hum1 = nil
  491.         end)
  492.     end
  493.    
  494.     if hum1 then
  495.         ws.CurrentCamera.CameraSubject = hum1
  496.         local camSubCon = nil
  497.         local function camSubFunc()
  498.             camSubCon:Disconnect()
  499.             if c and hum1 then
  500.                 ws.CurrentCamera.CameraSubject = hum1
  501.             end
  502.         end
  503.         camSubCon = renderstepped:Connect(camSubFunc)
  504.         if hum0 then
  505.             hum0.Changed:Connect(function(prop)
  506.                 if hum1 and (prop == "Jump") then
  507.                     hum1.Jump = hum0.Jump
  508.                 end
  509.             end)
  510.         else
  511.             respawnrequest()
  512.         end
  513.     end
  514.    
  515.     local rb = Instance.new("BindableEvent", c)
  516.     rb.Event:Connect(function()
  517.         rb:Destroy()
  518.         sg:SetCore("ResetButtonCallback", true)
  519.         if destroyhum then
  520.             c:BreakJoints()
  521.             return
  522.         end
  523.         if hum0 and (hum0.Health > 0) then
  524.             model:BreakJoints()
  525.             hum0.Health = 0
  526.         end
  527.         if antirespawn then
  528.             respawnrequest()
  529.         end
  530.     end)
  531.     sg:SetCore("ResetButtonCallback", rb)
  532.    
  533.     spawn(function()
  534.         while c do
  535.             if hum0 and hum1 then
  536.                 hum1.Jump = hum0.Jump
  537.             end
  538.             wait()
  539.         end
  540.         sg:SetCore("ResetButtonCallback", true)
  541.     end)
  542.    
  543.     R15toR6 = R15toR6 and hum1 and (hum1.RigType == Enum.HumanoidRigType.R15)
  544.     if R15toR6 then
  545.         local part = gp(c, "HumanoidRootPart", "BasePart") or gp(c, "UpperTorso", "BasePart") or gp(c, "LowerTorso", "BasePart") or gp(c, "Head", "BasePart") or c:FindFirstChildWhichIsA("BasePart")
  546.         if part then
  547.             local cfr = part.CFrame
  548.             local R6parts = {
  549.                 head = {
  550.                     Name = "Head",
  551.                     Size = v3(2, 1, 1),
  552.                     R15 = {
  553.                         Head = 0
  554.                     }
  555.                 },
  556.                 torso = {
  557.                     Name = "Torso",
  558.                     Size = v3(2, 2, 1),
  559.                     R15 = {
  560.                         UpperTorso = 0.2,
  561.                         LowerTorso = -0.8
  562.                     }
  563.                 },
  564.                 root = {
  565.                     Name = "HumanoidRootPart",
  566.                     Size = v3(2, 2, 1),
  567.                     R15 = {
  568.                         HumanoidRootPart = 0
  569.                     }
  570.                 },
  571.                 leftArm = {
  572.                     Name = "Left Arm",
  573.                     Size = v3(1, 2, 1),
  574.                     R15 = {
  575.                         LeftHand = -0.85,
  576.                         LeftLowerArm = -0.2,
  577.                         LeftUpperArm = 0.4
  578.                     }
  579.                 },
  580.                 rightArm = {
  581.                     Name = "Right Arm",
  582.                     Size = v3(1, 2, 1),
  583.                     R15 = {
  584.                         RightHand = -0.85,
  585.                         RightLowerArm = -0.2,
  586.                         RightUpperArm = 0.4
  587.                     }
  588.                 },
  589.                 leftLeg = {
  590.                     Name = "Left Leg",
  591.                     Size = v3(1, 2, 1),
  592.                     R15 = {
  593.                         LeftFoot = -0.85,
  594.                         LeftLowerLeg = -0.15,
  595.                         LeftUpperLeg = 0.6
  596.                     }
  597.                 },
  598.                 rightLeg = {
  599.                     Name = "Right Leg",
  600.                     Size = v3(1, 2, 1),
  601.                     R15 = {
  602.                         RightFoot = -0.85,
  603.                         RightLowerLeg = -0.15,
  604.                         RightUpperLeg = 0.6
  605.                     }
  606.                 }
  607.             }
  608.             for i, v in pairs(c:GetChildren()) do
  609.                 if v:IsA("BasePart") then
  610.                     for i1, v1 in pairs(v:GetChildren()) do
  611.                         if v1:IsA("Motor6D") then
  612.                             v1.Part0 = nil
  613.                         end
  614.                     end
  615.                 end
  616.             end
  617.             part.Archivable = true
  618.             for i, v in pairs(R6parts) do
  619.                 local part = part:Clone()
  620.                 part:ClearAllChildren()
  621.                 part.Name = v.Name
  622.                 part.Size = v.Size
  623.                 part.CFrame = cfr
  624.                 part.Anchored = false
  625.                 part.Transparency = 1
  626.                 part.CanCollide = false
  627.                 for i1, v1 in pairs(v.R15) do
  628.                     local R15part = gp(c, i1, "BasePart")
  629.                     local att = gp(R15part, "att1_" .. i1, "Attachment")
  630.                     if R15part then
  631.                         local weld = Instance.new("Weld", R15part)
  632.                         weld.Name = "Weld_" .. i1
  633.                         weld.Part0 = part
  634.                         weld.Part1 = R15part
  635.                         weld.C0 = cf(0, v1, 0)
  636.                         weld.C1 = cf(0, 0, 0)
  637.                         R15part.Massless = true
  638.                         R15part.Name = "R15_" .. i1
  639.                         R15part.Parent = part
  640.                         if att then
  641.                             att.Parent = part
  642.                             att.Position = v3(0, v1, 0)
  643.                         end
  644.                     end
  645.                 end
  646.                 part.Parent = c
  647.                 R6parts[i] = part
  648.             end
  649.             local R6joints = {
  650.                 neck = {
  651.                     Parent = R6parts.torso,
  652.                     Name = "Neck",
  653.                     Part0 = R6parts.torso,
  654.                     Part1 = R6parts.head,
  655.                     C0 = cf(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),
  656.                     C1 = cf(0, -0.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  657.                 },
  658.                 rootJoint = {
  659.                     Parent = R6parts.root,
  660.                     Name = "RootJoint" ,
  661.                     Part0 = R6parts.root,
  662.                     Part1 = R6parts.torso,
  663.                     C0 = cf(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),
  664.                     C1 = cf(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  665.                 },
  666.                 rightShoulder = {
  667.                     Parent = R6parts.torso,
  668.                     Name = "Right Shoulder",
  669.                     Part0 = R6parts.torso,
  670.                     Part1 = R6parts.rightArm,
  671.                     C0 = cf(1, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0),
  672.                     C1 = cf(-0.5, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  673.                 },
  674.                 leftShoulder = {
  675.                     Parent = R6parts.torso,
  676.                     Name = "Left Shoulder",
  677.                     Part0 = R6parts.torso,
  678.                     Part1 = R6parts.leftArm,
  679.                     C0 = cf(-1, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0),
  680.                     C1 = cf(0.5, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  681.                 },
  682.                 rightHip = {
  683.                     Parent = R6parts.torso,
  684.                     Name = "Right Hip",
  685.                     Part0 = R6parts.torso,
  686.                     Part1 = R6parts.rightLeg,
  687.                     C0 = cf(1, -1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0),
  688.                     C1 = cf(0.5, 1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  689.                 },
  690.                 leftHip = {
  691.                     Parent = R6parts.torso,
  692.                     Name = "Left Hip" ,
  693.                     Part0 = R6parts.torso,
  694.                     Part1 = R6parts.leftLeg,
  695.                     C0 = cf(-1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0),
  696.                     C1 = cf(-0.5, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  697.                 }
  698.             }
  699.             for i, v in pairs(R6joints) do
  700.                 local joint = Instance.new("Motor6D")
  701.                 for prop, val in pairs(v) do
  702.                     joint[prop] = val
  703.                 end
  704.                 R6joints[i] = joint
  705.             end
  706.             hum1.RigType = Enum.HumanoidRigType.R6
  707.             hum1.HipHeight = 0
  708.         end
  709.     end
  710.    
  711.     --fling function
  712.     --usage: fling([part or CFrame or Vector3], [fling duration (seconds)], [rotation velocity (Vector3)])
  713.    
  714.     local flingpart0 = gp(model, flingpart, "BasePart")
  715.     local flingpart1 = gp(c, flingpart, "BasePart")
  716.    
  717.     local fling = function() end
  718.     if flingpart0 and flingpart1 then
  719.         flingpart0.Destroying:Connect(function()
  720.             flingpart0 = nil
  721.             fling = function() end
  722.         end)
  723.         flingpart1.Destroying:Connect(function()
  724.             flingpart1 = nil
  725.             fling = function() end
  726.         end)
  727.         --flingpart1.Archivable = true
  728.         local att0 = gp(flingpart0, "att0_" .. flingpart0.Name, "Attachment")
  729.         local att1 = gp(flingpart1, "att1_" .. flingpart1.Name, "Attachment")
  730.         if att0 and att1 then
  731.             fling = function(target, duration, rotVelocity)
  732.                 if (typeof(target) == "Instance" and target:IsA("BasePart")) or (typeof(target) == "CFrame") then
  733.                     target = target.Position
  734.                 elseif typeof(target) ~= "Vector3" then
  735.                     return
  736.                 end
  737.                 if type(duration) ~= number then
  738.                     duration = tonumber(duration) or 0.5
  739.                 end
  740.                 if typeof(rotVelocity) ~= "Vector3" then
  741.                     rotVelocity = v3(20000, 20000, 20000)
  742.                 end
  743.                 if not (target and flingpart0 and flingpart1 and att0 and att1) then
  744.                     return
  745.                 end
  746.                 local flingpart = flingpart0:Clone()
  747.                 flingpart.Transparency = 1
  748.                 flingpart.Size = v3(0.01, 0.01, 0.01)
  749.                 flingpart.CanCollide = false
  750.                 flingpart.Name = "flingpart_" .. flingpart0.Name
  751.                 flingpart.Anchored = true
  752.                 flingpart.Destroying:Connect(function()
  753.                     flingpart = nil
  754.                 end)
  755.                 flingpart.Parent = flingpart1
  756.                 if flingpart0.Transparency > 0.5 then
  757.                     flingpart0.Transparency = 0.5
  758.                 end
  759.                 att1.Parent = flingpart
  760.                 for i, v in pairs(att0:GetChildren()) do
  761.                     if v:IsA("AlignOrientation") then
  762.                         v.Enabled = false
  763.                     end
  764.                 end
  765.                 local con = nil
  766.                 con = heartbeat:Connect(function()
  767.                     if target and flingpart and flingpart0 and flingpart1 and att0 and att1 then
  768.                         flingpart0.RotVelocity = rotVelocity
  769.                         flingpart.Position = target
  770.                     else
  771.                         con:Disconnect()
  772.                     end
  773.                 end)
  774.                 local steppedRotVel = v3(
  775.                     ((target.X > 0) and -1) or 1,
  776.                     ((target.Y > 0) and -1) or 1,
  777.                     ((target.Z > 0) and -1) or 1
  778.                 )
  779.                 local con = nil
  780.                 con = stepped:Connect(function()
  781.                     if target and flingpart and flingpart0 and flingpart1 and att0 and att1 then
  782.                         flingpart0.RotVelocity = steppedRotVel
  783.                         flingpart.Position = target
  784.                     else
  785.                         con:Disconnect()
  786.                     end
  787.                 end)
  788.                 wait(duration)
  789.                 target = nil
  790.                 if not (flingpart and flingpart0 and flingpart1 and att0 and att1) then
  791.                     return
  792.                 end
  793.                 flingpart0.RotVelocity = v3_0
  794.                 att1.Parent = flingpart1
  795.                 for i, v in pairs(att0:GetChildren()) do
  796.                     if v:IsA("AlignOrientation") then
  797.                         v.Enabled = true
  798.                     end
  799.                 end
  800.                 flingpart:Destroy()
  801.             end
  802.         end
  803.     end
  804. end
  805.  
  806. wait()
  807.  
  808. local c = game:GetService("Players").LocalPlayer.Character
  809.  
  810. local function gp(parent, name, className)
  811.     if typeof(parent) == "Instance" then
  812.         for i, v in pairs(parent:GetChildren()) do
  813.             if (v.Name == name) and v:IsA(className) then
  814.                 return v
  815.             end
  816.         end
  817.     end
  818.     return nil
  819. end
  820.  
  821. local head = gp(c, "Head", "BasePart")
  822. if not head then return print("head not found") end
  823.  
  824. local torso = gp(c, "Torso", "BasePart")
  825. if not torso then return print("torso not found") end
  826.  
  827. local humanoidRootPart = gp(c, "HumanoidRootPart", "BasePart")
  828. if not humanoidRootPart then return print("humanoid root part not found") end
  829.  
  830. local leftArm = gp(c, "Left Arm", "BasePart")
  831. if not leftArm then return print("left arm not found") end
  832.  
  833. local rightArm = gp(c, "Right Arm", "BasePart")
  834. if not rightArm then return print("right arm not found") end
  835.  
  836. local leftLeg = gp(c, "Left Leg", "BasePart")
  837. if not leftLeg then return print("left leg not found") end
  838.  
  839. local rightLeg = gp(c, "Right Leg", "BasePart")
  840. if not rightLeg then return print("right leg not found") end
  841.  
  842. --find rig joints
  843.  
  844. local neck = gp(torso, "Neck", "Motor6D")
  845. if not neck then return print("neck not found") end
  846.  
  847. local rootJoint = gp(humanoidRootPart, "RootJoint", "Motor6D")
  848. if not rootJoint then return print("root joint not found") end
  849.  
  850. local leftShoulder = gp(torso, "Left Shoulder", "Motor6D")
  851. if not leftShoulder then return print("left shoulder not found") end
  852.  
  853. local rightShoulder = gp(torso, "Right Shoulder", "Motor6D")
  854. if not rightShoulder then return print("right shoulder not found") end
  855.  
  856. local leftHip = gp(torso, "Left Hip", "Motor6D")
  857. if not leftHip then return print("left hip not found") end
  858.  
  859. local rightHip = gp(torso, "Right Hip", "Motor6D")
  860. if not rightHip then return print("right hip not found") end
  861.  
  862. local cf, euler = CFrame.new, CFrame.fromEulerAnglesXYZ
  863. neck.C0 = cf(0, -0.5, 0.5) * euler(-1.5882496193148399, 0, -3.1590459461097367)
  864. rootJoint.C0 = cf(0, -3, -0.5) * euler(-1.5882496193148399, 0, -3.1590459461097367)
  865. leftShoulder.C0 = cf(0, 0.5, 1) * euler(0, -1.5882496193148399, 0)
  866. rightShoulder.C0 = cf(0, 0.5, 1) * euler(0, 1.5707963267948966, 0)
  867. leftHip.C0 = cf(-1, 0.9, 0.5) * euler(1.5707963267948966, -1.0471975511965976, 1.5707963267948966)
  868. rightHip.C0 = cf(0, -0.8, 0.5) * euler(1.5707963267948966, 1.0471975511965976, 1.5707963267948966)
  869.  
  870. for i, v in pairs(c:GetChildren()) do
  871.     if v:IsA("Accessory") then
  872.         v:Destroy()
  873.     end
  874. end
  875.  
  876. local hum1 = c:FindFirstChildOfClass("Humanoid")
  877. if hum1 then
  878.     game:GetService("Workspace").CurrentCamera.CameraSubject = hum1
  879.     hum1.HipHeight = 1
  880.     hum1.WalkSpeed = 14
  881.     hum1.JumpPower = 0
  882.     hum1.CameraOffset = Vector3.new(0, -3, 0)
  883. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement