function ViolLua.Visuals:UpdateAnimations( ENT, Velocity )
    if ( ENT != self.Client.Local ) then 
        return
    end

    -- Get our angle.
    local Angle = self.Config[ 'hvh_enabled' ] and self.Ragebot.Real or ENT:EyeAngles( )

    -- Set our data.
    ENT:SetPoseParameter( 'aim_pitch', Angle.x )
    ENT:SetPoseParameter( 'body_yaw', Angle.y )

    ENT:SetRenderAngles( Angle )

    -- Fix bone jiggle adjustment.
    local Origin = Vector( 1, 1, 1 )
    local Jiggle = false

    -- Check if we need to adjust angles further than normal.
    if ( self.Config[ 'hvh_animations' ] ) then 
        if ( self.Config[ 'hvh_animations_force_slide' ] ) then 
            self.Client.Local:SetCycle( 0 )
        end

        Jiggle = self.Config[ 'hvh_animations_jelly' ]

        if ( self.Config[ 'hvh_animations_scale' ] ) then 
            local Scale = self.Config[ 'hvh_animations_scale_amount' ] / 100

            Origin = Vector( Scale, Scale, Scale )
        end
    end

    -- Update bone animations.
    Jiggle = Jiggle and 1 or 0

    for i = 0, self.Client.Local:GetBoneCount( ) do 
        self.Client.Local:ManipulateBoneJiggle( i, Jiggle )
        self.Client.Local:ManipulateBoneScale( i, Origin )
    end

    -- Invalidate bone cache and setup bones.
    ENT:InvalidateBoneCache( )
end

ViolLua.Hooks:New( 'UpdateAnimation', ViolLua.Visuals.UpdateAnimations, ViolLua.Visuals )

-- We'll keep this here for now until we have a detour module or security script for ViolLua.
FindMetaTable( 'Player' ).IsPlayingTaunt = function( ... )
    return false
end