How to check who owns/created an animation

Im working on an anti cheat, both non physics and physics, and ive came across a very vulnerable replication, animations from client replicate to server meaning the exploiter can add any animation he likes and it can be ANYTHING, including (sensitive) r34 animations, I do not want to danger the players who play my game, especially minors and underages, but whitelisting animations can get tedious, so an easy solution, why cant i see who created an anim? tell me how bc idk

non http calls are preffered

I think i know what you’re trying to talk about.
What they use is delete the animator inside humanoid, “create” new one and use a tween to animate themselves. I have a script detailing what i’m talking about if you’re looking to patch it.
(They also use keyframes)

 for ii,frame in pairs(keyframes) do -- for i,v on each keyframe to get each individual frame
                    local duration = keyframes[ii+1] and keyframes[ii+1].Time - frame.Time or task.wait(1/120)
                    print(tostring(duration))
                    if keyframes[ii-1] then
                        task.wait((frame.Time - keyframes[ii-1].Time)*speed)
                    end
                    for i,v in pairs(frame:GetDescendants()) do -- get each part in the frame
                        if Joints[v.Name] then -- see if the part exists in the joint table
                            TweenService:Create(Joints[v.Name],TweenInfo.new(duration*speed),{Transform = v.CFrame}):Play()
                        end
                    end
                end

a snippet.

1 Like

No i know how they do it and all, all i want is some function which returns who created an animation from an id

Is this what you’re looking for?

https://create.roblox.com/docs/reference/engine/classes/MarketplaceService#GetProductInfo

2 Likes

Trying to get an animation owner is the same as trying to get a (let’s say) sound owner, it’s near impossible without HttpCalls.
If you want i can provide a list of every single animation id they use.

1 Like

this worked, thank you so much, you dont know how much lives you have saved

1 Like

May i ask how did you do it? Did you use CreatorTargetId or Creator.Name?

This one

1 Like