Ok i found out the issue after a lot of tries… it seems like my server scripts which handles the Collision Groups is breaking the animation.
I didn’t personally make this script but rather my friend.
Here is the script and disabling it made the animation and HipHeight adjustment flawlessly:
local Players = game:GetService("Players")
local PhysicsService = game:GetService("PhysicsService")
local Debug = false
PhysicsService:RegisterCollisionGroup("CharacterGroup")
PhysicsService:RegisterCollisionGroup("HitboxGroup")
PhysicsService:RegisterCollisionGroup("NoCollisionGroup")
PhysicsService:RegisterCollisionGroup("GroundGroup")
PhysicsService:CollisionGroupSetCollidable("CharacterGroup", "GroundGroup", true)
PhysicsService:CollisionGroupSetCollidable("CharacterGroup", "CharacterGroup", false)
PhysicsService:CollisionGroupSetCollidable("CharacterGroup", "HitboxGroup", false)
PhysicsService:CollisionGroupSetCollidable("CharacterGroup", "NoCollisionGroup", false)
PhysicsService:CollisionGroupSetCollidable("HitboxGroup", "GroundGroup", false)
PhysicsService:CollisionGroupSetCollidable("HitboxGroup", "HitboxGroup", false)
PhysicsService:CollisionGroupSetCollidable("HitboxGroup", "CharacterGroup", false)
PhysicsService:CollisionGroupSetCollidable("HitboxGroup", "NoCollisionGroup", true)
PhysicsService:CollisionGroupSetCollidable("NoCollisionGroup", "GroundGroup", true)
PhysicsService:CollisionGroupSetCollidable("NoCollisionGroup", "NoCollisionGroup", false)
local function assignCollisionGroups(character)
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CanCollide = true
part.CollisionGroup = "CharacterGroup"
if Debug then
print("Debug: CollisionGroup assigned to part:", part.Name)
end
end
end
end
local function assignGroundGroup(folder)
for _, part in pairs(folder:GetDescendants()) do
if part:IsA("BasePart") then
part.CollisionGroup = "GroundGroup"
part.CanCollide = true
if Debug then
print("Debug: CollisionGroup assigned to part in Ground folder:", part.Name)
end
end
end
end
local function assignHitboxGroup(hitbox)
if hitbox:IsA("BasePart") then
hitbox.CanCollide = true
hitbox.CollisionGroup = "HitboxGroup"
if Debug then
print("Debug: CollisionGroup assigned to hitbox:", hitbox.Name)
end
end
end
local function assignCollisionFolder()
for _, folder in pairs(workspace:GetDescendants()) do
if folder:IsA("Folder") then
for _, subFolder in pairs(folder:GetChildren()) do
if subFolder:IsA("Folder") and subFolder.Name == "Collision" then
for _, part in pairs(subFolder:GetDescendants()) do
if part:IsA("BasePart") then
part.CollisionGroup = "CollisionGroup"
if Debug then
print("Debug: CollisionGroup assigned to part in Collision folder:", part.Name)
end
end
end
end
end
end
end
end
local function assignObstaclesFolder()
for _, folder in pairs(workspace:GetDescendants()) do
if folder:IsA("Folder") then
for _, subFolder in pairs(folder:GetChildren()) do
if subFolder:IsA("Folder") and subFolder.Name == "Obstacles" then
for _, part in pairs(subFolder:GetDescendants()) do
if part:IsA("BasePart") then
part.CollisionGroup = "NoCollisionGroup"
if Debug then
print("Debug: CollisionGroup assigned to obstacle:", part.Name)
end
end
end
end
if subFolder:IsA("Folder") and subFolder.Name == "Ground" then
assignGroundGroup(subFolder)
end
end
end
end
end
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
character:WaitForChild("HumanoidRootPart")
assignCollisionGroups(character)
end)
end)
for _, player in pairs(Players:GetPlayers()) do
if player.Character then
assignCollisionGroups(player.Character)
end
end
assignObstaclesFolder()
assignCollisionFolder()
assignObstaclesFolder()
workspace.DescendantAdded:Connect(function(descendant)
if descendant:IsA("BasePart") and descendant.Name == "Ground" then
descendant.CollisionGroup = "GroundGroup"
descendant.CanCollide = true
elseif descendant:IsA("BasePart") and string.find(descendant.Name, "_Hitbox") then
assignHitboxGroup(descendant)
elseif descendant:IsA("Folder") and descendant.Name == "Collision" then
for _, part in pairs(descendant:GetDescendants()) do
if part:IsA("BasePart") then
part.CollisionGroup = "CollisionGroup"
part.CanCollide = true
if Debug then
print("Debug: CollisionGroup assigned to part in Collision folder:", part.Name)
end
end
end
elseif descendant:IsA("Folder") and descendant.Name == "Obstacles" then
for _, part in pairs(descendant:GetDescendants()) do
if part:IsA("BasePart") then
part.CollisionGroup = "NoCollisionGroup"
if Debug then
print("Debug: CollisionGroup assigned to obstacle:", part.Name)
end
end
end
elseif descendant:IsA("Folder") and descendant.Name == "Ground" then
assignGroundGroup(descendant)
end
end)
Thanks for your help and sorry if i didn’t find this earlier. Much appreciated.