Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос 6

  • Автор темы Автор темы wvej
  • Дата начала Дата начала
Код:
Expand Collapse Copy
local handlers = {
    callbacks = {
        ["draw"] = {},
        ["prediction"] = {},
        ["pre_prediction"] = {},
        ["createmove"] = {},
        ["destroy"] = {},
        ["frame_stage"] = {},
        ["events"] = {},
        ["ragebot_shot"] = {},
        ["registered_shot"] = {},
    },

    fn_data = {

    },

    update = function(self)
        for callback , func_table in pairs(self.callbacks) do
            Cheat.RegisterCallback(callback, function(...)
                for _,func_data in ipairs(func_table) do
                    local start =  Utils.UnixTime()
                    func_data[1](...)
                    self.fn_data[func_data[2]] =  self.fn_data[func_data[2]] + Utils.UnixTime() - start
                end
            end)
        end
    end,

    add = function(self , callback , func , func_name)
        self.callbacks[callback][#self.callbacks[callback]+1] = {func , func_name }
        self.fn_data[func_name] = 0
    end,

    log = function(self)
        local all_time = Utils.UnixTime() - start_time
        for fn_name, time in pairs(self.fn_data) do print_dbg("Function " ..fn_name .. " took " .. time .. " ms in total to execute all calls. Average execution time is " .. time/all_time .. " ms") end
    end
}


local function to_boolean(str)
    if str == "true" or str == "false" then
        return (str == "true")
    else
        return str
    end
end

local function normalize_text   (str)
    local type = 'string'
    if str == 'true' or str == 'false' then
        type = 'boolean'
    else
        for i = -10000, 10000 do
            if tonumber(str) == i then
                type = 'number'
            end
        end
    end
    if type == 'string' then
        return str
    elseif type == 'boolean' then
        return to_boolean(str)
    elseif type == 'number' then
        return tonumber(str)
    end
end
local function str_to_sub(input, sep)
    local t = {}
    for str in string.gmatch(input, "([^"..sep.."]+)") do
        t[#t + 1] = string.gsub(str, "\n", "")
    end
    return t
end
local eternal = {}
eternal.math = {}
eternal.math = {
    lerp = function(time,a,b)
        return a * (1-time) + b * time
    end,
    normalize_vector = function(vec)
        return vec*(1/#vec)
    end,
    lerp_vector = function(p,a,b)
        return a + (b - a) * p


    end,
    vector_function = function(vec)
        return Vector.new(vec.x/#vec,vec.y/#vec,vec.z/#vec)
    end,
    get_fov_cos = function(ent, vec1_vec, vec2_vec)
        local local_origin = ent:GetProp("m_vecOrigin")
      
        local d = eternal.math.normalize_vector(local_origin-vec2_vec)
        return d:Dot(vec1_vec)
    end,
    lerp_color = function(time,color,color1)
        return Color.new(color.r * (1-time) + color1.r * time, color.g * (1-time) + color1.g * time, color.b * (1-time) + color1.b * time, color.a * (1-time) + color1.a * time)
    end,
    closest_point_on_ray = function(target, rayStart, rayEnd)
        local to = target-rayStart
        local dir = rayEnd - rayStart
        local lenght = #dir
        dir = eternal.math.vector_function(dir)

        local rangeAlong = dir:Dot(to)
        if rangeAlong < 0.0 then
            return rayStart
        end
        if rangeAlong > lenght then
            return rayEnd
        end

        return rayStart + (dir*Vector.new(rangeAlong, rangeAlong, rangeAlong))
    end,
    normalize_yaw = function(yaw)
        if (yaw > 180) then
            yaw  = yaw - 360
        end
        if (yaw< -180) then
            yaw = yaw + 360
        end
        return yaw
    end,   
    deg_atan = function(xdelta, ydelta)
        if xdelta == 0 and ydelta == 0 then
            return 0
        end
        return math.deg(math.atan2(ydelta, xdelta))
    end
}

eternal.vars = {
    anti_aims = {
        conditions = {
          
        }
    },
    menu = {
        anti_aims = {
            anti_bruteforce_phases = Menu.SliderInt('[eternal] Anti-Aims',' ,,,',', ',2,2,10),
            teleport_cross_delay = 0
        }
    },
    visuals = {
        x = EngineClient.GetScreenSize().x,
        y = EngineClient.GetScreenSize().y,
        keybinds = {
            alpha = 1,
            width = 66,
            drag = false,
            data = {
                [''] = {alpha = 0}
            }
        },
        holo_panel = {
            anim_x_stand = EngineClient.GetScreenSize().x/2,
            anim_y_stand = EngineClient.GetScreenSize().y/2,
            default_width = 170,
            default_height = 0,
            anim_alpha_stand = 0,
            anim_y_os = 0,
            anim_line = 0,
            anim_width_sp = 0
        },
        scope_lines = {
            offset = 0.0
        },
        border = {
            alpha = 0
        },
        watermark = {
          
            solus = {
                fake_lenght = 0,
                fl_lenght = 0
            }
        },
        arrows = {
            standard = {
                right = {
                    alpha = 0,
                    lenght = 0,
                    color = Color.new(0,0,0,0)
                },
                left = {
                    alpha = 0,
                    lenght = 0,
                    color = Color.new(0,0,0,0)
                }
            },
            eternal = {
                right = {
                    alpha = 0,
                    color = Color.new(0,0,0,0)
                },
                left = {
                    alpha = 0,
                    color = Color.new(0,0,0,0)
                },
                down = {
                    alpha = 0,
                    color = Color.new(0,0,0,0)
                },
                up = {
                    alpha = 0,
                    color = Color.new(0,0,0,0)
                }

            }
        },
      
        indicators = {
            edge_yaw = false,
            choke = 0,
            choked = 0,
            cache = {
                ['Freestand'] = {c = 0},
                ['Manual'] = {c = 0},
                ['Double Tap'] = {c = 0},
                ['Hide Shots'] = {c = 0},
                ['Baim'] = {c = 0},
                ['Safepoint'] = {c = 0},
                ['Abf'] = {c = 0},
                ['edge'] = {c = 0},
              
            },
            eternal = {
              
                ['FREESTAND'] = {alpha = 0},
                ['LOCAL YAW'] = {alpha = 0},
                ['ON-SHOT'] = {alpha = 0},
                ['DOUBLE TAP'] = {alpha = 0},
                ['ANTI-BRUTEFORCE'] = {alpha = 0}
            },
            eternal2 = {
              
                ['FS'] = {alpha = 0},
                ['OS'] = {alpha = 0},
                ['DT'] = {alpha = 0},
                ['ABF'] = {alpha = 0}
            }
          
        },
        damage_indicator = {
            data = {

            }
        },
        logs = {
            hitbox_name = {
                [1] = 'head',
                [3] = 'stomach',
                [0] = 'lower chest',
                [2] = 'chest',
                [10] = 'upper chest',
                [7] = 'right thign',
                [6] = 'left thigh',
                [5] = 'right arm',
                [4] = 'left arm'
            },
            mismatch = {
                [0] = 'no',
                [1] = 'resolver',
                [2] = 'spread',
                [3] = 'occlusion',
                [4] = 'prediction error'
            },
            data = {
              
            }
        },
        trashtalk = {
            phrases = {
                'убейся долбаеб',
                'что за хуйня блохая подножная попалось хахахах',
                'просто жери своє говно далі тварюка ебана',
                '嘿! 你太笨了,不能活在這個世界上。 死',
                'ебаное чмо жри БАШМАК уебище',
                'полужесткокрылый атрофирован',
                'Xddd Нихоя себе тебя заебашил :)',
                'сбит пацаненок ебаный',
                'бестолочь ебаная иди вскройся',
                'не знаю тут письмо какое то на имя МОЯМА и на фамилию ТЬШЛЮХА твое вроде',
                'в некст раунде гильзу вернешь долбаеб ок?',
                'как ты живешь разводчик червяков умри тварь ебаная',
                'Cheking you IQ before accessing CS:GO....',
                'инетерсно бедыч ебаный как ты живешь вообще там?',
            }
        }
    },
    anti_aims = {
        anti_bruteforce = {
            data = {

            },
            handle = {
                working = false,
                work_time = 0,
                work_data = {

                }
            }
        },
        permission_to_legit_aa = false,
        legit_aa = false


    }
}


local ffi = require 'ffi'
local ffi_handler = {}
ffi.cdef[[
    typedef struct {
        float x;
        float y;
        float z;
    } vec3_struct;
    typedef void*(__thiscall* c_entity_list_get_client_entity_t)(void*, int);
    typedef void*(__thiscall* c_entity_list_get_client_entity_from_handle_t)(void*, uintptr_t);
    typedef int(__thiscall* c_weapon_get_muzzle_attachment_index_first_person_t)(void*, void*);
    typedef bool(__thiscall* c_entity_get_attachment_t)(void*, int, vec3_struct*);
]]
ffi_handler.bind_argument = function(fn, arg) return function(...) return fn(arg, ...) end end
ffi_handler.interface_type = ffi.typeof("uintptr_t**")
ffi_handler.i_client_entity_list = ffi.cast(ffi_handler.interface_type, Utils.CreateInterface("client.dll", "VClientEntityList003"))
ffi_handler.get_client_entity = ffi_handler.bind_argument(ffi.cast("c_entity_list_get_client_entity_t", ffi_handler.i_client_entity_list[0][3]), ffi_handler.i_client_entity_list)


eternal.contains = function(table, val)
    if #table > 0 then
        for i=1, #table do
            if table[i] == val then
                return true
            end
        end
    end
    return false
end

eternal.reference = {
    doubletap = Menu.FindVar('Aimbot','Ragebot','Exploits','Double Tap'),
    hideshots = Menu.FindVar('Aimbot','Ragebot','Exploits','Hide Shots'),
    inverter = Menu.FindVar('Aimbot','Anti Aim','Fake Angle','Inverter'),
    yaw_base = Menu.FindVar('Aimbot','Anti Aim','Main','Yaw Base'),
    pitch = Menu.FindVar('Aimbot','Anti Aim','Main','Pitch'),
    yaw_add = Menu.FindVar('Aimbot','Anti Aim','Main','Yaw Add'),
    yaw_modifier = Menu.FindVar('Aimbot','Anti Aim','Main','Yaw Modifier'),
    modifier_degree = Menu.FindVar('Aimbot','Anti Aim','Main','Modifier Degree'),
    left_limit = Menu.FindVar('Aimbot','Anti Aim','Fake Angle','Left Limit'),
    right_limit = Menu.FindVar('Aimbot','Anti Aim','Fake Angle','Right Limit'),
    fake_options = Menu.FindVar('Aimbot','Anti Aim','Fake Angle','Fake Options'),
    lby_mode = Menu.FindVar('Aimbot','Anti Aim','Fake Angle','LBY Mode'),
    freestanding_desync = Menu.FindVar('Aimbot','Anti Aim','Fake Angle','Freestanding Desync'),
    desync_on_shot = Menu.FindVar('Aimbot','Anti Aim','Fake Angle','Desync On Shot'),
    slow_walking = Menu.FindVar('Aimbot','Anti Aim','Misc','Slow Walk'),
    fake_duck = Menu.FindVar('Aimbot','Anti Aim','Misc','Fake Duck'),
    leg_movement = Menu.FindVar("Aimbot", "Anti Aim", "Misc", "Leg Movement"),
    third_person = Menu.FindVar('Visuals','View','Thirdperson','Enable Thirdperson'),
    bodyaim = Menu.FindVar('Aimbot','Ragebot','Misc','Body Aim'),
    safepoint = Menu.FindVar('Aimbot','Ragebot','Misc','Safe Points'),
    fl_limit = Menu.FindVar("Aimbot", "Anti Aim", "Fake Lag", "Limit"),
}



eternal.menu = {
  
    anti_aims = {
        main = {
            enabled = Menu.Switch('[eternal] Anti-Aims','[eternal] Anti-Aims - Main','Enable Anti-Aims',false,'Enables ETERNAL anti-aims.'),
            anti_aim_type = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Main','Anti-Aim Type',{'Ideal','Jitter','Builder'},0,'Anti-aim type selector. Ideal and Jitter are in-build.'),
            slow_walk_aa = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Main','Slow Walk AA Mode',{'Reduced','Jitter'},0,'Slow walk delta type.'),
            edge_yaw = Menu.Switch('[eternal] Anti-Aims','[eternal] Anti-Aims - Main','Enable Edge Yaw',false,'Syncs your head with closest wall.'),
            edge_yaw_conditions = Menu.MultiCombo('[eternal] Anti-Aims','[eternal] Anti-Aims - Main','Edge Yaw Conditions',{'Still','Crouch','Slow Walk','Move','Air','Fake Duck'},0,'Conditions when your head will be synced with closest wall.'),
            anti_bruteforce = Menu.Switch('[eternal] Anti-Aims','[eternal] Anti-Aims - Main','Enable Anti-Bruteforce',false,'Body yaw changer based on enemy misses.'),
            anti_bruteforce_reset_time = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Main','Reset Time',5,1,15,'Body yaw changer timeout.'),
            teleport_cross = Menu.Switch('[eternal] Anti-Aims','[eternal] Anti-Aims - Main','Teleport Cross',false,'Uncharges double tap while crossing.'),
            dfl = Menu.Switch("[eternal] Anti-Aims" , "[eternal] Anti-Aims - Main" , "Adjust Fakelag limit" , false),
            abstab = Menu.Switch("[eternal] Anti-Aims" , "[eternal] Anti-Aims - Main" , "Anti Backstab" , false),
            roll_aa = Menu.Switch("[eternal] Anti-Aims" , "[eternal] Anti-Aims - Main" , "Roll AA" , false),
        },--'[eternal] Anti-Aims','[eternal] Anti-Aims - Builder',
        builder = {
            settings = {
                manual_yaw_base = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Manual Yaw Base',{'Disabled','Forward','Backward','Right','Left','At Target','Freestanding'},0),
                condition = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Condition',{'Global','Still','Crouch','Slow Walk','Move','Air','Fake Duck'},0),
                still = Menu.Switch('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Override Still',false),
                crouch = Menu.Switch('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Override Crouch',false),
                slow_walk = Menu.Switch('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Override Slow Walk',false),
                move = Menu.Switch('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Override Move',false),
                air = Menu.Switch('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Override Air',false),
                fake_duck = Menu.Switch('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Override Fake Duck',false),
            },
            global = {
              
                yaw_add_left = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Add Left',0,-180,180),
                yaw_add_right = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Add Right',0,-180,180),
                yaw_modifier = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Modifier',{'Disabled','Center','Offset','Random','Spin'},0),
                modifier_degree = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Modifier Degree',0,-180,180),
                fake_limit_type = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Type',{'Static','Jitter'},0),
                fake_limit_left = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Left',0,0,60),
                fake_limit_right = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Right',0,0,60),
                fake_options = Menu.MultiCombo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Options',{'Avoid Overlap','Jitter','Randomize Jitter'},0),
                lby_mode = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','LBY Mode',{'Disabled','Opposite','Sway'},0),
                freestanding = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Freestanding Desync',{'Disabled','Peek Fake','Peek Real'},0,'Desync based on obstacles.'),
                desync_on_shot = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Desync On Shot',{'Disabled','Opposite','Freestanding','Switch'},0)
            },
            still = {
                yaw_base = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Base',{'Forward','Backward','Right','Left','At Target','Freestanding'},4),
                yaw_add_left = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Add Left ',0,-180,180),
                yaw_add_right = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Add Right ',0,-180,180),
                yaw_modifier = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Modifier ',{'Disabled','Center','Offset','Random','Spin'},0),
                modifier_degree = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Modifier Degree ',0,-180,180),
                fake_limit_type = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Type ',{'Static','Jitter'},0),
                fake_limit_left = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Left ',0,0,60),
                fake_limit_right = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Right ',0,0,60),
                fake_options = Menu.MultiCombo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Options ',{'Avoid Overlap','Jitter','Randomize Jitter'},0),
                lby_mode = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','LBY Mode ',{'Disabled','Opposite','Sway'},0),
                freestanding = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Freestanding Desync ',{'Disabled','Peek Fake','Peek Real'},0,'Desync based on obstacles.'),
                desync_on_shot = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Desync On Shot ',{'Disabled','Opposite','Freestanding','Switch'},0)
            },
            crouch = {
                yaw_base = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Base',{'Forward','Backward','Right','Left','At Target','Freestanding'},4),
                yaw_add_left = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Add Left  ',0,-180,180),
                yaw_add_right = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Add Right  ',0,-180,180),
                yaw_modifier = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Modifier  ',{'Disabled','Center','Offset','Random','Spin'},0),
                modifier_degree = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Modifier Degree  ',0,-180,180),
                fake_limit_type = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Type  ',{'Static','Jitter'},0),
                fake_limit_left = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Left  ',0,0,60),
                fake_limit_right = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Right  ',0,0,60),
                fake_options = Menu.MultiCombo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Options  ',{'Avoid Overlap','Jitter','Randomize Jitter'},0),
                lby_mode = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','LBY Mode  ',{'Disabled','Opposite','Sway'},0),
                freestanding = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Freestanding Desync  ',{'Disabled','Peek Fake','Peek Real'},0,'Desync based on obstacles.'),
                desync_on_shot = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Desync On Shot  ',{'Disabled','Opposite','Freestanding','Switch'},0)
            },
            slow_walk = {
                yaw_base = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Base   ',{'Forward','Backward','Right','Left','At Target','Freestanding'},4),
                yaw_add_left = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Add Left   ',0,-180,180),
                yaw_add_right = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Add Right   ',0,-180,180),
                yaw_modifier = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Modifier   ',{'Disabled','Center','Offset','Random','Spin'},0),
                modifier_degree = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Modifier Degree   ',0,-180,180),
                fake_limit_type = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Type   ',{'Static','Jitter'},0),
                fake_limit_left = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Left   ',0,0,60),
                fake_limit_right = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Right   ',0,0,60),
                fake_options = Menu.MultiCombo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Options  ',{'Avoid Overlap','Jitter','Randomize Jitter'},0),
                lby_mode = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','LBY Mode   ',{'Disabled','Opposite','Sway'},0),
                freestanding = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Freestanding Desync   ',{'Disabled','Peek Fake','Peek Real'},0,'Desync based on obstacles.'),
                desync_on_shot = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Desync On Shot   ',{'Disabled','Opposite','Freestanding','Switch'},0)
            },
            move = {
                yaw_base = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Base    ',{'Forward','Backward','Right','Left','At Target','Freestanding'},4),
                yaw_add_left = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Add Left    ',0,-180,180),
                yaw_add_right = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Add Right    ',0,-180,180),
                yaw_modifier = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Modifier    ',{'Disabled','Center','Offset','Random','Spin'},0),
                modifier_degree = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Modifier Degree    ',0,-180,180),
                fake_limit_type = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Type    ',{'Static','Jitter'},0),
                fake_limit_left = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Left    ',0,0,60),
                fake_limit_right = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Right    ',0,0,60),
                fake_options = Menu.MultiCombo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Options',{'Avoid Overlap','Jitter','Randomize Jitter'},0),
                lby_mode = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','LBY Mode',{'Disabled','Opposite','Sway'},0),
                freestanding = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Freestanding Desync',{'Disabled','Peek Fake','Peek Real'},0,'Desync based on obstacles.'),
                desync_on_shot = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Desync On Shot',{'Disabled','Opposite','Freestanding','Switch'},0)
            },
            air = {
                yaw_base = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Base     ',{'Forward','Backward','Right','Left','At Target','Freestanding'},4),
                yaw_add_left = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Add Left     ',0,-180,180),
                yaw_add_right = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Add Right     ',0,-180,180),
                yaw_modifier = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Modifier     ',{'Disabled','Center','Offset','Random','Spin'},0),
                modifier_degree = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Modifier Degree     ',0,-180,180),
                fake_limit_type = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Type     ',{'Static','Jitter'},0),
                fake_limit_left = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Left     ',0,0,60),
                fake_limit_right = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Right     ',0,0,60),
                fake_options = Menu.MultiCombo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Options     ',{'Avoid Overlap','Jitter','Randomize Jitter'},0),
                lby_mode = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','LBY Mode     ',{'Disabled','Opposite','Sway'},0),
                freestanding = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Freestanding Desync     ',{'Disabled','Peek Fake','Peek Real'},0,'Desync based on obstacles.'),
                desync_on_shot = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Desync On Shot     ',{'Disabled','Opposite','Freestanding','Switch'},0)
            },
            fake_duck = {
                yaw_base = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Base      ',{'Forward','Backward','Right','Left','At Target','Freestanding'},4),
                yaw_add_left = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Add Left      ',0,-180,180),
                yaw_add_right = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Add Right      ',0,-180,180),
                yaw_modifier = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Yaw Modifier      ',{'Disabled','Center','Offset','Random','Spin'},0),
                modifier_degree = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Modifier Degree      ',0,-180,180),
                fake_limit_type = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Type      ',{'Static','Jitter'},0),
                fake_limit_left = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Left      ',0,0,60),
                fake_limit_right = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Limit Right      ',0,0,60),
                fake_options = Menu.MultiCombo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Fake Options      ',{'Avoid Overlap','Jitter','Randomize Jitter'},0),
                lby_mode = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','LBY Mode      ',{'Disabled','Opposite','Sway'},0),
                freestanding = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Freestanding Desync      ',{'Disabled','Peek Fake','Peek Real'},0,'Desync based on obstacles.'),
                desync_on_shot = Menu.Combo('[eternal] Anti-Aims','[eternal] Anti-Aims - Builder','Desync On Shot      ',{'Disabled','Opposite','Freestanding','Switch'},0)
            }
        },
        misc = {
            leg_movement = Menu.Switch('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','Leg Movement',false),
            legit_aa = Menu.Switch('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','Allow Anti-Aim On Use',false),
            legit_aa_hotkey = Menu.Hotkey('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','Legit AA Hotkey',1),
            legit_aa_options = Menu.MultiCombo('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','Legit AA Options',{'Jitter','At Target'},0),
            anti_bruteforce_phases = {
                add = Menu.Button('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','Add','Adds a phase.'),
                remove = Menu.Button('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','Remove','Removes a phase.'),
                phase_1 = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','[Phase 1] Fake Limit',0,-60,60),
                phase_2 = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','[Phase 2] Fake Limit',0,-60,60),
                phase_3 = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','[Phase 3] Fake Limit',0,-60,60),
                phase_4 = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','[Phase 4] Fake Limit',0,-60,60),
                phase_5 = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','[Phase 5] Fake Limit',0,-60,60),
                phase_6 = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','[Phase 6] Fake Limit',0,-60,60),
                phase_7 = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','[Phase 7] Fake Limit',0,-60,60),
                phase_8 = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','[Phase 8] Fake Limit',0,-60,60),
                phase_9 = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','[Phase 9] Fake Limit',0,-60,60),
                phase_10 = Menu.SliderInt('[eternal] Anti-Aims','[eternal] Anti-Aims - Misc','[Phase 10] Fake Limit',0,-60,60)
            }
        }
    },
    visuals = {
        enabled = Menu.Switch('[eternal] Visuals','[eternal] Visuals - Main','Enable Visuals',false,'Enables ETERNAL visuals.'),
        windows = Menu.MultiCombo('[eternal] Visuals','[eternal] Visuals - Main','Windows',{'Keybinds','Watermark','Holo Hud','Menu Border'},0,'Windows to show.'),
        values_instead_of_modes = Menu.Switch('[eternal] Visuals','[eternal] Visuals - Main','Values Instead Of Modes',false,'Shows keybind value instead of mode.'),
        exploit_info = Menu.Switch('[eternal] Visuals','[eternal] Visuals - Main','Show Exploit And Anti-Aim State',false,'Shows addition watermark information like FL and FAKE'),
        holo_hud_disablers = Menu.MultiCombo('[eternal] Visuals','[eternal] Visuals - Main','Holo Hud Disablers',{'When Scoped','Thirdperson'},0),
        on_screen_indicators = Menu.MultiCombo('[eternal] Visuals','[eternal] Visuals - Main','On Screen Indicators',{'ETERNAL Indicators','Manual Arrows'},0),
        indicators_type = Menu.Combo('[eternal] Visuals','[eternal] Visuals - Main','Indicators Style',{'Standard','ETERNAL','ETERNAL 2nd'},0),
        indicators_color = Menu.ColorEdit('[eternal] Visuals','[eternal] Visuals - Main','Indicator Color',Color.new(1,1,1,1)),
        second_color = Menu.ColorEdit('[eternal] Visuals','[eternal] Visuals - Main','Second Color',Color.new(1,1,1,1)),
        arrows_type = Menu.Combo('[eternal] Visuals','[eternal] Visuals - Main','Arrows Style',{'Standard','ETERNAL'},0),
        manual_arrows = Menu.Combo('[eternal] Visuals','[eternal] Visuals - Main','Arrows Visibility',{'Always','When Enabled (all)','When Enabled (one)'},0),
        color_enabled = Menu.ColorEdit('[eternal] Visuals','[eternal] Visuals - Main','Color Enabled',Color.new(1,1,1,1)),
        color_disabled = Menu.ColorEdit('[eternal] Visuals','[eternal] Visuals - Main','Color Disabled',Color.new(1,1,1,1)),
        misc = {
            logs = Menu.Switch('[eternal] Visuals','[eternal] Visuals - Misc','Additional Logs',false),
            logs_output = Menu.MultiCombo('[eternal] Visuals','[eternal] Visuals - Misc','Logs Output',{'Pop-up','Console','Events'},0),
            pop_up_style = Menu.Combo('[eternal] Visuals','[eternal] Visuals - Misc','Pop-up Style',{'Square','Rounded','Sigma Styled'},0),
            damage_indicator = Menu.Switch('[eternal] Visuals','[eternal] Visuals - Misc','Damage Indicator',false),
            custom_scope = Menu.Switch('[eternal] Visuals','[eternal] Visuals - Misc','Custom Scope',false),
            custom_scope_color = Menu.ColorEdit('[eternal] Visuals','[eternal] Visuals - Misc','Custom Scope Color',Color.new(1,1,1,1)),
            custom_scope_gap = Menu.SliderInt('[eternal] Visuals','[eternal] Visuals - Misc','Custom Scope Gap',10,0,600),
            custom_scope_size = Menu.SliderInt('[eternal] Visuals','[eternal] Visuals - Misc','Custom Scope Size',50,10,600),
            viewmodel_in_scope = Menu.Switch('[eternal] Visuals','[eternal] Visuals - Misc','Viewmodel In Scope',false),
          
            kill_say = Menu.Switch('[eternal] Visuals','[eternal] Visuals - Misc','Kill Say',false)
          
        },
        theme = {
            box = Menu.Combo('[eternal] Visuals','[eternal] Visuals - Theme','Box Style',{'Square','Rounded'},0),
            theme = Menu.Combo('[eternal] Visuals','[eternal] Visuals - Theme','Theme Style',{'Static','Gradient','Animated Gradient','Fade'},0),
            background_type = Menu.Combo('[eternal] Visuals','[eternal] Visuals - Theme','Background Type',{'Blank','[25%] Filled','[25%] Filled + Blur','[50%] Filled','[50%] Filled + Blur','[75%] Filled','[75%] Filled + Blur','[100%] Filled','Blur'},0),
            accent = Menu.ColorEdit('[eternal] Visuals','[eternal] Visuals - Theme','Accent Color',Color.new(1,1,1,1)),
            fade_offset = Menu.SliderInt('[eternal] Visuals','[eternal] Visuals - Theme','Fade Offset',825,1,1000),
            fade_frequency = Menu.SliderInt('[eternal] Visuals','[eternal] Visuals - Theme','Fade Frequency',10,1,100),
            fade_split_ratio = Menu.SliderInt('[eternal] Visuals','[eternal] Visuals - Theme','Fade Split Ratio',100,0,100)
        },
        keybinds_x = Menu.SliderInt('[eternal] Visuals','[eternal]','keybinds_x_position|',200,0,EngineClient.GetScreenSize().x),
        keybinds_y = Menu.SliderInt('[eternal] Visuals','[eternal]','keybinds_y_position|',200,0,EngineClient.GetScreenSize().y),
    },
    config = {
        default = Menu.Button('[eternal] Config','[eternal] Config - Main', 'Apply Default Config','Click to apply standard script configuration.'),
        import = Menu.Button('[eternal] Config','[eternal] Config - Custom Configs', 'Apply Imported Config','Click to Import script configuration.'),
        export = Menu.Button('[eternal] Config','[eternal] Config - Custom Configs', 'Get Exported Config','Click to Import script configuration.'),
    }
  
}


eternal.check = function(check_alive_state)
  
    if EntityList.GetLocalPlayer() == nil then
        return false
    else
        if check_alive_state then
            if EntityList.GetLocalPlayer():GetProp('m_iHealth') > 0 then
                return true
            else
                return false
            end
        else
            return true
        end
    end
      
end


eternal.global_functions = {
    check_local = function(what)
        if what == nil then
            return 0
        else
            return what

        end
    end,
    get_muzzle_position = function()
        local me = EntityList.GetLocalPlayer()
        if eternal.check(true) ~= true then return end
        local my_address = ffi_handler.get_client_entity(me:EntIndex())
        if not my_address then return end
        local my_weapon_handle = me:GetProp("m_hActiveWeapon")
        local my_weapon = EntityList.GetClientEntityFromHandle(my_weapon_handle)
        if not my_weapon then return end
        local my_weapon_address = ffi_handler.get_client_entity(my_weapon:EntIndex())
        if not my_weapon_address then return end
        local my_viewmodel_handle = me:GetProp("m_hViewModel[0]")
        local my_viewmodel = EntityList.GetClientEntityFromHandle(my_viewmodel_handle)
        if not my_viewmodel then return end
        local my_viewmodel_addres = ffi_handler.get_client_entity(my_viewmodel:EntIndex())
        if not my_viewmodel_addres then return end
        local viewmodel_vtbl = ffi.cast(ffi_handler.interface_type, my_viewmodel_addres)[0]
        local weapon_vtbl = ffi.cast(ffi_handler.interface_type, my_weapon_address)[0]
        local get_viewmodel_attachment_fn = ffi.cast("c_entity_get_attachment_t", viewmodel_vtbl[84])
        local get_muzzle_attachment_index_fn = ffi.cast("c_weapon_get_muzzle_attachment_index_first_person_t", weapon_vtbl[468])
        local muzzle_attachment_index = get_muzzle_attachment_index_fn(my_weapon_address, my_viewmodel_addres)
        local ret = ffi.new("vec3_struct[1]")
        local state = get_viewmodel_attachment_fn(my_viewmodel_addres, muzzle_attachment_index, ret) and EntityList.GetLocalPlayer():GetActiveWeapon() ~= nil
        local final_pos = Vector.new(ret[0].x, ret[0].y, ret[0].z)
        return {state = state,pos = final_pos}
    end,
    get_body_yaw = function()
        return math.abs(math.max(-60, math.min(60, (EntityList.GetLocalPlayer():GetProp("m_flPoseParameter")[12] or 0)*120-60+0.5)))
    end,
    is_scoped = function()
        return EntityList.GetLocalPlayer():GetProp('m_bIsScoped')
    end,
    get_state = function()
      
        local state = 1
        if bit.band(EntityList.GetLocalPlayer():GetProp('m_fFlags'),1) ~= 1 then
            state = 5
        else
            if eternal.reference.fake_duck:Get() == true then
                state = 6
            else
                if EntityList.GetLocalPlayer():GetProp('m_flDuckAmount') > 0.5 then
                    state = 2
                elseif EntityList.GetLocalPlayer():GetProp('m_vecVelocity'):Length2D() > 3 then
                    if eternal.reference.slow_walking:Get() == true then
                        state = 3
                    else
                        state = 4
                    end
                end
            end
        end
        return state
    end,
  
    override_limit = function(angle,isoverride)
        if angle < 0  then
            if isoverride == true  then AntiAim.OverrideInverter(true) end
            AntiAim.OverrideLimit(math.abs(angle))
        elseif angle == 0 or angle > 0  then
            if isoverride == true  then AntiAim.OverrideInverter(false)  end
            AntiAim.OverrideLimit(angle)
        end
      
    end,
    get_binds = function()
        local binds = {}
        local cheat_binds = Cheat.GetBinds()
        for i = 1, #cheat_binds do
            table.insert(binds,1,cheat_binds[i])
        end
        return binds
    end,
    get_time = function()
        local seconds = math.floor(Utils.UnixTime() / 1000)
        local hours = math.floor((seconds / 3600 + 3) % 24)
        local minutes = math.floor(seconds / 60 % 60)
        local sec = math.floor(seconds % 60)
        if sec < 10 then sec = "0" .. sec end
        if minutes < 10 then minutes = "0" .. minutes end
        if hours < 10 then hours = "0" .. hours end
        return hours .. ":" .. minutes .. ":" .. sec
    end,
    get_nearet_to_crosshair = function()

            
        IsValid = function(ent)
            if ent == nil then
                return false
            else
                if ent:GetProp('m_iHealth') > 0 then
                    return true
                else
                    return false
                end
            end
        end
        if EngineClient.IsConnected() == nil or EngineClient.GetNetChannelInfo() == nil then return end
        local eyepos = EntityList.GetLocalPlayer():GetEyePosition()
        local viewangles = EngineClient.GetViewAngles()
        local bestenemy = nil
        local fov = 180
        for i=1, #EntityList.GetPlayers() do
            if(EntityList.GetPlayers()[i] ~= EntityList.GetLocalPlayer() and EntityList.GetPlayers()[i]:IsTeamMate() ~= true and IsValid(EntityList.GetPlayers()[i]) == true) then
                local cur = EntityList.GetPlayers()[i]:GetProp("m_vecOrigin")
                local cur_fov = math.abs(eternal.math.normalize_yaw(eternal.math.deg_atan(eyepos.x - cur.x, eyepos.y - cur.y) - viewangles.yaw + 180))
                if cur_fov < fov then
                    fov = cur_fov
                    bestenemy = EntityList.GetPlayers()[i]
                end
            end
        end
        return bestenemy == nil and EntityList.GetLocalPlayer() or bestenemy
    end,
    update_fake_lag = function()
        if ClientState.m_choked_commands == 0 then
          
            eternal.vars.visuals.indicators.choked = eternal.vars.visuals.indicators.choke
        end
        eternal.vars.visuals.indicators.choke = ClientState.m_choked_commands
    end
}


eternal.get_indicators = function(type)
    local indicators = {}
    if type == 0 then
        if eternal.vars.anti_aims.anti_bruteforce.handle.working == true then
            table.insert(indicators,{name = 'ANTI-BRUTEFORCE',arc = eternal.vars.anti_aims.anti_bruteforce.handle.work_time})
        end
        if eternal.reference.doubletap:Get() then
            table.insert(indicators,{name = 'DT',arc = Exploits.GetCharge()})
        end
        if eternal.menu.anti_aims.main.enabled:Get() then
            local target_string = 'LOCAL YAW'
            if eternal.vars.visuals.indicators.edge_yaw == true then
                target_string = 'EDGE YAW'
            else
                if eternal.reference.yaw_base:Get() <= 3 then
                    target_string = 'LOCAL YAW'
                else
                    if eternal.global_functions.get_nearet_to_crosshair() == EntityList.GetLocalPlayer() then
                        target_string = 'LOCAL YAW'
                    else
                        target_string = 'T: ' .. eternal.global_functions.get_nearet_to_crosshair():GetName()
                    end
                end
            end
            table.insert(indicators,{name = target_string})
        else
            table.insert(indicators,{name = 'T: NIL | OFF'})
        end
      
        table.insert(indicators,{name = 'FL: ' .. (eternal.vars.visuals.indicators.choked)})
  
        if  eternal.reference.bodyaim:Get() == 2 then
            table.insert(indicators, {name = "BAIM"})
        end
        if  eternal.reference.safepoint:Get() == 2 then
            table.insert(indicators, {name = "SAFEPOINT"})
        end
        if  eternal.reference.hideshots:Get() == true then
            table.insert(indicators, {name = "HIDESHOT"})
        end
        if eternal.reference.yaw_base:Get() == 5 then
            table.insert(indicators,{name = 'FREESTAND'})
        end
          

    elseif type == 1 then
        if eternal.vars.anti_aims.anti_bruteforce.handle.working then
            eternal.vars.visuals.indicators.cache['Abf'].c = 1
        elseif eternal.vars.anti_aims.anti_bruteforce.handle.working == false and eternal.vars.visuals.indicators.cache['Abf'].c > 0 then
            eternal.vars.visuals.indicators.cache['Abf'].c = eternal.vars.visuals.indicators.cache['Abf'].c - GlobalVars.frametime * 5
        end

        if eternal.vars.visuals.indicators.cache['Abf'].c > 0 then
            table.insert(indicators,{name = 'ANTI-BRUTEFORCE',active = (eternal.vars.visuals.indicators.cache['Abf'].c == 1)})
        end


        if eternal.reference.yaw_base:Get() == 5 then
            eternal.vars.visuals.indicators.cache['Freestand'].c = 1
        elseif eternal.reference.yaw_base:Get() ~= 5 and eternal.vars.visuals.indicators.cache['Freestand'].c > 0 then
            eternal.vars.visuals.indicators.cache['Freestand'].c = eternal.vars.visuals.indicators.cache['Freestand'].c - GlobalVars.frametime * 5
        end

        if eternal.vars.visuals.indicators.cache['Freestand'].c > 0 then
            table.insert(indicators,{name = 'FREESTAND',active = (eternal.vars.visuals.indicators.cache['Freestand'].c == 1)})
        end
        if eternal.reference.yaw_base:Get() <= 3 then
            eternal.vars.visuals.indicators.cache['Manual'].c = 1
        elseif (eternal.reference.yaw_base:Get() > 3 ) and eternal.vars.visuals.indicators.cache['Manual'].c > 0 then
            eternal.vars.visuals.indicators.cache['Manual'].c = eternal.vars.visuals.indicators.cache['Manual'].c - GlobalVars.frametime * 5
        end

        if eternal.vars.visuals.indicators.cache['Manual'].c > 0 then
            table.insert(indicators,{name = 'LOCAL YAW',active = (eternal.vars.visuals.indicators.cache['Manual'].c == 1)})
        end
      
        if eternal.reference.hideshots:Get() then
            eternal.vars.visuals.indicators.cache['Hide Shots'].c = 1
        elseif eternal.reference.hideshots:Get() == false and eternal.vars.visuals.indicators.cache['Hide Shots'].c > 0 then
            eternal.vars.visuals.indicators.cache['Hide Shots'].c = eternal.vars.visuals.indicators.cache['Hide Shots'].c - GlobalVars.frametime * 5
        end

        if eternal.vars.visuals.indicators.cache['Hide Shots'].c > 0 then
            table.insert(indicators,{name = 'ON-SHOT',active = (eternal.vars.visuals.indicators.cache['Hide Shots'].c == 1)})
        end

        if eternal.reference.doubletap:Get() then
            eternal.vars.visuals.indicators.cache['Double Tap'].c = 1
        elseif eternal.reference.doubletap:Get() == false and eternal.vars.visuals.indicators.cache['Double Tap'].c > 0 then
            eternal.vars.visuals.indicators.cache['Double Tap'].c = eternal.vars.visuals.indicators.cache['Double Tap'].c - GlobalVars.frametime * 5
        end

        if eternal.vars.visuals.indicators.cache['Double Tap'].c > 0 then
            table.insert(indicators,{name = 'DOUBLE TAP',active = (eternal.vars.visuals.indicators.cache['Double Tap'].c == 1),arc = Exploits.GetCharge()})
        end

    elseif type == 2 then
      
        if eternal.vars.anti_aims.anti_bruteforce.handle.working then
            eternal.vars.visuals.indicators.cache['Abf'].c = 1
        elseif eternal.vars.anti_aims.anti_bruteforce.handle.working == false and eternal.vars.visuals.indicators.cache['Abf'].c > 0 then
            eternal.vars.visuals.indicators.cache['Abf'].c = eternal.vars.visuals.indicators.cache['Abf'].c - GlobalVars.frametime * 5
        end

        if eternal.vars.visuals.indicators.cache['Abf'].c > 0 then
            table.insert(indicators,{name = 'ABF',active = (eternal.vars.visuals.indicators.cache['Abf'].c == 1)})
        end


        if eternal.reference.yaw_base:Get() == 5 then
            eternal.vars.visuals.indicators.cache['Freestand'].c = 1
        elseif eternal.reference.yaw_base:Get() ~= 5 and eternal.vars.visuals.indicators.cache['Freestand'].c > 0 then
            eternal.vars.visuals.indicators.cache['Freestand'].c = eternal.vars.visuals.indicators.cache['Freestand'].c - GlobalVars.frametime * 5
        end

        if eternal.vars.visuals.indicators.cache['Freestand'].c > 0 then
            table.insert(indicators,{name = 'FS',active = (eternal.vars.visuals.indicators.cache['Freestand'].c == 1)})
        end
      
      
        if eternal.reference.hideshots:Get() then
            eternal.vars.visuals.indicators.cache['Hide Shots'].c = 1
        elseif eternal.reference.hideshots:Get() == false and eternal.vars.visuals.indicators.cache['Hide Shots'].c > 0 then
            eternal.vars.visuals.indicators.cache['Hide Shots'].c = eternal.vars.visuals.indicators.cache['Hide Shots'].c - GlobalVars.frametime * 5
        end

        if eternal.vars.visuals.indicators.cache['Hide Shots'].c > 0 then
            table.insert(indicators,{name = 'OS',active = (eternal.vars.visuals.indicators.cache['Hide Shots'].c == 1)})
        end

        if eternal.reference.doubletap:Get() then
            eternal.vars.visuals.indicators.cache['Double Tap'].c = 1
        elseif eternal.reference.doubletap:Get() == false and eternal.vars.visuals.indicators.cache['Double Tap'].c > 0 then
            eternal.vars.visuals.indicators.cache['Double Tap'].c = eternal.vars.visuals.indicators.cache['Double Tap'].c - GlobalVars.frametime * 5
        end

        if eternal.vars.visuals.indicators.cache['Double Tap'].c > 0 then
            table.insert(indicators,{name = 'DT',active = (eternal.vars.visuals.indicators.cache['Double Tap'].c == 1),arc = Exploits.GetCharge()})
        end


    end
    return indicators
end

eternal.render = {
    line = function(x,y,x1,y1,color)
        Render.Line(Vector2.new(x,y),Vector2.new(x1,y1),color)
    end,
    polygon = function(x1,y1,x2,y2,x3,y3,color)
        Render.PolyFilled(color, Vector2.new(x1,y1), Vector2.new(x2,y2), Vector2.new(x3,y3))
    end,
    box = function(x,y,w,h,color,rounding)
        Render.Box(Vector2.new(x,y), Vector2.new(x+w,y+h), color, rounding == nil and 0 or rounding)
    end,
    box_filled = function(x,y,w,h,color,rounding)
        Render.BoxFilled(Vector2.new(x,y), Vector2.new(x+w,y+h), color, rounding == nil and 0 or rounding)
    end,
    gradient_box_filled = function(x,y,w,h,horizontal,color,color2)
        Render.GradientBoxFilled(Vector2.new(x,y), Vector2.new(x+w,y+h),color,horizontal and color2 or color,horizontal and color or color2,color2)
    end,
    string = function(x,y,cen,string,color,TYPE,font,fontsize)
        if TYPE == 0 then
            Render.Text(string, Vector2.new(x,y), color, fontsize,font,false,cen)
        elseif TYPE == 1 then
            Render.Text(string, Vector2.new(x+1,y+1), Color.new(0.1,0.1,0.1,color.a/1.5), fontsize,font,false,cen)
            Render.Text(string, Vector2.new(x,y), color, fontsize,font,false,cen)
        elseif TYPE == 2 then
            Render.Text(string, Vector2.new(x,y), color, fontsize,font,true,cen)
        end
    end,
    circle = function(x,y,rad,start,endd,color,seg,th)
        Render.Circle(Vector2.new(x,y), rad, seg, color,th or 0,start,endd)
    end,
    text_size = function(string,font,fontsize)
        return Render.CalcTextSize(string,fontsize,font)
    end,
    world_to_screen_p = function(x,y,z)
        return Render.WorldToScreen(Vector.new(x,y,z))
    end,
    world_to_screen_v = function(vec3)
        return Render.WorldToScreen(vec3)
    end,
    blur = function(x,y,w,h,color,rounding)
        Render.Blur(Vector2.new(x,y),Vector2.new(x+w,y+h), color, rounding)
    end,
    get_bar_color = function()
        local hsv_to_rgb = function(b,c,d,e)
            local f,g,h;
            local i=math.floor(b*6)
            local j=b*6-i;
            local k=d*(1-c)
            local l=d*(1-j*c)
            local m=d*(1-(1-j)*c)
            i=i%6;
            if i==0 then
                f,g,h=d,m,k
            elseif i==1 then
                f,g,h=l,d,k
            elseif i==2 then
                f,g,h=k,d,m
            elseif i==3 then
                f,g,h=k,l,d
            elseif i==4 then
                f,g,h=m,k,d
            elseif i==5 then
                f,g,h=d,k,l
            end;
            return Color.new(f,g,h,e)
        end

        local color = eternal.menu.visuals.theme.accent:Get()
  
        if eternal.menu.visuals.theme.theme:Get() ~= 0 and eternal.menu.visuals.theme.theme:Get() ~= 3 then
            local rgb_split_ratio = eternal.menu.visuals.theme.fade_split_ratio:Get() / 100
  
            local h = eternal.menu.visuals.theme.theme:Get() == 2 and
                GlobalVars.realtime * (eternal.menu.visuals.theme.fade_frequency:Get() / 100) or
                eternal.menu.visuals.theme.fade_offset:Get() / 1000
  
            color.r, color.g, color.b = hsv_to_rgb(h, 1, 1, 1).r,hsv_to_rgb(h, 1, 1, 1).g,hsv_to_rgb(h, 1, 1, 1).b
            color.r, color.g, color.b =
                color.r * rgb_split_ratio,
                color.g * rgb_split_ratio,
                color.b * rgb_split_ratio
        end
  
        return color
    end
}

eternal.fonts = {
    verdana = Render.InitFont('Verdana',11,{'r'}),
    verdana_big = Render.InitFont('Verdana',12),
    verdana_big_bold = Render.InitFont('Verdana',12,{'b'}),
    verdana_biggest = Render.InitFont('Verdana',15),
    verdana_mega = Render.InitFont('Verdana',20),
    pixel = Render.InitFont('Smallest Pixel-7',10)
}
eternal.base_render = {
    box = function(x,y,w,h,alpha,text_info)
      
        local color = eternal.render.get_bar_color()
        color = Color.new(color.r,color.g,color.b,color.a*alpha)
        if eternal.menu.visuals.theme.background_type:Get() == 1 then
            eternal.render.box_filled(x, y + 2, w, h-2,Color.new(0.075,0.075,0.075,0.25*alpha),eternal.menu.visuals.theme.box:Get()*4)
        elseif eternal.menu.visuals.theme.background_type:Get() == 2 then
            eternal.render.blur(x, y + 2, w, h-2,Color.new(1,1,1,alpha),eternal.menu.visuals.theme.box:Get()*4)
            eternal.render.box_filled(x, y + 2, w, h-2,Color.new(0.075,0.075,0.075,0.25*alpha),eternal.menu.visuals.theme.box:Get()*4)
        elseif eternal.menu.visuals.theme.background_type:Get() == 3 then
            eternal.render.box_filled(x, y + 2, w, h-2,Color.new(0.075,0.075,0.075,0.5*alpha),eternal.menu.visuals.theme.box:Get()*4)
        elseif eternal.menu.visuals.theme.background_type:Get() == 4 then
            eternal.render.blur(x, y + 2, w, h-2,Color.new(1,1,1,alpha),eternal.menu.visuals.theme.box:Get()*4)
            eternal.render.box_filled(x, y + 2, w, h-2,Color.new(0.075,0.075,0.075,0.5*alpha),eternal.menu.visuals.theme.box:Get()*4)
        elseif eternal.menu.visuals.theme.background_type:Get() == 5 then
            eternal.render.box_filled(x, y + 2, w, h-2,Color.new(0.075,0.075,0.075,0.75*alpha),eternal.menu.visuals.theme.box:Get()*4)
        elseif eternal.menu.visuals.theme.background_type:Get() == 6 then
            eternal.render.blur(x, y + 2, w, h-2,Color.new(1,1,1,alpha),eternal.menu.visuals.theme.box:Get()*4)
            eternal.render.box_filled(x, y + 2, w, h-2,Color.new(0.075,0.075,0.075,0.75*alpha),eternal.menu.visuals.theme.box:Get()*4)
        elseif eternal.menu.visuals.theme.background_type:Get() == 7 then
            eternal.render.box_filled(x, y + 2, w, h-2,Color.new(0.075,0.075,0.075,alpha),eternal.menu.visuals.theme.box:Get()*4)
        elseif eternal.menu.visuals.theme.background_type:Get() == 8 then
            eternal.render.blur(x, y + 2, w, h-2,Color.new(1,1,1,alpha),eternal.menu.visuals.theme.box:Get()*4)
        end
        if eternal.menu.visuals.theme.box:Get() == 0 then
            if eternal.menu.visuals.theme.theme:Get() == 0 then
                eternal.render.box_filled(x,y,w,2,color)
            elseif eternal.menu.visuals.theme.theme:Get() ~= 0 and eternal.menu.visuals.theme.theme:Get() ~= 3 then
                eternal.render.gradient_box_filled(x, y, (w/2), 2,true,Color.new(color.g,color.b,color.r,color.a),Color.new(color.r,color.g,color.b,color.a))
                eternal.render.gradient_box_filled(x + w/2, y, w-w/2, 2,true,Color.new(color.r,color.g,color.b,color.a),Color.new(color.b,color.r,color.g,color.a))
            elseif eternal.menu.visuals.theme.theme:Get() == 3 then
                eternal.render.gradient_box_filled(x, y, (w/2), 2,true,Color.new(color.r,color.g,color.b,0),Color.new(color.r,color.g,color.b,color.a))
                eternal.render.gradient_box_filled(x + w/2, y, w-w/2, 2,true,Color.new(color.r,color.g,color.b,color.a),Color.new(color.r,color.g,color.b,0))
            end
        elseif eternal.menu.visuals.theme.box:Get() == 1 then
            if eternal.menu.visuals.theme.theme:Get() == 0 then
                eternal.render.box(x,y+1,w,h,color,eternal.menu.visuals.theme.box:Get()*4)
            elseif eternal.menu.visuals.theme.theme:Get() ~= 0 and eternal.menu.visuals.theme.theme:Get() ~= 3 then



                eternal.render.circle(x+3.5,y+4,3.1,270,180,Color.new(color.g,color.b,color.r,color.a),36,1)
                eternal.render.gradient_box_filled(x+4, y+1, (w/2)-4, 1,true,Color.new(color.g,color.b,color.r,color.a),Color.new(color.r,color.g,color.b,color.a))
                eternal.render.gradient_box_filled(x + w/2, y+1, w-w/2-4, 1,true,Color.new(color.r,color.g,color.b,color.a),Color.new(color.b,color.r,color.g,color.a))
                eternal.render.circle(x+w-3.5,y+4,3.1,-90,0,Color.new(color.b,color.r,color.g,color.a),36,1)


                eternal.render.gradient_box_filled(x, y+4, 1, h-6,false,Color.new(color.g,color.b,color.r,color.a),Color.new(color.b,color.r,color.g,color.a))
                eternal.render.gradient_box_filled(x+w-1, y+4, 1, h-6,false,Color.new(color.b,color.r,color.g,color.a),Color.new(color.g,color.b,color.r,color.a))


              
                eternal.render.circle(x+3.5,y-2+h,3.1,180,90,Color.new(color.b,color.r,color.g,color.a),36,1)
                eternal.render.gradient_box_filled(x+4, h+y, (w/2)-4, 1,true,Color.new(color.b,color.r,color.g,color.a),Color.new(color.r,color.g,color.b,color.a))
                eternal.render.gradient_box_filled(x + w/2, y+h, w-w/2-4, 1,true,Color.new(color.r,color.g,color.b,color.a),Color.new(color.g,color.b,color.r,color.a))
                eternal.render.circle(x+w-3.5,y-2+h,3.1,0,90,Color.new(color.g,color.b,color.r,color.a),36,1)

            elseif eternal.menu.visuals.theme.theme:Get() == 3 then
                --[[eternal.render.gradient_box_filled(x, y, (w/2), 2,true,Color.new(color.r,color.g,color.b,0),Color.new(color.r,color.g,color.b,color.a))
                eternal.render.gradient_box_filled(x + w/2, y, w-w/2, 2,true,Color.new(color.r,color.g,color.b,color.a),Color.new(color.r,color.g,color.b,0))
                ]]--
                eternal.render.circle(x+3.5,y+4,3.1,270,180,Color.new(color.r,color.g,color.b,color.a),36,1)
                eternal.render.box_filled(x+4, y+1, (w)-7, 1,Color.new(color.r,color.g,color.b,color.a))
              
                eternal.render.circle(x+w-3.5,y+4,3.1,-90,0,Color.new(color.r,color.g,color.b,color.a),36,1)


                eternal.render.gradient_box_filled(x, y+4, 1, h-6,false,Color.new(color.r,color.g,color.b,color.a),Color.new(color.r,color.g,color.b,0))
                eternal.render.gradient_box_filled(x+w-1, y+4, 1, h-6,false,Color.new(color.r,color.g,color.b,color.a),Color.new(color.r,color.g,color.b,0))


              
            end

        end
      

        if text_info ~= nil then
            local text = (text_info.string == nil and 'nil' or text_info.string)
            local color = (text_info.color == nil and Color.new(1,1,1,alpha) or Color.new(text_info.color.r,text_info.color.g,text_info.color.b,text_info.color.a*alpha))
            local font = (text_info.font == nil and eternal.fonts.verdana or text_info.font)
            local font_size = (text_info.font_size == nil and 11 or text_info.font_size)
            eternal.render.string(x+w/2,y+10,true, text,color,1,font,font_size)
        end
    end,
    fade_text = function(x,y,text,color1,color2,font,size,center)
        for i = 1, #text do
            local string = text:sub(i,i)
            local render_pos = 0
            for j = 0, i do
                render_pos = x+Render.CalcTextSize(text,size,font).x/2-Render.CalcTextSize(text:sub(j),size,font).x+1.5
            end
            --i/#text
            eternal.render.string(render_pos,y,center,string,eternal.math.lerp_color(i/#text,color1,color2),2,font,size)
        end
    end
}

local cheat_engine = {

    get_class = ffi.typeof("void***"),

    panorama = Panorama.Open(),

    is_valid_ptr = function (self, ptr)
        if not self.nullptr then
            self.nullptr = {void = ffi.new("void*"), unsigned_int = ffi.new("unsigned int")}
        end

        return ptr ~= self.nullptr.void and ptr ~= nil and ffi.cast("unsigned int", ptr) ~= self.nullptr.unsigned_int
    end,

    interfaces = {
        get = function (self, dll, name)
            if not self.interfaces[name] then
                self.interfaces[name] = self.get_class(Utils.CreateInterface(dll, name))
            end
            return self.interfaces[name]
        end,

        cast = function (self, dll, name, cast, index)
            if not self.interfaces[cast .. index] then
                self.interfaces[cast .. index] = function (...)
                    local interface = self.interfaces.get(self, dll, name)
                    local args = {...}
                    local num_args = select(2, cast:gsub(", ", ""))

                    return ffi.cast(cast, interface[0][index])(interface, ...)
                end
            end
            return self.interfaces[cast .. index]
        end
    },

    get_client_entity = function (self, index)
        return self.interfaces.cast(self, "client.dll", "VClientEntityList003", "void*(__thiscall*)(void*, int)", 3)(index)
    end,

    play_sound = function (self, sound, volume, pitch)
        return self.interfaces.cast(self, "engine.dll", "IEngineSoundClient003", "void(__thiscall*)(void*, const char*, float, int, int, float)", 12)(sound, volume, pitch, 0, 0)
    end,

    get_clipboard_text = function (self, unk, buffer, size)
        return self.interfaces.cast(self, "vgui2.dll", "VGUI_System010", "void(__thiscall*)(void*, int, const char*, int)", 11)(unk, buffer, size)
    end,

    get_clipboard_text_count = function (self)
        return self.interfaces.cast(self, "vgui2.dll", "VGUI_System010", "int(__thiscall*)(void*)", 7)()
    end,

    set_clipboard_text = function (self, str)
        return self.interfaces.cast(self, "vgui2.dll", "VGUI_System010", "void(__thiscall*)(void*, const char*, int)", 9)(str, str:len())
    end,

    color_print = function (self, str, color)
        local color_struct = ffi.new("struct { uint8_t r, g, b, a; }")

        color_struct.r = color.r * 255
        color_struct.g = color.g * 255
        color_struct.b = color.b * 255
        color_struct.a = color.a * 255

        return self.interfaces.cast(self, "vstdlib.dll", "VEngineCvar007", "void(__cdecl*)(void*, void*, const char*)", 25)(color_struct, str)
    end
}

local base64 = {
    codes = {'=/+9876543210zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA', 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', "AaGpJ3HxhkVCQ6g5TRb/MdSE9qjc24rOYWD1yXwtufleFI0sP7n8+NiULovBmzZK="},
    encode = function (self, str, type_c)
        local b = self.codes[type_c or 1]
        return ((str:gsub('.', function(x)
            local r,b='',x:byte()
            for i=8,1,-1 do r=r..(b%2^i-b%2^(i-1)>0 and '1' or '0') end
            return r;
        end)..'0000'):gsub('%d%d%d?%d?%d?%d?', function(x)
            if (#x < 6) then return '' end
            local c=0
            for i=1,6 do c=c+(x:sub(i,i)=='1' and 2^(6-i) or 0) end
            return b:sub(c+1,c+1)
        end)..({ '', '==', '=' })[#str%3+1])
    end,
    decode = function (self, data, type_c)
        local b = self.codes[type_c or 1]

        data = string.gsub(data, '[^'..b..'=]', '')
        return (data:gsub('.', function(x)
            if (x == '=') then return '' end
            local r,f='',(b:find(x)-1)
            for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)>0 and '1' or '0') end
            return r;
        end):gsub('%d%d%d?%d?%d?%d?%d?%d?', function(x)
            if (#x ~= 8) then return '' end
            local c=0
            for i=1,8 do c=c+(x:sub(i,i)=='1' and 2^(8-i) or 0) end
                return string.char(c)
        end))
    end
}
eternal.functions = {
    config = {




        export = function()
            local string = ''         

            local items = {
                eternal.menu.anti_aims.main.dfl,
                eternal.menu.anti_aims.main.roll_aa,
                eternal.menu.anti_aims.main.abstab,
                eternal.menu.anti_aims.main.anti_aim_type,
                eternal.menu.anti_aims.main.slow_walk_aa,
                eternal.menu.anti_aims.main.edge_yaw,
                eternal.menu.anti_aims.main.edge_yaw_conditions,
                eternal.menu.anti_aims.main.anti_bruteforce,
                eternal.menu.anti_aims.main.anti_bruteforce_reset_time,
                eternal.menu.anti_aims.builder.settings.manual_yaw_base,
                eternal.menu.anti_aims.builder.settings.condition,
                eternal.menu.anti_aims.builder.settings.still,
                eternal.menu.anti_aims.builder.settings.crouch,
                eternal.menu.anti_aims.builder.settings.slow_walk,
                eternal.menu.anti_aims.builder.settings.move,
                eternal.menu.anti_aims.builder.settings.air,
                eternal.menu.anti_aims.builder.settings.fake_duck,
                eternal.menu.anti_aims.builder.global.yaw_add_left,
                eternal.menu.anti_aims.builder.global.yaw_add_right,
                eternal.menu.anti_aims.builder.global.yaw_modifier,
                eternal.menu.anti_aims.builder.global.modifier_degree,
                eternal.menu.anti_aims.builder.global.fake_limit_type,
                eternal.menu.anti_aims.builder.global.fake_limit_left,
                eternal.menu.anti_aims.builder.global.fake_limit_right,
                eternal.menu.anti_aims.builder.global.fake_options,
                eternal.menu.anti_aims.builder.global.lby_mode,
                eternal.menu.anti_aims.builder.global.freestanding,
                eternal.menu.anti_aims.builder.global.desync_on_shot,
                eternal.menu.anti_aims.builder.still.yaw_base,
                eternal.menu.anti_aims.builder.still.yaw_add_left,
                eternal.menu.anti_aims.builder.still.yaw_add_right,
                eternal.menu.anti_aims.builder.still.yaw_modifier,
                eternal.menu.anti_aims.builder.still.modifier_degree,
                eternal.menu.anti_aims.builder.still.fake_limit_type,
                eternal.menu.anti_aims.builder.still.fake_limit_left,
                eternal.menu.anti_aims.builder.still.fake_limit_right,
                eternal.menu.anti_aims.builder.still.fake_options,
                eternal.menu.anti_aims.builder.still.lby_mode,
                eternal.menu.anti_aims.builder.still.freestanding,
                eternal.menu.anti_aims.builder.still.desync_on_shot,
                eternal.menu.anti_aims.builder.crouch.yaw_base,
                eternal.menu.anti_aims.builder.crouch.yaw_add_left,
                eternal.menu.anti_aims.builder.crouch.yaw_add_right,
                eternal.menu.anti_aims.builder.crouch.yaw_modifier,
                eternal.menu.anti_aims.builder.crouch.modifier_degree,
                eternal.menu.anti_aims.builder.crouch.fake_limit_type,
                eternal.menu.anti_aims.builder.crouch.fake_limit_left,
                eternal.menu.anti_aims.builder.crouch.fake_limit_right,
                eternal.menu.anti_aims.builder.crouch.fake_options,
                eternal.menu.anti_aims.builder.crouch.lby_mode,
                eternal.menu.anti_aims.builder.crouch.freestanding,
                eternal.menu.anti_aims.builder.crouch.desync_on_shot,
                eternal.menu.anti_aims.builder.slow_walk.yaw_base,
                eternal.menu.anti_aims.builder.slow_walk.yaw_add_left,
                eternal.menu.anti_aims.builder.slow_walk.yaw_add_right,
                eternal.menu.anti_aims.builder.slow_walk.yaw_modifier,
                eternal.menu.anti_aims.builder.slow_walk.modifier_degree,
                eternal.menu.anti_aims.builder.slow_walk.fake_limit_type,
                eternal.menu.anti_aims.builder.slow_walk.fake_limit_left,
                eternal.menu.anti_aims.builder.slow_walk.fake_limit_right,
                eternal.menu.anti_aims.builder.slow_walk.fake_options,
                eternal.menu.anti_aims.builder.slow_walk.lby_mode,
                eternal.menu.anti_aims.builder.slow_walk.freestanding,
                eternal.menu.anti_aims.builder.slow_walk.desync_on_shot,
                eternal.menu.anti_aims.builder.move.yaw_base,
                eternal.menu.anti_aims.builder.move.yaw_add_left,
                eternal.menu.anti_aims.builder.move.yaw_add_right,
                eternal.menu.anti_aims.builder.move.yaw_modifier,
                eternal.menu.anti_aims.builder.move.modifier_degree,
                eternal.menu.anti_aims.builder.move.fake_limit_type,
                eternal.menu.anti_aims.builder.move.fake_limit_left,
                eternal.menu.anti_aims.builder.move.fake_limit_right,
                eternal.menu.anti_aims.builder.move.fake_options,
                eternal.menu.anti_aims.builder.move.lby_mode,
                eternal.menu.anti_aims.builder.move.freestanding,
                eternal.menu.anti_aims.builder.move.desync_on_shot,
                eternal.menu.anti_aims.builder.air.yaw_base,
                eternal.menu.anti_aims.builder.air.yaw_add_left,
                eternal.menu.anti_aims.builder.air.yaw_add_right,
                eternal.menu.anti_aims.builder.air.yaw_modifier,
                eternal.menu.anti_aims.builder.air.modifier_degree,
                eternal.menu.anti_aims.builder.air.fake_limit_type,
                eternal.menu.anti_aims.builder.air.fake_limit_left,
                eternal.menu.anti_aims.builder.air.fake_limit_right,
                eternal.menu.anti_aims.builder.air.fake_options,
                eternal.menu.anti_aims.builder.air.lby_mode,
                eternal.menu.anti_aims.builder.air.freestanding,
                eternal.menu.anti_aims.builder.air.desync_on_shot,
                eternal.menu.anti_aims.builder.fake_duck.yaw_base,
                eternal.menu.anti_aims.builder.fake_duck.yaw_add_left,
                eternal.menu.anti_aims.builder.fake_duck.yaw_add_right,
                eternal.menu.anti_aims.builder.fake_duck.yaw_modifier,
                eternal.menu.anti_aims.builder.fake_duck.modifier_degree,
                eternal.menu.anti_aims.builder.fake_duck.fake_limit_type,
                eternal.menu.anti_aims.builder.fake_duck.fake_limit_left,
                eternal.menu.anti_aims.builder.fake_duck.fake_limit_right,
                eternal.menu.anti_aims.builder.fake_duck.fake_options,
                eternal.menu.anti_aims.builder.fake_duck.lby_mode,
                eternal.menu.anti_aims.builder.fake_duck.freestanding,
                eternal.menu.anti_aims.builder.fake_duck.desync_on_shot,
                eternal.menu.anti_aims.misc.legit_aa,
                eternal.menu.anti_aims.misc.legit_aa_hotkey,
                eternal.menu.anti_aims.misc.legit_aa_options,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_1,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_2,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_3,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_4,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_5,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_6,
                eternal.menu.visuals.windows,
                eternal.menu.visuals.values_instead_of_modes,
                eternal.menu.visuals.exploit_info,
                eternal.menu.visuals.holo_hud_disablers,
                eternal.menu.visuals.on_screen_indicators,
                eternal.menu.visuals.indicators_type,
                --eternal.menu.visuals.indicators_color,
                --eternal.menu.visuals.second_color,
                eternal.menu.visuals.arrows_type,
                eternal.menu.visuals.manual_arrows,
                --eternal.menu.visuals.color_enabled,
                --eternal.menu.visuals.color_disabled,
                eternal.menu.visuals.misc.logs,
                eternal.menu.visuals.misc.logs_output,
                eternal.menu.visuals.misc.pop_up_style,
                eternal.menu.visuals.misc.damage_indicator,
                eternal.menu.visuals.misc.custom_scope,
                eternal.menu.visuals.misc.viewmodel_in_scope,
                --eternal.menu.visuals.misc.custom_scope_color,
                eternal.menu.visuals.misc.custom_scope_gap,
                eternal.menu.visuals.misc.custom_scope_size,
                eternal.menu.visuals.theme.theme,
                eternal.menu.visuals.theme.background_type,
                --eternal.menu.visuals.theme.accent,
                eternal.menu.visuals.theme.fade_offset,
                eternal.menu.visuals.theme.fade_frequency,
                eternal.menu.visuals.theme.fade_split_ratio,
                eternal.menu.visuals.keybinds_x,
                eternal.menu.visuals.keybinds_y,
                eternal.vars.menu.anti_aims.anti_bruteforce_phases,
                eternal.menu.anti_aims.main.enabled,
                eternal.menu.visuals.enabled,
              
                eternal.menu.anti_aims.misc.leg_movement,
                eternal.menu.visuals.misc.kill_say,
                eternal.menu.anti_aims.main.teleport_cross,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_7,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_8,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_9,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_10
              
            }

        


            for i = 1, #items do
                string = string .. tostring(items[i]:Get()) .. '|'
            end
            string  =  string .. eternal.menu.visuals.indicators_color:Get().r .. '|'
            .. eternal.menu.visuals.indicators_color:Get().g .. '|'
            .. eternal.menu.visuals.indicators_color:Get().b .. '|'
            .. eternal.menu.visuals.indicators_color:Get().a .. '|'
            .. eternal.menu.visuals.second_color:Get().r .. '|'
            .. eternal.menu.visuals.second_color:Get().g .. '|'
            .. eternal.menu.visuals.second_color:Get().b .. '|'
            .. eternal.menu.visuals.second_color:Get().a .. '|'
            .. eternal.menu.visuals.color_enabled:Get().r .. '|'
            .. eternal.menu.visuals.color_enabled:Get().g .. '|'
            .. eternal.menu.visuals.color_enabled:Get().b .. '|'
            .. eternal.menu.visuals.color_enabled:Get().a .. '|'
            .. eternal.menu.visuals.color_disabled:Get().r .. '|'
            .. eternal.menu.visuals.color_disabled:Get().g .. '|'
            .. eternal.menu.visuals.color_disabled:Get().b .. '|'
            .. eternal.menu.visuals.color_disabled:Get().a .. '|'
            .. eternal.menu.visuals.misc.custom_scope_color:Get().r .. '|'
            .. eternal.menu.visuals.misc.custom_scope_color:Get().g .. '|'
            .. eternal.menu.visuals.misc.custom_scope_color:Get().b .. '|'
            .. eternal.menu.visuals.misc.custom_scope_color:Get().a .. '|'
            .. eternal.menu.visuals.theme.accent:Get().r .. '|'
            .. eternal.menu.visuals.theme.accent:Get().g .. '|'
            .. eternal.menu.visuals.theme.accent:Get().b .. '|'
            .. eternal.menu.visuals.theme.accent:Get().a

          
          


            cheat_engine:set_clipboard_text(base64:encode( string , 2))
            Cheat.AddNotify('ETERNAL.lua','Exported config to clipboard.')

        end,
        import = function()
            local items = {
                eternal.menu.anti_aims.main.dfl,
                eternal.menu.anti_aims.main.roll_aa,
                eternal.menu.anti_aims.main.abstab,
                eternal.menu.anti_aims.main.anti_aim_type,
                eternal.menu.anti_aims.main.slow_walk_aa,
                eternal.menu.anti_aims.main.edge_yaw,
                eternal.menu.anti_aims.main.edge_yaw_conditions,
                eternal.menu.anti_aims.main.anti_bruteforce,
                eternal.menu.anti_aims.main.anti_bruteforce_reset_time,
                eternal.menu.anti_aims.builder.settings.manual_yaw_base,
                eternal.menu.anti_aims.builder.settings.condition,
                eternal.menu.anti_aims.builder.settings.still,
                eternal.menu.anti_aims.builder.settings.crouch,
                eternal.menu.anti_aims.builder.settings.slow_walk,
                eternal.menu.anti_aims.builder.settings.move,
                eternal.menu.anti_aims.builder.settings.air,
                eternal.menu.anti_aims.builder.settings.fake_duck,
                eternal.menu.anti_aims.builder.global.yaw_add_left,
                eternal.menu.anti_aims.builder.global.yaw_add_right,
                eternal.menu.anti_aims.builder.global.yaw_modifier,
                eternal.menu.anti_aims.builder.global.modifier_degree,
                eternal.menu.anti_aims.builder.global.fake_limit_type,
                eternal.menu.anti_aims.builder.global.fake_limit_left,
                eternal.menu.anti_aims.builder.global.fake_limit_right,
                eternal.menu.anti_aims.builder.global.fake_options,
                eternal.menu.anti_aims.builder.global.lby_mode,
                eternal.menu.anti_aims.builder.global.freestanding,
                eternal.menu.anti_aims.builder.global.desync_on_shot,
                eternal.menu.anti_aims.builder.still.yaw_base,
                eternal.menu.anti_aims.builder.still.yaw_add_left,
                eternal.menu.anti_aims.builder.still.yaw_add_right,
                eternal.menu.anti_aims.builder.still.yaw_modifier,
                eternal.menu.anti_aims.builder.still.modifier_degree,
                eternal.menu.anti_aims.builder.still.fake_limit_type,
                eternal.menu.anti_aims.builder.still.fake_limit_left,
                eternal.menu.anti_aims.builder.still.fake_limit_right,
                eternal.menu.anti_aims.builder.still.fake_options,
                eternal.menu.anti_aims.builder.still.lby_mode,
                eternal.menu.anti_aims.builder.still.freestanding,
                eternal.menu.anti_aims.builder.still.desync_on_shot,
                eternal.menu.anti_aims.builder.crouch.yaw_base,
                eternal.menu.anti_aims.builder.crouch.yaw_add_left,
                eternal.menu.anti_aims.builder.crouch.yaw_add_right,
                eternal.menu.anti_aims.builder.crouch.yaw_modifier,
                eternal.menu.anti_aims.builder.crouch.modifier_degree,
                eternal.menu.anti_aims.builder.crouch.fake_limit_type,
                eternal.menu.anti_aims.builder.crouch.fake_limit_left,
                eternal.menu.anti_aims.builder.crouch.fake_limit_right,
                eternal.menu.anti_aims.builder.crouch.fake_options,
                eternal.menu.anti_aims.builder.crouch.lby_mode,
                eternal.menu.anti_aims.builder.crouch.freestanding,
                eternal.menu.anti_aims.builder.crouch.desync_on_shot,
                eternal.menu.anti_aims.builder.slow_walk.yaw_base,
                eternal.menu.anti_aims.builder.slow_walk.yaw_add_left,
                eternal.menu.anti_aims.builder.slow_walk.yaw_add_right,
                eternal.menu.anti_aims.builder.slow_walk.yaw_modifier,
                eternal.menu.anti_aims.builder.slow_walk.modifier_degree,
                eternal.menu.anti_aims.builder.slow_walk.fake_limit_type,
                eternal.menu.anti_aims.builder.slow_walk.fake_limit_left,
                eternal.menu.anti_aims.builder.slow_walk.fake_limit_right,
                eternal.menu.anti_aims.builder.slow_walk.fake_options,
                eternal.menu.anti_aims.builder.slow_walk.lby_mode,
                eternal.menu.anti_aims.builder.slow_walk.freestanding,
                eternal.menu.anti_aims.builder.slow_walk.desync_on_shot,
                eternal.menu.anti_aims.builder.move.yaw_base,
                eternal.menu.anti_aims.builder.move.yaw_add_left,
                eternal.menu.anti_aims.builder.move.yaw_add_right,
                eternal.menu.anti_aims.builder.move.yaw_modifier,
                eternal.menu.anti_aims.builder.move.modifier_degree,
                eternal.menu.anti_aims.builder.move.fake_limit_type,
                eternal.menu.anti_aims.builder.move.fake_limit_left,
                eternal.menu.anti_aims.builder.move.fake_limit_right,
                eternal.menu.anti_aims.builder.move.fake_options,
                eternal.menu.anti_aims.builder.move.lby_mode,
                eternal.menu.anti_aims.builder.move.freestanding,
                eternal.menu.anti_aims.builder.move.desync_on_shot,
                eternal.menu.anti_aims.builder.air.yaw_base,
                eternal.menu.anti_aims.builder.air.yaw_add_left,
                eternal.menu.anti_aims.builder.air.yaw_add_right,
                eternal.menu.anti_aims.builder.air.yaw_modifier,
                eternal.menu.anti_aims.builder.air.modifier_degree,
                eternal.menu.anti_aims.builder.air.fake_limit_type,
                eternal.menu.anti_aims.builder.air.fake_limit_left,
                eternal.menu.anti_aims.builder.air.fake_limit_right,
                eternal.menu.anti_aims.builder.air.fake_options,
                eternal.menu.anti_aims.builder.air.lby_mode,
                eternal.menu.anti_aims.builder.air.freestanding,
                eternal.menu.anti_aims.builder.air.desync_on_shot,
                eternal.menu.anti_aims.builder.fake_duck.yaw_base,
                eternal.menu.anti_aims.builder.fake_duck.yaw_add_left,
                eternal.menu.anti_aims.builder.fake_duck.yaw_add_right,
                eternal.menu.anti_aims.builder.fake_duck.yaw_modifier,
                eternal.menu.anti_aims.builder.fake_duck.modifier_degree,
                eternal.menu.anti_aims.builder.fake_duck.fake_limit_type,
                eternal.menu.anti_aims.builder.fake_duck.fake_limit_left,
                eternal.menu.anti_aims.builder.fake_duck.fake_limit_right,
                eternal.menu.anti_aims.builder.fake_duck.fake_options,
                eternal.menu.anti_aims.builder.fake_duck.lby_mode,
                eternal.menu.anti_aims.builder.fake_duck.freestanding,
                eternal.menu.anti_aims.builder.fake_duck.desync_on_shot,
                eternal.menu.anti_aims.misc.legit_aa,
                eternal.menu.anti_aims.misc.legit_aa_hotkey,
                eternal.menu.anti_aims.misc.legit_aa_options,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_1,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_2,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_3,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_4,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_5,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_6,
                eternal.menu.visuals.windows,
                eternal.menu.visuals.values_instead_of_modes,
                eternal.menu.visuals.exploit_info,
                eternal.menu.visuals.holo_hud_disablers,
                eternal.menu.visuals.on_screen_indicators,
                eternal.menu.visuals.indicators_type,
                --eternal.menu.visuals.indicators_color,
                --eternal.menu.visuals.second_color,
                eternal.menu.visuals.arrows_type,
                eternal.menu.visuals.manual_arrows,
                --eternal.menu.visuals.color_enabled,
                --eternal.menu.visuals.color_disabled,
                eternal.menu.visuals.misc.logs,
                eternal.menu.visuals.misc.logs_output,
                eternal.menu.visuals.misc.pop_up_style,
                eternal.menu.visuals.misc.damage_indicator,
                eternal.menu.visuals.misc.custom_scope,
                eternal.menu.visuals.misc.viewmodel_in_scope,
                --eternal.menu.visuals.misc.custom_scope_color,
                eternal.menu.visuals.misc.custom_scope_gap,
                eternal.menu.visuals.misc.custom_scope_size,
                eternal.menu.visuals.theme.theme,
                eternal.menu.visuals.theme.background_type,
                --eternal.menu.visuals.theme.accent,
                eternal.menu.visuals.theme.fade_offset,
                eternal.menu.visuals.theme.fade_frequency,
                eternal.menu.visuals.theme.fade_split_ratio,
                eternal.menu.visuals.keybinds_x,
                eternal.menu.visuals.keybinds_y,
                eternal.vars.menu.anti_aims.anti_bruteforce_phases,
                eternal.menu.anti_aims.main.enabled,
                eternal.menu.visuals.enabled,
              
                eternal.menu.anti_aims.misc.leg_movement,
                eternal.menu.visuals.misc.kill_say,
                eternal.menu.anti_aims.main.teleport_cross,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_7,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_8,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_9,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_10
              
            }
            local clipboard_text_length = cheat_engine:get_clipboard_text_count()
            local clipboard_data = ""
            if clipboard_text_length > 0 then
                local buffer = ffi.new("char[?]", clipboard_text_length)
                local size = clipboard_text_length * ffi.sizeof("char[?]", clipboard_text_length)
          
                cheat_engine:get_clipboard_text( 0, buffer, size )
          
                clipboard_data = ffi.string( buffer, clipboard_text_length-1 )
            end
  
          
            ::poshel_naxyu::
           if not clipboard_data then return end
            local value_tables = str_to_sub(base64:decode(clipboard_data , 2),'|')
            if #value_tables >= #items-1 then
                for i = 1, #value_tables do
                    if i < (#value_tables-23) then
                        items[i]:Set(normalize_text(value_tables[i]))
                    end
                end
                eternal.menu.visuals.theme.accent:Set(Color.new(tonumber(value_tables[#value_tables-3]),tonumber(value_tables[#value_tables-2]),tonumber(value_tables[#value_tables-1]),tonumber(value_tables[#value_tables])))
                eternal.menu.visuals.misc.custom_scope_color:Set(Color.new(tonumber(value_tables[#value_tables-7]),tonumber(value_tables[#value_tables-6]),tonumber(value_tables[#value_tables-5]),tonumber(value_tables[#value_tables-4])))
                eternal.menu.visuals.color_disabled:Set(Color.new(tonumber(value_tables[#value_tables-11]),tonumber(value_tables[#value_tables-10]),tonumber(value_tables[#value_tables-9]),tonumber(value_tables[#value_tables-8])))
                eternal.menu.visuals.color_enabled:Set(Color.new(tonumber(value_tables[#value_tables-15]),tonumber(value_tables[#value_tables-14]),tonumber(value_tables[#value_tables-13]),tonumber(value_tables[#value_tables-12])))
                eternal.menu.visuals.second_color:Set(Color.new(tonumber(value_tables[#value_tables-19]),tonumber(value_tables[#value_tables-18]),tonumber(value_tables[#value_tables-17]),tonumber(value_tables[#value_tables-16])))
                eternal.menu.visuals.indicators_color:Set(Color.new(tonumber(value_tables[#value_tables-23]),tonumber(value_tables[#value_tables-22]),tonumber(value_tables[#value_tables-21]),tonumber(value_tables[#value_tables-20])))
                Cheat.AddNotify('ETERNAL.lua','Applied imported config.')
            else
                Cheat.AddNotify('ETERNAL.lua','Config error.')
            end
        end,
        default = function()

            local items = {
                eternal.menu.anti_aims.main.anti_aim_type,
                eternal.menu.anti_aims.main.slow_walk_aa,
                eternal.menu.anti_aims.main.edge_yaw,
                eternal.menu.anti_aims.main.edge_yaw_conditions,
                eternal.menu.anti_aims.main.anti_bruteforce,
                eternal.menu.anti_aims.main.anti_bruteforce_reset_time,
                eternal.menu.anti_aims.builder.settings.manual_yaw_base,
                eternal.menu.anti_aims.builder.settings.condition,
                eternal.menu.anti_aims.builder.settings.still,
                eternal.menu.anti_aims.builder.settings.crouch,
                eternal.menu.anti_aims.builder.settings.slow_walk,
                eternal.menu.anti_aims.builder.settings.move,
                eternal.menu.anti_aims.builder.settings.air,
                eternal.menu.anti_aims.builder.settings.fake_duck,
                eternal.menu.anti_aims.builder.global.yaw_add_left,
                eternal.menu.anti_aims.builder.global.yaw_add_right,
                eternal.menu.anti_aims.builder.global.yaw_modifier,
                eternal.menu.anti_aims.builder.global.modifier_degree,
                eternal.menu.anti_aims.builder.global.fake_limit_type,
                eternal.menu.anti_aims.builder.global.fake_limit_left,
                eternal.menu.anti_aims.builder.global.fake_limit_right,
                eternal.menu.anti_aims.builder.global.fake_options,
                eternal.menu.anti_aims.builder.global.lby_mode,
                eternal.menu.anti_aims.builder.global.freestanding,
                eternal.menu.anti_aims.builder.global.desync_on_shot,
                eternal.menu.anti_aims.builder.still.yaw_base,
                eternal.menu.anti_aims.builder.still.yaw_add_left,
                eternal.menu.anti_aims.builder.still.yaw_add_right,
                eternal.menu.anti_aims.builder.still.yaw_modifier,
                eternal.menu.anti_aims.builder.still.modifier_degree,
                eternal.menu.anti_aims.builder.still.fake_limit_type,
                eternal.menu.anti_aims.builder.still.fake_limit_left,
                eternal.menu.anti_aims.builder.still.fake_limit_right,
                eternal.menu.anti_aims.builder.still.fake_options,
                eternal.menu.anti_aims.builder.still.lby_mode,
                eternal.menu.anti_aims.builder.still.freestanding,
                eternal.menu.anti_aims.builder.still.desync_on_shot,
                eternal.menu.anti_aims.builder.crouch.yaw_base,
                eternal.menu.anti_aims.builder.crouch.yaw_add_left,
                eternal.menu.anti_aims.builder.crouch.yaw_add_right,
                eternal.menu.anti_aims.builder.crouch.yaw_modifier,
                eternal.menu.anti_aims.builder.crouch.modifier_degree,
                eternal.menu.anti_aims.builder.crouch.fake_limit_type,
                eternal.menu.anti_aims.builder.crouch.fake_limit_left,
                eternal.menu.anti_aims.builder.crouch.fake_limit_right,
                eternal.menu.anti_aims.builder.crouch.fake_options,
                eternal.menu.anti_aims.builder.crouch.lby_mode,
                eternal.menu.anti_aims.builder.crouch.freestanding,
                eternal.menu.anti_aims.builder.crouch.desync_on_shot,
                eternal.menu.anti_aims.builder.slow_walk.yaw_base,
                eternal.menu.anti_aims.builder.slow_walk.yaw_add_left,
                eternal.menu.anti_aims.builder.slow_walk.yaw_add_right,
                eternal.menu.anti_aims.builder.slow_walk.yaw_modifier,
                eternal.menu.anti_aims.builder.slow_walk.modifier_degree,
                eternal.menu.anti_aims.builder.slow_walk.fake_limit_type,
                eternal.menu.anti_aims.builder.slow_walk.fake_limit_left,
                eternal.menu.anti_aims.builder.slow_walk.fake_limit_right,
                eternal.menu.anti_aims.builder.slow_walk.fake_options,
                eternal.menu.anti_aims.builder.slow_walk.lby_mode,
                eternal.menu.anti_aims.builder.slow_walk.freestanding,
                eternal.menu.anti_aims.builder.slow_walk.desync_on_shot,
                eternal.menu.anti_aims.builder.move.yaw_base,
                eternal.menu.anti_aims.builder.move.yaw_add_left,
                eternal.menu.anti_aims.builder.move.yaw_add_right,
                eternal.menu.anti_aims.builder.move.yaw_modifier,
                eternal.menu.anti_aims.builder.move.modifier_degree,
                eternal.menu.anti_aims.builder.move.fake_limit_type,
                eternal.menu.anti_aims.builder.move.fake_limit_left,
                eternal.menu.anti_aims.builder.move.fake_limit_right,
                eternal.menu.anti_aims.builder.move.fake_options,
                eternal.menu.anti_aims.builder.move.lby_mode,
                eternal.menu.anti_aims.builder.move.freestanding,
                eternal.menu.anti_aims.builder.move.desync_on_shot,
                eternal.menu.anti_aims.builder.air.yaw_base,
                eternal.menu.anti_aims.builder.air.yaw_add_left,
                eternal.menu.anti_aims.builder.air.yaw_add_right,
                eternal.menu.anti_aims.builder.air.yaw_modifier,
                eternal.menu.anti_aims.builder.air.modifier_degree,
                eternal.menu.anti_aims.builder.air.fake_limit_type,
                eternal.menu.anti_aims.builder.air.fake_limit_left,
                eternal.menu.anti_aims.builder.air.fake_limit_right,
                eternal.menu.anti_aims.builder.air.fake_options,
                eternal.menu.anti_aims.builder.air.lby_mode,
                eternal.menu.anti_aims.builder.air.freestanding,
                eternal.menu.anti_aims.builder.air.desync_on_shot,
                eternal.menu.anti_aims.builder.fake_duck.yaw_base,
                eternal.menu.anti_aims.builder.fake_duck.yaw_add_left,
                eternal.menu.anti_aims.builder.fake_duck.yaw_add_right,
                eternal.menu.anti_aims.builder.fake_duck.yaw_modifier,
                eternal.menu.anti_aims.builder.fake_duck.modifier_degree,
                eternal.menu.anti_aims.builder.fake_duck.fake_limit_type,
                eternal.menu.anti_aims.builder.fake_duck.fake_limit_left,
                eternal.menu.anti_aims.builder.fake_duck.fake_limit_right,
                eternal.menu.anti_aims.builder.fake_duck.fake_options,
                eternal.menu.anti_aims.builder.fake_duck.lby_mode,
                eternal.menu.anti_aims.builder.fake_duck.freestanding,
                eternal.menu.anti_aims.builder.fake_duck.desync_on_shot,
                eternal.menu.anti_aims.misc.legit_aa,
                eternal.menu.anti_aims.misc.legit_aa_hotkey,
                eternal.menu.anti_aims.misc.legit_aa_options,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_1,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_2,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_3,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_4,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_5,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_6,
                eternal.menu.visuals.windows,
                eternal.menu.visuals.values_instead_of_modes,
                eternal.menu.visuals.exploit_info,
                eternal.menu.visuals.holo_hud_disablers,
                eternal.menu.visuals.on_screen_indicators,
                eternal.menu.visuals.indicators_type,
                --eternal.menu.visuals.indicators_color,
                --eternal.menu.visuals.second_color,
                eternal.menu.visuals.arrows_type,
                eternal.menu.visuals.manual_arrows,
                --eternal.menu.visuals.color_enabled,
                --eternal.menu.visuals.color_disabled,
                eternal.menu.visuals.misc.logs,
                eternal.menu.visuals.misc.logs_output,
                eternal.menu.visuals.misc.pop_up_style,
                eternal.menu.visuals.misc.damage_indicator,
                eternal.menu.visuals.misc.custom_scope,
                eternal.menu.visuals.misc.viewmodel_in_scope,
                --eternal.menu.visuals.misc.custom_scope_color,
                eternal.menu.visuals.misc.custom_scope_gap,
                eternal.menu.visuals.misc.custom_scope_size,
                eternal.menu.visuals.theme.theme,
                eternal.menu.visuals.theme.background_type,
                --eternal.menu.visuals.theme.accent,
                eternal.menu.visuals.theme.fade_offset,
                eternal.menu.visuals.theme.fade_frequency,
                eternal.menu.visuals.theme.fade_split_ratio,
                eternal.menu.visuals.keybinds_x,
                eternal.menu.visuals.keybinds_y,
                eternal.vars.menu.anti_aims.anti_bruteforce_phases,
                eternal.menu.anti_aims.main.enabled,
                eternal.menu.visuals.enabled,
              
                eternal.menu.anti_aims.misc.leg_movement,
                eternal.menu.visuals.misc.kill_say,
                eternal.menu.anti_aims.main.teleport_cross,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_7,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_8,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_9,
                eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_10
              
            }

            local value_tables = str_to_sub('2|0|false|31|true|15|0|1|true|true|true|true|true|true|0|0|1|2|0|60|60|2|0|0|0|4|0|0|0|0|1|60|60|1|1|2|0|4|0|0|0|-25|1|60|60|2|0|0|0|4|6|-6|0|0|1|55|55|2|0|0|0|4|6|-6|0|0|0|55|55|2|0|0|0|4|0|0|0|157|0|60|60|2|0|0|2|4|0|0|0|0|1|35|35|6|1|0|1|true|70|1|-52|-19|54|-28|54|0|15|false|false|2|1|2|0|0|true|1|2|false|true|true|55|71|3|6|1|54|100|63|439|5|true|true|false|false|true|0.53048777580261|0.70798623561859|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|1|0.99998998641968|0.99999558925629|1|1','|')
            for i = 1, #value_tables do
                if i < (#value_tables-23) then
                    items[i]:Set(normalize_text(value_tables[i]))
                end
            end
            eternal.menu.visuals.theme.accent:Set(Color.new(tonumber(value_tables[#value_tables-3]),tonumber(value_tables[#value_tables-2]),tonumber(value_tables[#value_tables-1]),tonumber(value_tables[#value_tables])))
            eternal.menu.visuals.misc.custom_scope_color:Set(Color.new(tonumber(value_tables[#value_tables-7]),tonumber(value_tables[#value_tables-6]),tonumber(value_tables[#value_tables-5]),tonumber(value_tables[#value_tables-4])))
            eternal.menu.visuals.color_disabled:Set(Color.new(tonumber(value_tables[#value_tables-11]),tonumber(value_tables[#value_tables-10]),tonumber(value_tables[#value_tables-9]),tonumber(value_tables[#value_tables-8])))
            eternal.menu.visuals.color_enabled:Set(Color.new(tonumber(value_tables[#value_tables-15]),tonumber(value_tables[#value_tables-14]),tonumber(value_tables[#value_tables-13]),tonumber(value_tables[#value_tables-12])))
            eternal.menu.visuals.second_color:Set(Color.new(tonumber(value_tables[#value_tables-19]),tonumber(value_tables[#value_tables-18]),tonumber(value_tables[#value_tables-17]),tonumber(value_tables[#value_tables-16])))
            eternal.menu.visuals.indicators_color:Set(Color.new(tonumber(value_tables[#value_tables-23]),tonumber(value_tables[#value_tables-22]),tonumber(value_tables[#value_tables-21]),tonumber(value_tables[#value_tables-20])))
            Cheat.AddNotify('ETERNAL.lua','Applied default config.')
        end
    },
    menu = function()
        eternal.menu.anti_aims.main.anti_aim_type:SetVisible(eternal.menu.anti_aims.main.enabled:Get())
        eternal.menu.anti_aims.main.dfl:SetVisible(eternal.menu.anti_aims.main.enabled:Get())
        eternal.menu.anti_aims.main.roll_aa:SetVisible(eternal.menu.anti_aims.main.enabled:Get())
        eternal.menu.anti_aims.main.abstab:SetVisible(eternal.menu.anti_aims.main.enabled:Get())
        eternal.menu.anti_aims.main.slow_walk_aa:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 0)
        eternal.menu.anti_aims.main.edge_yaw:SetVisible(eternal.menu.anti_aims.main.enabled:Get())
        eternal.menu.anti_aims.main.edge_yaw_conditions:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.edge_yaw:Get())
        eternal.menu.anti_aims.main.anti_bruteforce:SetVisible(eternal.menu.anti_aims.main.enabled:Get())
        eternal.menu.anti_aims.main.teleport_cross:SetVisible(eternal.menu.anti_aims.main.enabled:Get())
        eternal.menu.anti_aims.main.anti_bruteforce_reset_time:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_bruteforce:Get())
        eternal.menu.anti_aims.builder.settings.manual_yaw_base:SetVisible(eternal.menu.anti_aims.main.enabled:Get())
        eternal.menu.anti_aims.builder.settings.condition:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2)
        eternal.menu.anti_aims.builder.settings.still:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2 and eternal.menu.anti_aims.builder.settings.condition:Get() == 1)
        eternal.menu.anti_aims.builder.settings.crouch:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2 and eternal.menu.anti_aims.builder.settings.condition:Get() == 2)
        eternal.menu.anti_aims.builder.settings.slow_walk:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2 and eternal.menu.anti_aims.builder.settings.condition:Get() == 3)
        eternal.menu.anti_aims.builder.settings.move:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2 and eternal.menu.anti_aims.builder.settings.condition:Get() == 4)
        eternal.menu.anti_aims.builder.settings.air:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2 and eternal.menu.anti_aims.builder.settings.condition:Get() == 5)
        eternal.menu.anti_aims.builder.settings.fake_duck:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2 and eternal.menu.anti_aims.builder.settings.condition:Get() == 6)
        eternal.menu.anti_aims.builder.global.yaw_add_left:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 0 )
        eternal.menu.anti_aims.builder.global.yaw_add_right:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 0 )
        eternal.menu.anti_aims.builder.global.yaw_modifier:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 0 )
        eternal.menu.anti_aims.builder.global.modifier_degree:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 0 )
        eternal.menu.anti_aims.builder.global.fake_limit_type:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 0 )
        eternal.menu.anti_aims.builder.global.fake_limit_left:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 0 )
        eternal.menu.anti_aims.builder.global.fake_limit_right:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 0 )
        eternal.menu.anti_aims.builder.global.fake_options:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 0 )
        eternal.menu.anti_aims.builder.global.lby_mode:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 0 )
        eternal.menu.anti_aims.builder.global.freestanding:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 0 )
        eternal.menu.anti_aims.builder.global.desync_on_shot:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 0 )
        eternal.menu.anti_aims.builder.still.yaw_base:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 1 )
        eternal.menu.anti_aims.builder.still.yaw_add_left:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 1 )
        eternal.menu.anti_aims.builder.still.yaw_add_right:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 1 )
        eternal.menu.anti_aims.builder.still.yaw_modifier:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 1 )
        eternal.menu.anti_aims.builder.still.modifier_degree:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 1 )
        eternal.menu.anti_aims.builder.still.fake_limit_type:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 1 )
        eternal.menu.anti_aims.builder.still.fake_limit_left:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 1 )
        eternal.menu.anti_aims.builder.still.fake_limit_right:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 1 )
        eternal.menu.anti_aims.builder.still.fake_options:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 1 )
        eternal.menu.anti_aims.builder.still.lby_mode:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 1 )
        eternal.menu.anti_aims.builder.still.freestanding:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 1 )
        eternal.menu.anti_aims.builder.still.desync_on_shot:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 1 )
        eternal.menu.anti_aims.builder.crouch.yaw_base:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 2 )
        eternal.menu.anti_aims.builder.crouch.yaw_add_left:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 2 )
        eternal.menu.anti_aims.builder.crouch.yaw_add_right:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 2 )
        eternal.menu.anti_aims.builder.crouch.yaw_modifier:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 2 )
        eternal.menu.anti_aims.builder.crouch.modifier_degree:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 2 )
        eternal.menu.anti_aims.builder.crouch.fake_limit_type:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 2 )
        eternal.menu.anti_aims.builder.crouch.fake_limit_left:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 2 )
        eternal.menu.anti_aims.builder.crouch.fake_limit_right:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 2 )
        eternal.menu.anti_aims.builder.crouch.fake_options:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 2 )
        eternal.menu.anti_aims.builder.crouch.lby_mode:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 2 )
        eternal.menu.anti_aims.builder.crouch.freestanding:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 2 )
        eternal.menu.anti_aims.builder.crouch.desync_on_shot:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 2 )
        eternal.menu.anti_aims.builder.slow_walk.yaw_base:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 3 )
        eternal.menu.anti_aims.builder.slow_walk.yaw_add_left:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 3 )
        eternal.menu.anti_aims.builder.slow_walk.yaw_add_right:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 3 )
        eternal.menu.anti_aims.builder.slow_walk.yaw_modifier:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 3 )
        eternal.menu.anti_aims.builder.slow_walk.modifier_degree:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 3 )
        eternal.menu.anti_aims.builder.slow_walk.fake_limit_type:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 3 )
        eternal.menu.anti_aims.builder.slow_walk.fake_limit_left:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 3 )
        eternal.menu.anti_aims.builder.slow_walk.fake_limit_right:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 3 )
        eternal.menu.anti_aims.builder.slow_walk.fake_options:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 3 )
        eternal.menu.anti_aims.builder.slow_walk.lby_mode:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 3 )
        eternal.menu.anti_aims.builder.slow_walk.freestanding:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 3 )
        eternal.menu.anti_aims.builder.slow_walk.desync_on_shot:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 3 )
        eternal.menu.anti_aims.builder.move.yaw_base:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 4 )
        eternal.menu.anti_aims.builder.move.yaw_add_left:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 4 )
        eternal.menu.anti_aims.builder.move.yaw_add_right:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 4 )
        eternal.menu.anti_aims.builder.move.yaw_modifier:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 4 )
        eternal.menu.anti_aims.builder.move.modifier_degree:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 4 )
        eternal.menu.anti_aims.builder.move.fake_limit_type:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 4 )
        eternal.menu.anti_aims.builder.move.fake_limit_left:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 4 )
        eternal.menu.anti_aims.builder.move.fake_limit_right:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 4 )
        eternal.menu.anti_aims.builder.move.fake_options:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 4 )
        eternal.menu.anti_aims.builder.move.lby_mode:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 4 )
        eternal.menu.anti_aims.builder.move.freestanding:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 4 )
        eternal.menu.anti_aims.builder.move.desync_on_shot:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 4 )
        eternal.menu.anti_aims.builder.air.yaw_base:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 5 )
        eternal.menu.anti_aims.builder.air.yaw_add_left:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 5 )
        eternal.menu.anti_aims.builder.air.yaw_add_right:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 5 )
        eternal.menu.anti_aims.builder.air.yaw_modifier:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 5 )
        eternal.menu.anti_aims.builder.air.modifier_degree:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 5 )
        eternal.menu.anti_aims.builder.air.fake_limit_type:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 5 )
        eternal.menu.anti_aims.builder.air.fake_limit_left:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 5 )
        eternal.menu.anti_aims.builder.air.fake_limit_right:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 5 )
        eternal.menu.anti_aims.builder.air.fake_options:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 5 )
        eternal.menu.anti_aims.builder.air.lby_mode:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 5 )
        eternal.menu.anti_aims.builder.air.freestanding:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 5 )
        eternal.menu.anti_aims.builder.air.desync_on_shot:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 5 )
        eternal.menu.anti_aims.builder.fake_duck.yaw_base:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 6 )
        eternal.menu.anti_aims.builder.fake_duck.yaw_add_left:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 6 )
        eternal.menu.anti_aims.builder.fake_duck.yaw_add_right:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 6 )
        eternal.menu.anti_aims.builder.fake_duck.yaw_modifier:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 6 )
        eternal.menu.anti_aims.builder.fake_duck.modifier_degree:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 6 )
        eternal.menu.anti_aims.builder.fake_duck.fake_limit_type:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 6 )
        eternal.menu.anti_aims.builder.fake_duck.fake_limit_left:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 6 )
        eternal.menu.anti_aims.builder.fake_duck.fake_limit_right:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 6 )
        eternal.menu.anti_aims.builder.fake_duck.fake_options:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 6 )
        eternal.menu.anti_aims.builder.fake_duck.lby_mode:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 6 )
        eternal.menu.anti_aims.builder.fake_duck.freestanding:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 6 )
        eternal.menu.anti_aims.builder.fake_duck.desync_on_shot:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_aim_type:Get() == 2  and eternal.menu.anti_aims.builder.settings.condition:Get() == 6 )
        eternal.menu.anti_aims.misc.leg_movement:SetVisible(eternal.menu.anti_aims.main.enabled:Get())
        eternal.menu.anti_aims.misc.legit_aa:SetVisible(eternal.menu.anti_aims.main.enabled:Get())
        eternal.menu.anti_aims.misc.legit_aa_hotkey:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.misc.legit_aa:Get())
        eternal.menu.anti_aims.misc.legit_aa_options:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.misc.legit_aa:Get())
        eternal.menu.anti_aims.misc.anti_bruteforce_phases.add:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_bruteforce:Get())
        eternal.menu.anti_aims.misc.anti_bruteforce_phases.remove:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_bruteforce:Get())
        eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_1:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_bruteforce:Get() and eternal.vars.menu.anti_aims.anti_bruteforce_phases:Get()-1 >= 0)
        eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_2:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_bruteforce:Get() and eternal.vars.menu.anti_aims.anti_bruteforce_phases:Get()-1 >= 1)
        eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_3:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_bruteforce:Get() and eternal.vars.menu.anti_aims.anti_bruteforce_phases:Get()-1 >= 2)
        eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_4:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_bruteforce:Get() and eternal.vars.menu.anti_aims.anti_bruteforce_phases:Get()-1 >= 3)
        eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_5:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_bruteforce:Get() and eternal.vars.menu.anti_aims.anti_bruteforce_phases:Get()-1 >= 4)
        eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_6:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_bruteforce:Get() and eternal.vars.menu.anti_aims.anti_bruteforce_phases:Get()-1 >= 5)
        eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_7:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_bruteforce:Get() and eternal.vars.menu.anti_aims.anti_bruteforce_phases:Get()-1 >= 6)
        eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_8:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_bruteforce:Get() and eternal.vars.menu.anti_aims.anti_bruteforce_phases:Get()-1 >= 7)
        eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_9:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_bruteforce:Get() and eternal.vars.menu.anti_aims.anti_bruteforce_phases:Get()-1 >= 8)
        eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_10:SetVisible(eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_bruteforce:Get() and eternal.vars.menu.anti_aims.anti_bruteforce_phases:Get()-1 == 9)
        eternal.menu.visuals.windows:SetVisible(eternal.menu.visuals.enabled:Get())
        eternal.menu.visuals.values_instead_of_modes:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.windows:Get(1))
        eternal.menu.visuals.exploit_info:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.windows:Get(2))
        eternal.menu.visuals.holo_hud_disablers:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.windows:Get(3))
        eternal.menu.visuals.on_screen_indicators:SetVisible(eternal.menu.visuals.enabled:Get())
        eternal.menu.visuals.indicators_type:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.on_screen_indicators:Get(1))
        eternal.menu.visuals.indicators_color:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.on_screen_indicators:Get(1))
        eternal.menu.visuals.second_color:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.on_screen_indicators:Get(1) and eternal.menu.visuals.indicators_type:Get() == 0)
        eternal.menu.visuals.arrows_type:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.on_screen_indicators:Get(2))
        eternal.menu.visuals.manual_arrows:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.on_screen_indicators:Get(2))
        eternal.menu.visuals.color_enabled:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.on_screen_indicators:Get(2))
        eternal.menu.visuals.color_disabled:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.on_screen_indicators:Get(2))
        eternal.menu.visuals.misc.logs:SetVisible(eternal.menu.visuals.enabled:Get())
        eternal.menu.visuals.misc.logs_output:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.misc.logs:Get())
        eternal.menu.visuals.misc.pop_up_style:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.misc.logs:Get() and eternal.menu.visuals.misc.logs_output:Get(1))
        eternal.menu.visuals.misc.damage_indicator:SetVisible(eternal.menu.visuals.enabled:Get())
        eternal.menu.visuals.misc.custom_scope:SetVisible(eternal.menu.visuals.enabled:Get())
        eternal.menu.visuals.misc.viewmodel_in_scope:SetVisible(eternal.menu.visuals.enabled:Get())
        eternal.menu.visuals.misc.kill_say:SetVisible(eternal.menu.visuals.enabled:Get())
        eternal.menu.visuals.misc.custom_scope_color:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.misc.custom_scope:Get())
        eternal.menu.visuals.misc.custom_scope_gap:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.misc.custom_scope:Get())
        eternal.menu.visuals.misc.custom_scope_size:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.misc.custom_scope:Get())
        eternal.menu.visuals.theme.box:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.windows:Get() > 0 )
        eternal.menu.visuals.theme.theme:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.windows:Get() > 0 )
        eternal.menu.visuals.theme.background_type:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.windows:Get() > 0 )
        eternal.menu.visuals.theme.accent:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.windows:Get() > 0 and (eternal.menu.visuals.theme.theme:Get() == 0 or eternal.menu.visuals.theme.theme:Get() == 3))
        eternal.menu.visuals.theme.fade_offset:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.windows:Get() > 0 and eternal.menu.visuals.theme.theme:Get() == 1)
        eternal.menu.visuals.theme.fade_frequency:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.windows:Get() > 0 and eternal.menu.visuals.theme.theme:Get() == 2)
        eternal.menu.visuals.theme.fade_split_ratio:SetVisible(eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.windows:Get() > 0 and eternal.menu.visuals.theme.theme:Get() ~= 0 and eternal.menu.visuals.theme.theme:Get() ~= 3)
        eternal.menu.visuals.keybinds_x:SetVisible(false)
        eternal.menu.visuals.keybinds_y:SetVisible(false)
        eternal.vars.menu.anti_aims.anti_bruteforce_phases:SetVisible(false)
      
    end,
    visuals = {
        holo_panel = function()
            if eternal.check(true) == false then return end
            if EntityList.GetLocalPlayer():GetActiveWeapon() == nil then return end
            if not eternal.global_functions.get_muzzle_position()  then return end
            if not eternal.global_functions.get_muzzle_position().state then return end
            if not (eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.windows:Get(3)) then return end
            local frametime = GlobalVars.frametime * 6
            local body_yaw = eternal.global_functions.get_body_yaw()
            local color = eternal.render.get_bar_color()
            local muzzle_pos = eternal.reference.third_person:Get() and Render.WorldToScreen(EntityList.GetLocalPlayer():GetHitboxCenter(16)) or Render.WorldToScreen(eternal.global_functions.get_muzzle_position().pos)
            local color_fake = Color.RGBA(math.floor(170+(154-186)*body_yaw/60),math.floor(0 + (255 - 0) * body_yaw / 60),math.floor(16 + (0 - 16) * body_yaw / 60),255)
            local f_text = ('FAKE (%.1f°)'):format(body_yaw)
            local x_add = CVar.FindVar('cl_righthand'):GetInt() == 1 and 100 or -100
            local x_add1 = -(CVar.FindVar('cl_righthand'):GetInt() == 0 and eternal.vars.visuals.holo_panel.default_width or 0)
            if not (eternal.reference.third_person:Get() and eternal.menu.visuals.holo_hud_disablers:Get(2)) and not (eternal.global_functions.is_scoped() and eternal.menu.visuals.holo_hud_disablers:Get(1)) and muzzle_pos.x < EngineClient.GetScreenSize().x and muzzle_pos.y < EngineClient.GetScreenSize().y and not EntityList.GetLocalPlayer():GetActiveWeapon():IsKnife() and muzzle_pos.x > 0 and muzzle_pos.y > 0 then
                eternal.vars.visuals.holo_panel.anim_x_stand = eternal.math.lerp(frametime,eternal.vars.visuals.holo_panel.anim_x_stand,muzzle_pos.x)
                eternal.vars.visuals.holo_panel.anim_y_stand = eternal.math.lerp(frametime,eternal.vars.visuals.holo_panel.anim_y_stand,muzzle_pos.y)
                eternal.vars.visuals.holo_panel.anim_alpha_stand = eternal.math.lerp(frametime * 3,eternal.vars.visuals.holo_panel.anim_alpha_stand,1)
            else
                eternal.vars.visuals.holo_panel.anim_alpha_stand = eternal.math.lerp(frametime * 3,eternal.vars.visuals.holo_panel.anim_alpha_stand,0)
            end
            if eternal.reference.doubletap:Get() == true then
                eternal.vars.visuals.holo_panel.default_height = eternal.math.lerp(frametime,eternal.vars.visuals.holo_panel.default_height, 78)
                eternal.vars.visuals.holo_panel.anim_y_os = eternal.math.lerp(frametime,eternal.vars.visuals.holo_panel.anim_y_os, 0)
                eternal.vars.visuals.holo_panel.anim_line = eternal.math.lerp(frametime,eternal.vars.visuals.holo_panel.anim_line, 75)
            else
                eternal.vars.visuals.holo_panel.default_height = eternal.math.lerp(frametime,eternal.vars.visuals.holo_panel.default_height, 65)
                eternal.vars.visuals.holo_panel.anim_y_os = eternal.math.lerp(frametime,eternal.vars.visuals.holo_panel.anim_y_os, -15)
                eternal.vars.visuals.holo_panel.anim_line = eternal.math.lerp(frametime,eternal.vars.visuals.holo_panel.anim_line, 85)
            end
            eternal.vars.visuals.holo_panel.anim_width_sp = eternal.math.lerp(frametime/2,eternal.vars.visuals.holo_panel.anim_width_sp, (26 / 60) * body_yaw)
            eternal.base_render.box(math.floor(eternal.vars.visuals.holo_panel.anim_x_stand + x_add + x_add1),math.floor( eternal.vars.visuals.holo_panel.anim_y_stand - 150) , math.floor(eternal.vars.visuals.holo_panel.default_width), math.floor(eternal.vars.visuals.holo_panel.default_height),eternal.vars.visuals.holo_panel.anim_alpha_stand)
            eternal.render.line(muzzle_pos.x, muzzle_pos.y, eternal.vars.visuals.holo_panel.anim_x_stand + x_add , eternal.vars.visuals.holo_panel.anim_y_stand - eternal.vars.visuals.holo_panel.anim_line,Color.new(1,1,1,(  125 * eternal.vars.visuals.holo_panel.anim_alpha_stand)/255))
            eternal.render.string(eternal.vars.visuals.holo_panel.anim_x_stand + x_add + 7 + x_add1, eternal.vars.visuals.holo_panel.anim_y_stand - 143, false,'ANTI-AIMBOT DEBUG',Color.new(1,1,1,eternal.vars.visuals.holo_panel.anim_alpha_stand),2,eternal.fonts.pixel,10)
            eternal.render.gradient_box_filled(eternal.vars.visuals.holo_panel.anim_x_stand + x_add + 7 + x_add1, eternal.vars.visuals.holo_panel.anim_y_stand - 125 - 4, 2, 18 / 2,false,Color.new(color_fake.r,color_fake.g,color_fake.b,0),Color.new(color_fake.r,color_fake.g,color_fake.b,eternal.vars.visuals.holo_panel.anim_alpha_stand))
            eternal.render.gradient_box_filled(eternal.vars.visuals.holo_panel.anim_x_stand + x_add + 7 + x_add1, eternal.vars.visuals.holo_panel.anim_y_stand - 125 + 18 / 2 - 4, 2, 18 / 2,false,Color.new(color_fake.r,color_fake.g,color_fake.b,eternal.vars.visuals.holo_panel.anim_alpha_stand),Color.new(color_fake.r,color_fake.g,color_fake.b,0))
            eternal.render.string(eternal.vars.visuals.holo_panel.anim_x_stand + x_add + 15 + x_add1 , eternal.vars.visuals.holo_panel.anim_y_stand - 122  - 4, false, f_text,Color.new(1,1,1,eternal.vars.visuals.holo_panel.anim_alpha_stand),0,eternal.fonts.verdana_big,12)
            eternal.render.string(eternal.vars.visuals.holo_panel.anim_x_stand + x_add + 7 + x_add1 , eternal.vars.visuals.holo_panel.anim_y_stand - 102 , false,'SP:',Color.new(1,1,1,eternal.vars.visuals.holo_panel.anim_alpha_stand),2,eternal.fonts.pixel,10)
            eternal.render.box_filled(eternal.vars.visuals.holo_panel.anim_x_stand + x_add + 23 + x_add1, eternal.vars.visuals.holo_panel.anim_y_stand - 102  + 2, 28, 7,Color.RGBA(15,15,15,math.floor((100*eternal.vars.visuals.holo_panel.anim_alpha_stand))))
            eternal.render.box_filled(eternal.vars.visuals.holo_panel.anim_x_stand + x_add + 23 + 28 + 5 + x_add1 , eternal.vars.visuals.holo_panel.anim_y_stand - 102  + 2, 28, 7,Color.RGBA(15,15,15,math.floor((100*eternal.vars.visuals.holo_panel.anim_alpha_stand))))
            if AntiAim.GetInverterState() == false then   
                if eternal.menu.visuals.theme.theme:Get() == 0 or eternal.menu.visuals.theme.theme:Get() == 3 then
                    eternal.render.box_filled(eternal.vars.visuals.holo_panel.anim_x_stand + x_add + 24 + x_add1 , eternal.vars.visuals.holo_panel.anim_y_stand - 102 + 3, eternal.vars.visuals.holo_panel.anim_width_sp,5,Color.new(color.r,color.g,color.b,eternal.vars.visuals.holo_panel.anim_alpha_stand))
                else
                    eternal.render.gradient_box_filled(eternal.vars.visuals.holo_panel.anim_x_stand + x_add + 24 + x_add1 , eternal.vars.visuals.holo_panel.anim_y_stand - 102 + 3, eternal.vars.visuals.holo_panel.anim_width_sp,5,true,Color.new(color.g,color.b,color.r,eternal.vars.visuals.holo_panel.anim_alpha_stand),Color.new(color.r,color.g,color.b,eternal.vars.visuals.holo_panel.anim_alpha_stand))     
                end
            else
                if eternal.menu.visuals.theme.theme:Get() == 0 or eternal.menu.visuals.theme.theme:Get() == 3 then
                    eternal.render.box_filled(eternal.vars.visuals.holo_panel.anim_x_stand + x_add + 24 + 28 + 5+ x_add1 , eternal.vars.visuals.holo_panel.anim_y_stand - 102 + 3 , eternal.vars.visuals.holo_panel.anim_width_sp, 5,Color.new(color.r,color.g,color.b,eternal.vars.visuals.holo_panel.anim_alpha_stand))
                else
                    eternal.render.gradient_box_filled(eternal.vars.visuals.holo_panel.anim_x_stand + x_add + 24 + 28 + 5+ x_add1 , eternal.vars.visuals.holo_panel.anim_y_stand - 102 + 3 , eternal.vars.visuals.holo_panel.anim_width_sp, 5,true,Color.new(color.r,color.g,color.b,eternal.vars.visuals.holo_panel.anim_alpha_stand),Color.new(color.b,color.r,color.g,eternal.vars.visuals.holo_panel.anim_alpha_stand)) 
                end
            end
            local realtime = GlobalVars.realtime % 3
            local alpha = math.floor(math.sin(realtime*4)*(255/2-1)+255/2)
            if eternal.reference.doubletap:Get() == true then
                eternal.render.string(eternal.vars.visuals.holo_panel.anim_x_stand + x_add + 7 + x_add1 , eternal.vars.visuals.holo_panel.anim_y_stand - 88 ,false,'SHIFTING TICKBASE',Color.new(1,1,1,(alpha/255)*eternal.vars.visuals.holo_panel.anim_alpha_stand),2,eternal.fonts.pixel,10)
            end
            local state_os = (eternal.reference.hideshots:Get() == true and 'ON' or 'OFF')
            local os_color = (eternal.reference.hideshots:Get() == true and Color.new(0,1,0,eternal.vars.visuals.holo_panel.anim_alpha_stand) or Color.new(1,0,0,eternal.vars.visuals.holo_panel.anim_alpha_stand))
            eternal.render.string(eternal.vars.visuals.holo_panel.anim_x_stand + x_add + eternal.vars.visuals.holo_panel.default_width - 13 - eternal.render.text_size(state_os, eternal.fonts.pixel,10).x / 2 + x_add1, eternal.vars.visuals.holo_panel.anim_y_stand - 88 + eternal.vars.visuals.holo_panel.anim_y_os ,false,state_os,os_color,2,eternal.fonts.pixel,10)
            eternal.render.string(eternal.vars.visuals.holo_panel.anim_x_stand + x_add + eternal.vars.visuals.holo_panel.default_width - 13 - eternal.render.text_size(state_os, eternal.fonts.pixel,10).x / 2 - 24 + x_add1 , eternal.vars.visuals.holo_panel.anim_y_stand - 88 + eternal.vars.visuals.holo_panel.anim_y_os ,false,"OSAA:",Color.new(1,1,1,eternal.vars.visuals.holo_panel.anim_alpha_stand),2,eternal.fonts.pixel,10)
            local fake = 90-(AntiAim.GetCurrentRealRotation() - (EngineClient.GetViewAngles().yaw - 180 ))
            Render.Circle(Vector2.new(eternal.vars.visuals.holo_panel.anim_x_stand+x_add+eternal.vars.visuals.holo_panel.default_width-17+x_add1, eternal.vars.visuals.holo_panel.anim_y_stand-150+17), 8, 30, Color.RGBA(15,15,15,math.floor((100*eternal.vars.visuals.holo_panel.anim_alpha_stand))), 2, 0, 360)
            if eternal.menu.visuals.theme.theme:Get() == 0 or eternal.menu.visuals.theme.theme:Get() == 3 then
                Render.Circle(Vector2.new(eternal.vars.visuals.holo_panel.anim_x_stand+x_add+eternal.vars.visuals.holo_panel.default_width-17+x_add1, eternal.vars.visuals.holo_panel.anim_y_stand-150+17), 8, 30, Color.new(color.r,color.g,color.b,eternal.vars.visuals.holo_panel.anim_alpha_stand), 2.5, fake-45, fake+45)
            elseif eternal.menu.visuals.theme.theme:Get() ~= 0 and eternal.menu.visuals.theme.theme:Get() ~= 3 then
                Render.Circle(Vector2.new(eternal.vars.visuals.holo_panel.anim_x_stand+x_add+eternal.vars.visuals.holo_panel.default_width-17+x_add1, eternal.vars.visuals.holo_panel.anim_y_stand-150+17), 8, 30, Color.new(color.b,color.r,color.g,eternal.vars.visuals.holo_panel.anim_alpha_stand), 2.5, fake-45, fake+45)
            end
        end,
        scope_lines = function()
            if eternal.check(true) == false then return end
            local frames = GlobalVars.frametime*10
            if not eternal.menu.visuals.enabled:Get() or not eternal.menu.visuals.misc.custom_scope:Get() then return end
            eternal.vars.visuals.scope_lines.offset = eternal.math.lerp(frames,eternal.vars.visuals.scope_lines.offset,(eternal.global_functions.is_scoped() and 1 or 0))
            eternal.render.gradient_box_filled(eternal.vars.visuals.x/2+eternal.menu.visuals.misc.custom_scope_gap:Get()*eternal.vars.visuals.scope_lines.offset,eternal.vars.visuals.y/2,eternal.menu.visuals.misc.custom_scope_size:Get()*eternal.vars.visuals.scope_lines.offset,1,true,eternal.menu.visuals.misc.custom_scope_color:Get(),Color.new(eternal.menu.visuals.misc.custom_scope_color:Get().r,eternal.menu.visuals.misc.custom_scope_color:Get().g,eternal.menu.visuals.misc.custom_scope_color:Get().b,0))
            eternal.render.gradient_box_filled(eternal.vars.visuals.x/2-eternal.menu.visuals.misc.custom_scope_gap:Get()*eternal.vars.visuals.scope_lines.offset,eternal.vars.visuals.y/2,-eternal.menu.visuals.misc.custom_scope_size:Get()*eternal.vars.visuals.scope_lines.offset,1,true,eternal.menu.visuals.misc.custom_scope_color:Get(),Color.new(eternal.menu.visuals.misc.custom_scope_color:Get().r,eternal.menu.visuals.misc.custom_scope_color:Get().g,eternal.menu.visuals.misc.custom_scope_color:Get().b,0)) 
            eternal.render.gradient_box_filled(eternal.vars.visuals.x/2,eternal.vars.visuals.y/2-eternal.menu.visuals.misc.custom_scope_gap:Get()*eternal.vars.visuals.scope_lines.offset,1,-eternal.menu.visuals.misc.custom_scope_size:Get()*eternal.vars.visuals.scope_lines.offset,false,eternal.menu.visuals.misc.custom_scope_color:Get(),Color.new(eternal.menu.visuals.misc.custom_scope_color:Get().r,eternal.menu.visuals.misc.custom_scope_color:Get().g,eternal.menu.visuals.misc.custom_scope_color:Get().b,0))
            eternal.render.gradient_box_filled(eternal.vars.visuals.x/2,eternal.vars.visuals.y/2+eternal.menu.visuals.misc.custom_scope_gap:Get()*eternal.vars.visuals.scope_lines.offset,1,eternal.menu.visuals.misc.custom_scope_size:Get()*eternal.vars.visuals.scope_lines.offset,false,eternal.menu.visuals.misc.custom_scope_color:Get(),Color.new(eternal.menu.visuals.misc.custom_scope_color:Get().r,eternal.menu.visuals.misc.custom_scope_color:Get().g,eternal.menu.visuals.misc.custom_scope_color:Get().b,0))
        end,
        keybinds = function()
            if eternal.check(true) == false then return end
            if not (eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.windows:Get(1)) then return end
            local binds = eternal.global_functions.get_binds()
            local y_add = 23
            local frametime = GlobalVars.frametime * 16
            local x, y = eternal.menu.visuals.keybinds_x:Get(), eternal.menu.visuals.keybinds_y:Get()
            local total_width = 66
            local active_binds = {}
            for i = 1, #binds do
                local bind = binds[i]
                if eternal.vars.visuals.keybinds.data[bind:GetName()] == nil then
                    eternal.vars.visuals.keybinds.data[bind:GetName()] = {alpha = 0}
                end
                eternal.vars.visuals.keybinds.data[bind:GetName()].alpha = eternal.math.lerp(frametime,eternal.vars.visuals.keybinds.data[bind:GetName()].alpha,bind:IsActive() and 1 or 0)
                local sub_string = (eternal.menu.visuals.values_instead_of_modes:Get() and ('[' .. bind:GetValue() .. ']') or (bind:GetMode() == 1 and '[hold]' or '[toggled]'))
                eternal.render.string(x+5,y+y_add,false,bind:GetName(),Color.new(1,1,1,eternal.vars.visuals.keybinds.data[bind:GetName()].alpha),1,eternal.fonts.verdana,11)
                eternal.render.string(x+70+eternal.vars.visuals.keybinds.width-Render.CalcTextSize(sub_string,11,eternal.fonts.verdana).x,y+y_add,false,sub_string,Color.new(1,1,1,eternal.vars.visuals.keybinds.data[bind:GetName()].alpha),1,eternal.fonts.verdana,11)
                if eternal.menu.visuals.values_instead_of_modes:Get() then
                    if (Render.CalcTextSize(bind:GetName(),11,eternal.fonts.verdana).x + Render.CalcTextSize(sub_string,11,eternal.fonts.verdana).x) > (total_width) and bind:IsActive() == true then
                        total_width = total_width + (Render.CalcTextSize(bind:GetName(),11,eternal.fonts.verdana).x + Render.CalcTextSize(sub_string,11,eternal.fonts.verdana).x) - (total_width+10)
                    end

                else
                    if (Render.CalcTextSize(bind:GetName(),11,eternal.fonts.verdana).x) > (total_width) and bind:IsActive() == true then
                        total_width =  (Render.CalcTextSize(bind:GetName(),11,eternal.fonts.verdana).x)
                    end

                end
                if bind:IsActive() then
                    table.insert(active_binds,bind)
                end
                y_add = y_add + 15 * eternal.vars.visuals.keybinds.data[bind:GetName()].alpha
            end
            eternal.vars.visuals.keybinds.alpha = eternal.math.lerp(frametime,eternal.vars.visuals.keybinds.alpha, (Cheat.IsMenuVisible() or #active_binds > 0) and 1 or 0)
            eternal.vars.visuals.keybinds.width = eternal.math.lerp(frametime,eternal.vars.visuals.keybinds.width,total_width)
            eternal.base_render.box(x,y,75+ eternal.vars.visuals.keybinds.width,20,eternal.vars.visuals.keybinds.alpha,{string = 'keybinds'})

            if Cheat.IsKeyDown(1) then
                if Cheat.GetMousePos().x > x and Cheat.GetMousePos().x < x+75+eternal.vars.visuals.keybinds.width and Cheat.GetMousePos().y > y and Cheat.GetMousePos().y < y+20 and Cheat.IsMenuVisible() and eternal.vars.visuals.keybinds.alpha > 0.8 or eternal.vars.visuals.keybinds.drag then
                    if not eternal.vars.visuals.keybinds.drag then
                        eternal.vars.visuals.keybinds.drag = true
                    else
                        eternal.menu.visuals.keybinds_x:Set(Cheat.GetMousePos().x-math.floor((75+eternal.vars.visuals.keybinds.width)/2))
                        eternal.menu.visuals.keybinds_y:Set(Cheat.GetMousePos().y-10)
                    end
                end
            else
                eternal.vars.visuals.keybinds.drag = false
            end
        end,
        border = function()
            if eternal.check(false) == false then return end
            if not (eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.windows:Get(4)) then return end
            eternal.vars.visuals.border.alpha = eternal.math.lerp(GlobalVars.frametime * 24,eternal.vars.visuals.border.alpha,Cheat.IsMenuVisible() and 1 or 0)
            if eternal.vars.visuals.border.alpha < 0.1 then return end
            eternal.base_render.box(Render.GetMenuPos().x,Render.GetMenuPos().y-55,Render.GetMenuSize().x,50,eternal.vars.visuals.border.alpha)
            eternal.render.string(Render.GetMenuPos().x+Render.GetMenuSize().x/2,Render.GetMenuPos().y-30,true,'E T E R N A L . C O D E S',Color.new(1,1,1,eternal.vars.visuals.border.alpha),1,eternal.fonts.verdana_biggest,15)
        end,
        viewmodel_in_scope = function()
            if eternal.check(true) == false then return end
            if eternal.global_functions.is_scoped() and (eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.misc.viewmodel_in_scope:Get()) then
                CVar.FindVar('fov_cs_debug'):SetInt(90)
            else
                CVar.FindVar('fov_cs_debug'):SetInt(91)
            end
        end,
        watermark = function()
            if eternal.check(true) == false then return end
            if not (eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.windows:Get(2)) then return end
            local frametime = GlobalVars.frametime * 24
            local text = 'Eternal | debug | ' .. Cheat.GetCheatUserName() .. ' | delay: ' .. math.floor(EngineClient.GetNetChannelInfo():GetLatency(0)*1000) .. 'ms | ' .. eternal.global_functions.get_time()
            local string_size = Render.CalcTextSize(text,11,eternal.fonts.verdana).x+8
            local x,y = EngineClient.GetScreenSize().x-string_size-10, 10
            local color = eternal.render.get_bar_color()
            eternal.base_render.box(x,y,string_size,20,1,{string = text})

            if eternal.menu.visuals.exploit_info:Get() then
                local text_fl = 'FL: ' .. (function(a) if a < 10 then return '  ' .. a else return a end end)(eternal.vars.visuals.indicators.choked) .. ((eternal.reference.doubletap:Get() and Exploits.GetCharge() == 1) and ' | SHIFTING' or '')
              
                eternal.vars.visuals.watermark.solus.fl_lenght = eternal.math.lerp(frametime,eternal.vars.visuals.watermark.solus.fl_lenght,Render.CalcTextSize(text_fl,11,eternal.fonts.verdana).x + 8)
                local h, w = 17, eternal.vars.visuals.watermark.solus.fl_lenght
                local x, y = eternal.vars.visuals.x, 35

                x = x - w - 10

              
                if eternal.menu.visuals.theme.theme:Get() == 0 or eternal.menu.visuals.theme.theme:Get() == 3 then
                    eternal.render.gradient_box_filled(x, y + h, w/2,1,true, Color.RGBA(0,0,0,25),Color.new(color.r,color.g,color.b,1))
                    eternal.render.gradient_box_filled(x + w/2, y + h, w - w/2, 1,true,Color.new(color.r,color.g,color.b,1), Color.RGBA(0,0,0,25))

                else
                    eternal.render.gradient_box_filled(x, y + h, w/2,1,true, Color.RGBA(0,0,0,25),Color.new(color.b,color.r,color.g,1))
                    eternal.render.gradient_box_filled(x + w/2, y + h, w - w/2, 1,true,Color.new(color.b,color.r,color.g,1), Color.RGBA(0,0,0,25))

                end

                if eternal.menu.visuals.theme.background_type:Get() == 1 then
                    eternal.render.box_filled(x, y , w, h,Color.new(0.075,0.075,0.075,0.25),eternal.menu.visuals.theme.box:Get()*4)
                elseif eternal.menu.visuals.theme.background_type:Get() == 2 then
                    eternal.render.blur(x, y , w, h,Color.new(1,1,1,1),eternal.menu.visuals.theme.box:Get()*4)
                    eternal.render.box_filled(x, y, w, h,Color.new(0.075,0.075,0.075,0.25),eternal.menu.visuals.theme.box:Get()*4)
                elseif eternal.menu.visuals.theme.background_type:Get() == 3 then
                    eternal.render.box_filled(x, y, w, h,Color.new(0.075,0.075,0.075,0.5),eternal.menu.visuals.theme.box:Get()*4)
                elseif eternal.menu.visuals.theme.background_type:Get() == 4 then
                    eternal.render.blur(x, y, w, h,Color.new(1,1,1,1),eternal.menu.visuals.theme.box:Get()*4)
                    eternal.render.box_filled(x, y, w, h,Color.new(0.075,0.075,0.075,0.5),eternal.menu.visuals.theme.box:Get()*4)
                elseif eternal.menu.visuals.theme.background_type:Get() == 5 then
                    eternal.render.box_filled(x, y, w, h,Color.new(0.075,0.075,0.075,0.75),eternal.menu.visuals.theme.box:Get()*4)
                elseif eternal.menu.visuals.theme.background_type:Get() == 6 then
                    eternal.render.blur(x, y, w, h,Color.new(1,1,1,1),eternal.menu.visuals.theme.box:Get()*4)
                    eternal.render.box_filled(x, y, w, h,Color.new(0.075,0.075,0.075,0.75),eternal.menu.visuals.theme.box:Get()*4)
                elseif eternal.menu.visuals.theme.background_type:Get() == 7 then
                    eternal.render.box_filled(x, y, w, h,Color.new(0.075,0.075,0.075,1),eternal.menu.visuals.theme.box:Get()*4)
                elseif eternal.menu.visuals.theme.background_type:Get() == 8 then
                    eternal.render.blur(x, y, w, h,Color.new(1,1,1,1),eternal.menu.visuals.theme.box:Get()*4)
                end   
              
                eternal.render.string(x+4,y+2,false,text_fl,Color.new(1,1,1,1),1,eternal.fonts.verdana,11)

                local text_fake = ('FAKE (%.1f°)'):format(eternal.global_functions.get_body_yaw())

                local color_fake = Color.RGBA(math.floor(170+(154-186)*eternal.global_functions.get_body_yaw()/60),math.floor(0 + (255 - 0) * eternal.global_functions.get_body_yaw() / 60),math.floor(16 + (0 - 16) * eternal.global_functions.get_body_yaw() / 60),255)
              
                eternal.vars.visuals.watermark.solus.fake_lenght = eternal.math.lerp(frametime,eternal.vars.visuals.watermark.solus.fake_lenght,Render.CalcTextSize(text_fake,11,eternal.fonts.verdana).x + 8)
                local h, w = 18, eternal.vars.visuals.watermark.solus.fake_lenght

                eternal.render.gradient_box_filled(x - w - 6, y, 2, h / 2, false, Color.new(color_fake.r,color_fake.g,color_fake.b,0), Color.new(color_fake.r,color_fake.g,color_fake.b,255))
                eternal.render.gradient_box_filled(x - w - 6, y + h/2, 2, h / 2, false, Color.new(color_fake.r,color_fake.g,color_fake.b,255), Color.new(color_fake.r,color_fake.g,color_fake.b,0))

                if eternal.menu.visuals.theme.background_type:Get() == 1 then
                    eternal.render.gradient_box_filled(x - w - 4, y, w / 2, h,true,Color.new(0.075,0.075,0.075,0),Color.new(0.075,0.075,0.075,0.25))
                    eternal.render.gradient_box_filled(x - w - 4 + w / 2, y, w / 2, h,true,Color.new(0.075,0.075,0.075,0.25),Color.new(0.075,0.075,0.075,0))
                elseif eternal.menu.visuals.theme.background_type:Get() == 2 then
                    eternal.render.blur(x - w - 4, y, w, h,Color.new(1,1,1,1),0) 
                    eternal.render.gradient_box_filled(x - w - 4, y, w / 2, h,true,Color.new(0.075,0.075,0.075,0),Color.new(0.075,0.075,0.075,0.25))
                    eternal.render.gradient_box_filled(x - w - 4 + w / 2, y, w / 2, h,true,Color.new(0.075,0.075,0.075,0.25),Color.new(0.075,0.075,0.075,0))
                elseif eternal.menu.visuals.theme.background_type:Get() == 3 then
                    eternal.render.gradient_box_filled(x - w - 4, y, w / 2, h,true,Color.new(0.075,0.075,0.075,0),Color.new(0.075,0.075,0.075,0.5))
                    eternal.render.gradient_box_filled(x - w - 4 + w / 2, y, w / 2, h,true,Color.new(0.075,0.075,0.075,0.5),Color.new(0.075,0.075,0.075,0))
                elseif eternal.menu.visuals.theme.background_type:Get() == 4 then
                    eternal.render.blur(x - w - 4, y, w, h,Color.new(1,1,1,1),0)
                    eternal.render.gradient_box_filled(x - w - 4, y, w / 2, h,true,Color.new(0.075,0.075,0.075,0),Color.new(0.075,0.075,0.075,0.5))
                    eternal.render.gradient_box_filled(x - w - 4 + w / 2, y, w / 2, h,true,Color.new(0.075,0.075,0.075,0.5),Color.new(0.075,0.075,0.075,0))
                elseif eternal.menu.visuals.theme.background_type:Get() == 5 then
                    eternal.render.gradient_box_filled(x - w - 4, y, w / 2, h,true,Color.new(0.075,0.075,0.075,0),Color.new(0.075,0.075,0.075,0.75))
                    eternal.render.gradient_box_filled(x - w - 4 + w / 2, y, w / 2, h,true,Color.new(0.075,0.075,0.075,0.75),Color.new(0.075,0.075,0.075,0))
                elseif eternal.menu.visuals.theme.background_type:Get() == 6 then
                    eternal.render.blur(x - w - 4, y, w, h,Color.new(1,1,1,1),0)
                    eternal.render.gradient_box_filled(x - w - 4, y, w / 2, h,true,Color.new(0.075,0.075,0.075,0),Color.new(0.075,0.075,0.075,0.75))
                    eternal.render.gradient_box_filled(x - w - 4 + w / 2, y, w / 2, h,true,Color.new(0.075,0.075,0.075,0.75),Color.new(0.075,0.075,0.075,0))
                elseif eternal.menu.visuals.theme.background_type:Get() == 7 then
                    eternal.render.gradient_box_filled(x - w - 4, y, w / 2, h,true,Color.new(0.075,0.075,0.075,0),Color.new(0.075,0.075,0.075,1))
                    eternal.render.gradient_box_filled(x - w - 4 + w / 2, y, w / 2, h,true,Color.new(0.075,0.075,0.075,1),Color.new(0.075,0.075,0.075,0))
                elseif eternal.menu.visuals.theme.background_type:Get() == 8 then
                    eternal.render.blur(x - w - 4, y, w, h,Color.new(1,1,1,1),0)
                end
                eternal.render.string(x - w, y + 2,false,text_fake,Color.new(1,1,1,1),1,eternal.fonts.verdana,11)
            end
        end,
        indicators = function()
            if eternal.check(true) == false then return end
            if not (eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.on_screen_indicators:Get(1)) then return end
            local x, y = eternal.vars.visuals.x/2, eternal.vars.visuals.y/2
            local frametime = GlobalVars.frametime * 12
            local indicators = eternal.get_indicators(eternal.menu.visuals.indicators_type:Get())
            if eternal.menu.visuals.indicators_type:Get() == 0 then
                local y_add = 30
                local eternal_size = Render.CalcTextSize('ETERNAL.CODES',10,eternal.fonts.pixel).x
                eternal.base_render.fade_text(x-eternal_size/2-1,y+35,'ETERNAL.CODES',eternal.menu.visuals.indicators_color:Get(),eternal.menu.visuals.second_color:Get(),eternal.fonts.pixel,10,false)
                for i = 1, #indicators do
                    local indicator = indicators[i]
                    local a = Render.CalcTextSize(indicator.name,10,eternal.fonts.pixel).x
                    eternal.render.string(x-a,y+35+i*8,false,indicator.name,eternal.menu.visuals.second_color:Get(),2,eternal.fonts.pixel,10)
                    if indicator.arc ~= nil then
                        eternal.render.circle(x-a-6,y+35+i*8+5,3.1,0,360,Color.new(0,0,0,1),8,1.5)
                        eternal.render.circle(x-a-6,y+35+i*8+5,3,0,indicator.arc*360,eternal.math.lerp_color(indicator.arc,eternal.menu.visuals.second_color:Get(),eternal.menu.visuals.indicators_color:Get()),8,1)
                    end
                end
            elseif eternal.menu.visuals.indicators_type:Get() == 1 then
                local y_add = 50
                for i = 1, #indicators do
                    local indicator = indicators[i]
                    eternal.vars.visuals.indicators.eternal[indicator.name].alpha = eternal.math.lerp(frametime,eternal.vars.visuals.indicators.eternal[indicator.name].alpha,indicator.active and 1 or 0)
                  
                    eternal.render.string(x,y+y_add,true,indicator.name:sub(0,math.floor(#indicator.name*eternal.vars.visuals.indicators.eternal[indicator.name].alpha+1)),Color.new(1,1,1,eternal.vars.visuals.indicators.eternal[indicator.name].alpha),2,eternal.fonts.pixel,10)

                    y_add = y_add + math.floor(13 * eternal.vars.visuals.indicators.eternal[indicator.name].alpha)
                end

                eternal.render.string(x,y+38,true,'ETERNAL',eternal.menu.visuals.indicators_color:Get(),2,eternal.fonts.pixel,10)
              
                eternal.render.gradient_box_filled(x,y+29,eternal.global_functions.get_body_yaw(),1,true,Color.new(1,1,1,1),Color.new(1,1,1,0))
                eternal.render.gradient_box_filled(x-eternal.global_functions.get_body_yaw(),y+29,eternal.global_functions.get_body_yaw(),1,true,Color.new(1,1,1,0),Color.new(1,1,1,1))
              
                eternal.render.string(x,y+20,true,math.floor(eternal.global_functions.get_body_yaw()) .. '°',Color.new(1,1,1,1),2,eternal.fonts.pixel,10)
            elseif eternal.menu.visuals.indicators_type:Get() == 2 then
                local y_add = 53
                for i = 1, #indicators do
                    local indicator = indicators[i]
                    eternal.vars.visuals.indicators.eternal2[indicator.name].alpha = eternal.math.lerp(frametime,eternal.vars.visuals.indicators.eternal2[indicator.name].alpha,indicator.active and 1 or 0)
                  
                    eternal.render.string(x,y+y_add,true,indicator.name,Color.new(1,1,1,eternal.vars.visuals.indicators.eternal2[indicator.name].alpha),2,eternal.fonts.pixel,10)

                    y_add = y_add + math.floor(10 * eternal.vars.visuals.indicators.eternal2[indicator.name].alpha)
                end

                eternal.render.string(x,y+38,true,'ETERNAL',Color.new(1,1,1,1),2,eternal.fonts.pixel,10)
              

                eternal.render.box_filled(x-33/2,y+44,33,4,Color.new(0,0,0,0.5))
                eternal.render.box_filled(x-(eternal.global_functions.get_body_yaw()/60)*16-1,y+45,(eternal.global_functions.get_body_yaw()/60)*16,2,Color.new(eternal.menu.visuals.indicators_color:Get().r,eternal.menu.visuals.indicators_color:Get().g,eternal.menu.visuals.indicators_color:Get().b,AntiAim.GetInverterState() and 0 or 1))
                eternal.render.box_filled(x,y+45,(eternal.global_functions.get_body_yaw()/60)*16,2,Color.new(eternal.menu.visuals.indicators_color:Get().r,eternal.menu.visuals.indicators_color:Get().g,eternal.menu.visuals.indicators_color:Get().b,AntiAim.GetInverterState() and 1 or 0))
              

            end
        end,
        registered_shot = function(e)
            if (eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.misc.damage_indicator:Get()) and  e.reason == 0 then
                table.insert(eternal.vars.visuals.damage_indicator.data,{damage = e.damage,pos = EntityList.GetClientEntity(e.target_index):GetPlayer():GetHitboxCenter(6), color = (e.hitgroup == 1 and Color.RGBA(166,215,53,255) or Color.new(1,1,1,1)),alpha = 1, time = GlobalVars.realtime })
            end
            if (eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.misc.logs:Get()) then
                if e.reason == 0 then
                    local texts = {
                        ['pop-up'] = 'Registered shot at '  .. EntityList.GetClientEntity(e.target_index):GetPlayer():GetName() ..'`s ' ..  eternal.global_functions.check_local(eternal.vars.visuals.logs.hitbox_name[e.hitgroup]) .. ' for ' .. e.damage .. ' damage'  .. ' [angle: ' .. math.floor(e.spread_degree*100)/100  .. '°] (hitchance: ' .. e.hitchance .. ' | history: ' .. e.backtrack .. ')',
                        ['console'] = '[neverlose.cc] Did damage to [' .. EntityList.GetClientEntity(e.target_index):GetPlayer():GetName() .. '] | [client: ' .. eternal.global_functions.check_local(eternal.vars.visuals.logs.hitbox_name[e.wanted_hitgroup]) .. '] [server: ' .. eternal.global_functions.check_local(eternal.vars.visuals.logs.hitbox_name[e.hitgroup]) .. '] | bt [' .. e.backtrack .. '] dmg [' .. e.damage ..'] index [' .. e.target_index .. ']',
                        ['events'] = 'Did damage to [' .. EntityList.GetClientEntity(e.target_index):GetPlayer():GetName() .. '] | [client: ' .. eternal.global_functions.check_local(eternal.vars.visuals.logs.hitbox_name[e.wanted_hitgroup]) .. '] [server: ' .. eternal.global_functions.check_local(eternal.vars.visuals.logs.hitbox_name[e.hitgroup]) .. '] | bt [' .. e.backtrack .. '] dmg [' .. e.damage ..'] index [' .. e.target_index .. ']',
                    }
                    if eternal.menu.visuals.misc.logs_output:Get(1) then
                        table.insert(eternal.vars.visuals.logs.data,{text = texts['pop-up'],text2 = {
                            hit = 'Hit ',
                            who = EntityList.GetClientEntity(e.target_index):GetPlayer():GetName(),
                            in_the = ' in the ',
                            where =  eternal.global_functions.check_local(eternal.vars.visuals.logs.hitbox_name[e.hitgroup]),
                            for_ = ' for ',
                            how_much = e.damage .. '',
                            damage = ' damage (',
                            how_muc_r =  math.max(EntityList.GetClientEntity(e.target_index):GetPlayer():GetProp('m_iHealth')-e.damage,0) .. '',
                            health = ' health remaining)'             
                        }, alpha = 0,alpha1 = 0,type = 'Hit', time = GlobalVars.realtime})
                    end
                    if eternal.menu.visuals.misc.logs_output:Get(2) then
                        print(texts['console'])
                    end
                    if eternal.menu.visuals.misc.logs_output:Get(3) then
                        Cheat.AddEvent(texts['events'])
                    end
                else
                    local texts = {
                        ['pop-up'] = 'Missed shot at ' .. EntityList.GetClientEntity(e.target_index):GetPlayer():GetName() .. '`s ' .. eternal.global_functions.check_local(eternal.vars.visuals.logs.hitbox_name[e.wanted_hitgroup]) .. ' due to ' .. eternal.vars.visuals.logs.mismatch[e.reason],
                        ['console'] = '[neverlose.cc] Missed at [' .. EntityList.GetClientEntity(e.target_index):GetPlayer():GetName() .. '] | [client: ' .. eternal.global_functions.check_local(eternal.vars.visuals.logs.hitbox_name[e.wanted_hitgroup]) .. '] [reason: ' .. eternal.vars.visuals.logs.mismatch[e.reason] .. '] | bt [' .. e.backtrack .. '] index [' .. e.target_index .. ']',
                        ['events'] = 'Missed at [' .. EntityList.GetClientEntity(e.target_index):GetPlayer():GetName() .. '] | [client: ' .. eternal.global_functions.check_local(eternal.vars.visuals.logs.hitbox_name[e.wanted_hitgroup]) .. '] [reason: ' .. eternal.vars.visuals.logs.mismatch[e.reason] .. '] | bt [' .. e.backtrack .. '] index [' .. e.target_index .. ']',
                    }
                    if eternal.menu.visuals.misc.logs_output:Get(1) then
                        table.insert(eternal.vars.visuals.logs.data,{text = texts['pop-up'],text2 = {
                            hit = 'Missed ',
                            who = EntityList.GetClientEntity(e.target_index):GetPlayer():GetName(),
                            in_the = '`s ',
                            where = eternal.global_functions.check_local(eternal.vars.visuals.logs.hitbox_name[e.wanted_hitgroup]),
                            for_ = ' due to ',
                            reason = eternal.vars.visuals.logs.mismatch[e.reason]
                        }, alpha = 0,alpha1 = 0,type = 'Miss', time = GlobalVars.realtime})
                    end
                    if eternal.menu.visuals.misc.logs_output:Get(2) then
                        print(texts['console'])
                    end
                    if eternal.menu.visuals.misc.logs_output:Get(3) then
                        Cheat.AddEvent(texts['events'])
                    end
                end   
            end   
        end,
        pop_up = function()
            if eternal.check(false) == false then return end
            if not (eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.misc.logs:Get() and eternal.menu.visuals.misc.logs_output:Get(1)) then return end
            local y_add = 0
            local frametime = GlobalVars.frametime * 8
            local color = eternal.render.get_bar_color()
            local x, y = eternal.vars.visuals.x/2, eternal.vars.visuals.y
            for i, notify in ipairs(eternal.vars.visuals.logs.data) do
                if eternal.menu.visuals.misc.pop_up_style:Get() == 0 then
                    if notify.time + 1 > GlobalVars.realtime then
                        notify.alpha = eternal.math.lerp(frametime,notify.alpha,1)
                    end
                    local string = notify.text:sub(0,#notify.text*notify.alpha+1)
                    local w, h = Render.CalcTextSize(string,12,eternal.fonts.verdana_big).x+16, 30
                  
                    eternal.base_render.box(x-w/2,y*0.85-y_add,w,h,notify.alpha)
                    eternal.render.string(x,y*0.85-y_add+15,true,string,Color.new(1,1,1,notify.alpha),1,eternal.fonts.verdana_big,12)

                    if notify.time + 6 < GlobalVars.realtime  then
                        notify.alpha = eternal.math.lerp(frametime,notify.alpha,0)
                    end

                    if notify.alpha < 0.08 and (notify.time + 6 < GlobalVars.realtime) then
                        table.remove(eternal.vars.visuals.logs.data,i)
                    end

                    y_add = y_add + 35 * notify.alpha
                elseif eternal.menu.visuals.misc.pop_up_style:Get() == 1 then
                    if notify.time + 1 > GlobalVars.realtime then
                        notify.alpha = eternal.math.lerp(frametime,notify.alpha,1)
                        notify.alpha1 = eternal.math.lerp(frametime/1.5,notify.alpha1,1)
                    end

                  
                    local string = notify.text:sub(0,#notify.text*notify.alpha+1)
                    local w, h = Render.CalcTextSize(string,11,eternal.fonts.verdana).x+30, 25


                    if eternal.menu.visuals.theme.background_type:Get() == 1 then
                        eternal.render.box_filled(x-w/2,y*0.85-y_add,w,h,Color.new(0.075,0.075,0.075,notify.alpha*0.25),30)
                    elseif eternal.menu.visuals.theme.background_type:Get() == 2 then
                        eternal.render.blur(x-w/2,y*0.85-y_add,w,h,Color.new(1,1,1,notify.alpha*1),30) 
                        eternal.render.box_filled(x-w/2,y*0.85-y_add,w,h,Color.new(0.075,0.075,0.075,notify.alpha*0.25),30)
                    elseif eternal.menu.visuals.theme.background_type:Get() == 3 then
                        eternal.render.box_filled(x-w/2,y*0.85-y_add,w,h,Color.new(0.075,0.075,0.075,notify.alpha*0.5),30)
                    elseif eternal.menu.visuals.theme.background_type:Get() == 4 then
                        eternal.render.blur(x-w/2,y*0.85-y_add,w,h,Color.new(1,1,1,notify.alpha*1),30) 
                        eternal.render.box_filled(x-w/2,y*0.85-y_add,w,h,Color.new(0.075,0.075,0.075,notify.alpha*0.5),30)
                    elseif eternal.menu.visuals.theme.background_type:Get() == 5 then
                        eternal.render.box_filled(x-w/2,y*0.85-y_add,w,h,Color.new(0.075,0.075,0.075,notify.alpha*0.75),30)
                    elseif eternal.menu.visuals.theme.background_type:Get() == 6 then
                        eternal.render.blur(x-w/2,y*0.85-y_add,w,h,Color.new(1,1,1,notify.alpha*1),30)
                        eternal.render.box_filled(x-w/2,y*0.85-y_add,w,h,Color.new(0.075,0.075,0.075,notify.alpha*0.75),30)
                    elseif eternal.menu.visuals.theme.background_type:Get() == 7 then
                        eternal.render.box_filled(x-w/2,y*0.85-y_add,w,h,Color.new(0.075,0.075,0.075,notify.alpha),30)
                    elseif eternal.menu.visuals.theme.background_type:Get() == 8 then
                        eternal.render.blur(x-w/2,y*0.85-y_add,w,h,Color.new(1,1,1,notify.alpha*1),30)
                    end                   
                  
                    eternal.render.string(x,y*0.85-y_add+11,true,string,Color.new(1,1,1,notify.alpha),1,eternal.fonts.verdana,11)

                    if eternal.menu.visuals.theme.theme:Get() == 0 or eternal.menu.visuals.theme.theme:Get() == 3 then
                        Render.Circle(Vector2.new(x-w/2+13,y*0.85-y_add+12),13,16,Color.new(color.r,color.g,color.b,notify.alpha),2,90,90+180*notify.alpha1)
                        Render.Circle(Vector2.new(x+w/2-13,y*0.85-y_add+12),13,16,Color.new(color.r,color.g,color.b,notify.alpha),2,-90,-90+180*notify.alpha1)
                        eternal.render.box_filled(x-w/2+13,y*0.85-y_add-1.5,math.floor((w-26)*notify.alpha1)+2.5,2,Color.new(color.r,color.g,color.b,notify.alpha*1),30)
                        eternal.render.box_filled(x+w/2-13-math.floor((w-26)*notify.alpha1)-2.5,y*0.85-y_add+23.5,math.floor((w-26)*notify.alpha1)+2.5,2,Color.new(color.r,color.g,color.b,notify.alpha*1),30)
                    else
                        Render.Circle(Vector2.new(x-w/2+13,y*0.85-y_add+12),13,16,Color.new(color.g,color.b,color.r,notify.alpha),2,90,90+180*notify.alpha1)
                        Render.Circle(Vector2.new(x+w/2-13,y*0.85-y_add+12),13,16,Color.new(color.r,color.g,color.b,notify.alpha),2,-90,-90+180*notify.alpha1)
                        eternal.render.gradient_box_filled(x-w/2+13,y*0.85-y_add-1.5,math.floor((w-26)*notify.alpha1)+2.15,2,true,Color.new(color.g,color.b,color.r,notify.alpha),eternal.math.lerp_color(notify.alpha1,Color.new(color.g,color.b,color.r,notify.alpha),Color.new(color.r,color.g,color.b,notify.alpha)))
                        eternal.render.gradient_box_filled(x+w/2-13-math.floor((w-26)*notify.alpha1)-2.5,y*0.85-y_add+24,math.floor((w-26)*notify.alpha1)+2.5,2,true,eternal.math.lerp_color(notify.alpha1,Color.new(color.r,color.g,color.b,notify.alpha),Color.new(color.g,color.b,color.r,notify.alpha)),Color.new(color.r,color.g,color.b,notify.alpha))
                    end
                  
                    if notify.time + 5.8 < GlobalVars.realtime then
                      
                        notify.alpha1 = eternal.math.lerp(frametime/1.5,notify.alpha1,0)
                    end

                    if notify.time + 6 < GlobalVars.realtime  then
                        notify.alpha = eternal.math.lerp(frametime,notify.alpha,0)
                    end

                    if notify.alpha < 0.02 and (notify.time + 6 < GlobalVars.realtime) then
                        table.remove(eternal.vars.visuals.logs.data,i)
                    end

                    y_add = y_add + 35 * notify.alpha

                elseif eternal.menu.visuals.misc.pop_up_style:Get() == 2 then
                    if notify.text2 ~= nil then
                        local frametime = GlobalVars.frametime * 8
                    local x, y = eternal.vars.visuals.x/2, eternal.vars.visuals.y
                  
                    if notify.time + 1 > GlobalVars.realtime then
                        notify.alpha = eternal.math.lerp(frametime,notify.alpha,1)
                        notify.alpha1 = eternal.math.lerp(frametime/1.5,notify.alpha1,1)
                      
                    end
                    if notify.type == 'Hit' then
                        local string = notify.text2.hit .. notify.text2.who .. notify.text2.in_the .. eternal.global_functions.check_local(notify.text2.where) .. '' .. notify.text2.for_ .. notify.text2.how_much .. notify.text2.damage .. notify.text2.how_muc_r .. notify.text2.health

                        local s = {
                            string = Render.CalcTextSize(string,12,eternal.fonts.verdana_big).x/2,
                            hit = Render.CalcTextSize(notify.text2.hit,12,eternal.fonts.verdana_big).x,
                            in_the = Render.CalcTextSize(notify.text2.in_the,12,eternal.fonts.verdana_big).x,
                            who = Render.CalcTextSize(notify.text2.who,12,eternal.fonts.verdana_big).x,
                            where = Render.CalcTextSize(eternal.global_functions.check_local(notify.text2.where) .. '',12,eternal.fonts.verdana_big).x,
                            for_ = Render.CalcTextSize(notify.text2.for_,12,eternal.fonts.verdana_big).x,
                            how_much = Render.CalcTextSize(notify.text2.how_much,12,eternal.fonts.verdana_big).x,
                            damage = Render.CalcTextSize(notify.text2.damage,12,eternal.fonts.verdana_big).x,
                            how_muc_r = Render.CalcTextSize(notify.text2.how_muc_r,12,eternal.fonts.verdana_big).x,
                            health = Render.CalcTextSize(notify.text2.health,12,eternal.fonts.verdana_big).x,
                          

                        }
                      
                        eternal.render.string(notify.alpha1*40-40+x-s.string,y*0.85-y_add,false,notify.text2.hit,Color.new(1,1,1,notify.alpha),1,eternal.fonts.verdana_big,12)
                        eternal.render.string(notify.alpha1*40-40+x-s.string+s.hit,y*0.85-y_add,false,notify.text2.who,Color.new(166/255,215/255,53/255,notify.alpha),1,eternal.fonts.verdana_big,12)
                        eternal.render.string(notify.alpha1*40-40+x-s.string+s.hit+s.who,y*0.85-y_add,false,notify.text2.in_the,Color.new(1,1,1,notify.alpha),1,eternal.fonts.verdana_big,12)
                        eternal.render.string(notify.alpha1*40-40+x-s.string+s.hit+s.in_the+s.who,y*0.85-y_add,false,eternal.global_functions.check_local(notify.text2.where) .. '',Color.new(166/255,215/255,53/255,notify.alpha),1,eternal.fonts.verdana_big,12)
                        eternal.render.string(notify.alpha1*40-40+x-s.string+s.hit+s.in_the+s.who+s.where,y*0.85-y_add,false,notify.text2.for_,Color.new(1,1,1,notify.alpha),1,eternal.fonts.verdana_big,12)
                        eternal.render.string(notify.alpha1*40-40+x-s.string+s.hit+s.in_the+s.who+s.where+s.for_,y*0.85-y_add,false,notify.text2.how_much,Color.new(166/255,215/255,53/255,notify.alpha),1,eternal.fonts.verdana_big,12)
                        eternal.render.string(notify.alpha1*40-40+x-s.string+s.hit+s.in_the+s.who+s.where+s.for_+s.how_much,y*0.85-y_add,false,notify.text2.damage,Color.new(1,1,1,notify.alpha),1,eternal.fonts.verdana_big,12)
                        eternal.render.string(notify.alpha1*40-40+x-s.string+s.hit+s.in_the+s.who+s.where+s.for_+s.how_much+s.damage,y*0.85-y_add,false,notify.text2.how_muc_r,Color.new(166/255,215/255,53/255,notify.alpha),1,eternal.fonts.verdana_big,12)
                        eternal.render.string(notify.alpha1*40-40+x-s.string+s.hit+s.in_the+s.who+s.where+s.for_+s.how_much+s.damage+s.how_muc_r,y*0.85-y_add,false,notify.text2.health,Color.new(1,1,1,notify.alpha),1,eternal.fonts.verdana_big,12)
                    elseif notify.type == 'Miss' then
                        local string = notify.text2.hit .. notify.text2.who .. notify.text2.in_the .. notify.text2.where .. notify.text2.for_ .. notify.text2.reason

                        local s = {
                            string = Render.CalcTextSize(string,12,eternal.fonts.verdana_big).x/2,
                            hit = Render.CalcTextSize(notify.text2.hit,12,eternal.fonts.verdana_big).x,
                            who = Render.CalcTextSize(notify.text2.who,12,eternal.fonts.verdana_big).x,
                            in_the = Render.CalcTextSize(notify.text2.in_the,12,eternal.fonts.verdana_big).x,
                            where = Render.CalcTextSize(notify.text2.where,12,eternal.fonts.verdana_big).x,
                            for_ = Render.CalcTextSize(notify.text2.for_,12,eternal.fonts.verdana_big).x,
                            reason = Render.CalcTextSize(notify.text2.reason,12,eternal.fonts.verdana_big).x,
                        }
                      
                        eternal.render.string(notify.alpha1*40-40+x-s.string,y*0.85-y_add,false,notify.text2.hit,Color.new(1,1,1,notify.alpha),1,eternal.fonts.verdana_big,12)
                        eternal.render.string(notify.alpha1*40-40+x-s.string+s.hit,y*0.85-y_add,false,notify.text2.who,Color.new(1,0,0,notify.alpha),1,eternal.fonts.verdana_big,12)
                        eternal.render.string(notify.alpha1*40-40+x-s.string+s.hit+s.who,y*0.85-y_add,false,notify.text2.in_the,Color.new(1,1,1,notify.alpha),1,eternal.fonts.verdana_big,12)
                        eternal.render.string(notify.alpha1*40-40+x-s.string+s.hit+s.in_the+s.who,y*0.85-y_add,false,notify.text2.where,Color.new(1,0,0,notify.alpha),1,eternal.fonts.verdana_big,12)
                        eternal.render.string(notify.alpha1*40-40+x-s.string+s.hit+s.in_the+s.who+s.where,y*0.85-y_add,false,notify.text2.for_,Color.new(1,1,1,notify.alpha),1,eternal.fonts.verdana_big,12)
                        eternal.render.string(notify.alpha1*40-40+x-s.string+s.hit+s.in_the+s.who+s.where+s.for_,y*0.85-y_add,false,notify.text2.reason,Color.new(1,0,0,notify.alpha),1,eternal.fonts.verdana_big,12)
                    end
              
                    if notify.time + 5.9 < GlobalVars.realtime  then
                        notify.alpha1 = eternal.math.lerp(frametime/1.5,notify.alpha1,2)
                    end
                    if notify.time + 6 < GlobalVars.realtime and notify.alpha1 > 1.5 then
                        notify.alpha = eternal.math.lerp(frametime,notify.alpha,0)
                    end

                    if notify.alpha < 0.02 and (notify.time + 6 < GlobalVars.realtime) then
                        table.remove(eternal.vars.visuals.logs.data,i)
                    end

                    y_add = y_add + 16 * notify.alpha

                    end
                  
                  

                end
            end
        end,
        arrows = function()
            if eternal.check(true) == false then return end
            if not (eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.on_screen_indicators:Get(2)) then return end
            local frametime = GlobalVars.frametime * 18
            local x,y = eternal.vars.visuals.x/2, eternal.vars.visuals.y/2
            local color_enabled = eternal.menu.visuals.color_enabled:Get()
            local color_disabled = eternal.menu.visuals.color_disabled:Get()

            if eternal.menu.visuals.arrows_type:Get() == 0 then
                eternal.vars.visuals.arrows.standard.right.color = eternal.math.lerp_color(frametime, eternal.vars.visuals.arrows.standard.right.color, AntiAim.GetInverterState() and Color.new(color_enabled.r,color_enabled.g,color_enabled.b,color_enabled.a*eternal.vars.visuals.arrows.standard.right.alpha) or Color.new(color_disabled.r,color_disabled.g,color_disabled.b,color_disabled.a*eternal.vars.visuals.arrows.standard.right.alpha))
                eternal.vars.visuals.arrows.standard.left.color = eternal.math.lerp_color(frametime, eternal.vars.visuals.arrows.standard.left.color, not AntiAim.GetInverterState() and Color.new(color_enabled.r,color_enabled.g,color_enabled.b,color_enabled.a*eternal.vars.visuals.arrows.standard.left.alpha) or Color.new(color_disabled.r,color_disabled.g,color_disabled.b,color_disabled.a*eternal.vars.visuals.arrows.standard.left.alpha))
                if eternal.menu.visuals.manual_arrows:Get() == 0 then
                    eternal.vars.visuals.arrows.standard.right.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.standard.right.alpha, 1)
                    eternal.vars.visuals.arrows.standard.left.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.standard.left.alpha, 1)
                    eternal.vars.visuals.arrows.standard.right.lenght = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.standard.right.lenght, eternal.reference.yaw_base:Get() == 2 and 1 or 0)
                    eternal.vars.visuals.arrows.standard.left.lenght = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.standard.left.lenght, eternal.reference.yaw_base:Get() == 3 and 1 or 0)
                elseif eternal.menu.visuals.manual_arrows:Get() == 1 then
                    eternal.vars.visuals.arrows.standard.right.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.standard.right.alpha,  (eternal.reference.yaw_base:Get() == 2 or  eternal.reference.yaw_base:Get() == 3) and 1 or 0)
                    eternal.vars.visuals.arrows.standard.left.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.standard.left.alpha, (eternal.reference.yaw_base:Get() == 2 or  eternal.reference.yaw_base:Get() == 3) and 1 or 0)
                    eternal.vars.visuals.arrows.standard.right.lenght = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.standard.right.lenght, eternal.reference.yaw_base:Get() == 2 and 1 or 0)
                    eternal.vars.visuals.arrows.standard.left.lenght = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.standard.left.lenght, eternal.reference.yaw_base:Get() == 3 and 1 or 0)
                elseif eternal.menu.visuals.manual_arrows:Get() == 2 then
                    eternal.vars.visuals.arrows.standard.right.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.standard.right.alpha,  eternal.reference.yaw_base:Get() == 2 and 1 or 0)
                    eternal.vars.visuals.arrows.standard.left.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.standard.left.alpha, eternal.reference.yaw_base:Get() == 3 and 1 or 0)
                    eternal.vars.visuals.arrows.standard.right.lenght = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.standard.right.lenght, eternal.reference.yaw_base:Get() == 2 and 1 or 0)
                    eternal.vars.visuals.arrows.standard.left.lenght = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.standard.left.lenght, eternal.reference.yaw_base:Get() == 3 and 1 or 0)
                end
              
                if eternal.vars.visuals.arrows.standard.right.alpha > 0.05 then
                    eternal.render.box_filled(x + 38, y - 7, 2, 18, eternal.vars.visuals.arrows.standard.right.color)
                    if  eternal.vars.visuals.arrows.standard.right.lenght < 0.95 then
                        eternal.render.polygon(x + 55, y + 2, x + 42, y - 7, x + 42, y + 11, Color.new(color_disabled.r,color_disabled.g,color_disabled.b,color_disabled.a*eternal.vars.visuals.arrows.standard.right.alpha))
                    end
                    if  eternal.vars.visuals.arrows.standard.right.lenght > 0.05 then
                        eternal.render.polygon(x + 42 + 13*eternal.vars.visuals.arrows.standard.right.lenght, y + 2, x + 42, y - 7, x + 42, y + 11, Color.new(color_enabled.r,color_enabled.g,color_enabled.b,color_enabled.a*eternal.vars.visuals.arrows.standard.right.alpha))
                    end
                end
                if eternal.vars.visuals.arrows.standard.left.alpha > 0.05 then
                    eternal.render.box_filled(x - 40, y - 7, 2, 18, eternal.vars.visuals.arrows.standard.left.color)
                    if  eternal.vars.visuals.arrows.standard.left.lenght < 0.95 then
                        eternal.render.polygon(x - 55, y + 2, x - 42, y - 7, x - 42, y + 11, Color.new(color_disabled.r,color_disabled.g,color_disabled.b,color_disabled.a*eternal.vars.visuals.arrows.standard.left.alpha))
                    end
                    if  eternal.vars.visuals.arrows.standard.left.lenght > 0.05 then
                        eternal.render.polygon(x - 42 - 13*eternal.vars.visuals.arrows.standard.left.lenght, y + 2, x - 42, y - 7, x - 42, y + 11, Color.new(color_enabled.r,color_enabled.g,color_enabled.b,color_enabled.a*eternal.vars.visuals.arrows.standard.left.alpha))

                    end
                end
            elseif eternal.menu.visuals.arrows_type:Get() == 1 then
                eternal.vars.visuals.arrows.eternal.right.color = eternal.math.lerp_color(frametime, eternal.vars.visuals.arrows.eternal.right.color, eternal.reference.yaw_base:Get() == 2 and Color.new(color_enabled.r,color_enabled.g,color_enabled.b,color_enabled.a*eternal.vars.visuals.arrows.eternal.right.alpha) or Color.new(color_disabled.r,color_disabled.g,color_disabled.b,color_disabled.a*eternal.vars.visuals.arrows.eternal.right.alpha))
                eternal.vars.visuals.arrows.eternal.left.color = eternal.math.lerp_color(frametime, eternal.vars.visuals.arrows.eternal.left.color, eternal.reference.yaw_base:Get() == 3 and Color.new(color_enabled.r,color_enabled.g,color_enabled.b,color_enabled.a*eternal.vars.visuals.arrows.eternal.left.alpha) or Color.new(color_disabled.r,color_disabled.g,color_disabled.b,color_disabled.a*eternal.vars.visuals.arrows.eternal.left.alpha))
                eternal.vars.visuals.arrows.eternal.down.color = eternal.math.lerp_color(frametime, eternal.vars.visuals.arrows.eternal.down.color, eternal.reference.yaw_base:Get() == 1 and Color.new(color_enabled.r,color_enabled.g,color_enabled.b,color_enabled.a*eternal.vars.visuals.arrows.eternal.down.alpha) or Color.new(color_disabled.r,color_disabled.g,color_disabled.b,color_disabled.a*eternal.vars.visuals.arrows.eternal.down.alpha))
                eternal.vars.visuals.arrows.eternal.up.color = eternal.math.lerp_color(frametime, eternal.vars.visuals.arrows.eternal.up.color, eternal.reference.yaw_base:Get() == 0 and Color.new(color_enabled.r,color_enabled.g,color_enabled.b,color_enabled.a*eternal.vars.visuals.arrows.eternal.up.alpha) or Color.new(color_disabled.r,color_disabled.g,color_disabled.b,color_disabled.a*eternal.vars.visuals.arrows.eternal.up.alpha))
                if eternal.menu.visuals.manual_arrows:Get() == 0 then
                    eternal.vars.visuals.arrows.eternal.right.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.eternal.right.alpha, 1)
                    eternal.vars.visuals.arrows.eternal.left.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.eternal.left.alpha, 1)
                    eternal.vars.visuals.arrows.eternal.down.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.eternal.down.alpha, 1)
                    eternal.vars.visuals.arrows.eternal.up.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.eternal.up.alpha, 1)
                  
                elseif eternal.menu.visuals.manual_arrows:Get() == 1 then
                    eternal.vars.visuals.arrows.eternal.right.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.eternal.right.alpha,  (eternal.reference.yaw_base:Get() == 2 or  eternal.reference.yaw_base:Get() == 3 or  eternal.reference.yaw_base:Get() == 1 or  eternal.reference.yaw_base:Get() == 0) and 1 or 0)
                    eternal.vars.visuals.arrows.eternal.left.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.eternal.left.alpha, (eternal.reference.yaw_base:Get() == 2 or  eternal.reference.yaw_base:Get() == 3 or  eternal.reference.yaw_base:Get() == 1 or  eternal.reference.yaw_base:Get() == 0) and 1 or 0)
                    eternal.vars.visuals.arrows.eternal.down.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.eternal.down.alpha, (eternal.reference.yaw_base:Get() == 2 or  eternal.reference.yaw_base:Get() == 3 or  eternal.reference.yaw_base:Get() == 1 or  eternal.reference.yaw_base:Get() == 0) and 1 or 0)
                    eternal.vars.visuals.arrows.eternal.up.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.eternal.up.alpha, (eternal.reference.yaw_base:Get() == 2 or  eternal.reference.yaw_base:Get() == 3 or  eternal.reference.yaw_base:Get() == 1 or  eternal.reference.yaw_base:Get() == 0) and 1 or 0)
                  
                elseif eternal.menu.visuals.manual_arrows:Get() == 2 then
                    eternal.vars.visuals.arrows.eternal.right.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.eternal.right.alpha,  eternal.reference.yaw_base:Get() == 2 and 1 or 0)
                    eternal.vars.visuals.arrows.eternal.left.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.eternal.left.alpha, eternal.reference.yaw_base:Get() == 3 and 1 or 0)
                    eternal.vars.visuals.arrows.eternal.down.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.eternal.down.alpha, eternal.reference.yaw_base:Get() == 1 and 1 or 0)
                    eternal.vars.visuals.arrows.eternal.up.alpha = eternal.math.lerp(frametime, eternal.vars.visuals.arrows.eternal.up.alpha, eternal.reference.yaw_base:Get() == 0 and 1 or 0)
                  
                end
              
                if eternal.vars.visuals.arrows.eternal.right.alpha > 0.05 then
                    eternal.render.string(x+50,y,true,'>', eternal.vars.visuals.arrows.eternal.right.color, 2,eternal.fonts.verdana_mega,20)
                end
                if eternal.vars.visuals.arrows.eternal.left.alpha > 0.05 then
                    eternal.render.string(x-50,y,true,'<', eternal.vars.visuals.arrows.eternal.left.color, 2,eternal.fonts.verdana_mega,20)
                  
                end
                if eternal.vars.visuals.arrows.eternal.down.alpha > 0.05 then
                    eternal.render.string(x,y+50,true,'v', eternal.vars.visuals.arrows.eternal.down.color, 2,eternal.fonts.verdana_mega,20)
                  
                end


            end
        end,
        damage_indicator = function()
            if eternal.check(true) == false then return end
            if not (eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.misc.damage_indicator:Get()) then return end
            for i, mark in ipairs(eternal.vars.visuals.damage_indicator.data) do
                mark.alpha = mark.alpha - GlobalVars.frametime / 2
                mark.pos.z = mark.pos.z + 75*GlobalVars.frametime
                local screen = Render.WorldToScreen(mark.pos)
                eternal.render.string(screen.x,screen.y,true,mark.damage .. '',Color.new(mark.color.r,mark.color.g,mark.color.b,mark.alpha),1,eternal.fonts.verdana_big,12)
                if mark.alpha < 0 then
                    table.remove(eternal.vars.visuals.damage_indicator.data,i)
                end
            end

        end,
        trashtalk = function(e)
            if e:GetName() ~= 'player_death' then return end
            if eternal.check(true) == false then return end
            if not (eternal.menu.visuals.enabled:Get() and eternal.menu.visuals.misc.kill_say:Get()) then return end
            local phrases = eternal.vars.visuals.trashtalk.phrases
            if EntityList.GetPlayerForUserID(e:GetInt('userid')) ~= EntityList.GetLocalPlayer() and EntityList.GetPlayerForUserID(e:GetInt('attacker')) == EntityList.GetLocalPlayer() then
                EngineClient.ExecuteClientCmd('say ' .. phrases[math.random(1,#phrases)])
            end
        end
  
          
    },
    anti_aims = {
        teleport_cross = function()
            local me = EntityList.GetLocalPlayer()
            if not me then return end

            if not (eternal.check(true) and eternal.menu.anti_aims.main.enabled:Get()) then return end
            if not (eternal.menu.anti_aims.main.teleport_cross:Get()) then return end
            if not eternal.reference.doubletap:Get() then return end
            if not (eternal.global_functions.get_state() == 5) then return end
            if not (eternal.vars.menu.anti_aims.teleport_cross_delay < GlobalVars.realtime) then return end
          
            local players = EntityList.GetPlayers()
            if #players == 0 then return end
            for _, player in ipairs(players) do
                if player:IsTeamMate() or player == me or player:GetProp('m_lifeState') or player:IsDormant() then
                    goto skip
                end

                local trace = Cheat.FireBullet(player, player:GetEyePosition(), me:GetHitboxCenter(3))
                if trace.damage > 0 then
                    Exploits.ForceTeleport()
                    eternal.vars.menu.anti_aims.teleport_cross_delay = GlobalVars.realtime + 0.7
                end

                ::skip::
            end
        end,
        handle_anti_bruteforce_phases = {
            add = function()
                if eternal.vars.menu.anti_aims.anti_bruteforce_phases:Get() < 10 then
                    eternal.vars.menu.anti_aims.anti_bruteforce_phases:Set(eternal.vars.menu.anti_aims.anti_bruteforce_phases:Get() + 1)
                else
                    Cheat.AddNotify('ETERNAL.lua','The maximum is reached.')
                end
            end,
            remove = function()
                if eternal.vars.menu.anti_aims.anti_bruteforce_phases:Get() > 2 then
                    eternal.vars.menu.anti_aims.anti_bruteforce_phases:Set(eternal.vars.menu.anti_aims.anti_bruteforce_phases:Get() - 1)
                else
                    Cheat.AddNotify('ETERNAL.lua','The minimum is reached.')
                end
            end
        },
        miss_detect =  function(e)
            for i = 1, #EntityList.GetPlayers() do
                if eternal.vars.anti_aims.anti_bruteforce.data[EntityList.GetPlayers()[i]:GetName()] == nil then
                    eternal.vars.anti_aims.anti_bruteforce.data[EntityList.GetPlayers()[i]:GetName()] = {timer = 0, shots = 0}
                end
            end
            if e:GetName() == 'bullet_impact' and eternal.check(true) and eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_bruteforce:Get() and EntityList.GetPlayerForUserID(e:GetInt('userid')) ~= EntityList.GetLocalPlayer() and not EntityList.GetPlayerForUserID(e:GetInt('userid')):IsTeamMate() then
      
                local impact = Vector.new(e:GetInt("x"), e:GetInt("y"), e:GetInt("z"))
                local eyepos = EntityList.GetPlayerForUserID(e:GetInt('userid')):GetEyePosition()
                local target = EntityList.GetPlayerForUserID(e:GetInt('userid')):GetName()
                local headpos = EntityList.GetLocalPlayer():GetHitboxCenter(0)
              
                local head_vec =  eternal.math.closest_point_on_ray(headpos,eyepos,impact)
                local head_dist = headpos:DistTo(head_vec)
              
                if head_dist < 40 and head_dist > 3 and (eternal.vars.anti_aims.anti_bruteforce.data[target].timer < GlobalVars.realtime) then
                    eternal.vars.anti_aims.anti_bruteforce.data[target].timer = GlobalVars.realtime + 0.5
                    eternal.vars.anti_aims.anti_bruteforce.data[target].shots = eternal.vars.anti_aims.anti_bruteforce.data[target].shots + 1
                    if eternal.vars.anti_aims.anti_bruteforce.data[target].shots > (eternal.vars.menu.anti_aims.anti_bruteforce_phases:Get()-1) then
                        eternal.vars.anti_aims.anti_bruteforce.data[target].shots = 0
                    end
                    table.insert(eternal.vars.anti_aims.anti_bruteforce.handle.work_data,1,{target = target, time = GlobalVars.realtime})
                    table.insert(eternal.vars.visuals.logs.data,{text = 'Switched angle due to shot', alpha = 0,alpha1 = 0, time = GlobalVars.realtime})
                  
                end
          
            end
              
        end,
        handle_anti_bruteforce = function()
            if eternal.vars.anti_aims.anti_bruteforce.handle.work_data[1] ~= nil and eternal.check(true) and eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.anti_bruteforce:Get() then
                if eternal.vars.anti_aims.anti_bruteforce.handle.work_data[1].time + eternal.menu.anti_aims.main.anti_bruteforce_reset_time:Get() > GlobalVars.realtime then
                    eternal.vars.anti_aims.anti_bruteforce.handle.working = true
                    eternal.vars.anti_aims.anti_bruteforce.handle.work_time = ((eternal.vars.anti_aims.anti_bruteforce.handle.work_data[1].time + eternal.menu.anti_aims.main.anti_bruteforce_reset_time:Get()) - GlobalVars.realtime)/eternal.menu.anti_aims.main.anti_bruteforce_reset_time:Get()
                else
                    eternal.vars.anti_aims.anti_bruteforce.handle.working = false
                    for i = 1, #eternal.vars.anti_aims.anti_bruteforce.handle.work_data do
                        table.remove(eternal.vars.anti_aims.anti_bruteforce.handle.work_data,i)
                    end
                end
            else
                eternal.vars.anti_aims.anti_bruteforce.handle.working = false
                for i = 1, #eternal.vars.anti_aims.anti_bruteforce.handle.work_data do
                    table.remove(eternal.vars.anti_aims.anti_bruteforce.handle.work_data,i)
                end
            end
        end,
        main = function()
          
            if not (eternal.check(true) and eternal.menu.anti_aims.main.enabled:Get()) then return end
            if eternal.vars.anti_aims.anti_bruteforce.data[EntityList.GetLocalPlayer():GetName()] == nil then
                eternal.vars.anti_aims.anti_bruteforce.data[EntityList.GetLocalPlayer():GetName()] = {timer = 0, shots = 0}
            end
            local state = eternal.global_functions.get_state()
            local side = AntiAim.GetInverterState()
          

            if eternal.vars.anti_aims.anti_bruteforce.handle.working == true then
              
          
                local phase = {
                    [0] = eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_1,
                    [1] = eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_2,
                    [2] = eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_3,
                    [3] = eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_4,
                    [4] = eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_5,
                    [5] = eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_6,
                    [6] = eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_7,
                    [7] = eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_8,
                    [8] = eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_9,
                    [9] = eternal.menu.anti_aims.misc.anti_bruteforce_phases.phase_10,
                            
                }

                local good_realisation = {
                    "still",
                    "crouch",
                    "slow_walk",
                    "move",
                    "air",
                    "fake_duck"
                }

                local should_invert = eternal.menu.anti_aims.builder[good_realisation[state]].fake_options:GetBool(2)
                eternal.global_functions.override_limit(phase[eternal.vars.anti_aims.anti_bruteforce.data[eternal.global_functions.get_nearet_to_crosshair():GetName()].shots]:Get(),not should_invert)
            end
                if eternal.vars.anti_aims.legit_aa == false then
                    if eternal.menu.anti_aims.main.anti_aim_type:Get() == 0 then
                      
                            eternal.reference.yaw_base:Set(eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get() == 0 and 4 or eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get()-1)
                      
                          
                        if state == 1 then
                            eternal.reference.yaw_add:Set(side and -12 or 20)
                            eternal.reference.yaw_modifier:Set(1)
                            eternal.reference.modifier_degree:Set(1)
                            eternal.reference.left_limit:Set(60)
                            eternal.reference.right_limit:Set(60)
                            eternal.reference.fake_options:Set(2)
                            eternal.reference.lby_mode:Set(1)
                            eternal.reference.freestanding_desync:Set(0)
                            eternal.reference.desync_on_shot:Set(2)
                        elseif state == 2 then
                            eternal.reference.yaw_add:Set(side and -20 or 20)
                            eternal.reference.yaw_modifier:Set(1)
                            eternal.reference.modifier_degree:Set(22)
                            eternal.reference.left_limit:Set(60)
                            eternal.reference.right_limit:Set(60)
                            eternal.reference.fake_options:Set(2)
                            eternal.reference.lby_mode:Set(2)
                            eternal.reference.freestanding_desync:Set(0)
                            eternal.reference.desync_on_shot:Set(1)
                        elseif state == 3 then
                            eternal.reference.yaw_add:Set(0)
                            eternal.reference.yaw_modifier:Set(0)
                            if eternal.menu.anti_aims.main.slow_walk_aa:Get() == 0 then
                                eternal.reference.left_limit:Set(60)
                                eternal.reference.right_limit:Set(60)
                                eternal.reference.fake_options:Set(0)
                                eternal.reference.modifier_degree:Set(0)
                            else
                                eternal.reference.left_limit:Set(60)
                                eternal.reference.right_limit:Set(60)
                                eternal.reference.fake_options:Set(2)
                                eternal.reference.modifier_degree:Set(30)
                            end
                            eternal.reference.lby_mode:Set(1)
                            eternal.reference.freestanding_desync:Set(0)
                            eternal.reference.desync_on_shot:Set(2)
                        elseif state == 4 then
                            eternal.reference.yaw_add:Set(side and -12 or 20)
                            eternal.reference.yaw_modifier:Set(1)
                            eternal.reference.modifier_degree:Set(50)
                            eternal.reference.left_limit:Set(60)
                            eternal.reference.right_limit:Set(60)
                            eternal.reference.fake_options:Set(2)
                            eternal.reference.lby_mode:Set(0)
                            eternal.reference.freestanding_desync:Set(0)
                            eternal.reference.desync_on_shot:Set(2)
                        elseif state == 5 then
                            eternal.reference.yaw_add:Set(-7)
                            eternal.reference.yaw_modifier:Set(1)
                            eternal.reference.modifier_degree:Set(1)
                            eternal.reference.left_limit:Set(GlobalVars.tickcount % 4 > 1 and 18 or 47)
                            eternal.reference.right_limit:Set(GlobalVars.tickcount % 4 > 1 and 18 or 47)
                            eternal.reference.fake_options:Set(3)
                            eternal.reference.lby_mode:Set(0)
                            eternal.reference.freestanding_desync:Set(0)
                            eternal.reference.desync_on_shot:Set(2)
                        end
                    elseif eternal.menu.anti_aims.main.anti_aim_type:Get() == 1 then
                        eternal.reference.yaw_base:Set(eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get() == 0 and 4 or eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get()-1)
                      
                        if state == 1 then
                            eternal.reference.yaw_add:Set(0)
                            eternal.reference.yaw_modifier:Set(1)
                            eternal.reference.modifier_degree:Set(25)
                            eternal.reference.left_limit:Set(60)
                            eternal.reference.right_limit:Set(54)
                            eternal.reference.fake_options:Set(2)
                            eternal.reference.lby_mode:Set(0)
                            eternal.reference.freestanding_desync:Set(0)
                            eternal.reference.desync_on_shot:Set(0)
                        elseif state == 2 then
                            eternal.reference.yaw_add:Set(12)
                            eternal.reference.yaw_modifier:Set(1)
                            eternal.reference.modifier_degree:Set(25)
                            eternal.reference.left_limit:Set(40)
                            eternal.reference.right_limit:Set(40)
                            eternal.reference.fake_options:Set(8)
                            eternal.reference.lby_mode:Set(0)
                            eternal.reference.freestanding_desync:Set(0)
                            eternal.reference.desync_on_shot:Set(0)
                        elseif state == 3 then
                            eternal.reference.yaw_add:Set(9)
                            eternal.reference.yaw_modifier:Set(1)
                            eternal.reference.modifier_degree:Set(25)
                            eternal.reference.left_limit:Set(60)
                            eternal.reference.right_limit:Set(60)
                            eternal.reference.fake_options:Set(0)
                            eternal.reference.lby_mode:Set(0)
                            eternal.reference.freestanding_desync:Set(0)
                            eternal.reference.desync_on_shot:Set(0)
                        elseif state == 4 then
                            eternal.reference.yaw_add:Set(7)
                            eternal.reference.yaw_modifier:Set(1)
                            eternal.reference.modifier_degree:Set(12)
                            eternal.reference.left_limit:Set(48)
                            eternal.reference.right_limit:Set(45)
                            eternal.reference.fake_options:Set(6)
                            eternal.reference.lby_mode:Set(0)
                            eternal.reference.freestanding_desync:Set(0)
                            eternal.reference.desync_on_shot:Set(2)
                        elseif state == 5 then
                            eternal.reference.yaw_add:Set(12)
                            eternal.reference.yaw_modifier:Set(1)
                            eternal.reference.modifier_degree:Set(25)
                            eternal.reference.left_limit:Set(60)
                            eternal.reference.right_limit:Set(54)
                            eternal.reference.fake_options:Set(6)
                            eternal.reference.lby_mode:Set(0)
                            eternal.reference.freestanding_desync:Set(0)
                            eternal.reference.desync_on_shot:Set(2)
                        end
                    elseif eternal.menu.anti_aims.main.anti_aim_type:Get() == 2 then
                        if state == 1 and eternal.menu.anti_aims.builder.settings.still:Get() then
                            eternal.reference.yaw_base:Set(eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get() == 0 and eternal.menu.anti_aims.builder.still.yaw_base:Get() or eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get()-1)
                            eternal.reference.yaw_add:Set(side and eternal.menu.anti_aims.builder.still.yaw_add_left:Get() or eternal.menu.anti_aims.builder.still.yaw_add_right:Get())
                            eternal.reference.yaw_modifier:Set(eternal.menu.anti_aims.builder.still.yaw_modifier:Get())
                            eternal.reference.modifier_degree:Set(eternal.menu.anti_aims.builder.still.modifier_degree:Get())
                            eternal.reference.left_limit:Set(eternal.menu.anti_aims.builder.still.fake_limit_type:Get() == 0 and (eternal.menu.anti_aims.builder.still.fake_limit_left:Get()) or (GlobalVars.tickcount % 4 > 1 and 18 or eternal.menu.anti_aims.builder.still.fake_limit_left:Get()))
                            eternal.reference.right_limit:Set(eternal.menu.anti_aims.builder.still.fake_limit_type:Get() == 0 and (eternal.menu.anti_aims.builder.still.fake_limit_right:Get()) or (GlobalVars.tickcount % 4 > 1 and 18 or eternal.menu.anti_aims.builder.still.fake_limit_right:Get()))
                            eternal.reference.fake_options:Set(eternal.menu.anti_aims.builder.still.fake_options:Get())
                            eternal.reference.lby_mode:Set(eternal.menu.anti_aims.builder.still.lby_mode:Get())
                            eternal.reference.freestanding_desync:Set(eternal.menu.anti_aims.builder.still.freestanding:Get())
                            eternal.reference.desync_on_shot:Set(eternal.menu.anti_aims.builder.still.desync_on_shot:Get())
                        elseif state == 2 and eternal.menu.anti_aims.builder.settings.crouch:Get() then
                            eternal.reference.yaw_base:Set(eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get() == 0 and eternal.menu.anti_aims.builder.crouch.yaw_base:Get() or eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get()-1)
                            eternal.reference.yaw_add:Set(side and eternal.menu.anti_aims.builder.crouch.yaw_add_left:Get() or eternal.menu.anti_aims.builder.crouch.yaw_add_right:Get())
                            eternal.reference.yaw_modifier:Set(eternal.menu.anti_aims.builder.crouch.yaw_modifier:Get())
                            eternal.reference.modifier_degree:Set(eternal.menu.anti_aims.builder.crouch.modifier_degree:Get())
                            eternal.reference.left_limit:Set(eternal.menu.anti_aims.builder.crouch.fake_limit_type:Get() == 0 and (eternal.menu.anti_aims.builder.crouch.fake_limit_left:Get()) or (GlobalVars.tickcount % 4 > 1 and 18 or eternal.menu.anti_aims.builder.crouch.fake_limit_left:Get()))
                            eternal.reference.right_limit:Set(eternal.menu.anti_aims.builder.crouch.fake_limit_type:Get() == 0 and (eternal.menu.anti_aims.builder.crouch.fake_limit_right:Get()) or (GlobalVars.tickcount % 4 > 1 and 18 or eternal.menu.anti_aims.builder.crouch.fake_limit_right:Get()))
                            eternal.reference.fake_options:Set(eternal.menu.anti_aims.builder.crouch.fake_options:Get())
                            eternal.reference.lby_mode:Set(eternal.menu.anti_aims.builder.crouch.lby_mode:Get())
                            eternal.reference.freestanding_desync:Set(eternal.menu.anti_aims.builder.crouch.freestanding:Get())
                            eternal.reference.desync_on_shot:Set(eternal.menu.anti_aims.builder.crouch.desync_on_shot:Get())
                        elseif state == 3 and eternal.menu.anti_aims.builder.settings.slow_walk:Get() then
                            eternal.reference.yaw_base:Set(eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get() == 0 and eternal.menu.anti_aims.builder.slow_walk.yaw_base:Get() or eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get()-1)
                            eternal.reference.yaw_add:Set(side and eternal.menu.anti_aims.builder.slow_walk.yaw_add_left:Get() or eternal.menu.anti_aims.builder.slow_walk.yaw_add_right:Get())
                            eternal.reference.yaw_modifier:Set(eternal.menu.anti_aims.builder.slow_walk.yaw_modifier:Get())
                            eternal.reference.modifier_degree:Set(eternal.menu.anti_aims.builder.slow_walk.modifier_degree:Get())
                            eternal.reference.left_limit:Set(eternal.menu.anti_aims.builder.slow_walk.fake_limit_type:Get() == 0 and (eternal.menu.anti_aims.builder.slow_walk.fake_limit_left:Get()) or (GlobalVars.tickcount % 4 > 1 and 18 or eternal.menu.anti_aims.builder.slow_walk.fake_limit_left:Get()))
                            eternal.reference.right_limit:Set(eternal.menu.anti_aims.builder.slow_walk.fake_limit_type:Get() == 0 and (eternal.menu.anti_aims.builder.slow_walk.fake_limit_right:Get()) or (GlobalVars.tickcount % 4 > 1 and 18 or eternal.menu.anti_aims.builder.slow_walk.fake_limit_right:Get()))
                            eternal.reference.fake_options:Set(eternal.menu.anti_aims.builder.slow_walk.fake_options:Get())
                            eternal.reference.lby_mode:Set(eternal.menu.anti_aims.builder.slow_walk.lby_mode:Get())
                            eternal.reference.freestanding_desync:Set(eternal.menu.anti_aims.builder.slow_walk.freestanding:Get())
                            eternal.reference.desync_on_shot:Set(eternal.menu.anti_aims.builder.slow_walk.desync_on_shot:Get())
                        elseif state == 4 and eternal.menu.anti_aims.builder.settings.move:Get() then
                            eternal.reference.yaw_base:Set(eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get() == 0 and eternal.menu.anti_aims.builder.move.yaw_base:Get() or eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get()-1)
                            eternal.reference.yaw_add:Set(side and eternal.menu.anti_aims.builder.move.yaw_add_left:Get() or eternal.menu.anti_aims.builder.move.yaw_add_right:Get())
                            eternal.reference.yaw_modifier:Set(eternal.menu.anti_aims.builder.move.yaw_modifier:Get())
                            eternal.reference.modifier_degree:Set(eternal.menu.anti_aims.builder.move.modifier_degree:Get())
                            eternal.reference.left_limit:Set(eternal.menu.anti_aims.builder.move.fake_limit_type:Get() == 0 and (eternal.menu.anti_aims.builder.move.fake_limit_left:Get()) or (GlobalVars.tickcount % 4 > 1 and 18 or eternal.menu.anti_aims.builder.move.fake_limit_left:Get()))
                            eternal.reference.right_limit:Set(eternal.menu.anti_aims.builder.move.fake_limit_type:Get() == 0 and (eternal.menu.anti_aims.builder.move.fake_limit_right:Get()) or (GlobalVars.tickcount % 4 > 1 and 18 or eternal.menu.anti_aims.builder.move.fake_limit_right:Get()))
                            eternal.reference.fake_options:Set(eternal.menu.anti_aims.builder.move.fake_options:Get())
                            eternal.reference.lby_mode:Set(eternal.menu.anti_aims.builder.move.lby_mode:Get())
                            eternal.reference.freestanding_desync:Set(eternal.menu.anti_aims.builder.move.freestanding:Get())
                            eternal.reference.desync_on_shot:Set(eternal.menu.anti_aims.builder.move.desync_on_shot:Get())
                        elseif state == 5 and eternal.menu.anti_aims.builder.settings.air:Get() then
                            eternal.reference.yaw_base:Set(eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get() == 0 and eternal.menu.anti_aims.builder.air.yaw_base:Get() or eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get()-1)
                            eternal.reference.yaw_add:Set(side and eternal.menu.anti_aims.builder.air.yaw_add_left:Get() or eternal.menu.anti_aims.builder.air.yaw_add_right:Get())
                            eternal.reference.yaw_modifier:Set(eternal.menu.anti_aims.builder.air.yaw_modifier:Get())
                            eternal.reference.modifier_degree:Set(eternal.menu.anti_aims.builder.air.modifier_degree:Get())
                            eternal.reference.left_limit:Set(eternal.menu.anti_aims.builder.air.fake_limit_type:Get() == 0 and (eternal.menu.anti_aims.builder.air.fake_limit_left:Get()) or (GlobalVars.tickcount % 4 > 1 and 18 or eternal.menu.anti_aims.builder.air.fake_limit_left:Get()))
                            eternal.reference.right_limit:Set(eternal.menu.anti_aims.builder.air.fake_limit_type:Get() == 0 and (eternal.menu.anti_aims.builder.air.fake_limit_right:Get()) or (GlobalVars.tickcount % 4 > 1 and 18 or eternal.menu.anti_aims.builder.air.fake_limit_right:Get()))
                            eternal.reference.fake_options:Set(eternal.menu.anti_aims.builder.air.fake_options:Get())
                            eternal.reference.lby_mode:Set(eternal.menu.anti_aims.builder.air.lby_mode:Get())
                            eternal.reference.freestanding_desync:Set(eternal.menu.anti_aims.builder.air.freestanding:Get())
                            eternal.reference.desync_on_shot:Set(eternal.menu.anti_aims.builder.air.desync_on_shot:Get())
                        elseif state == 6 and eternal.menu.anti_aims.builder.settings.fake_duck:Get() then
                            eternal.reference.yaw_base:Set(eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get() == 0 and eternal.menu.anti_aims.builder.fake_duck.yaw_base:Get() or eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get()-1)
                            eternal.reference.yaw_add:Set(side and eternal.menu.anti_aims.builder.fake_duck.yaw_add_left:Get() or eternal.menu.anti_aims.builder.fake_duck.yaw_add_right:Get())
                            eternal.reference.yaw_modifier:Set(eternal.menu.anti_aims.builder.fake_duck.yaw_modifier:Get())
                            eternal.reference.modifier_degree:Set(eternal.menu.anti_aims.builder.fake_duck.modifier_degree:Get())
                            eternal.reference.left_limit:Set(eternal.menu.anti_aims.builder.fake_duck.fake_limit_type:Get() == 0 and (eternal.menu.anti_aims.builder.fake_duck.fake_limit_left:Get()) or (GlobalVars.tickcount % 4 > 1 and 18 or eternal.menu.anti_aims.builder.fake_duck.fake_limit_left:Get()))
                            eternal.reference.right_limit:Set(eternal.menu.anti_aims.builder.fake_duck.fake_limit_type:Get() == 0 and (eternal.menu.anti_aims.builder.fake_duck.fake_limit_right:Get()) or (GlobalVars.tickcount % 4 > 1 and 18 or eternal.menu.anti_aims.builder.fake_duck.fake_limit_right:Get()))
                            eternal.reference.fake_options:Set(eternal.menu.anti_aims.builder.fake_duck.fake_options:Get())
                            eternal.reference.lby_mode:Set(eternal.menu.anti_aims.builder.fake_duck.lby_mode:Get())
                            eternal.reference.freestanding_desync:Set(eternal.menu.anti_aims.builder.fake_duck.freestanding:Get())
                            eternal.reference.desync_on_shot:Set(eternal.menu.anti_aims.builder.fake_duck.desync_on_shot:Get())
                        else
                            eternal.reference.yaw_base:Set(eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get() == 0 and 1 or eternal.menu.anti_aims.builder.settings.manual_yaw_base:Get()-1)
                            eternal.reference.yaw_add:Set(side and eternal.menu.anti_aims.builder.global.yaw_add_left:Get() or eternal.menu.anti_aims.builder.global.yaw_add_right:Get())
                            eternal.reference.yaw_modifier:Set(eternal.menu.anti_aims.builder.global.yaw_modifier:Get())
                            eternal.reference.modifier_degree:Set(eternal.menu.anti_aims.builder.global.modifier_degree:Get())
                            eternal.reference.left_limit:Set(eternal.menu.anti_aims.builder.global.fake_limit_type:Get() == 0 and (eternal.menu.anti_aims.builder.global.fake_limit_left:Get()) or (GlobalVars.tickcount % 4 > 1 and 18 or eternal.menu.anti_aims.builder.global.fake_limit_left:Get()))
                            eternal.reference.right_limit:Set(eternal.menu.anti_aims.builder.global.fake_limit_type:Get() == 0 and (eternal.menu.anti_aims.builder.global.fake_limit_right:Get()) or (GlobalVars.tickcount % 4 > 1 and 18 or eternal.menu.anti_aims.builder.global.fake_limit_right:Get()))
                            eternal.reference.fake_options:Set(eternal.menu.anti_aims.builder.global.fake_options:Get())
                            eternal.reference.lby_mode:Set(eternal.menu.anti_aims.builder.global.lby_mode:Get())
                            eternal.reference.freestanding_desync:Set(eternal.menu.anti_aims.builder.global.freestanding:Get())
                            eternal.reference.desync_on_shot:Set(eternal.menu.anti_aims.builder.global.desync_on_shot:Get())
                        end
                    end                 
                end
          
        end,
        legit_aa = function(cmd)
            local bomb = EntityList.GetEntitiesByClassID(129)[1]
            if EntityList.GetLocalPlayer():GetActiveWeapon() == nil then return end
          
            local weapon_cn = EntityList.GetLocalPlayer():GetActiveWeapon():GetClassName()
          
            if not (eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.misc.legit_aa:Get()) then
                eternal.vars.anti_aims.permission_to_legit_aa = false
            else
                if weapon_cn == 'CC4' then
                    eternal.vars.anti_aims.permission_to_legit_aa = false
                else
                    if bomb == nil then
                        eternal.vars.anti_aims.permission_to_legit_aa = true
                    elseif bomb ~= nil then
                        if bomb:GetProp('m_vecOrigin'):DistTo(EntityList.GetLocalPlayer():GetEyePosition()) < 100 then
                            eternal.vars.anti_aims.permission_to_legit_aa = false
                        else
                            eternal.vars.anti_aims.permission_to_legit_aa = true
                        end
                    end
                end
            end
          
            if eternal.menu.anti_aims.misc.legit_aa_hotkey:Get() ~= nil then
                if eternal.vars.anti_aims.permission_to_legit_aa == true and Cheat.IsKeyDown(eternal.menu.anti_aims.misc.legit_aa_hotkey:Get()) then
                    eternal.vars.anti_aims.legit_aa = true
                  
                    eternal.reference.pitch:Set(0)
                    eternal.reference.yaw_base:Set(eternal.menu.anti_aims.misc.legit_aa_options:Get(2) == true and 4 or 0)
                    eternal.reference.yaw_add:Set(eternal.menu.anti_aims.misc.legit_aa_options:Get(2) == true and 180 or 0)
                    eternal.reference.yaw_modifier:Set(0)
                    eternal.reference.modifier_degree:Set(0)
                    eternal.reference.left_limit:Set(60)
                    eternal.reference.right_limit:Set(60)
                    eternal.reference.fake_options:Set(eternal.menu.anti_aims.misc.legit_aa_options:Get(1) and 2 or 0)
                    eternal.reference.lby_mode:Set(2)
                    eternal.reference.freestanding_desync:Set(0)
                    eternal.reference.desync_on_shot:Set(0)

                    EngineClient.ExecuteClientCmd('-use')
                    AntiAim.OverridePitch(0)
                else
                  
                    eternal.vars.anti_aims.legit_aa = false
                    eternal.reference.pitch:Set(1)
                end
            else
                eternal.vars.anti_aims.legit_aa = false
                eternal.reference.pitch:Set(1) 
            end   
          
        end,
        edge_yaw = function ()
          
            if not eternal.check(true) or not (eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.main.edge_yaw:Get()) then
                eternal.vars.visuals.indicators.edge_yaw = false
                return
            end
            if  eternal.vars.anti_aims.legit_aa then return end
            local me = EntityList.GetLocalPlayer()
            local angViewAngles = EngineClient.GetViewAngles()
            local origin = Vector.new(me:GetProp('m_vecOrigin').x,me:GetProp('m_vecOrigin').y,me:GetProp('m_vecOrigin').z+90-60*me:GetProp('m_flDuckAmount'))
            local aTraceEnd = {}
            for flYaw = 18, 360, 18 do
                flYaw = eternal.math.normalize_yaw(flYaw)
      
                local angEdge = QAngle.new(0, flYaw, 0)
      
                local vecTraceEnd = origin + Cheat.AngleToForward(angEdge) * 0x60
      
                local traceInfo = EngineTrace.TraceRay(origin, vecTraceEnd, me, 0x200400B)
      
                local flFraction = traceInfo.fraction
                local pEntity = traceInfo.hit_entity
      
                if pEntity and pEntity:GetClassName() == 'CWorld' and flFraction < 0.3 then
                    aTraceEnd[#aTraceEnd+1] = {
                        vecTraceEnd = traceInfo.endpos,
                        flYaw = flYaw
                    }
                end
            end
      
            table.sort(aTraceEnd, function(a, b)
                return a.flYaw < b.flYaw
            end)
      
            local angEdge
      
            if #aTraceEnd >= 2 then
                local vecTraceCenter = eternal.math.lerp_vector(0.5, aTraceEnd[1].vecTraceEnd, aTraceEnd[#aTraceEnd].vecTraceEnd)
      
                angEdge = Cheat.VectorToAngle(origin - vecTraceCenter)
            end
          
            if angEdge then
                local flYaw = angViewAngles.yaw
                local flEdgeYaw = angEdge.yaw
      
                local flDiff = eternal.math.normalize_yaw(flEdgeYaw - flYaw)
      
                if math.abs(flDiff) < 90 then
                    flDiff = 0
                    flYaw = eternal.math.normalize_yaw(flEdgeYaw + 180)
                end

                local flNewYaw = -flYaw

                flNewYaw = eternal.math.normalize_yaw(flNewYaw + flEdgeYaw + 180)

                flNewYaw = eternal.math.normalize_yaw(flNewYaw + flDiff)
      

                for i = 1, 6 do
                    if i == eternal.global_functions.get_state() and eternal.menu.anti_aims.main.edge_yaw_conditions:Get(i) and (eternal.reference.yaw_base:Get() == 4 or eternal.reference.yaw_base:Get() == 1) then
                        AntiAim.OverrideYawOffset(flNewYaw)
                    end
                end

                if eternal.global_functions.get_state() and eternal.menu.anti_aims.main.edge_yaw_conditions:Get(eternal.global_functions.get_state()) and (eternal.reference.yaw_base:Get() == 4 or eternal.reference.yaw_base:Get() == 1)  then
                    eternal.vars.visuals.indicators.edge_yaw = true
                end
            else
                eternal.vars.visuals.indicators.edge_yaw = false
            end
        end,
        leg_movement = function()
            if not eternal.check(true) or not (eternal.menu.anti_aims.main.enabled:Get() and eternal.menu.anti_aims.misc.leg_movement:Get()) then return end
            eternal.reference.leg_movement:Set(math.random(0,2))
        end
    }
  
}


local function adjust_fl()
    local cache = eternal.reference.fl_limit:Get()

    if eternal.reference.hideshots:Get()==true then
        cache = eternal.reference.fl_limit:Get()
        eternal.reference.fl_limit:Set(1)
    else
        eternal.reference.fl_limit:Set(cache)
    end

    eternal.menu.anti_aims.main.dfl:RegisterCallback(function(val)
      
        if val==true and eternal.reference.hideshots:Get() and not eternal.reference.doubletap:Get() then
            cache = eternal.reference.fl_limit:Get()
            eternal.reference.fl_limit:Set(1)
        else
            eternal.reference.fl_limit:Set(cache)
        end
    end)

    handlers:add("destroy" , function()

        eternal.reference.fl_limit:Set(cache)
    end , "sdfsdf")

    eternal.reference.hideshots:RegisterCallback(function(val)
        if not eternal.menu.anti_aims.main.dfl:Get() then return end
        if val==true then
            cache = eternal.reference.fl_limit:Get()
            eternal.reference.fl_limit:Set(1)
        else
            eternal.reference.fl_limit:Set(cache)
        end
  
    end)

end


local function extended_desync()

    handlers:add("pre_prediction" , function(cmd)
        if not eternal.menu.anti_aims.main.enabled:Get() or not eternal.menu.anti_aims.main.roll_aa:Get()  then return end
        local lp = EntityList.GetLocalPlayer()

        if #lp:GetProp("m_vecVelocity") >10 and not eternal.reference.slow_walking:Get() then return end

        local side = AntiAim.GetInverterState() and 1 or -1
        cmd.viewangles.roll = 44*side

    end , "extended_desync")

end

local helpers = {
    normalize_angle = function (angle)
        if angle < -180 then angle = angle + 360 end
        if angle > 180 then angle = angle - 360 end
        return angle
    end, 
     calc_angle = function(src, dst)
        local vecdelta = Vector.new(dst.x - src.x, dst.y - src.y, dst.z - src.z)
        local angles = QAngle.new(math.atan2(-vecdelta.z, vecdelta:Length2D()) * 180.0 / math.pi, (math.atan2(vecdelta.y, vecdelta.x) * 180.0 / math.pi), 0.0)
        return angles
    end,
}

local anti_backstab = function()
    local get_closest_enemy = function()
        local p = nil
        local all_players = EntityList.GetPlayers()
        local lp_origin = EntityList.GetLocalPlayer():GetHitboxCenter(0)
        local dist = math.huge
        for _,player in pairs(all_players) do
            if not player or player:IsDormant() or player:IsTeamMate() or not player:IsAlive() or player:GetHitboxCenter(0):DistTo(lp_origin)>160 or not player:GetActiveWeapon() or not player:GetActiveWeapon():IsKnife() then goto c end

            local traced = EngineTrace.TraceRay(lp_origin ,player:GetHitboxCenter(0) , EntityList.GetLocalPlayer() ,  16395)
      

            if player:GetHitboxCenter(0):DistTo(lp_origin) < dist and traced.fraction > 0.9 then
                dist = player:GetHitboxCenter(0):DistTo(lp_origin)
                p = player
            end
            ::c::
        end


        return p
    end

  
    handlers:add("prediction" , function(args)
        if not eternal.menu.anti_aims.main.enabled:Get() or not eternal.menu.anti_aims.main.abstab:Get()  then return end

        if not get_closest_enemy() then return end

        local lp_origin = EntityList.GetLocalPlayer():GetProp("m_vecOrigin")
        local e_origin = get_closest_enemy():GetProp("m_vecOrigin")
        local angle = helpers.normalize_angle(helpers.calc_angle(lp_origin, e_origin).yaw) - args.viewangles.yaw
        AntiAim.OverrideYawOffset(angle - 180)
        eternal.reference.yaw_base:Set(1)
    end,"abstab")

end
anti_backstab()
eternal.menu.anti_aims.misc.anti_bruteforce_phases.add:RegisterCallback(eternal.functions.anti_aims.handle_anti_bruteforce_phases.add)
eternal.menu.anti_aims.misc.anti_bruteforce_phases.remove:RegisterCallback(eternal.functions.anti_aims.handle_anti_bruteforce_phases.remove)
eternal.menu.config.import:RegisterCallback(eternal.functions.config.import)
eternal.menu.config.export:RegisterCallback(eternal.functions.config.export)
eternal.menu.config.default:RegisterCallback(eternal.functions.config.default)
handlers:add('draw',function()
    eternal.functions.menu()
    eternal.functions.visuals.scope_lines()
    eternal.functions.visuals.holo_panel()
    eternal.functions.visuals.keybinds()
    eternal.functions.visuals.border()
    eternal.functions.visuals.viewmodel_in_scope()
    eternal.functions.visuals.watermark()
    eternal.functions.visuals.arrows()
    eternal.functions.visuals.indicators()
    eternal.functions.visuals.pop_up()
    eternal.functions.visuals.damage_indicator()
    eternal.functions.anti_aims.handle_anti_bruteforce()
    eternal.functions.anti_aims.main()
    eternal.functions.anti_aims.edge_yaw()
end , "draw")

--teleport_cross
handlers:add('events',function(e)
    eternal.functions.anti_aims.miss_detect(e)
    eternal.functions.visuals.trashtalk(e)
end , "events")
handlers:add('frame_stage',function()
    eternal.functions.anti_aims.leg_movement()
end , "fsn")

handlers:add('createmove',function(cmd)
    eternal.global_functions.update_fake_lag(cmd)
    eternal.functions.anti_aims.legit_aa(cmd)
    eternal.functions.anti_aims.teleport_cross()

end , "on_cm")

handlers:add('registered_shot',function(e)
    eternal.functions.visuals.registered_shot(e)
end , "regshot")

extended_desync()
adjust_fl()
handlers:update()
Посмотреть вложение 202850
@demyaha ;)
Это хоявчик новый или что?
 
Назад
Сверху Снизу