This script will prevent AvatarUnificationModel from emulating R6 (in case roblox forces R6 emulator thing)
it will revert to native R6 updated version
local Players=game:GetService("Players")
local scs=game:GetService("StarterPlayer"):FindFirstChildOfClass("StarterCharacterScripts")
Players.PlayerAdded:Connect(function(p)
p.CharacterAdded:Connect(function(char)
local humanoid:Humanoid=char:WaitForChild("Humanoid")
local spawnPosition:CFrame=char:WaitForChild("HumanoidRootPart").CFrame
if humanoid.RigType==Enum.HumanoidRigType.R6 then
return
end
local desc=humanoid:GetAppliedDescription():Clone()
char:Destroy()
local model=Players:CreateHumanoidModelFromDescription(desc,Enum.HumanoidRigType.R6,Enum.AssetTypeVerification.Default)
model.Name=p.Name
p.Character=model
model.Parent=workspace
model:PivotTo(spawnPosition)
for i,v in scs:GetChildren() do
if v.Archivable==false then
continue
end
v:Clone().Parent=model
end
end)
end)
Players.PlayerRemoving:Connect(function(p)
if p.Parent==Players then
p.AncestryChanged:Wait()
end
p:Destroy()
end)
old version and download is also old version!
local BadBoy={"CharacterEmulation","LocalEffects","UnificationServerScript"}
local scscripts=game:GetService("StarterPlayer").StarterCharacterScripts
scscripts.ChildAdded:Connect(function(a)
if table.find(BadBoy,a.Name) then
a.Archivable=true
a.Disabled=true
task.defer(game.Destroy,a)
end
end)
game:GetService("ReplicatedStorage").ChildAdded:Connect(function(a)
task.wait()
if a.Name=="AvatarUnification" then
a:Destroy()
end
end)
game:GetService("Players").PlayerAdded:Connect(function(p:Player)
p.CharacterAdded:Connect(function(char)
local humanoid:Humanoid=char:WaitForChild("Humanoid")
local spawnLocation=char:WaitForChild("HumanoidRootPart").CFrame
if humanoid.RigType==Enum.HumanoidRigType.R6 then
return
end
local desc=humanoid:GetAppliedDescription():Clone()
char:Destroy()
local model=script.Noob:Clone()
model.Name=p.Name
p.Character=model
model.Parent=workspace
model:PivotTo(spawnLocation)
model.Humanoid:ApplyDescriptionReset(desc,Enum.AssetTypeVerification.Default)
for i,v in pairs(scscripts:GetChildren()) do
if table.find(BadBoy,v.Name) then
task.delay(0,game.Destroy,v)
continue
end
if v.Archivable==false then
continue
end
v:Clone().Parent=model
end
end)
end)
What would this even achieve? Wouldn’t this just break characters by removing what makes R6 rigs work on R15 code? What about just disabling the adapter through workspace.AvatarUnificationMode until they fix the problem?
pls teach me luau god where do you see the memory leak
why task.delay? because it might still be there and task.defer sometimes errors if its used more than 50 times (my fault i could have changed task.defer to task.delay lol)
This is a memory leak; you must disconnect after player leaves.
oh my god im so stupid i was always connecting like that without disconnecting
well thanks for letting me know i gotta rewrite most of my scripts so they disconnect automaticially
why are you using it in the first place?
because this warning is haunting me:
Something unexpectedly tried to set the parent of Script to NULL while trying to set the parent of Script. Current parent is ServerScriptService.
but instead of using your’s solution all i did was call Player:Destroy after the player was reparented to nil by CoreScripts (i double checked calling Destroy on Player did affect the connection and printing connection.Connected returned false but after commenting out Player:Destroy it was returning true)