We have been receiving many reports of players encountering exploiters in our game, Dandy’s World, who change their animations to play the anims of other characters in unintended ways. Often these are used maliciously. I am unsure as to how I would fix this because I don’t know how these kinds of exploits are executed, nor would I know a solution as the Character is owned by the players client, so the player is allowed to make any change they want to it with an Exploit/Executor. Any help on this issue would be appreciated.
Below is an example video showcasing someone playing unintended animations via exploits:
local whitelistedAnimations = {}
for _, animationTrack in animator:GetPlayingAnimationTracks() do
if not table.find(whitelistedAnimations, animationTrack) then
-- Handle the player
end
end
Now I’m not sure how to detect if an animation has loaded, or if it’ll even work but it’s worth giving it a shot
You can use the Animator.AnimationPlayed event to detect when a client (or the server) loads an animation for their character. Check the passed AnimationTrack to see if the correlated Animation object is allowed and simply stop it if it’s not.
local checkingAnim = animator:LoadAnimation(randomAnimation)
local tracks = animator:GetPlayingAnimationTracks
--change checking anim every 2 days or so
--also obfuscate this code
--you can also add more than one
local checkerFound = false
for _, animation in pairs(checkingAnim) do
if animation == checkerFound then
checkerFound = true
end
end
if not checkFound then
--take action
end
On top of that, you have players using speed cheats, fly cheats, teleport cheats, jump cheats, etc.
For some reason, a lot of players think I know all the “developers” and fill my inbox with request to ask the “insert game dev team” to please use my anti-cheat service.