its messy because ive been scrambling to find fixes:
marketplaceService.PromptGamePassPurchaseFinished:Connect(function(donator: Player, assetId, wasPurchased)
if not wasPurchased then return end
local hd = game.Players:GetHumanoidDescriptionFromUserId(donator.UserId)
dummy.Humanoid:ApplyDescription(donator.Character:WaitForChild("Humanoid"):GetAppliedDescription())
local char = dummy:Clone()
char.Parent = workspace
local Humanoid: Humanoid = char.Humanoid
local HS = Humanoid.HeadScale
local BDS = Humanoid.BodyDepthScale
local BWS = Humanoid.BodyWidthScale
local BHS = Humanoid.BodyHeightScale
HS.Value = HS.Value * 44.77529664340413
BDS.Value = BDS.Value * 44.77529664340413
BWS.Value = BWS.Value * 44.77529664340413
BHS.Value = BHS.Value * 44.77529664340413
Humanoid.HipHeight = 2
Humanoid:EquipTool(script.Hammer:Clone())
char:SetPrimaryPartCFrame(oldPos + Vector3.new(0,char:GetExtentsSize().Y/2,0))
local track = char.Humanoid.Animator:LoadAnimation(anim)
track.Priority = Enum.AnimationPriority.Action
track:AdjustWeight(1, 0)
track:Play()
repeat task.wait() until track.Length > 0
task.wait(track.Length * 0.99)
track:AdjustSpeed(0)
task.wait(3)
char:Destroy()
end)