0% found this document useful (0 votes)
42 views

Mytools Beta - Lua

Uploaded by

lowekwiloch77
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

Mytools Beta - Lua

Uploaded by

lowekwiloch77
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 78

-- DOWNLOADED FROM ROLLMOPS

-- KOSTIAS#7780
local render_world_to_screen, rage_exploit, ui_get_binds, ui_get_alpha,
entity_get_players, entity_get, entity_get_entities, entity_get_game_rules,
common_set_clan_tag, common_is_button_down, common_get_username, common_get_date,
ffi_cast, ffi_typeof, render_gradient, render_text, render_texture,
render_rect_outline, render_rect, entity_get_local_player, ui_create, ui_get_style,
math_floor, math_abs, math_max, math_ceil, math_min, math_random,
utils_trace_bullet, render_screen_size, render_load_font,
render_load_image_from_file, render_measure_text, render_poly, render_poly_blur,
common_add_notify, common_add_event, utils_console_exec, utils_execute_after,
utils_create_interface, utils_trace_line, ui_find, entity_get_threat,
string_format, hooked_function, entity_get_player_resource, common_get_unixtime,
table_insert = render.world_to_screen, rage.exploit, ui.get_binds, ui.get_alpha,
entity.get_players, entity.get, entity.get_entities, entity.get_game_rules,
common.set_clan_tag, common.is_button_down, common.get_username, common.get_date,
ffi.cast, ffi.typeof, render.gradient, render.text, render.texture,
render.rect_outline, render.rect, entity.get_local_player, ui.create, ui.get_style,
math.floor, math.abs, math.max, math.ceil, math.min, math.random,
utils.trace_bullet, render.screen_size, render.load_font,
render.load_image_from_file, render.measure_text, render.poly, render.poly_blur,
common.add_notify, common.add_event, utils.console_exec, utils.execute_after,
utils.create_interface, utils.trace_line, ui.find, entity.get_threat,
string.format, nil, entity.get_player_resource, common.get_unixtime, table.insert
local clipboard = require 'neverlose/clipboard'
local base64 = require 'neverlose/base64'
local drag_system = require 'neverlose/drag_system'
local smoothy = require 'neverlose/smoothy'
local get_defensive = require 'neverlose/get_defensive'
local md5 = require 'neverlose/md5'
local inspect = require 'neverlose/inspect'
local events = require 'neverlose/events'
local table_clear = require 'table.clear'
local function on_load() cvar.clear:call() print_raw('\a'..ui_get_style('Link
Active'):to_hex()..'mytools \aDEFAULTRenewed\nLast update: 31.08') end;on_load()
_DEBUG = true

ffi.cdef[[
typedef void*(__thiscall* get_client_entity_t)(void*, int);

typedef struct {
char pad_0000[20];
int m_nOrder; //0x0014
int m_nSequence; //0x0018
float m_flPrevCycle; //0x001C
float m_flWeight; //0x0020
float m_flWeightDeltaRate; //0x0024
float m_flPlaybackRate; //0x0028
float m_flCycle; //0x002C
void *m_pOwner; //0x0030
char pad_0038[4]; //0x0034
} c_animlayers;
]]

local function this_call(call_function, parameters) return function(...) return


call_function(parameters, ...) end end
local function gradient_textz(r1, g1, b1, a1, r2, g2, b2, a2, text) local output =
'' local len = #text-1 local rinc = (r2 - r1) / len local ginc = (g2 - g1) / len
local binc = (b2 - b1) / len local ainc = (a2 - a1) / len for i=1, len+1 do output
= output .. ('\a%02x%02x%02x%02x%s'):format(r1, g1, b1, a1, text:sub(i, i)) r1 = r1
+ rinc g1 = g1 + ginc b1 = b1 + binc a1 = a1 + ainc end return output end
local clamp = function(b,c,d)local e=b;e=e<c and c or e;e=e>d and d or e;return e
end
function lerp(time,a,b) return a * (1-time) + b * time end
function contains(table, element) for i = 1, #table do if table[i] == element then
return true end end end
local ifHashed = function(tbl, val) for n,v in pairs(tbl) do if val == v then
return true end end return false end

files.create_folder("nl/scripts/mytools")
local entity_list_003 = ffi.cast(ffi.typeof("uintptr_t**"),
utils.create_interface("client.dll", "VClientEntityList003"))
local get_entity_address = this_call(ffi.cast("get_client_entity_t",
entity_list_003[0][3]), entity_list_003)
local engine_client = ffi.cast(ffi.typeof('void***'),
utils.create_interface('engine.dll', 'VEngineClient014'))
local console_is_visible = ffi.cast(ffi.typeof('bool(__thiscall*)(void*)'),
engine_client[0][11])
local font, verdana = render.load_font('Calibri Bold', vector(25, 22, -1), 'a, d'),
render.load_font("Verdana", 20, 'a')
ui.find("Miscellaneous", "Main", "Other", "Weapon Actions"):set('Quick Switch',
'Auto Pistols')
local current = ui.find("Miscellaneous", "Main", "Other", "Weapon Actions"):get()
local active_color, color_link = ui_get_style('Link Active'):to_hex(),
ui_get_style('Link'):to_hex()
local anim_tbl, easing_table = {}, smoothy.new(anim_tbl)
local hitlog, modify = {}, {}
local disabled_windows, windows_table = {}, {}
check_windows = function() windows_table = {} for i = 1, 4 do if
(ui.find("Miscellaneous", "Main", "Other", "Windows"):get()[i] ~= nil) and not
contains(disabled_windows, ui.find("Miscellaneous", "Main", "Other",
"Windows"):get()[i]) then table.insert(windows_table, ui.find("Miscellaneous",
"Main", "Other", "Windows"):get()[i]) end end ui.find("Miscellaneous", "Main",
"Other", "Windows"):set(windows_table) end

modify.math_breathe = function(offset, multiplier) return


math.abs(math.sin(globals.realtime * (multiplier or 1) % math.pi + (offset or 0)))
end
modify.typing_text = function(s, callback) num, length = 0, #s:gsub('[\128-\191]',
'') result = '' for char in s:gmatch('.[\128-\191]*') do num = num + 1 factor = num
/ length result = string_format('%s\a%s%s', result, callback(num, length, char,
factor):to_hex(), char) end return result end
modify.gradient_text = function(s, a, b) return modify.typing_text(s, function(num,
length, char, factor) return a:lerp(b, factor) end) end
modify.gradient = function(s, a, b, t) return modify.typing_text(s, function(num,
length, char, factor) interpolation = modify.math_breathe(factor, t) return
a:lerp(b, interpolation) end) end
modify.static_gradient = function(s, clr1, clr2) return modify.gradient_text(s,
clr1, clr2) end

local render_interpolate_string = function(name, position, font, text_color, flags,


...)
local text = table.concat({...})

if anim_tbl[name] == nil then


anim_tbl[name] = 0
easing_table = smoothy.new(anim_tbl)
end
local text_size = easing_table(.1, { [name] = render.measure_text(font,
nil, ...)})[name]

local normal_size = render.measure_text(font, nil, ...)

render.push_clip_rect(vector(position.x - normal_size.x, position.y -


text_size.y/2), vector(position.x + text_size.x/2, position.y + text_size.y/2),
true)
render.text(font, vector(position.x - text_size.x/2, position.y -
text_size.y/2), text_color, flags, ...)
render.pop_clip_rect()
end

local function get_type(value)


if type(getmetatable(value)) == 'table' and value.__type then
return value.__type.name:lower()
end

if type(value) == 'boolean' then


value = value and 1 or 0
end

return type(value)
end

local ctx = new_class()


:struct 'cheat' {
screen_size = render_screen_size(),
version = 'Nightly',
username = common_get_username(),
}

:struct 'impt' {
play_sound = function(name , volume)
local IEngineSoundClient = ffi_cast("void***" ,
utils_create_interface("engine.dll", "IEngineSoundClient003")) or error("Failed to
find IEngineSoundClient003!")
local play_sound_fn = ffi_cast("void(__thiscall*)(void*, const char*,
float, int, int, float)",IEngineSoundClient[0][12])

return play_sound_fn( IEngineSoundClient, name , volume , 100 ,0,0)


end
}

:struct 'menu' {
var_update = {
active_color = nil,
link = nil,
},

init = function(self)

local configs = ui_create('🏠 Home', '🌐 \aFFFFFFFFCloud Configs', 2)


local info_group = ui_create(' Home', 'ℹ️\aFFFFFFFFInformation', 1)
local local_configs = ui_create('🏠 Home', '🏷 \aFFFFFFFFLocal Configs',
1)
local antiaim_group = ui_create('🎯 Anti-Aim', '🧬 \aFFFFFFFFAnti-aims',
1)
local antiaims_builder_tab = ui_create('🎯 Anti-Aim', '⚙ \aFFFFFFFFAnti-
aim builder', 2)
local antiaims_configs_group = ui_create('🎯 Anti-Aim', '📁 \
aFFFFFFFFYour Presets', 2)
local misc_group = ui_create('📌 Other', '🛠 \aFFFFFFFFMisc', 2)
local rage_group = ui_create('📌 Other', '🧨 \aFFFFFFFFRagebot', 1)
local visuals_group = ui_create('📌 Other', '🖌 \aFFFFFFFFVisuals', 1)
local text = info_group:label("")

events.pre_render:set(function()
local current_colors = {
active_color = ui_get_style()["Link Active"],
link = ui_get_style()["Link"]
}

if current_colors.link ~= self.var_update.link or
current_colors.active_color ~= self.var_update.active_color then
events.on_style_change:call()
end

self.var_update = current_colors
end)

local global do
global = {}

local config_data = files.read('nl/scripts/mytools/mytools.config')


local success, config_data = pcall(function()
return json.parse(config_data)
end)

if not success or #config_data == 0 then


config_data = {'\aCBC9C9FFNothing there. Create preset.'}
else
local name_list = {}
for i=1, #config_data do
table.insert(name_list, config_data[i].name)
end

config_data = name_list
end

global.preset_list = antiaims_configs_group:list('', config_data)


global.preset_name = antiaims_configs_group:input('Name: ')
global.save_preset = antiaims_configs_group:button('', function()
self.config_system:save() end, true)
global.delete_preset = antiaims_configs_group:button('',
function() self.config_system:delete() end, true)
global.load_preset = antiaims_configs_group:button('
Load ', function() self.config_system:load() end)
global.import_preset = antiaims_configs_group:button('',
function() self.config_system:import() end, true)
global.export_preset = antiaims_configs_group:button('',
function() common_add_notify('mytools', '\a89F2CAFFsuccessfully exported your
config') self.impt.play_sound('physics/wood/wood_plank_impact_hard4.wav', 0.12)
self.config_system:export() end, true)
global.import_preset1 = local_configs:button(' Import',
function() self.config_system:import() end, true)
global.export_preset1 = local_configs:button(' Export',
function() common_add_notify('mytools', '\a89F2CAFFsuccessfully exported your
config') self.impt.play_sound('physics/wood/wood_plank_impact_hard4.wav', 0.12)
self.config_system:export() end, true)

--global_config
--global.fnay_label = configs_group:label("")
global.load_defauls = local_configs:button("✅ \aFFFFFFFFDefault
Config", function()
self.config_system:import('[mytools]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
VJWkN/
VBZJWlFFRRYMFENBRRoaBxoGHAxMF05WXkUVDgJ4VUZFXFQWRgwVREFUQRoUVE5DXUFfWFNoWlVeWFIEUhU
ZAkFSUhUOEBkDXRpCAlgFTVISGhRSAGFUWRcWDBRBQVUaGhVVWBVJVlxNRGxCQl1MU1ZSFBUCQAVSFQoQGF
NdGk4CWVVNUxcaFX5BXFEWE0lQXVQXEwIbFlRWUQIMG0FYEElWWU1FPEJDXExTUVIUGQJBWVIVDgNZDgdID
EwRTlZZRRUJAnlfRkUBVBdiABZBDBRBQVUWGhRUTkNRQV5ZRT5CQlxMU1ZSFRgCQVJSFAMQGFRdG0sCWAJN
UxcaFXJBXVAAWEhUXltYEgAXFwwVR0FVFhoVUk5CUEFfCVNoUlVfD0RTRwIbFlZXRwINYwJ9XUIVRUUXfUo
fWxVaQVpWAgwbZFMIQU4QVF8AS0UVABUYAkJUQhUCAlZaQghBXlhTaFFVXlhEUkECGhtWVxYCDQcOBh4MTR
dOVllFFA8Cf1FEU1FYQQAVGQJDUkIVDgJWXVRfWElbF39VRUlaB0VEFwwVQkFEFxpRWUxEUUtNWxVbQVpWA
g0WbVhXRRYZAhpGVFZSAgxBQVhBSVZdTUVqQkJRTFNRREMMFUNBRREaFWdUVkdJVRtdGh8CWVFNU0EaFGxB
QBRtWVFJUVFFRRQWQwwVQUFVERoVVU5DWkFfVFNpBlVeXERTEQIaF1ZWRgIMF2NSVlRSRhQcDEwXTlZeRRU
OAnZdVF8UQV8JAF5eVlMRVFNHABcWDBRBQVUaGhVVWBVJVlxNRGxCQl1MU1ZSFBUCQAVSFQpGVw9TU0gMTB
ZOV1hFFQICdVVFBAAXFwwVR0FVFhoVUk5CUEFfCVNoUlVfD0RTRwIbFlZXRwINGmFDFGIAUlBQVBVODEwWT
lZeRRQDAmUBVENZTlEQABYXDBVAQVQXGhVZTkNdVwhNRGpCQlpMU1FSFR8CQFhSFF4Cc1VGVxZMQhddG08C
WFRNUhoaFXtQB1NSQQAUAgAXFgwVR0FUGxoUBU5DWUFfDlNpV1VeWERTRwIbGlZWRhRbDQ8FDgdODEwWTlZ
eRRQDAnMKQVVcRRYgT1hRSUNdT1gVABUUAkNVVEMaFVROQ1pBXllTaFFVX1VEUxYCGxJWVxECDEFSQlFdGk
4CWVlNUhYMQ3BeQUNfEwAVGAJDUkIUAwJXClReUUlbEH9UQElbUEVEFwwVTkFFFgxDZFhCThVODEwWTlZeR
RQDAnAWRVJDVFcNRBZxcxcUAhoXVFZaAg0WVw9UXlRJWkB/
VUFJW1dFRBsMFBJBRRIaFCxGUBddG08CWFRNUhoaFW1XFgAXFwwVR0FVFhoVUk5CUEFfCVNoUlVfD0RTRwI
bFlZXRwINGmJWV10WQUVRAkofWxVaQVpWAgwbZlcPRRdcRVAXABYXDBVAQVQXGhVZTkNdVwhNRGpCQlpMU1
FSFR8CQFhSFF4VDx4QS09bFFtBWlECDBcTF29BThQWQwwVQUFVERoVVU5DWkFfVFNpBlVeXERTEQIaF1ZWR
gIMBQ4HRQxMFlgATVIXGhVxT1NNAG5SVxYZAhpGVFZSAgxBQVhBSVZdTUVqQkJRTFNRREMMFUNBRREaQ0ZV
Uk4MTRtOVwlFFQoCAkN3V0wAFxYMFEFBVRoaFVVYFUlWXE1EbEJCXUxTVlIUFQJABVIVChAYU10aTgJZVU1
TFxoVDQBgVU9BABUZAkNSQhUOAlZdVF9YSVsXf1VFSVoHRUQXDBVCQUQXGgcWEEoYTUNOVlhFFQkCblVXF3
5PUlw
AFkYMFURBVEEaFFROQ11BX1hTaFpVXlhSBFIVGQJBUlIVDgJzVkZXTExCRl0bSwJYAk1TFxoVBgBhVFkXGA
IbFkIAQhUPAlZdVF5VSVpAf1RMSVoARUUSDBQVQUQXGgcaEEsZWxVWQVpRFFsCZEJBRxNDWFlQVkdJVFVFF
hNJQ1gAXw1WU0dUUkYAFhcMFUxBVRYMQ0FZQUlWWk1Ea0JCWkxSXFIUSAJBUVIUWUZXWVNSSQxNF05WVUUV
DhQuRlFGRUMTAwUUABUfAkJYQhReAlZeVF8CSVtGf1VBSVpRRUUaDBVCVxMCDQUOB04MTBZOVl5FFAMCeQJ
GRFVUFkMCGhdUVlYCDBdBWUxJVl1bEn9VQElbV0VFFgwVRUFEGxoGShBKHFsUDUFbUAINFhEWYkFOGAAVGB
QVQVUXGhVSTkNdQV5eU2lbVV8IRFJCAhpBVldHAg0EDgZIDEwaTlZZU0MaFXNBXFYARV1HX0cAFhkCGkZUV
lICDEFBWEFJVl1NRWpCQlFMU1FEQwwVQ0FFERoCDA4HTgxNG05XCUUVCgJ5BUZFUFQXZgAWFQIbGlRWVhRb
AlZbVF5SSVpHf1VGSVpdRURGDBVGQURBGgYbEEoYWxRbQVpdAg0WcABLUhVPR0dJWFpTFxMAFBUCQgVCFQo
CVw1UX1RJWkd/
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
W0Z/
VU1JW1BTEwIbF1ZWQQINFmNSXVRTSwJLSFsVXkFbBgIMF2FZQEkbVElaGElZQlMTVFJHABcTABUYAkNSQhQ
DAlcKVF5RSVsQf1RASVtQRUQXDBVOQUUWDAdBW0ZFSh9bFVpBWlYCDBtiVxdFFxAAFkEMFEFBVRYaFFROQ1
FBXllFPkJCXExTVlIVGAJBUlIUAwJ3EABjUVJRBlQUSAxMFk5XWEUVAgJkUUIVSVlSUxcTABcWDBVHQVQbG
hQFTkNZQV8OU2lXVV5YRFNHAhsaVlZGFFsCc1BGVkZMQxZdG0gCWFhNU0YaFX9GUBBFQhUDBhQAFhUCGxpU
VlYUWwJWW1ReUklaR39VRklaXUVERgwVRkFEQRobAhAZBF0aTgJZWU1SFgxDZVlUQltWAHRbTlNaVF9WThZ
EABcSDBQXQVQXGhVVTkJcQV5VU2hWQwhMU1BSFR8CQVVSFQlURExFS0hbFV5BWwYCDBdwXkBDXhUAFxgCGx
ZCAEIVDwJWXVReVUlaQH9UTElaAEVFEgwUFUFEFxoVcE9BWwJKFFsVWlcMRRUPAnFBRVJHVFZdRBZ9cxZEA
BcSDBQXQVQXGhVVTkJcQV5VU2hWQwhMU1BSFR8CQVVSFQkCeV9GFBkMTBJOVw5FFA8CblVXFhUAFxoMFUBX
AwINF0FZR0lWXU1EbEJDUExSAVIVHAJAAlIUDwJ1VUNdQkFFXAJKGE1DTlZYRRUJAnFVS1ITTFNfVBZEABc
SDBQXQVQXGhVVTkJcQV5VU2hWQwhMU1BSFR8CQVVSFQkWBhcQS0hbFV5BWwYCDBcTF2NBTxUAFxgCGxZCAE
IVDwJWXVReVUlaQH9UTElaAEVFEgwUFUFEFxoHGhBLGVsVVkFaURRbAnVaRE4TeVZDABcTABQVAkIFQhUKA
lcNVF9USVpHf1RASVtcRUUWGkNWVkcCDUdSQlFdG0gCWFhNU0YaFQQAYQJZFhUAFxYMFEFBVRoaFVVYFUlW
XE1EbEJCXUxTVlIUFQJABVIVChAYU10aTgJZVU1TFxoVDQBgVU9BABcVAhsRVFZWAg0RQVhNSVcNTURvQkM
KTFJQUhUYAkBUUhUCEBkES01bFVtBWlYCDRZ5VkQAe1ZEU0QAFxACGkFUV1cCDRZBWEFJVlFNRGtUFElbUU
VFEQwVQkFFERoUfUVQBVVbRAJLT1sUW0FaUQIMFxIXb0FOFBZBABUZAkNSQhUOAlZdVF9YSVsXf1VFSVoHR
UQXDBVCQUQXGgcWEEoYTUNOVlhFFQkCZENBRxNDWVRQVxBJVVxFFhRJQl0AXlpWU0dUUkoAFxQWQwwVQUFV
ERoVVU5DWkFfVFNpBlVeXERTEQIaF1ZWRgIMU0FbS0VKGE1DTlZYRRUJAnhSRkRWVBYaEhZEABcSDBQXQVQ
XGhVVTkJcQV5VU2hWQwhMU1BSFR8CQVVSFQkQGAldGh8CWVFNU0EaFHpGUUdFQhUAFxgCGxZCAEIVDwJWXV
ReVUlaQH9UTElaAEVFEgwUFUFEFxoHGhBLGVsVVkFaURRbAgYVd1ZKABcUABUfAkJYQhReAlZeVF8CSVtGf
1VBSVpRRUUaDBVCVxMCDQUOB04MTBZOVl5FFAMCcAVLUhBSXwRIQhUAFxQAFBkCQ1lCFQ4UAE5DXEFeXlNo
VlVeX0RTSwIaRlZWQgIMVhgYBV0bTwJYVE1SGhoVe1AHU1JBAGUTABcUABUfAkJYQhReAlZeVF8CSVtGf1V
BSVpRRUUaDBVCVxMCDQUOB04MTBZOVl5FFAMCcAVLUhBPRhdJWVtTFxQAFhUCGxpUVlYUWwJWW1ReUklaR3
9VRklaXUVERgwVRkFEQRptF2peQFRTRwJqRQxMFlgATVIXGhV3RVtVWRdHSVVSUxZEABcQAhpBVFdXAg0WQ
VhBSVZRTURrVBRJW1FFRREMFUJBRREaARcQS0hbFV5BWwYCDBdoXlBEU1sAFxgAFxYaQ1RWVwINEUFZQElW
Wk1FZkJDDUxTVVIUTwJAVFIVDkZXWVNSRQxMFlgATVIXGhV+T1NRABcTABYbDBQQQVUSGhQCTkJcQV5ZU2l
XVV5URFJGFE0CQVRSFQkCZEBBQ1pDFEQMTUZOVl1FFFkCb1RXF3lPUlxGXl1SFxQWQQAVGQJDUkIVDgJWXV
RfWElbF39VRUlaB0VEFwwVQkFEFxoVe0VZQFMTAkoZWxVdQVpRAg0RYVhNSRsFSVoQSVgVRURBRUUUABYVA
BUUAkNVVEMaFVROQ1pBXllTaFFVX1VEUxYCGxJWVxECDFNBW0dFSxlbFVZBWlEUWwJ1VFNSEwAXFAAVHwJC
WEIUXgJWXlRfAklbRn9VQUlaUUVFGgwVQlcTAg0XYUMTdFZGR1JHAksVWxQKQVpVAgxBc1NBVF5aR0UVABc
YABUYFBVBVRcaFVJOQ11BXl5TaVtVXwhEUkICGkFWV0cCDRZkU1NBQlRUFUkaGgJZVE1SERoVe0ZRQEVCGQ
MHRAAXEAAUTwJCVEIVDgJXW1ReWUlaR2kDVV5ZRFJBAhsWVlZBAgwUGAZKEEocWxQNQVtQAg0WZVhUQltdA
HRbWAVJQ1xPWRMAFxQAFR8CQlhCFF4CVl5UXwJJW0Z/
VUFJWlFFRRoMFUJXEwINQVJCVl0bTwJZUk1TGxoUNElDU0gWQwAWFQIbFlRXVwINGkFZQF8ASVpGf1VGSVt
QRUURDBRPQURGGhV0T0ENAksZWxVaQVtQAg0aZkVRUxJUVltEF3dzFxQAFxMCGhtUVwYCDRJBWBdJV1xNRG
tCQ1xMU11SFRgUF0FFFxoVfEZRFl0bSAJYWE1TRhoVaUFBQwAWFQAVGAJCVEIVAgJWWkIIQV5YU2hRVV5YR
FJBAhobVlcWAg0SYlcAS0FUUlMWXRpOAllZTVIWDENmVl5FF19FUUAAFxMAFhsMFBBBVRIaFAJOQlxBXllT
aVdVXlREUkYUTQJBVFIVCRUPGhBKH1sUV0FbAQINEhMWNEFPFQAXFAAUGQJDWUIVDhQATkNcQV5eU2hWVV5
fRFNLAhpGVlZCAgxTDgZIDEwWTldYRRUCAnVbUhgAblRXFxMAFxQCGxFUV1sCDEZBWURJVwpNRWpCQl1MUl
BSFRQCQVVEQxpDR1VSTgxMFk5WXkUUAwICRHdWSQAWQwAWFwwVQEFUFxoVWU5DXVcITURqQkJaTFNRUhUfA
kBYUhReEBkAXRoYAlhUTVIWGhQAAGBZWRcUFkEAFRkCQ1JCFQ4CVl1UX1hJWxd/
VUVJWgdFRBcMFUJBRBcaBxYQShhNQ05WWEUVCQJuVVcXfk9SXAAWRAAXEgwUF0FUFxoVVU5CXEFeVVNoVkM
ITFNQUhUfAkFVUhUJAnJcRlcRTEMSXRoYAlhUTVIWGhQHAGBZWRcUFkEAFRkCQ1JCFQ4CVl1UX1hJWxd/
VUVJWgdFRBcMFUJBRBcaBxYQShhNQ05WWEUVCQJkQ0FHE0NZVFBXEElVXEUWFElCXQBeWlZTR1RSSgAXFBZ
BAhsXVFZRAg0WQVlHSVdQTUU7QkJZTFIGUhQZAkFVUhQPRlZUU1JJGhoCWVRNUhEaFXtGUUBFQhkDBEQAFx
AAFE8CQlRCFQ4CV1tUXllJWkdpA1VeWURSQQIbFlZWQQIMCQ4GGQxMEk5XDkUUDwJ4UkZFUFQXGAAXFBRNA
kNUQhUJAlZaVF5SSVtKf1QRSVtURURBDBRDQUUWGgYbEEoUWxVaVwxFFQ8CBhN3Vk0AFxMAFhsMFBBBVRIa
FAJOQlxBXllTaVdVXlREUkYUTQJBVFIVCRAZBF0bSAJYWE1TRhoVdkFdBgBEXEdfQAAWFQAXGAIbFkIAQhU
PAlZdVF5VSVpAf1RMSVoARUUSDBQVQUQXGgIMDgZIDEwaTlZZU0MaFXpGUUBFQxRyFxMAFhkAFEgCQ1FCFF
kCV1tUXlVJW0Z/
VU1JW1BTEwIbF1ZWQQINBA4HTgxNG05XCUUVCgJwAktTFU9HQElZW1MXGAAXFBZDDBVBQVURGhVVTkNaQV9
UU2kGVV5cRFMRAhoXVlZGAgxufUoUWxVaVwxFFQ8Cc1ZMVk0AQ1pDXUoAFkQAFxACGkFUV1cCDRZBWEFJVl
FNRGtUFElbUUVFEQwVQkFFERoBFxBLSFsVXkFbBgIMF2heUERTWwAXGAAXFBRNAkNUQhUJAlZaVF5SSVtKf
1QRSVtURURBDBRDQUUWGlBUTERdXRtPFA9BWlACDRFtWFBFFxMAFhkAFEgCQ1FCFFkCV1tUXlVJW0Z/
VU1JW1BTEwIbF1ZWQQINFnNDUlRfWgJLSFsVXkFbBgIMF3lWQwB7WkReXklSRhZBABcVABUfAkNVQhUJAld
XVF8FSVpDf1QWSVpRRUUWDBRDQUUaGhV3Uw9UUkcCSh9bFVpBWlYCDBthWBBJGlFJW0NJWENFRUBFRBUAFx
gAFxYaQ1RWVwINEUFZQElWWk1FZkJDDUxTVVIUTwJAVFIVDkZXWVNSRQxMFlgATVIXGhVxQURRABcTABYZA
hpGVFZSAgxBQVhBSVZdTUVqQkJRTFNRREMMFUNBRREaFXVUF2dBRF5FQkZdG0sCWAJNUxcaFWdFQkFJWV9T
FxQWQQAXFwwVR0FVFhoVUk5CUEFfCVNoUlVfD0RTRwIbFlZXRwINGmRSUlcUTEMXXRtIAllVTVIRGhR2RlA
XRUMQAwdDABYVABcWDBRBQVUaGhVVWBVJVlxNRGxCQl1MU1ZSFBUCQAVSFQoNDlMOBkgMTBZOV1hFFQICcl
pXA0xSFWNYXUReQElYXQAWGQAWRAIbElRXAQIMF0FZQElXXE1EZ0JCXVoFRUUXDBVFQUUWGkNBVVNEDE1GT
lZdRRRZAmZcVFRcABYVABcYAhsWQgBCFQ8CVl1UXlVJWkB/
VExJWgBFRRIMFBVBRBcaFXBPQVsCShRbFVpXDEUVDwJxQUVSR1RWXUQWfXMWRAAXEAAUTwJCVEIVDgJXW1R
eWUlaR2kDVV5ZRFJBAhsWVlZBAgwbb1ACAkocWxQNQVtQAg0WeVdCABcYABcUFE0CQ1RCFQkCVlpUXlJJW0
p/
VBFJW1RFREEMFENBRRYaFHdBVFNXVkZSQ10bTgJZUk1SFhoVdUFdXABaAUZDEAAWQwAWFwwVQEFUFxoVWU5
DXVcITURqQkJaTFNRUhUfAkBYUhReFQ8eEEtPWxRbQVpRAgwXExdvQU4UFkEAFxUCGxFUVlYCDRFBWE1JVw
1NRG9CQwpMUlBSFRgCQFRSFQIQGQRLTVsVW0FaVgINFmJYV1kWYEFBRAAXEAAWQQwUQUFVFhoUVE5DUUFeW
UU+QkJcTFNWUhUYAkFSUhQDVEQRRUocWxQNQVtQAg0WFBZiQU4YABcUFkECGxdUVlECDRZBWUdJV1BNRTtC
QllMUgZSFBkCQVVSFA8QGQhdG08UD0FaUAINERUXY0FOEwAWGQAWRgwVREFUQRoUVE5DXUFfWFNoWlVeWFI
EUhUZAkFSUhUOEBkDXRpCAlgFTVISGhQ6QUEVbVhQRRYVABcYABUYFBVBVRcaFVJOQ11BXl5TaVtVXwhEUk
ICGkFWV0cCDRZkU1NBQlRUFUkaGgJZVE1SERoVBgBgUlkWGQAWRAAVHAJCAkIUDwJWWlRfVElaS39VQV8NR
FJHAhsRVlZGAg0DDgZEDE1GTlZdRRRZAmVCQUcUQ1lYUFZMSVVYU0FXXkFIF1pOQVFSQ1ZSFhkAFkQAFRwC
QgJCFA8CVlpUX1RJWkt/
VUFfDURSRwIbEVZWRgINVUFaSkVLSFsVXkFbBgIMF29RUlNTQQAUCgAXFBZBABUZAkNSQhUOAlZdVF9YSVs
Xf1VFSVoHRUQXDBVCQUQXGgcWEEoYTUNOVlhFFQkCeFJGRFZUFhkAFkQAFRwCQgJCFA8CVlpUX1RJWkt/
VUFfDURSRwIbEVZWRgINAw4GRAxNRk5WXUUUWQIHFXdWTQAWFQAXGAIbFkIAQhUPAlZdVF5VSVpAf1RMSVo
ARUUSDBQVQUQXGgcaEEsZWxVWQVpRFFsCcVRLUhNSXlNIQxMAFhkAFkQCGxJUVwECDBdBWUBJV1xNRGdCQl
1aBUVFFwwVRUFFFhoCCw4GRAxNRk5WXUUUWQJ5U0ZEUVQWZwAXGAAXFBZDDBVBQVURGhVVTkNaQV9UU2kGV
V5cRFMRAhoXVlZGAgwFDgdFDEwWWABNUhcaFXVBXFEAWENUX1ZORUQAFxAAFkMCGhdUVlYCDBdBWUxJVl1b
En9VQElbV0VFFgwVRUFEGxptRmpeRFRTEQJrSAxMFk5XWEUVAgJzUVoAWRdBSVRYUxcUABcTABYbDBQQQVU
SGhQCTkJcQV5ZU2lXVV5URFJGFE0CQVRSFQkWAxoQSh9bFFdBWwECDRJoXwdEU1sAFxQAFhUAFRQCQ1VUQx
oVVE5DWkFeWVNoUVVfVURTFgIbElZXEQIMU0FbR0VLGVsVVkFaURRbAnpaRFITABcUABcTAhobVFcGAg0SQ
VgXSVdcTURrQkNcTFNdUhUYFBdBRRcaFWBUVkBJVBFdGkICWAVNUhIaFDpBQRVtWFBJUFxFRRgAFxQWQQAV
GQJDUkIVDgJWXVRfWElbF39VRUlaB0VEFwwVQkFEFxoVe0VZQFMTAkoZWxVdQVpRAg0RYVhNSRsFSVoQSVg
VRURBRUUUABYVABcYAhsWQgBCFQ8CVl1UXlVJWkB/
VExJWgBFRRIMFBVBRBcaUVVMRVBdG0MCWVVbBAINF2JWQEUXFAAXEwAWGwwUEEFVEhoUAk5CXEFeWVNpV1V
eVERSRhRNAkFUUhUJAnZAAGNSUlFcVBQZDEwSTlcORRQPAmRRVEJcTlBLABcUFkEAFxcMFUdBVRYaFV
JOQlBBXwlTaFJVXw9EU0cCGxZWV0cCDRpkUlJXFExDF10bSAJZVU1SERoUdkZQF0VDEAMHQwAWFQAXFAIaF
1RWWgINFlcPVF5USVpAf1VBSVtXRUQbDBQSQUUSGhtbEBgFXRtPAlhUTVIaGhVxWABCW1AAdFxOU11UXlxO
FhkAFkQAFxIMFBdBVBcaFVVOQlxBXlVTaFZDCExTUFIVHwJBVVIVCVRETEVLSFsVXkFbBgIMF3BeQENeFQA
XGAAXFBRNAkNUQhUJAlZaVF5SSVtKf1QRSVtURURBDBRDQUUWGhRxT0BWAkoYTUNOVlhFFQkCcUZFUkBUV1
dEFiBzFxAAFkMAFhcMFUBBVBcaFVlOQ11XCE1EakJCWkxTUVIVHwJAWFIUXgJ4VkYUHgxNF05WWUUUDwJuW
VcXFBZBABcVAhsRVFZWAg0RQVhNSVcNTURvQkMKTFJQUhUYAkBUUhUCAnVVVQpXVkdEFU4MTBZOVl5FFAMC
cAVLUhBMUwVUFhUAFxQAFhcMFUxBVRYMQ0FZQUlWWk1Ea0JCWkxSXFIUSAJBUVIUWRUOGxBKGFsUW0FaXQI
NFgVBd1ZMABcTABcUABUfAkJYQhReAlZeVF8CSVtGf1VBSVpRRUUaDBVCVxMCDQUOB04MTBZOVl5FFAMCdA
tEThB5VxQAFhUAFxQAFBkCQ1lCFQ4UAE5DXEFeXlNoVlVeX0RTSwIaRlZWQgIMF1JDUF0bTwJYVE1SGhoVA
BY2QU4VABcTABcUAhsRVFdbAgxGQVlESVcKTUVqQkJdTFJQUhUUAkFVREMaBxsQSh9bFVpBWlYCDBsVFjNB
ThAAFkMAFhUCGxZUV1cCDRpBWUBfAElaRn9VRklbUEVFEQwUT0FERhoHHhBLT1sUW0FaUQIMF3lWTwB6W1I
EABcVABcTABUYAkNSQhQDAlcKVF5RSVsQf1RASVtQRUQXDBVOQUUWDENkUlNBQl9UFUkMTBFOV1RFFF4CBR
B3VxoAFhUAFxQAFBkCQ1lCFQ4UAE5DXEFeXlNoVlVeX0RTSwIaRlZWQgIMUw4GSAxMFk5XWEUVAgJkQ1cRA
FRaTUdSVF5WTFITV19NSBYNTkFVUkIGUhYVABcUABYXDBVMQVUWDENBWUFJVlpNRGtCQlpMUlxSFEgCQVFS
FFlGV1lTUkkMTRdOVlVFFQ4ULkZRRkVDEwMFFAAXEwAWGQIaRlRWUgIMQUFYQUlWXU1FakJCUUxTUURDDBV
DQUURGgcaEEofWxRXQVsBAg0Sb1AFU1NBABcUABYVABUUAkNVVEMaFVROQ1pBXllTaFFVX1VEUxYCGxJWVx
ECDAUOB0kMTRdOVlVFFQ4UUABgVFkXEwAXFAAXEQwUTUFURhoVUU5CCkFfWFNoVlVfWURSSgIbFkAAUhUPE
BkDXWo=[/mytools]') end, true)
global.save_preset:tooltip("Save / Create Preset")
global.delete_preset:tooltip("Delete Preset")
global.import_preset:tooltip("Import")
global.export_preset:tooltip("Export")

--llinks
global.discord = info_group:button('Discord channel', function()
panorama.SteamOverlayAPI.OpenExternalBrowserURL("https://discord.gg/yXUNrR8") end,
true)

global.verify = info_group:button('Verification Token', function()


--clipboard.set(self.cheat.version == 'Nightly' and
'02405b_mytools' or '02405s_mytools')
local signObject = function(object)
local key = 'ioa0w3424mytools'
local signature = string.format('%s%s%s', object.username,
object.build, key)

return md5.sumhexa(signature)
end

local _NAME = common.get_username()


local _BUILD = (self.cheat.version == 'Nightly' and 'beta' or
'stable') --[[stable, beta, yauma]]

network.get(string.format('net ne dam di nahyi', _NAME, _BUILD,


signObject({ username = _NAME, build = _BUILD })), { }, function(data)
if not data then
print_error 'хз'
end

clipboard.set(data)
print_dev("\aFFFFFFFFYour verification code is: \
a"..string.sub(ui_get_style('Link Active'):to_hex(), 0, 6).."" .. data .. "\
aFFFFFFFF")
print_raw("\aFFFFFFFFYour verification code is: \
a"..string.sub(ui_get_style('Link Active'):to_hex(), 0, 6).."" .. data .. "\
aFFFFFFFF")
print_dev("\aFFFFFFFFIt was copied to your clipboard!")
print_raw("\aFFFFFFFFIt was copied to your clipboard!")
end)

common_add_notify('mytools', '\a89F2CAFFtoken copied to your


clipboard')

self.impt.play_sound('physics/wood/wood_plank_impact_hard4.wav', 0.12)
end, true)

global.neverlose_config = info_group:button('Neverlose config',


function()
panorama.SteamOverlayAPI.OpenExternalBrowserURL("https://en.neverlose.cc/market/
item?id=bEb3IN") end, true)
global.youtube = info_group:button('Youtube channel', function()
panorama.SteamOverlayAPI.OpenExternalBrowserURL("https://www.youtube.com/channel/
UCQ89_KwdfNKgrI7DG738ang") end, true)
info_group:label("How to get role in our discord server.\n1. Press
'Verification Token'\n2. Go to our discord server\n3. Jump over to #verify channel
in support tab\n4. Write /redeem and insert your code\n5. Wait a little and you
will get role")
onlineUsers = info_group:label("")

global.refresh_colors = function()
local active_color = ui_get_style('Link Active'):to_hex()
local color_link = ui_get_style('Link'):to_hex()

global.save_preset:name(
' \a'..active_color..' '
)
global.delete_preset:name(
' \a'..active_color..' '
)
global.import_preset:name(
' \a'..active_color..' '
)
global.export_preset:name(
' \a'..active_color..' '
)
global.import_preset1:name(
' \a'..active_color..'\a'..color_link..' Import'
)
global.export_preset1:name(
' \a'..active_color..'\a'..color_link..' Export'
)
global.discord:name(
' \a'..active_color..'\a'..color_link..' Discord '
)
global.verify:name(
' \a'..active_color..'\a'..color_link..' Verification
Token '
)
global.neverlose_config:name(
' \a'..active_color..'\a'..color_link..' Neverlose
Config '
)
global.youtube:name(
' \a'..active_color..'\a'..color_link..' Our Youtube '
)

text:name(string_format('\aDEFAULTWelcome, \
a'..active_color..'%s!\n\aDEFAULTCurrent build: %s \n\aDEFAULTSupport in discord
channel only!', gradient_textz(ui_get_style()["Link Active"].r, ui_get_style()
["Link Active"].g, ui_get_style()["Link Active"].b, 255, ui_get_style()["Link"].r,
ui_get_style()["Link"].g, ui_get_style()["Link"].b, 255, self.cheat.username ==
'pikachu' and 'admin' or self.cheat.username), gradient_textz(ui_get_style()["Link
Active"].r, ui_get_style()["Link Active"].g, ui_get_style()["Link Active"].b, 255,
ui_get_style()["Link"].r, ui_get_style()["Link"].g, ui_get_style()["Link"].b, 255,
self.cheat.version)))
end

events.on_style_change:set(function() global:refresh_colors() end)


end

events.render:set(function()
if ui_get_alpha() < 0.3 then return end
link_color = ui_get_style()["Link Active"]

ui.sidebar(modify.gradient('' .. self.cheat.version == 'Nightly'


and "mytools Nightly" or 'mytools Renewed' .. ' ', color(255, 115, 137),
color(link_color.r, link_color.g, link_color.b), 1.5), modify.gradient('',
color(255, 115, 137), color(link_color.r, link_color.g, link_color.b), -1.5))
end)

local elements do
elements = {
antiaims = {},
ragebot = {},
visuals = {},
misc = {},
antiaims_builder = {}
}
local active_color = ui_get_style('Link Active'):to_hex()

elements.misc.scoreboard_icon = info_group:switch("Shared
scoreboard icon")
elements.misc.scoreboard_icon:tooltip("Shows players with a script
on server through icon in scoreboard")
elements.misc.muteunmute = misc_group:switch 'Unmute Silenced
Players'
elements.misc.muteunmute:tooltip('\a'..active_color..'Unmute
Silenced Players.\aDEFAULT\n\nRemoves mute from all players who are muted for
abuse, updating on round start.')

elements.visuals.on_screen = visuals_group:switch 'On-Screen


Indicators' do
local settings = elements.visuals.on_screen:create()
elements.visuals.select = settings:combo('Select', {'Disable',
'Default'}, 0)
elements.visuals.fonts = settings:combo("Font", {"Small",
"Default"})
elements.visuals.indicator_color =
settings:color_picker('Indicator color', color(255, 255, 255))
elements.visuals.build_color = settings:color_picker('Build
color', color(215, 163, 111))
elements.visuals.glow_px = settings:slider("Glow offset", 0,
100, 40, nil, 'px')
elements.visuals.dmg_indx = settings:slider("posxdmg", 0,
render_screen_size().x, 965)
elements.visuals.dmg_indy = settings:slider("posydmg", 0,
render_screen_size().y, 525)
end

elements.visuals.dmg_indx:visibility(false)
elements.visuals.dmg_indy:visibility(false)

elements.visuals.damage_indicator = visuals_group:switch 'Damage


Indicator' do
local settings = elements.visuals.damage_indicator:create()

elements.visuals.damage_font = settings:combo('Damage font',


'Small', 'Default')
elements.visuals.dis_animation = settings:switch("Disable
damage animation", false)
end

elements.visuals.velocity_warning = visuals_group:switch 'Velocity


Indicator' do
local settings = elements.visuals.velocity_warning:create()

elements.visuals.velocity_color = settings:color_picker("Accent
color", color(145, 178, 239))
elements.visuals.velocity_x = settings:slider("posxvelocity",
0, render_screen_size().x, 900)
elements.visuals.velocity_y = settings:slider("posyvelocity",
0, render_screen_size().y, 250)
elements.visuals.velocity_x:visibility(false)
elements.visuals.velocity_y:visibility(false)
end
elements.visuals.arrows_style = visuals_group:combo('Anti Aim
Arrows', 'Disabled', 'Default') do
local settings = elements.visuals.arrows_style:create()

elements.visuals.arrows_color = settings:color_picker('Arrows
color', color(255, 165, 135, 255))
end

elements.visuals.sindicators = visuals_group:selectable('500$
Indicators', {'Double tap', 'Dormant aimbot', 'Minimum damage', 'Ping spike', 'Fake
duck', 'Freestanding', 'Spectator list', 'Hit Percentage', 'Bomb info', 'Body aim',
'Hide shots', 'Choked commands'}, 0)

elements.visuals.aimbot_logging = rage_group:switch 'Custom Event


Logs' do
local settings = elements.visuals.aimbot_logging:create()

elements.visuals.select_log = settings:selectable('Select log',


{'Upper-left', 'Under crosshair'})
elements.visuals.purchases = settings:switch("Purchase logs
(upper-left)", true)
elements.visuals.dis_glow = settings:switch('Disable glow
(under-crosshair)')
elements.visuals.accent_color = settings:color_picker("Logs
color", color(247, 189, 122))
end

elements.visuals.custom_scope = misc_group:switch 'Scope Overlay'


do
local settings = elements.visuals.custom_scope:create()

elements.visuals.scope_style = settings:combo('Select style',


{'Default', 'Reversed'})
elements.visuals.remove_line = settings:selectable('Exclude
line', {'Left', 'Right', 'Up', 'Down'})
elements.visuals.scope_gap = settings:slider("Scope gap", 0,
500, 7)
elements.visuals.scope_size = settings:slider("Scope size", 0,
1000, 105)
elements.visuals.scope_color = settings:color_picker("Scope
color", color(255, 255, 255))

end

elements.visuals.solus_widgets = misc_group:switch 'Screen Widgets'


do
local settings = elements.visuals.solus_widgets:create()
elements.visuals.solus_widgets_s =
settings:selectable("Widgets", {"Hotkeys", "Spectators"})
elements.visuals.accent_col = settings:color_picker("Widgets
color", color(249, 186, 130))
elements.visuals.pos_x_s = settings:slider("posx", 0,
render_screen_size().x, 150)
elements.visuals.pos_y_s = settings:slider("posy", 0,
render_screen_size().y, 150)
elements.visuals.pos_x1_s = settings:slider("posx1", 0,
render_screen_size().x, 250)
elements.visuals.pos_y1_s = settings:slider("posy1", 0,
render_screen_size().y, 250)
end

elements.visuals.pos_x_s:visibility(false)
elements.visuals.pos_y_s:visibility(false)
elements.visuals.pos_x1_s:visibility(false)
elements.visuals.pos_y1_s:visibility(false)

elements.visuals.viewmodel_changer = misc_group:switch 'Viewmodel


Changer' do
local settings = elements.visuals.viewmodel_changer:create()

elements.visuals.viewmodel_fov = settings:slider('FOV', -100,


100, 68)
elements.visuals.viewmodel_x = settings:slider("Offset X", -
150, 150, 25, 0.1)
elements.visuals.viewmodel_y = settings:slider("Offset Y", -
150, 150, 0, 0.1)
elements.visuals.viewmodel_z = settings:slider("Offset Z", -
150, 150, -15, 0.1)
settings:button('Reset values to default', function()
elements.visuals.viewmodel_fov:set(68) elements.visuals.viewmodel_x:set(25)
elements.visuals.viewmodel_y:set(0) elements.visuals.viewmodel_z:set(-15) end)
end

elements.visuals.viewmodel_aspectratio = misc_group:slider('Aspect
Ratio', 0, 200, 0, 0.01, function(self)
if self == 0 then
return 'Off'
end
end)

--miscellneous
elements.misc.killsay = misc_group:switch 'Trash Talk' do
local settings = elements.misc.killsay:create()

elements.misc.killsay_disablers = settings:switch('Disable on
warmup', false)

end

elements.misc.clantag_changer = misc_group:switch 'Clan Tag'


elements.misc.markers = misc_group:selectable("Hit/Miss Markers",
{"Kibit Hitmarker", "3D Miss marker", "OT Damage Marker"})

elements.misc.console_changer = misc_group:switch 'Console Color


Changer' do
local settings = elements.misc.console_changer:create()

elements.misc.console_color = settings:color_picker("Console
color", color(255, 255, 255, 255))
end

--othergroup
elements.misc.grenade_fix = misc_group:switch 'Nade Throw Fix'
elements.misc.grenade_fix:tooltip("Fix the moment when you try to
throw a grenade and it is not thrown.")
elements.misc.taskbar = misc_group:switch '\aCCCC6FFFFlash Icon On
Round Start'
--anti-aims
elements.antiaims.antiaim_mode = antiaim_group:list('Choose type of
anti-aim', {' Aggressive Jitter', '🤩 Defensive Meta', '⚙️ Builder'})

elements.antiaims.condition = antiaims_builder_tab:combo("Current
condition", {"Global", "Standing", "Moving", "Slow motion", "Air", "Air Crouch",
"Crouch", "Crouch Move"}, 0)
elements.antiaims.tp = antiaims_builder_tab:label("You are using an
automatic preset, you don't need to adjust it. Just press it and go play.")
elements.antiaims.antiaims_tweaks = antiaim_group:selectable("Anti-
aim Additionals", {'Static manuals','Bombsite E Fix', 'Anti-aim on use', 'Disable
FS on manual', 'Static on fakelag', 'Static on knife'})
elements.antiaims.manual_aa = antiaim_group:combo("Manual AA",
{'Disabled', 'Left', 'Right', 'Forward'})

elements.antiaims.force_lag = antiaim_group:switch 'Force Break LC'


do
local settings = elements.antiaims.force_lag:create()

elements.antiaims.lag_conditions =
settings:selectable("Conditions", {'In Air', 'Standing', 'Moving', 'Slow Walking',
'Crouching', 'Crouch Move'})
end

elements.antiaims.defensive_aa = antiaim_group:switch('Defensive
AA', false) do
local settings = elements.antiaims.defensive_aa:create()

elements.antiaims.defensive_type = settings:combo('Type',
{'Presets', 'Custom'})
elements.antiaims.defensive_pitch = settings:combo('Pitch',
{'Disabled', 'Up', 'Down', 'Semi Up', 'Semi Down', 'Random'})
elements.antiaims.defensive_yaw = settings:combo('Yaw',
{'Disabled', 'Sideways', 'Opposite', 'Spin', 'Random', '3-Way', '5-Way'})
elements.antiaims.custom_pitch = settings:slider('Custom
Pitch', -89, 89, 0)
elements.antiaims.custom_yaw = settings:slider('Custom Yaw', -
180, 180, 0)
elements.antiaims.defensive_disablers =
settings:switch("Disable on manual")
elements.antiaims.defensive_disablers1 =
settings:switch("Disable on nades")
end

elements.misc.movement_helpers = antiaim_group:selectable("Movement
Tweaks", {'Fast ladder', 'No fall damage'})
elements.misc.movement_helpers:tooltip('\a'..active_color..'Auto
jumpbug.\aDEFAULT\nWill try to prevent you from getting damage when falling from
high height.\n\n\a'..active_color..'Fast ladder.\aDEFAULT\nYou climb faster on
ladder.')

elements.antiaims.anim_breakers = antiaim_group:selectable(" \
aCCCC6FFFAnim Breakers", {"Legs on ground", 'Legs in air', 'Increase Move Lean'})
do
local settings = elements.antiaims.anim_breakers:create()

elements.antiaims.type_legs_ground = settings:combo('Legs on
ground', {'Sliding', 'Allah', 'Jitter'})
elements.antiaims.type_legs_air = settings:combo('Legs in air',
{'Static', 'Allah'})
end

--ragegroup
elements.misc.rev_help = rage_group:switch 'Revolver Helper'
elements.misc.rev_help:tooltip('\a'..active_color..'Revolver
Helper.\aDEFAULT\nShows "DMG+" indicator next to opponent if you can give 100
damage an opponent with a revolver.\nYou can edit indicator position in esp
settings.')

elements.misc.auto_tp = rage_group:switch 'Discharge Exploit' do


local settings = elements.misc.auto_tp:create()
elements.misc.weapons = settings:selectable("Weapons",
"Pistols", "Auto Snipers", "AWP", "SSG-08", "Heavy Pistols", "Knife/Taser")
end

elements.misc.hc_enable = rage_group:switch 'Hitchance


Additionals' do
local settings = elements.misc.hc_enable:create()

elements.misc.hc_cond = settings:selectable('Condition',
{'Air', 'No scope'})
elements.misc.hc_air = settings:slider('Air', 0, 100, 55)
elements.misc.hc_ns = settings:slider('No scope', 0, 100, 55)
end

elements.misc.fakelatency = rage_group:switch 'Unlock Fake


Latency'
elements.misc.fakelatency:tooltip('\a'..active_color..'Unlock Fake
Latency.\aDEFAULT\nRemoves 100ms limit in ping spike')
end

local antiaim_builder do
antiaim_builder = {}

for i=1, 8 do
local spaces = string.rep(' ', i)
elements.antiaims_builder[i] = { }

elements.antiaims_builder[i].enabled =
antiaims_builder_tab:switch("Enable Condition" .. spaces, false)
elements.antiaims_builder[i].pitch =
antiaims_builder_tab:combo("Pitch" .. spaces, {'Disabled', 'Down', 'Fake Down',
'Fake Up'})

elements.antiaims_builder[i].yaw =
antiaims_builder_tab:combo("Yaw" .. spaces, {'Disabled', 'Backward', 'Static'}) do
local settings = elements.antiaims_builder[i].yaw:create()

elements.antiaims_builder[i].base =
settings:combo('Base' .. spaces, {'Local View', 'At Target'})
elements.antiaims_builder[i].type = settings:combo("Yaw
Mode" .. spaces, {'Default', 'Left/Right', 'Delayed swap'})
elements.antiaims_builder[i].delay = settings:switch("Swap
compatible with inverter" .. spaces)
elements.antiaims_builder[i].offset_l =
settings:slider("Offset" .. spaces, -180, 180, 0, nil, '°')
elements.antiaims_builder[i].offset_r =
settings:slider("Offset R" .. spaces, -180, 180, 0, nil, '°')
elements.antiaims_builder[i].per_tick =
settings:slider("Delay ticks" .. spaces, 0, 128, 64)
elements.antiaims_builder[i].hidden =
settings:switch("Hidden" .. spaces, false)
end

elements.antiaims_builder[i].jyaw =
antiaims_builder_tab:combo("Yaw Modifier" .. spaces, {'Disabled', 'Center',
'Offset', 'Random', 'Spin', '3-Way', '5-Way'}) do
local settings = elements.antiaims_builder[i].jyaw:create()

elements.antiaims_builder[i].mode =
settings:combo("Mode" .. spaces, {"Static", "From/To", 'Left/Right'})
elements.antiaims_builder[i].type_mod =
settings:combo("Settings" .. spaces, {"Default", "Custom"})
elements.antiaims_builder[i].offset_one =
settings:slider("Offset #1" .. spaces, -180, 180, 0, nil, '°')
elements.antiaims_builder[i].offset_two =
settings:slider("Offset #2" .. spaces, -180, 180, 0, nil, '°')
elements.antiaims_builder[i].way1 = settings:slider("1 Way"
.. spaces, -180, 180, 0, nil, '°')
elements.antiaims_builder[i].way2 = settings:slider("2 Way"
.. spaces, -180, 180, 0, nil, '°')
elements.antiaims_builder[i].way3 = settings:slider("3 Way"
.. spaces, -180, 180, 0, nil, '°')
elements.antiaims_builder[i].way4 = settings:slider("4 Way"
.. spaces, -180, 180, 0, nil, '°')
elements.antiaims_builder[i].way5 = settings:slider("5 Way"
.. spaces, -180, 180, 0, nil, '°')
end

elements.antiaims_builder[i].body_yaw =
antiaims_builder_tab:switch("Body Yaw" .. spaces, false) do
local settings =
elements.antiaims_builder[i].body_yaw:create()

elements.antiaims_builder[i].fake_slider_main =
settings:slider("Fake left" .. spaces, 0, 60, 60, nil, '°')
elements.antiaims_builder[i].fake_slider_next =
settings:slider("Fake right" .. spaces, 0, 60, 60, nil, '°')
elements.antiaims_builder[i].fake_op =
settings:selectable("Fake options" .. spaces, {"Avoid Overlap", "Jitter",
"Randomize Jitter", "Anti Bruteforce"}, 0)
elements.antiaims_builder[i].freestand =
settings:combo("Freestand DS" .. spaces, {"Off", "Peek Fake", "Peek Real"}, 0)
elements.antiaims_builder[i].inverter =
settings:switch("Anti-aim inverter" .. spaces, false)
end
end

local custom_aa = elements.antiaims_builder

antiaim_builder.hide_all_custom = function()
for i = 1, 8 do
for _, k in pairs(custom_aa[i]) do
if not k:visibility() then goto skip end
k:visibility(false)
::skip::
end
end
end

antiaim_builder.unhide_cur_custom = function(zxc, num)


if custom_aa[num].enabled:get() then
for _, k in pairs(custom_aa[num]) do
if k:visibility() then goto skip end
k:visibility(true)
::skip::
end
else
for _, k in pairs(custom_aa[num]) do
if not k:visibility() then goto skip end
k:visibility(false)
::skip::
end
end

custom_aa[num].enabled:visibility(true)
end

antiaim_builder.unhide_cur_enable_state = function(zxc, num)


custom_aa[num].enabled:visibility(true)
end

antiaim_builder.strange = function(zxc, condition_tab)

if condition_tab == 'Global' then


return 0
elseif condition_tab == 'Standing' then
return 1
elseif condition_tab == 'Moving' then
return 2
elseif condition_tab == 'Slow motion' then
return 3
elseif condition_tab == 'Air' then
return 4
elseif condition_tab == 'Air Crouch' then
return 5
elseif condition_tab == 'Crouch' then
return 6
elseif condition_tab == 'Crouch Move' then
return 7
elseif condition_tab == 'Dormant' then
return 8
end
end

antiaim_builder.init_handle = function(self)
events.pre_render:set(function()
if ui_get_alpha() ~= 1 then return end

local state = elements.antiaims.antiaim_mode:get()


antiaim_builder:hide_all_custom()
elements.antiaims.condition:visibility(state == 3)

if state == 3 then

antiaim_builder:unhide_cur_custom(antiaim_builder:strange(elements.antiaims.conditi
on:get()) + 1)

antiaim_builder:unhide_cur_enable_state(antiaim_builder:strange(elements.antiaims.c
ondition:get()) + 1)
for i=1, 8 do
if (custom_aa[i].jyaw:get() == '5-Way' or
custom_aa[i].jyaw:get() == '3-Way') then custom_aa[i].mode:visibility(false) end
if (custom_aa[i].jyaw:get() == '3-Way' and
custom_aa[i].type_mod:get() == 'Custom') then
custom_aa[i].offset_one:visibility(false) custom_aa[i].offset_two:visibility(false)
custom_aa[i].way1:visibility(true) custom_aa[i].way2:visibility(true)
custom_aa[i].way3:visibility(true) custom_aa[i].way4:visibility(false)
custom_aa[i].way5:visibility(false) end
if (custom_aa[i].jyaw:get() == '5-Way' and
custom_aa[i].type_mod:get() == 'Custom') then
custom_aa[i].offset_one:visibility(false) custom_aa[i].offset_two:visibility(false)
custom_aa[i].way1:visibility(true) custom_aa[i].way2:visibility(true)
custom_aa[i].way3:visibility(true) custom_aa[i].way4:visibility(true)
custom_aa[i].way5:visibility(true) end
if (custom_aa[i].jyaw:get() == '5-Way' and
custom_aa[i].type_mod:get() == 'Default') then
custom_aa[i].offset_two:visibility(false) custom_aa[i].way1:visibility(false)
custom_aa[i].way2:visibility(false) custom_aa[i].way3:visibility(false)
custom_aa[i].way4:visibility(false) custom_aa[i].way5:visibility(false) end
if (custom_aa[i].jyaw:get() == '3-Way' and
custom_aa[i].type_mod:get() == 'Default') then
custom_aa[i].offset_two:visibility(false) custom_aa[i].way1:visibility(false)
custom_aa[i].way2:visibility(false) custom_aa[i].way3:visibility(false)
custom_aa[i].way4:visibility(false) custom_aa[i].way5:visibility(false) end
if (custom_aa[i].jyaw:get() ~= '5-Way' and
custom_aa[i].jyaw:get() ~= '3-Way') then custom_aa[i].type_mod:visibility(false)
custom_aa[i].way1:visibility(false) custom_aa[i].way2:visibility(false)
custom_aa[i].way3:visibility(false) custom_aa[i].way4:visibility(false)
custom_aa[i].way5:visibility(false) end
if custom_aa[i].type:get() ~= 'Delayed swap' then
custom_aa[i].per_tick:visibility(false) custom_aa[i].delay:visibility(false) end
if custom_aa[i].type:get() == 'Default' then
custom_aa[i].offset_r:visibility(false) end
if custom_aa[i].mode:get() == 'Static' then
custom_aa[i].offset_two:visibility(false) end

end

custom_aa[1].enabled:visibility(false)
custom_aa[1].enabled:set(true)
elements.antiaims.condition:visibility(true)
end

end)
end
end
self.global = global
self.info_group = info_group
self.elements = elements
self.antiaim_builder = antiaim_builder

--set callbacks
antiaim_builder:init_handle()
end
}

:struct 'refs' {
enable_desync = ui_find("Aimbot", "Anti Aim", "Angles", "Body Yaw"),
yaw_base = ui_find("Aimbot", "Anti Aim", "Angles", "Yaw"),
pitch = ui_find("Aimbot", "Anti Aim", "Angles", "Pitch"),
yaw = ui_find("Aimbot", "Anti Aim", "Angles", "Yaw", "Offset"),
fake_op = ui_find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Options"),
base_yaw = ui_find("Aimbot", "Anti Aim", "Angles", "Yaw", "Base"),
--lby = ui_find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "LBY Mode"),
freestand = ui_find("Aimbot", "Anti Aim", "Angles", "Body Yaw",
"Freestanding"),
--desync_os = ui_find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "On
Shot"),
hidden = ui_find("Aimbot", "Anti Aim", "Angles", "Yaw", "Hidden"),
slowwalk = ui_find("Aimbot", "Anti Aim", "Misc", "Slow Walk"),
jyaw = ui_find("Aimbot", "Anti Aim", "Angles", "Yaw Modifier"),
jyaw_slider = ui_find("Aimbot", "Anti Aim", "Angles", "Yaw Modifier",
"Offset"),
fake_duck = ui_find("Aimbot", "Anti Aim", "Misc", "Fake Duck"),
freestanding_def = ui_find("Aimbot", "Anti Aim", "Angles", "Freestanding"),
left_limit = ui_find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Left
Limit"),
right_limit = ui_find("Aimbot", "Anti Aim", "Angles", "Body Yaw", "Right
Limit"),
dt = ui_find('Aimbot', 'Ragebot', 'Main', 'Double Tap'),
hs = ui_find('Aimbot', 'Ragebot', 'Main', 'Hide shots'),
body_aim = ui_find('Aimbot', 'Ragebot', 'Safety', 'Body Aim'),
safe_point = ui_find("Aimbot", "Ragebot", "Safety", "Safe Points"),
auto_peek = ui_find('Aimbot', 'Ragebot', 'Main', 'Peek Assist'),
freestanding_yaw = ui_find("Aimbot", "Anti Aim", "Angles", "Freestanding"),
hitchance = ui_find("Aimbot", "Ragebot", "Selection", "Hit Chance"),
min_dmg = ui_find("Aimbot", "Ragebot", "Selection", "Min. Damage"),
base = ui_find("Aimbot", "Anti Aim", "Angles", "Yaw", "Base"),
dormantaim = ui_find("Aimbot", "Ragebot", "Main", "Enabled", "Dormant
Aimbot"),
pingspike = ui_find("Miscellaneous", "Main", "Other", "Fake Latency"),
legmovement = ui_find("Aimbot", "Anti Aim", "Misc", "Leg Movement"),
logs = ui_find("Miscellaneous", "Main", "Other", "Log Events"),
inverter1 = ui_find("Aimbot", "Anti Aim", "Angles", "Body Yaw",
"Inverter"),
disablers = ui_find("Aimbot", "Ragebot", "Safety", "Body Aim", "Disablers")
}

:struct 'config_system' {
init = function(self)
local config_system do
local path = 'nl/scripts/mytools/mytools.config'
config_system = {}

local Xor = function(str)


local key = '6a 75 73 74 73 69 6d 70 6c 65 74 65 78 74'
local strlen, keylen = #str, #key

local strbuf = ffi.new('char[?]', strlen+1)


local keybuf = ffi.new('char[?]', keylen+1)

local success,_ = pcall(function()


return string.dump(ffi.copy)
end)

if success then
print_error 'You are not allowed to edit FFI Struct.'
common.unload_script()

return
end

ffi.copy(strbuf, str)
ffi.copy(keybuf, key)

for i=0, strlen-1 do


strbuf[i] = bit.bxor(strbuf[i], keybuf[i % keylen])
end

return ffi.string(strbuf, strlen)


end

Cipher = {
encode = function(a, b)
return '[mytools]' ..
tostring(base64.encode(Xor(a,Cipher_code))) .. '[/mytools]'
end,

decode = function(a, b)
local prefix = '[mytools]'
local bypassed_prefix = '[/mytools]'

local q,e = a:find(prefix, 1, true)


local z,x = a:find(bypassed_prefix, 1, true)

a = a:sub(e + 1, z - 1):gsub(' ', '')

return tostring(Xor(base64.decode(a),Cipher_code))
end
}

config_system.import = function(zxc, c, only_aa)


local success, config_file = pcall(function()
return json.parse(Cipher.decode((type(zxc) == 'table' and
clipboard.get()) or zxc))
end)

if c ~= nil then
success, config_file = pcall(function()
return json.parse(Cipher.decode(c))
end)
end

if not success then


self.impt.play_sound('error.wav', 0.12)
common_add_notify('mytools', '\aE0C152FF\xef\x81\xb1 there
was an error while loading your config')
return
end

for k,v in pairs(config_file) do


local imported_tbl = v

for m,j in pairs(self.menu.elements) do


if only_aa then
if string.find(m, 'antiaims') == nil then
goto skip
end
end

if m == v.tab then
for ce,net in pairs(j) do
if get_type(net) == 'table' then
for fnay,mishkat in pairs(net) do
if v.name == mishkat:name() then
mishkat:set(v.var)
end
end

goto skip end

if v.name == net:name() then


net:set(v.var)
end
::skip::
end
end

::skip::
end
end

common_add_notify('mytools', '\a89F2CAFFsuccessfully loaded


your config')

self.impt.play_sound('physics/wood/wood_plank_impact_hard4.wav', 0.12)
end

config_system.save = function()
local preset_name = self.menu.global.preset_name:get()

local successed_export, exported_config = pcall(function()


local config_data = files.read(path)
local success, config_data = pcall(function()
return json.parse(config_data)
end)

if not success or #config_data == 0 then


config_data = {}
end

local num = self.menu.global.preset_list:get()


local presets_list = self.menu.global.preset_list:list()

local do_save = 0

if preset_name:gsub(' ', '') == '' or preset_name == ''


then
do_save = 1

for i=1, #config_data do


local config_name = config_data[i].name
if config_name == presets_list[num] then
do_save = -1
config_data[i].code =
self.config_system:export()
files.write(path, json.stringify(config_data))
end
end
end

for i=1, #config_data do


local config_name = config_data[i].name

if config_name == preset_name then


do_save = 2

config_data[i].code = self.config_system:export()
files.write(path, json.stringify(config_data))
self.menu.global.preset_name:set('')
do_save = -2
break
end
end

if preset_name:gsub(' ', '') ~= '' then


local work = true

for i=1, #config_data do


local config_name = config_data[i].name

if config_name == preset_name then


work = false
end
end

if work then
do_save = 3

table.insert(config_data, {code =
self.config_system:export(), name = preset_name})

local name_file = {}
for i=1, #config_data do
table.insert(name_file, config_data[i].name)
end

files.write(path, json.stringify(config_data))
self.menu.global.preset_list:update(name_file)
self.menu.global.preset_name:set('')
do_save = -3
end
end

if do_save == 1 then
self.impt.play_sound('error.wav', 0.12)
common_add_notify('mytools', '\aE0C152FF\xef\x81\xb1
enter valid config name!')

return
end

if do_save ~= 0 then
common_add_notify('mytools', '\a89F2CAFFsuccessfully
saved your config')

self.impt.play_sound('physics/wood/wood_plank_impact_hard4.wav', 0.12)
else
self.impt.play_sound('error.wav', 0.12)
common_add_notify('mytools', '\aE0C152FF\xef\x81\xb1
there was an error while loading your config')
end
end)
end

config_system.delete = function()
local num = self.menu.global.preset_list:get()

local config_data = files.read(path)


local success, config_data = pcall(function()
return json.parse(config_data)
end)

if not success or #config_data == 0 then


config_data = {}
end

table.remove(config_data, num)
files.write(path, json.stringify(config_data))

local name_list = {}
for i=1, #config_data do
table.insert(name_list, config_data[i].name)
end

self.menu.global.preset_list:update(#name_list == 0 and {'\


aCBC9C9FFNothing there. Create preset.'} or name_list)

self.impt.play_sound('physics/wood/wood_plank_impact_hard4.wav', 0.12)
end
end

config_system.export = function()
local tbl = {}
local ignore_list = {}
for itab,tab in pairs(self.menu.elements) do
for k,v in pairs(tab) do
if get_type(v) == 'table' then
for k,v in pairs(v) do
table.insert(tbl, {tab = itab, name = v:name(), var
= get_type(v:get()) == 'imcolor' and v:get():to_hex() or v:get()})
end
goto skip end
table.insert(tbl, {tab = itab, name = v:name(), var =
get_type(v:get()) == 'imcolor' and v:get():to_hex() or v:get()})
::skip::
end
end

local config = Cipher.encode(json.stringify(tbl))

clipboard.set(config)
return config
end

config_system.load = function()
local last_config = db.last_config or { }

local path = 'nl/scripts/mytools/mytools.config'


local num = self.menu.global.preset_list:get()

local config_data = files.read(path)


local success, config_data = pcall(function()
return json.parse(config_data)
end)

local name_list = {}

for i=1, #config_data do


table.insert(name_list, config_data[i].name)
end

if #name_list == 0 then
self.impt.play_sound('error.wav', 0.12)
common_add_notify('mytools', '\aE0C152FF\xef\x81\xb1 there was
an error while loading your config')
return
end

if not success or #config_data == 0 then


config_data = {}
end

config_system:import(config_data[num].code, true)
end

self.save = config_system.save
self.delete = config_system.delete
self.import = config_system.import
self.export = config_system.export
self.load = config_system.load
end
}
ctx.menu:init()
ctx.config_system:init()

local Ways = {
Number = 0
}

local custom_aa = ctx.menu.elements.antiaims_builder

local antiaim_builder do
antiaim_builder = {}

antiaim_builder.get_velocity = function(s, player)


if player == nil then
return
end

local vel = player["m_vecVelocity"]


if vel.x == nil then return end
return math.sqrt(vel.x*vel.x + vel.y*vel.y + vel.z*vel.z)
end

antiaim_builder.state = function(asd, lp_vel, player, cmd)


local is_crouching = function()
local localplayer = entity_get_local_player()
local flags = localplayer['m_fFlags']

if bit.band(flags, 4) == 4 then
return true
end

return false
end

if lp_vel == nil then


return
end

player = 0
local get_player = nil
local is_dormant = false
local localplayer = entity_get_local_player()

if false then
cnds = 9
elseif lp_vel < 5 and not cmd.in_jump and not (is_crouching(localplayer) or
ctx.refs.fake_duck:get()) then
cnds = 2
elseif cmd.in_jump and not is_crouching(localplayer) then
cnds = 5
elseif cmd.in_jump and is_crouching(localplayer) then
cnds = 6
elseif lp_vel > 5 and (is_crouching(localplayer) or
ctx.refs.fake_duck:get()) then
cnds = 8
elseif (is_crouching(localplayer) or ctx.refs.fake_duck:get()) then
cnds = 7
else
if ctx.refs.slowwalk:get() then
cnds = 4
else
cnds = 3
end
end

return cnds
end

antiaim_builder.custom_preset = function()
events.createmove:set(function(cmd)
if entity_get_local_player() == nil then return end

local lp = entity_get_local_player()
local lp_vel = antiaim_builder:get_velocity(lp)
local state = antiaim_builder:state(lp_vel, nil, cmd)

local b, c = state, side


if custom_aa[b] == nil then
return
end

if ctx.menu.elements.antiaims.antiaim_mode:get() == 1 or
ctx.menu.elements.antiaims.antiaim_mode:get() == 2 then
if ctx.menu.elements.antiaims.antiaim_mode:get() == 1 then
if b == 1 then
ctx.refs.pitch:override("Down")
ctx.refs.enable_desync:override(true)
elseif b == 2 then
ctx.refs.base_yaw:override("At Target")
ctx.refs.pitch:override("Down")
ctx.refs.yaw_base:override("Backward")
ctx.refs.yaw:override(rage.antiaim:inverter() == true and -
20 or 28)
ctx.refs.jyaw:override("Center")
ctx.refs.jyaw_slider:override(-20)
ctx.refs.fake_op:override({"Jitter"})
ctx.refs.left_limit:override(58)
ctx.refs.right_limit:override(58)
ctx.refs.hidden:override(false)
ctx.refs.freestand:override("Off")
ctx.refs.inverter1:override(false)
ctx.refs.enable_desync:override(true)
elseif b == 3 then
ctx.refs.base_yaw:override("At Target")
ctx.refs.pitch:override("Down")
ctx.refs.yaw_base:override("Backward")
ctx.refs.yaw:override(rage.antiaim:inverter() == true and -
6 or 10)
ctx.refs.jyaw:override("Center")
ctx.refs.jyaw_slider:override(-58)
ctx.refs.fake_op:override({"Jitter"})
ctx.refs.left_limit:override(36)
ctx.refs.right_limit:override(36)
ctx.refs.hidden:override(false)
ctx.refs.freestand:override("Off")
ctx.refs.inverter1:override(false)
ctx.refs.enable_desync:override(true)
elseif b == 4 then
ctx.refs.base_yaw:override("At Target")
ctx.refs.pitch:override("Down")
ctx.refs.yaw_base:override("Backward")
ctx.refs.yaw:override(rage.antiaim:inverter() == true and -
30 or 42)
ctx.refs.jyaw:override("Spin")
ctx.refs.jyaw_slider:override(-15)
ctx.refs.fake_op:override({"Jitter"})
ctx.refs.left_limit:override(45)
ctx.refs.right_limit:override(45)
ctx.refs.hidden:override(false)
ctx.refs.freestand:override("Off")
ctx.refs.inverter1:override(false)
ctx.refs.enable_desync:override(true)
elseif b == 5 then
ctx.refs.base_yaw:override("At Target")
ctx.refs.pitch:override("Down")
ctx.refs.yaw_base:override("Backward")
ctx.refs.yaw:override(35)
ctx.refs.jyaw:override("Offset")
ctx.refs.jyaw_slider:override(-50)
ctx.refs.fake_op:override({"Jitter"})
ctx.refs.left_limit:override(60)
ctx.refs.right_limit:override(60)
ctx.refs.hidden:override(false)
ctx.refs.freestand:override("Off")
ctx.refs.inverter1:override(false)
ctx.refs.enable_desync:override(true)
elseif b == 6 then
ctx.refs.base_yaw:override("At Target")
ctx.refs.pitch:override("Down")
ctx.refs.yaw_base:override("Backward")
ctx.refs.yaw:override(rage.antiaim:inverter() == true and 5
or 20)
ctx.refs.jyaw:override("Center")
ctx.refs.jyaw_slider:override(-42)
ctx.refs.fake_op:override({"Jitter"})
ctx.refs.left_limit:override(58)
ctx.refs.right_limit:override(58)
ctx.refs.hidden:override(false)
ctx.refs.freestand:override("Off")
ctx.refs.inverter1:override(false)
ctx.refs.enable_desync:override(true)
elseif b == 7 then
ctx.refs.base_yaw:override("At Target")
ctx.refs.pitch:override("Down")
ctx.refs.yaw_base:override("Backward")
ctx.refs.yaw:override(0)
ctx.refs.jyaw:override("Center")
ctx.refs.jyaw_slider:override(-15)
ctx.refs.fake_op:override({""})
ctx.refs.left_limit:override(25)
ctx.refs.right_limit:override(25)
ctx.refs.hidden:override(false)
ctx.refs.freestand:override("Off")
ctx.refs.inverter1:override(true)
ctx.refs.enable_desync:override(true)
end
elseif ctx.menu.elements.antiaims.antiaim_mode:get() == 2 then
if b == 1 then
ctx.refs.pitch:override("Down")
ctx.refs.enable_desync:override(true)
elseif b == 2 then
ctx.refs.base_yaw:override("At Target")
ctx.refs.pitch:override("Down")
ctx.refs.yaw_base:override("Backward")
ctx.refs.yaw:override(rage.antiaim:inverter() == true and -
25 or 28)
ctx.refs.jyaw:override("Disabled")
ctx.refs.jyaw_slider:override(0)
ctx.refs.fake_op:override({"Jitter"})
ctx.refs.left_limit:override(58)
ctx.refs.right_limit:override(58)
ctx.refs.hidden:override(false)
ctx.refs.freestand:override("Off")
ctx.refs.inverter1:override(false)
ctx.refs.enable_desync:override(true)
rage.antiaim:override_hidden_pitch(math.random(-89, 89))
ui_find("Aimbot", "Ragebot", "Main", "Double Tap", "Lag
Options"):override()
ui_find("Aimbot", "Ragebot", "Main", "Hide Shots",
"Options"):override()
elseif b == 3 then
ctx.refs.base_yaw:override("At Target")
ctx.refs.pitch:override("Down")
ctx.refs.yaw_base:override("Backward")
ctx.refs.yaw:override(rage.antiaim:inverter() == true and -
25 or 28)
ctx.refs.jyaw:override("Disabled")
ctx.refs.jyaw_slider:override(0)
ctx.refs.fake_op:override({"Jitter"})
ctx.refs.left_limit:override(58)
ctx.refs.right_limit:override(58)
ctx.refs.hidden:override(true)
ctx.refs.freestand:override("Off")
ctx.refs.inverter1:override(false)
ctx.refs.enable_desync:override(true)
rage.antiaim:override_hidden_pitch(math.random(-89, 89))
ui_find("Aimbot", "Ragebot", "Main", "Double Tap", "Lag
Options"):override()
ui_find("Aimbot", "Ragebot", "Main", "Hide Shots",
"Options"):override()
elseif b == 4 then
ctx.refs.base_yaw:override("At Target")
ctx.refs.pitch:override("Down")
ctx.refs.yaw_base:override("Backward")
ctx.refs.yaw:override(43)
ctx.refs.jyaw:override("Offset")
ctx.refs.jyaw_slider:override(math.random(-65, -85))
ctx.refs.fake_op:override({"Jitter"})
ctx.refs.left_limit:override(30)
ctx.refs.right_limit:override(30)
ctx.refs.hidden:override(false)
ctx.refs.freestand:override("Off")
ctx.refs.inverter1:override(false)
ctx.refs.enable_desync:override(true)
ui_find("Aimbot", "Ragebot", "Main", "Double Tap", "Lag
Options"):override()
ui_find("Aimbot", "Ragebot", "Main", "Hide Shots",
"Options"):override()
elseif b == 5 then
ctx.refs.base_yaw:override("At Target")
ctx.refs.pitch:override("Down")
ctx.refs.yaw_base:override("Backward")
if not ctx.refs.dt:get() and not ctx.refs.hs:get() then
ctx.refs.yaw:override(0)
ctx.refs.jyaw:override("Disabled")
ctx.refs.jyaw_slider:override(0)
ctx.refs.fake_op:override("")
ctx.refs.left_limit:override(25)
ctx.refs.right_limit:override(25)
else
ctx.refs.yaw:override(40)
ctx.refs.jyaw:override("Random")
ctx.refs.jyaw_slider:override(rage.antiaim:inverter()
== true and 0 or -44)
ctx.refs.fake_op:override({"Jitter"})
ctx.refs.left_limit:override(60)
ctx.refs.right_limit:override(60)
end
ctx.refs.hidden:override(true)
ctx.refs.freestand:override("Off")
ctx.refs.inverter1:override(false)
ctx.refs.enable_desync:override(true)
ui_find("Aimbot", "Ragebot", "Main", "Double Tap", "Lag
Options"):override("Always On")
ui_find("Aimbot", "Ragebot", "Main", "Hide Shots",
"Options"):override("Break LC")
rage.antiaim:override_hidden_pitch(math.random(-89, 89))
elseif b == 6 then
ctx.refs.base_yaw:override("At Target")
ctx.refs.pitch:override("Down")
ctx.refs.yaw_base:override("Backward")
if not ctx.refs.dt:get() and not ctx.refs.hs:get() then
ctx.refs.yaw:override(0)
ctx.refs.jyaw:override("Disabled")
ctx.refs.jyaw_slider:override(0)
ctx.refs.fake_op:override("")
ctx.refs.left_limit:override(25)
ctx.refs.right_limit:override(25)
else
ctx.refs.yaw:override(rage.antiaim:inverter() == true
and 15 or 37)
ctx.refs.jyaw:override("Offset")
ctx.refs.jyaw_slider:override(rage.antiaim:inverter()
== true and 0 or -89)
ctx.refs.fake_op:override({"Jitter"})
ctx.refs.left_limit:override(60)
ctx.refs.right_limit:override(60)
end
ctx.refs.hidden:override(true)
ctx.refs.freestand:override("Off")
ctx.refs.inverter1:override(false)
ctx.refs.enable_desync:override(true)
ui_find("Aimbot", "Ragebot", "Main", "Double Tap", "Lag
Options"):override("Always On")
ui_find("Aimbot", "Ragebot", "Main", "Hide Shots",
"Options"):override("Break LC")
rage.antiaim:override_hidden_pitch(math.random(-89, 89))
elseif b == 7 then
ctx.refs.base_yaw:override("At Target")
ctx.refs.pitch:override("Down")
ctx.refs.yaw_base:override("Backward")
if not ctx.refs.dt:get() and not ctx.refs.hs:get() then
ctx.refs.yaw:override(0)
ctx.refs.jyaw:override("Disabled")
ctx.refs.jyaw_slider:override(0)
ctx.refs.fake_op:override("")
ctx.refs.left_limit:override(25)
ctx.refs.right_limit:override(25)
ctx.refs.inverter1:override(false)
else
ctx.refs.yaw:override(rage.antiaim:inverter() == true
and 0 or -15)
ctx.refs.jyaw:override("3 Way")
ctx.refs.jyaw_slider:override(math.random(-45, -70))
ctx.refs.fake_op:override({"Jitter"})
ctx.refs.left_limit:override(38)
ctx.refs.right_limit:override(29)
ctx.refs.inverter1:override(false)
end
ctx.refs.hidden:override(true)
ctx.refs.freestand:override("Off")
ctx.refs.enable_desync:override(true)
ui_find("Aimbot", "Ragebot", "Main", "Double Tap", "Lag
Options"):override("Always On")
ui_find("Aimbot", "Ragebot", "Main", "Hide Shots",
"Options"):override("Break LC")
rage.antiaim:override_hidden_pitch(math.random(-89, 89))
end

end

if ctx.menu.elements.antiaims.antiaims_tweaks:get('Disable FS on
manual') and ctx.refs.freestanding_yaw:get() and
(ctx.menu.elements.antiaims.manual_aa:get() == "Right" or
ctx.menu.elements.antiaims.manual_aa:get() == "Left" or
ctx.menu.elements.antiaims.manual_aa:get() == "Forward") then
ctx.refs.freestanding_yaw:set(false)
end

if ctx.menu.elements.antiaims.antiaims_tweaks:get('Static on
knife') then
if entity_get_local_player():get_player_weapon() == nil then
return end
knife =
entity_get_local_player():get_player_weapon():get_classname() == "CKnife"
if knife then
ctx.refs.yaw:override(0)
ctx.refs.jyaw:override("Disabled")
ctx.refs.jyaw_slider:override(0)
ctx.refs.fake_op:override("")
ctx.refs.left_limit:override(25)
ctx.refs.right_limit:override(25)
ctx.refs.inverter1:override(true)
end
end

if (ctx.menu.elements.antiaims.manual_aa:get() == "Right" or
ctx.menu.elements.antiaims.manual_aa:get() == "Left" or
ctx.menu.elements.antiaims.manual_aa:get() == "Forward" or
ctx.refs.freestanding_yaw:get()) and
ctx.menu.elements.antiaims.antiaims_tweaks:get("Static manuals") then
ctx.refs.fake_op:override({})
ctx.refs.jyaw:override("Disabled")
end

if ctx.menu.elements.antiaims.antiaims_tweaks:get('Static on
fakelag') then
if cmd.choked_commands > 1 then
ctx.refs.yaw:override(0)
ctx.refs.jyaw:override("Disabled")
ctx.refs.jyaw_slider:override(0)
ctx.refs.fake_op:override("")
ctx.refs.left_limit:override(25)
ctx.refs.right_limit:override(25)
ctx.refs.inverter1:override(true)
end
end

ctx.refs.base_yaw:override(ctx.menu.elements.antiaims.manual_aa:get() ~= 'Disabled'
and 'Local view' or nil)
if ctx.menu.elements.antiaims.manual_aa:get() ~= 'Disabled' then

ctx.refs.yaw:override(ctx.menu.elements.antiaims.manual_aa:get() == 'Left' and -90


or 90)
if ctx.menu.elements.antiaims.manual_aa:get() == 'Forward' then
ctx.refs.yaw:override(-180) end
end
end

if ctx.menu.elements.antiaims.antiaim_mode:get() ~= 3 then
return
end

local d = custom_aa[b].enabled:get() and b or 1


ctx.refs.yaw:set(0)
ctx.refs.pitch:override(custom_aa[d].pitch:get())
ctx.refs.yaw_base:override(custom_aa[d].yaw:get())
ctx.refs.base_yaw:override(custom_aa[d].base:get())
ctx.refs.enable_desync:override(custom_aa[d].body_yaw:get())
ctx.refs.left_limit:override(custom_aa[d].fake_slider_main:get())
ctx.refs.right_limit:override(custom_aa[d].fake_slider_next:get())
ctx.refs.hidden:override(custom_aa[d].hidden:get())
ctx.refs.inverter1:override(custom_aa[d].inverter:get())

if custom_aa[d].jyaw:get() == '5-Way' then

if custom_aa[d].type_mod:get() == 'Custom' then


local Way = { 0, 0, 0 };
ctx.refs.jyaw:override('Disabled')
ctx.refs.jyaw_slider:override(0)

Way = { custom_aa[d].way1:get(), custom_aa[d].way2:get(),


custom_aa[d].way3:get(), custom_aa[d].way4:get(), custom_aa[d].way5:get() };

local NewYaw = ctx.refs.yaw:get();

Ways.Number = Ways.Number + 1;

if (Ways.Number > #Way) then


Ways.Number = 1;
end

if (Way[Ways.Number] ~= nil) then


NewYaw = NewYaw + Way[Ways.Number];
end

ctx.refs.yaw:override(NewYaw);

elseif custom_aa[d].type_mod:get() == 'Default' then


ctx.refs.jyaw:override(custom_aa[d].jyaw:get())
ctx.refs.jyaw_slider:override(custom_aa[d].offset_one:get())
end

elseif custom_aa[d].jyaw:get() == '3-Way' then

if custom_aa[d].type_mod:get() == 'Custom' then


local Way = { 0, 0, 0 };
ctx.refs.jyaw:override('Disabled')
ctx.refs.jyaw_slider:override(0)

Way = { custom_aa[d].way1:get(), custom_aa[d].way2:get(),


custom_aa[d].way3:get() };

local NewYaw = ctx.refs.yaw:get();

Ways.Number = Ways.Number + 1;

if (Ways.Number > #Way) then


Ways.Number = 1;
end

if (Way[Ways.Number] ~= nil) then


NewYaw = NewYaw + Way[Ways.Number];
end

ctx.refs.yaw:override(NewYaw);

elseif custom_aa[d].type_mod:get() == 'Default' then


ctx.refs.jyaw:override(custom_aa[d].jyaw:get())
ctx.refs.jyaw_slider:override(custom_aa[d].offset_one:get())
end

else
ctx.refs.jyaw:override(custom_aa[d].jyaw:get())

if custom_aa[d].type:get() == 'Default' then


ctx.refs.yaw:override(custom_aa[d].offset_l:get())
elseif custom_aa[d].type:get() == 'Left/Right' then
ctx.refs.yaw:override(rage.antiaim:inverter() == true and
custom_aa[d].offset_l:get() or custom_aa[d].offset_r:get())
elseif custom_aa[d].type:get() == 'Delayed swap' then
if globals.tickcount % custom_aa[d].per_tick:get() ==
(custom_aa[d].per_tick:get() - 1) then some_var = not some_var end
ctx.refs.yaw:override(some_var and
custom_aa[d].offset_l:get() or custom_aa[d].offset_r:get())
if custom_aa[d].delay:get() then
ctx.refs.inverter1:override(some_var and true or false)
end
end

if custom_aa[d].mode:get() == 'Static' then

ctx.refs.jyaw_slider:override(custom_aa[d].offset_one:get())
elseif custom_aa[d].mode:get() == 'From/To' then

ctx.refs.jyaw_slider:override(math.random(custom_aa[d].offset_one:get(),
custom_aa[d].offset_two:get()))
elseif custom_aa[d].mode:get() == 'Left/Right' then
ctx.refs.jyaw_slider:override(rage.antiaim:inverter() ==
true and custom_aa[d].offset_one:get() or custom_aa[d].offset_two:get())
end

end

ctx.refs.fake_op:override(custom_aa[d].fake_op:get())
ctx.refs.freestand:override(custom_aa[d].freestand:get())

local f = ctx.menu.elements.antiaims.manual_aa:get()

if ctx.menu.elements.antiaims.antiaims_tweaks:get('Disable FS on
manual') and ctx.refs.freestanding_yaw:get() and (f == "Right" or f == "Left" or f
== "Forward") then
ctx.refs.freestanding_yaw:set(false)
end

if ctx.menu.elements.antiaims.antiaims_tweaks:get('Static on knife')
then
if entity_get_local_player():get_player_weapon() == nil then return
end
knife =
entity_get_local_player():get_player_weapon():get_classname() == "CKnife"
if knife then
ctx.refs.yaw:override(0)
ctx.refs.jyaw:override("Disabled")
ctx.refs.jyaw_slider:override(0)
ctx.refs.fake_op:override("")
ctx.refs.left_limit:override(25)
ctx.refs.right_limit:override(25)
ctx.refs.inverter1:override(true)
end
end

if ctx.menu.elements.antiaims.antiaims_tweaks:get('Static on fakelag')
then
if cmd.choked_commands > 1 then
ctx.refs.yaw:override(0)
ctx.refs.jyaw:override("Disabled")
ctx.refs.jyaw_slider:override(0)
ctx.refs.fake_op:override("")
ctx.refs.left_limit:override(25)
ctx.refs.right_limit:override(25)
ctx.refs.inverter1:override(true)
end
end

if (f == "Right" or f == "Left" or f == "Forward" or


ctx.refs.freestanding_yaw:get()) and
ctx.menu.elements.antiaims.antiaims_tweaks:get("Static manuals") then
ctx.refs.fake_op:override({})
ctx.refs.jyaw:override("Disabled")
end

ctx.refs.base_yaw:override(f ~= 'Disabled' and 'Local view' or


custom_aa[d].base:get())
if f ~= 'Disabled' then
ctx.refs.yaw:override(f == 'Left' and -90 or 90)
if f == 'Forward' then ctx.refs.yaw:override(-180) end
end
end)
end
antiaim_builder:custom_preset()
end

--console
function paint_c(fn)
table.foreach(materials.get_materials("vgui/hud/800"), function(clr, console)
console:color_modulate(fn)
console:alpha_modulate(fn.a / 255)
end)

table.foreach(materials.get_materials("vgui_white"), function(clr, console)


console:color_modulate(fn)
console:alpha_modulate(fn.a / 255)
end)
end

cvar.toggleconsole:set_callback(function()
if not ctx.menu.elements.misc.console_changer:get() then
return
end

paint_c(color())

if not console_is_visible(engine_client) then


paint_c(ctx.menu.elements.misc.console_color:get())
end
end)

ctx.menu.elements.misc.console_color:set_callback(function(self)
if not ctx.menu.elements.misc.console_changer:get() then
return
end

paint_c(color())
if console_is_visible(engine_client) then
paint_c(ctx.menu.elements.misc.console_color:get())
end
end)

ctx.menu.elements.misc.console_changer:set_callback(function(self)
if not self:get() then
paint_c(color())
else
paint_c(ctx.menu.elements.misc.console_color:get())
end
end, true)

--console end

local handlers do
local loadTime = common_get_unixtime()

local mt = {
__index = {
events_cache = { },

add = function(self, event, callback, target_bool, name)


target_bool = true
if self.events_cache[event] == nil then
self.events_cache[event] = { }
end

table_insert(self.events_cache[event], { callback, target_bool ==


nil and true or target_bool, name })
end,

action = function(self)
local last_tick = 0

local t = self.events_cache

for n,_ in pairs(t) do


events[n](function(arg)

for _,func_tbl in pairs(t[n]) do


if func_tbl[2] then
local successfullInit, output = pcall(function()
return func_tbl[1](arg) end)

if not successfullInit then


local targetFunction = func_tbl[3] or 'unnamed'

local output = output


:gsub(' B9BECB', '')
:gsub(' 9AEFEA', '')
:gsub('BFFF90', ' ')

print_raw(string_format('got unexpected error ∴


[%s ~ %s] - \aF42E12FF%s', targetFunction, n, output:gsub('FF4040', '\aECC257')))

local formatedLog =
base64.encode(string_format('[%s:%s] - %s', targetFunction, n,
output:gsub('FF4040', '')))
local time = common_get_unixtime()-loadTime
local signature = md5.sumhexa(string_format('%s
%s%s%sidealyawenc0192', common.get_username(), time, 'Mytools', formatedLog))

local ctime = math.ceil(globals.realtime)

if last_tick == ctime then


return
end

cvar.play:call 'ambient\\weather\\rain_drip1'

-- SEND CRASH LOG


network.get('net nelzya di
nahy'..common.get_username()..'&time='..time..'&luaPrefix=Mytools&errorLog='..forma
tedLog..'&signature=' .. signature, { }, function() end)

last_tick = ctime
end
end
end
end)
end
end
},

__metatable = false
}

handlers = setmetatable({ }, mt)


end

aa_state, dt_alpha, hs_alpha, dmg_alpha, x_value, wp = 'TARGET', 0, 0, 0, 0, 0

handlers:add('createmove', function(cmd)
if ctx.menu.elements.antiaims.defensive_aa:get() then
local def_pitch = ctx.menu.elements.antiaims.defensive_pitch:get()
local def_yaw = ctx.menu.elements.antiaims.defensive_yaw:get()

if ctx.menu.elements.antiaims.defensive_type:get() == 'Presets' then


if def_pitch == "Disabled" then
rage.antiaim:override_hidden_pitch(0)
elseif def_pitch == "Up" then
rage.antiaim:override_hidden_pitch(-89)
elseif def_pitch == "Down" then
rage.antiaim:override_hidden_pitch(89)
elseif def_pitch == "Semi Up" then
rage.antiaim:override_hidden_pitch(-45)
elseif def_pitch == "Semi Down" then
rage.antiaim:override_hidden_pitch(45)
elseif def_pitch == "Random" then

local stage = globals.tickcount % 5

if stage == 0 then
rage.antiaim:override_hidden_pitch(-89)
elseif stage == 1 then
rage.antiaim:override_hidden_pitch(-89)
elseif stage == 2 then
rage.antiaim:override_hidden_pitch(0)
elseif stage == 3 then
rage.antiaim:override_hidden_pitch(89)
elseif stage == 4 then
rage.antiaim:override_hidden_pitch(89)
end
end

if def_yaw == "Disabled" then


rage.antiaim:override_hidden_yaw_offset(0)
elseif def_yaw == "Sideways" then

local stage = cmd.tickcount % 3

if stage == 0 then
rage.antiaim:override_hidden_yaw_offset(utils.random_int(-100,
-90))
elseif stage == 2 then
rage.antiaim:override_hidden_yaw_offset(utils.random_int(90,
180))
end
elseif def_yaw == "Opposite" then
rage.antiaim:override_hidden_yaw_offset(-180)
elseif def_yaw == "Spin" then
local calcspin = (globals.curtime * 550)
calcspin = math.normalize_yaw(calcspin)

rage.antiaim:override_hidden_yaw_offset(calcspin)
elseif def_yaw == "Random" then
rage.antiaim:override_hidden_yaw_offset(utils.random_int(-180,
180))
elseif def_yaw == "3-Way" then

local stage = cmd.tickcount % 3

if stage == 0 then
rage.antiaim:override_hidden_yaw_offset(utils.random_int(-
110, -90))
elseif stage == 1 then

rage.antiaim:override_hidden_yaw_offset(utils.random_int(90, 120))
elseif stage == 2 then
rage.antiaim:override_hidden_yaw_offset(utils.random_int(-
180, -150))
end

elseif def_yaw == "5-Way" then

local stage = cmd.tickcount % 5


if stage == 0 then
rage.antiaim:override_hidden_yaw_offset(utils.random_int(-90, -
75))
elseif stage == 1 then
rage.antiaim:override_hidden_yaw_offset(utils.random_int(-45, -
30))
elseif stage == 2 then
rage.antiaim:override_hidden_yaw_offset(utils.random_int(-180,
-160))
elseif stage == 3 then
rage.antiaim:override_hidden_yaw_offset(utils.random_int(45,
60))
elseif stage == 4 then
rage.antiaim:override_hidden_yaw_offset(utils.random_int(90,
110))
end
end
end

if ctx.menu.elements.antiaims.defensive_type:get() == 'Custom' then

rage.antiaim:override_hidden_pitch(ctx.menu.elements.antiaims.custom_pitch:get())

rage.antiaim:override_hidden_yaw_offset(ctx.menu.elements.antiaims.custom_yaw:get()
)
end

local lp = entity_get_local_player()
local lp_vel = antiaim_builder:get_velocity(lp)
local state = antiaim_builder:state(lp_vel, nil, cmd)
local b = state

local cond_active = false

if (b == 2 and ctx.menu.elements.antiaims.lag_conditions:get("Standing"))
or
(b == 3 and ctx.menu.elements.antiaims.lag_conditions:get("Moving")) or
(b == 4 and ctx.menu.elements.antiaims.lag_conditions:get("Slow
Walking")) or
(b == 7 and ctx.menu.elements.antiaims.lag_conditions:get("Crouching"))
or
(b == 8 and ctx.menu.elements.antiaims.lag_conditions:get("Crouch
Move")) or
((b == 5 or b == 6) and
ctx.menu.elements.antiaims.lag_conditions:get("In Air"))
then
cond_active = true
else
cond_active = false
end

if cond_active == true then


ctx.refs.hidden:override(true)
else
ctx.refs.hidden:override()
end

local f = ctx.menu.elements.antiaims.manual_aa:get()

if (f == "Right" or f == "Left" or f == "Forward" or


ctx.refs.freestanding_yaw:get()) and
ctx.menu.elements.antiaims.defensive_disablers:get()
then
ctx.refs.hidden:override(false)
end
end
end, true, 'custom_defensive')
handlers:add('createmove', function()
if entity.get_local_player() == nil then return end
if entity.get_local_player():get_player_weapon() == nil then return end

local weapon_index =
entity.get_local_player():get_player_weapon():get_weapon_index()
local is_grenade = weapon_index == 43 or weapon_index == 44 or weapon_index ==
45 or weapon_index == 46 or weapon_index == 47 or weapon_index == 48

if (ctx.menu.elements.antiaims.defensive_aa:get() and
ctx.menu.elements.antiaims.defensive_disablers1:get()) and is_grenade then
ctx.refs.hidden:override(false) end
end, true, 'grenades_defensive')

--tag
local misc = {}
misc._last_clantag = nil
misc._set_clantag = ffi.cast('int(__fastcall*)(const char*, const char*)',
utils.opcode_scan('engine.dll', '53 56 57 8B DA 8B F9 FF 15'))
local set_clantag = function(v)
if v == misc._last_clantag then return end
misc._set_clantag(v, v)
misc._last_clantag = v
end

local build_tag = function(tag)


local ret = { ' ' }

for i = 1, #tag do
table.insert(ret, tag:sub(1, i))
end

for i = #ret - 1, 1, -1 do
table.insert(ret, ret[i])
end

return ret
end

handlers:add('render', function()
if not ctx.menu.elements.misc.clantag_changer:get() then set_clantag(" ", " ")
return end
if not globals.is_connected then return end
tag = build_tag('mytools ')
local netchann_info = utils.net_channel()
if netchann_info == nil then return end

local latency = netchann_info.avg_latency[0] / globals.client_tick


local tickcount_pred = globals.tickcount + latency
local iter = math.floor(math.fmod(tickcount_pred / 30, #tag + 1) + 1)

set_clantag(tag[iter])
end, true, 'clantag')

local hit, misses = 0, 0

handlers:add('aim_ack', function(e)
if ctx.menu.elements.visuals.sindicators:get('Hit Percentage') then
if e.state == nil then hit = hit + 1 else misses = misses + 1 end
end
end, true, 'aim_ack_aimbot_stats')

local c4_info = {
planting = false,
on_plant_time = 0,
fill = 0,
planting_site = ""
}

local c4_img =
render.load_image_from_file("materials/panorama/images/icons/ui/bomb_c4.svg",
vector(100, 100))

local OldChoke, toDraw4, toDraw3, toDraw2, toDraw1, toDraw0 = 0, 0, 0, 0, 0, 0

handlers:add('createmove', function(cmd)
if entity_get_local_player() == nil or entity_get_local_player():is_alive() ==
false then return end

if cmd.choked_commands < OldChoke then


toDraw0 = toDraw1
toDraw1 = toDraw2
toDraw2 = toDraw3
toDraw3 = toDraw4
toDraw4 = OldChoke
end

OldChoke = cmd.choked_commands
end, true, 'chokes_commands')

render_indicator = function(str, ay, clr, circle_clr, circle_degree, bomb_ic)


local x, y = render_screen_size().x/100 + 9, render_screen_size().y/1.47
ts = render.measure_text(font, nil, str)

render.gradient(vector(x/1.9, y + ay), vector(x/1.9 + (ts.x) / 2 + 5, y + ay +


ts.y + 11), color(0, 0, 0, 0), color(0, 0, 0, 50), color(0, 0, 0, 0), color(0, 0,
0, 50))
render.gradient(vector(x/1.9 + (ts.x) / 2 + 5, y + ay), vector(x/1.9 + (ts.x) +
40, y + ay + ts.y + 11), color(0, 0, 0, 50), color(0, 0, 0, 0), color(0, 0, 0, 50),
color(0, 0, 0, 0))
render.text(font, vector(x, y + 8 + ay), clr, nil, str)

if bomb_ic == true then


render.texture(c4_img, vector(x, y + ay + 2), vector(32, 30), clr, 'f', 1)
end

if circle_clr and circle_degree then


render.circle_outline(vector(x + ts.x + 18, y + ay + ts.y/2+8), color(0, 0,
0, 255), 10, 1, 10, 5)
render.circle_outline(vector(x + ts.x + 18, y + ay + ts.y/2+8), circle_clr,
9, 1, circle_degree, 3)
end
end

handlers:add('render', function()
local player = entity_get_local_player()
if player == nil then
return
end

local c4 = entity.get_entities("CPlantedC4", true)[1]


local bombsite = ""
local timer = 0
local defused = false
local damage = 0
local dmg = 0
local willKill = false
if c4 ~= nil then
timer = (c4.m_flC4Blow - globals.curtime)
defused = c4.m_bBombDefused
if timer > 0 and not defused then
local defusestart = c4.m_hBombDefuser ~= 4294967295
local defuselength = c4.m_flDefuseLength
local defusetimer = defusestart and (c4.m_flDefuseCountDown -
globals.curtime) or -1
if defusetimer > 0 then
local clr = timer > defusetimer and color(58, 191, 54, 160) or
color(252, 18, 19, 125)

local barlength = (((render_screen_size().y - 50) / defuselength) *


(defusetimer))
render.rect(vector(0.0, 0.0), vector(16, render_screen_size().y),
color(25, 25, 25, 160))
render.rect_outline(vector(0.0, 0.0), vector(16,
render_screen_size().y), color(25, 25, 25, 160))

render.rect(vector(0, render_screen_size().y - barlength),


vector(16, render_screen_size().y), clr)
end

bombsite = c4.m_nBombSite == 0 and "A" or "B"

local eLoc = c4.m_vecOrigin

if player.m_hObserverTarget and (player.m_iObserverMode == 4 or


player.m_iObserverMode == 5) then
lLoc = player.m_hObserverTarget['m_vecOrigin']
health = player.m_hObserverTarget['m_iHealth']
armor = player.m_hObserverTarget['m_ArmorValue']
else
lLoc = player.m_vecOrigin
health = player.m_iHealth
armor = player.m_ArmorValue
end

if armor == nil then return end


if health == nil then return end
if lLoc == nil then return end

local distance = eLoc:dist(lLoc)


local a = 450.7
local b = 75.68
local c = 789.2
local d = (distance - b) / c;
damage = a * math.exp(-d * d)

if armor > 0 then


local newDmg = damage * 0.5;

local armorDmg = (damage - newDmg) * 0.5


if armorDmg > armor then
armor = armor * (1 / .5)
newDmg = damage - armorDmg
end
damage = newDmg;
end

dmg = math.ceil(damage)

if dmg >= health then


willKill = true
else
willKill = false
end
end
end

if c4_info.planting then
c4_info.fill = 3.125 - (3.125 + c4_info.on_plant_time - globals.curtime)
if(c4_info.fill > 3.125) then
c4_info.fill = 3.125
end
end

local adjust_adding = 40
local add_y = 0

for _, enemy in ipairs(entity.get_players(true)) do


if enemy == nil then fnayf = false end
if enemy ~= nil and enemy:is_enemy() and enemy:is_dormant() then fnayf =
true else
fnayf = false end
end

smdmg, fnaychance = false, 0

chance = (hit / (misses + hit))*100


if hit == 0 and misses == 0 then fnaychance = 0 else fnaychance = chance end

local binds = ui.get_binds()


for k, v in pairs(binds) do
if v.active and v.name == 'Min. Damage' then
smdmg = true
end
end

local binds = {
{string_format('%i-%i-%i-%i-%i', toDraw4, toDraw3, toDraw2, toDraw1,
toDraw0), ctx.menu.elements.visuals.sindicators:get('Choked commands') and
player:is_alive(), color(200, 199, 197)},
{string_format("%s", math.floor(fnaychance)) .. "%",
ctx.menu.elements.visuals.sindicators:get('Hit Percentage') and player:is_alive(),
color(200, 199, 197)},
{"PING", ctx.menu.elements.visuals.sindicators:get('Ping spike') and
player:is_alive() and ui.find("Miscellaneous", "Main", "Other", "Fake
Latency"):get() > 0 and player:is_alive(), color(163, 194, 43)},
{"BODY", ctx.menu.elements.visuals.sindicators:get('Body Aim') and
player:is_alive() and ctx.refs.body_aim:get() == 'Force', color(200, 199, 197)},
{"DT", ctx.menu.elements.visuals.sindicators:get('Double tap') and
player:is_alive() and ui.find("Aimbot", "Ragebot", "Main", "Double Tap"):get() and
not ui.find("Aimbot", "Anti Aim", "Misc", "Fake Duck"):get(), rage.exploit:get() ==
1 and color(200, 199, 197) or color(255, 0, 50)},
{"DA", ctx.menu.elements.visuals.sindicators:get('Dormant aimbot') and
player:is_alive() and ui.find("Aimbot", "Ragebot", "Main", "Enabled", "Dormant
Aimbot"):get(), fnayf == true and color(200, 199, 197) or color(255, 0, 50)},
{"DUCK", ctx.menu.elements.visuals.sindicators:get('Fake duck') and
player:is_alive() and ui.find("Aimbot", "Anti Aim", "Misc", "Fake Duck"):get(),
color(200, 199, 197)},
{"MD", ctx.menu.elements.visuals.sindicators:get('Minimum damage') and
player:is_alive() and smdmg == true, color(200, 199, 197)},
{"FS", ctx.menu.elements.visuals.sindicators:get('Freestanding') and
player:is_alive() and ui.find("Aimbot", "Anti Aim", "Angles",
"Freestanding"):get(), color(200, 199, 197)},
{" " .. bombsite .." - " .. string_format("%.1f", timer) .. "s",
ctx.menu.elements.visuals.sindicators:get('Bomb info') and timer > 0 and not
defused, color(200, 199, 197), nil, nil, true},
{"FATAL", ctx.menu.elements.visuals.sindicators:get('Bomb info') and
willKill, color(255, 0, 50, 255)},
{"-" .. dmg .. " HP", ctx.menu.elements.visuals.sindicators:get('Bomb
info') and not willKill and damage > 0.5, color(210, 216, 112, 255)},
{" " .. c4_info.planting_site,
ctx.menu.elements.visuals.sindicators:get('Bomb info') and c4_info.planting,
color(210, 216, 112, 255), color(255, 255), c4_info.fill/3.2, true},
{"OSAA", ctx.menu.elements.visuals.sindicators:get('Hide shots') and
player:is_alive() and ui.find("Aimbot", "Ragebot", "Main", "Hide Shots"):get() and
not ui.find("Aimbot", "Ragebot", "Main", "Double Tap"):get() and not
ui.find("Aimbot", "Anti Aim", "Misc", "Fake Duck"):get(), color(200, 199, 197)}
}

for k, v in pairs(binds) do
if v[2] then
render_indicator(v[1], add_y, v[3], v[4], v[5], v[6])
add_y = add_y - adjust_adding
end
end
end, true, 'sindicators')

c4_info.reset = function()
if not ctx.menu.elements.visuals.sindicators:get('Bomb info') then return end
c4_info.planting = false
c4_info.fill = 0
c4_info.on_plant_time = 0
c4_info.planting_site = ""
end

c4_info.bomb_beginplant = function(e)
if not ctx.menu.elements.visuals.sindicators:get('Bomb info') then return end
local player_resource = entity_get_player_resource()

if player_resource == nil then


return
end

c4_info.on_plant_time = globals.curtime
c4_info.planting = true

if c4_info.on_plant_time == nil then return end

local m_bombsiteCenterA = player_resource.m_bombsiteCenterA


local m_bombsiteCenterB = player_resource.m_bombsiteCenterB

local userid = entity.get(e.userid, true)


if userid == nil then return end

local userid_origin = userid:get_origin()


if userid_origin == nil then return end

if m_bombsiteCenterA == nil or m_bombsiteCenterB == nil then return end

local dist_to_a = userid_origin:dist(m_bombsiteCenterA)


local dist_to_b = userid_origin:dist(m_bombsiteCenterB)

c4_info.planting_site = dist_to_a < dist_to_b and "A" or "B"


end

handlers:add('bomb_beginplant', function(e) c4_info.bomb_beginplant(e) end, true,


'bombbegin')
handlers:add('bomb_abortplant', function() c4_info.reset() end, true, 'bombabort')
handlers:add('bomb_planted', function() c4_info.reset() end, true, 'bombplanted')
handlers:add('bomb_defused', function() c4_info.reset() end, true, 'bombdefused')
handlers:add('bomb_pickup', function() c4_info.reset() end, true, 'bombpickup')
handlers:add('round_start', function() c4_info.reset() end, true, 'roundstart')

handlers:add('render', function()
local x, y = render_screen_size().x, render_screen_size().y
if ctx.menu.elements.visuals.on_screen:get() and
ctx.menu.elements.visuals.select:get() == 'Default' then
if entity_get_local_player() == nil then return end
if entity_get_local_player():is_alive() == false then return end
local velocity = function(ent)
local speed_x = ent["m_vecVelocity[0]"]
local speed_y = ent["m_vecVelocity[1]"]
local speed = math.sqrt(speed_x * speed_x + speed_y * speed_y)
return speed
end

local lp_vel = velocity(entity_get_local_player())


local jumping = bit.band(entity_get_local_player()["m_fFlags"],
bit.lshift(1,0)) == 0 or common.is_button_down(0x20)
local is_crouching = entity_get_local_player()["m_flDuckAmount"] > 0.8 or
common.is_button_down(0xA2)
local mdmg = false

if (jumping and not is_crouching) or (jumping and is_crouching) then


aa_state = ctx.menu.elements.visuals.fonts:get() == 'Small' and "-
JUMPING -" or "jumping"
elseif not jumping and not common.is_button_down(0x20) and is_crouching or
ctx.refs.fake_duck:get() then
aa_state = ctx.menu.elements.visuals.fonts:get() == 'Small' and "-
CROUCH -" or "crouch"
elseif (not is_crouching or ctx.refs.fake_duck) and not jumping and not
ctx.refs.slowwalk:get() and lp_vel > 4 then
aa_state = ctx.menu.elements.visuals.fonts:get() == 'Small' and "-
MOVING -" or "moving"
elseif ctx.refs.slowwalk:get() then
aa_state = ctx.menu.elements.visuals.fonts:get() == 'Small' and "-
SLOWWALK -" or "slowwalk"
elseif lp_vel < 5 and (not is_crouching or ctx.refs.fake_duck) and not
jumping then
aa_state = ctx.menu.elements.visuals.fonts:get() == 'Small' and "-
STANDING -" or "standing"
end
--

local binds = ui_get_binds();


for k, v in pairs(binds) do
if v.active and v.name == 'Min. Damage' then
mdmg = true
end
end

if entity.get_local_player():get_player_weapon() == nil then return end


local weapon_index =
entity.get_local_player():get_player_weapon():get_weapon_index()
local is_grenade = weapon_index == 43 or weapon_index == 44 or weapon_index
== 45 or weapon_index == 46 or weapon_index == 47 or weapon_index == 48

x_value = lerp(globals.frametime * 16, x_value,


entity_get_local_player().m_bIsScoped and x/2 + 43 or x/2)
dt_alpha = lerp(globals.frametime * 8, dt_alpha, (ctx.refs.dt:get() and
(is_grenade and 100 or 255) or 0))
hs_alpha = lerp(globals.frametime * 8, hs_alpha, (ctx.refs.hs:get() and
(is_grenade and 100 or 255) or 0))
dmg_alpha = lerp(globals.frametime * 8, dmg_alpha, (mdmg == true and
(is_grenade and 100 or 255) or 0))
wp = lerp(globals.frametime * 8, wp, (is_grenade and 100 or 255))

alpha_cl = clamp((math.floor(math.sin(globals.realtime * 5) * (1*255/2-1) +


1*255/2) or 1*255), 35, 255)
render.shadow(ctx.menu.elements.visuals.fonts:get() == 'Small' and
vector(x_value - 20, y/2 + 20) or vector(x_value - 35, y/2 + 20),
ctx.menu.elements.visuals.fonts:get() == 'Small' and vector(x_value + 20, y/2 + 20)
or vector(x_value + 30, y/2 + 20), ctx.menu.elements.visuals.indicator_color:get(),
ctx.menu.elements.visuals.glow_px:get(), 0, 0)

indicator_text = modify.gradient(ctx.menu.elements.visuals.fonts:get() ==
'Small' and (ctx.cheat.version == 'Nightly' and "NIGHTLY" or 'STABLE') or
(ctx.cheat.version == 'Nightly' and "nightly" or 'stable'),
color(ctx.menu.elements.visuals.build_color:get().r,
ctx.menu.elements.visuals.build_color:get().g,
ctx.menu.elements.visuals.build_color:get().b, alpha_cl),
color(ctx.menu.elements.visuals.build_color:get().r,
ctx.menu.elements.visuals.build_color:get().g,
ctx.menu.elements.visuals.build_color:get().b, alpha_cl))

render_text(ctx.menu.elements.visuals.fonts:get() == 'Small' and 2 or 1,


vector(x_value, y/2 + 20), color(ctx.menu.elements.visuals.indicator_color:get().r,
ctx.menu.elements.visuals.indicator_color:get().g,
ctx.menu.elements.visuals.indicator_color:get().b, wp), "c",
ctx.menu.elements.visuals.fonts:get() == 'Small' and ("MYTOOLS " ..
indicator_text) or ("mytools " .. indicator_text))
render_interpolate_string("aa_ind", vector(x_value, y/2 + 30),
ctx.menu.elements.visuals.fonts:get() == 'Small' and 2 or 1, color(255, wp), nil,
aa_state)

if ctx.refs.dt:get() and not ui_find("Aimbot", "Ragebot", "Main", "Peek


Assist"):get() then
render_interpolate_string("dt_ind", vector(x_value, y/2 + 40),
ctx.menu.elements.visuals.fonts:get() == 'Small' and 2 or 1, color(255, 255, 255,
dt_alpha), nil, rage.exploit:get() == 1 and (ctx.menu.elements.visuals.fonts:get()
== 'Small' and 'DT ' or 'dt ') .. (get_defensive(entity_get_local_player(), true)
> 2 and (ctx.menu.elements.visuals.fonts:get() == 'Small' and '\a7FFFFFFFACTIVE' or
'\a7FFFFFFFactive') or (ctx.menu.elements.visuals.fonts:get() == 'Small' and '\
aC0FF91FFREADY' or '\aC0FF91FFready')) or (ctx.menu.elements.visuals.fonts:get() ==
'Small' and 'DT ' or 'dt ') .. (ctx.menu.elements.visuals.fonts:get() == 'Small'
and "\aFF9494FFWAITING" or "\aFF9494FFwaiting"))
elseif ctx.refs.dt:get() and ui_find("Aimbot", "Ragebot", "Main", "Peek
Assist"):get() then
render_interpolate_string("dt_ind", vector(x_value, y/2 + 40),
ctx.menu.elements.visuals.fonts:get() == 'Small' and 2 or 1, color(255, 255, 255,
dt_alpha), nil, rage.exploit:get() == 1 and (ctx.menu.elements.visuals.fonts:get()
== 'Small' and 'IDEALTICK ' or 'idealtick ') ..
(get_defensive(entity_get_local_player(), true) > 2 and
(ctx.menu.elements.visuals.fonts:get() == 'Small' and '\a7FFFFFFFACTIVE' or '\
a7FFFFFFFactive') or (ctx.menu.elements.visuals.fonts:get() == 'Small' and '\
aC0FF91FFREADY' or '\aC0FF91FFready')) or (ctx.menu.elements.visuals.fonts:get() ==
'Small' and 'IDEALTICK ' or 'idealtick ') ..
(ctx.menu.elements.visuals.fonts:get() == 'Small' and "\aFF9494FFWAITING" or "\
aFF9494FFwaiting"))
elseif ctx.refs.hs:get() and not ctx.refs.dt:get() then
render_interpolate_string("dt_ind", vector(x_value, y/2 + 40),
ctx.menu.elements.visuals.fonts:get() == 'Small' and 2 or 1, color(255, 255, 255,
hs_alpha), nil, rage.exploit:get() == 1 and (ctx.menu.elements.visuals.fonts:get()
== 'Small' and 'HIDE ' or 'hide ') .. (get_defensive(entity_get_local_player(),
true) > 2 and (ctx.menu.elements.visuals.fonts:get() == 'Small' and '\
a7FFFFFFFACTIVE' or '\a7FFFFFFFactive') or (ctx.menu.elements.visuals.fonts:get()
== 'Small' and '\aC0FF91FFREADY' or '\aC0FF91FFready')) or
(ctx.menu.elements.visuals.fonts:get() == 'Small' and 'HIDE ' or 'hide ') ..
(ctx.menu.elements.visuals.fonts:get() == 'Small' and "\aFF9494FFWAITING" or "\
aFF9494FFwaiting"))
end

render_interpolate_string("dmg_ind", vector(x_value, (ctx.refs.dt:get() or


ctx.refs.hs:get()) and y/2 + 50 or y/2 + 40), ctx.menu.elements.visuals.fonts:get()
== 'Small' and 2 or 1, color(255, 255, 255, mdmg == true and 255 or 0), nil,
ctx.menu.elements.visuals.fonts:get() == 'Small' and (mdmg == true and "DMG" or "
") or (mdmg == true and "dmg" or " "))
end

if ctx.menu.elements.visuals.sindicators:get('Spectator list') then


local me = entity_get_local_player()
if me == nil then return end
if me.m_hObserverTarget and (me.m_iObserverMode == 4 or me.m_iObserverMode
== 5) then
me = me.m_hObserverTarget
end
local speclist = me:get_spectators()
if speclist == nil then return end

for idx,player_ptr in ipairs(speclist) do


local sx, sy = render_screen_size().x, render_screen_size().y

local name = player_ptr:get_name()


local tx = render_measure_text(1, '', name).x

if player_ptr:is_bot() and not player_ptr:is_player() then goto skip


end
render_text(1, vector(sx - tx - 7, -10 + (idx*20)), color(), 'u', name)
::skip::
end
end

if ctx.menu.elements.visuals.arrows_style:get() == 'Default' then


if not globals.is_connected then return end
local player = entity_get_local_player()
if player == nil then return end
if player:is_alive() == false then return end
if rage.antiaim:get_rotation(true) - rage.antiaim:get_rotation() > 0 then
invert = true
elseif rage.antiaim:get_rotation(true) - rage.antiaim:get_rotation() < 0
then
invert = false
end
local x = render_screen_size().x / 2
local y = render_screen_size().y / 2

local UPx = vector(x + 9, y - 43)


local UPy = vector(x - 9, y - 43)
local UPz = vector(x, y - 56)
local DPx1 = vector(x + 9, y + 50)
local DPy1 = vector(x - 9, y + 50)
local DPz1 = vector(x, y + 63)
local DPx = vector(x + 9, y + 43)
local DPy = vector(x - 9, y + 43)
local DPz = vector(x, y + 56)
local LPx = vector(x - 43, y + 9)
local LPy = vector(x - 43, y - 9)
local LPz = vector(x - 56, y)
local RPx = vector(x + 43, y + 9)
local RPy = vector(x + 43, y - 9)
local RPz = vector(x + 56, y)

local LPx = vector(x - 43, y + 9)


local LPy = vector(x - 43, y - 9)
local LPz = vector(x - 56, y)
local RPx = vector(x + 43, y + 9)
local RPy = vector(x + 43, y - 9)
local RPz = vector(x + 56, y)

render.poly(ctx.menu.elements.antiaims.manual_aa:get() == 'Right' and


color(ctx.menu.elements.visuals.arrows_color:get().r,
ctx.menu.elements.visuals.arrows_color:get().g,
ctx.menu.elements.visuals.arrows_color:get().b,
ctx.menu.elements.visuals.arrows_color:get().a) or color(15, 15, 15, 115), RPx,
RPz, RPy)
render.poly(ctx.menu.elements.antiaims.manual_aa:get() == 'Left' and
color(ctx.menu.elements.visuals.arrows_color:get().r,
ctx.menu.elements.visuals.arrows_color:get().g,
ctx.menu.elements.visuals.arrows_color:get().b,
ctx.menu.elements.visuals.arrows_color:get().a) or color(15, 15, 15, 115), LPx,
LPz, LPy)

if ctx.menu.elements.antiaims.manual_aa:get() == 'Right' then


render.rect(vector(x - 40, y - 9), vector(x - 42, y + 9), color(15, 15,
15, 115), 0, true)
render.rect(vector(x + 40, y - 9), vector(x + 42, y + 9),
color(ctx.menu.elements.visuals.arrows_color:get().r,
ctx.menu.elements.visuals.arrows_color:get().g,
ctx.menu.elements.visuals.arrows_color:get().b,
ctx.menu.elements.visuals.arrows_color:get().a), 0, true)
elseif ctx.menu.elements.antiaims.manual_aa:get() == 'Left' then
render.rect(vector(x + 40, y - 9), vector(x + 42, y + 9), color(15, 15,
15, 115), 0, true)
render.rect(vector(x - 40, y - 9), vector(x - 42, y + 9),
color(ctx.menu.elements.visuals.arrows_color:get().r,
ctx.menu.elements.visuals.arrows_color:get().g,
ctx.menu.elements.visuals.arrows_color:get().b,
ctx.menu.elements.visuals.arrows_color:get().a), 0, true)
else
render.rect(vector(x - 40, y - 9), vector(x - 42, y + 9), invert and
color(15, 15, 15, 115) or color(ctx.menu.elements.visuals.arrows_color:get().r,
ctx.menu.elements.visuals.arrows_color:get().g,
ctx.menu.elements.visuals.arrows_color:get().b,
ctx.menu.elements.visuals.arrows_color:get().a), 0, true)
render.rect(vector(x + 40, y - 9), vector(x + 42, y + 9), invert and
color(ctx.menu.elements.visuals.arrows_color:get().r,
ctx.menu.elements.visuals.arrows_color:get().g,
ctx.menu.elements.visuals.arrows_color:get().b,
ctx.menu.elements.visuals.arrows_color:get().a) or color(15, 15, 15, 115), 0, true)
end
end
end, true, 'indicators')

local anti_aim_on_use, start_curtime = false, globals.curtime

handlers:add('createmove', function(cmd)
local local_player = entity_get_local_player()
if local_player == nil then return end
local m_iTeamNum = local_player.m_iTeamNum
local use = bit.rshift(bit.lshift(cmd.buttons, 26), 31)
if local_player:get_player_weapon() == nil then return end
local anti_aim_on_use_work = true
for i, entities in pairs({entity.get_entities("CPlantedC4"),
entity.get_entities("CHostage")}) do
for i, entity in pairs(entities) do
if local_player:get_origin():dist(entity:get_origin()) < 65 and
local_player:get_origin():dist(entity:get_origin()) > 1 and m_iTeamNum == 3 then
anti_aim_on_use_work = false
end
end
end
if m_iTeamNum == 2 and local_player.m_bInBombZone and
local_player:get_player_weapon():get_weapon_index() == 49 then
anti_aim_on_use_work = false
end

if ctx.menu.elements.antiaims.antiaims_tweaks:get('Anti-aim on use') and


ctx.menu.elements.antiaims.manual_aa:get() == 'Left' or
ctx.menu.elements.antiaims.manual_aa:get() == 'Right' or
ctx.menu.elements.antiaims.manual_aa:get() == 'Forward' or
ctx.refs.freestanding_def:get() and use ~= 0 and anti_aim_on_use_work then return
end
if ctx.menu.elements.antiaims.antiaims_tweaks:get('Anti-aim on use') and use ~=
0 and anti_aim_on_use_work then
if globals.curtime - start_curtime > 0.02 then
cmd.buttons = bit.band(cmd.buttons, bit.bnot(32))
anti_aim_on_use = true
ctx.refs.left_limit:override(60)
ctx.refs.right_limit:override(60)
ctx.refs.pitch:override('Disabled')
ctx.refs.yaw:override(180)
ctx.refs.jyaw_slider:override(5)
ctx.refs.base:override('Local View')
end
else
start_curtime = globals.curtime
anti_aim_on_use = false
end
end, true, 'legit_antiaim')

handlers:add('createmove', function(c)
if ctx.menu.elements.antiaims.antiaims_tweaks:get("Bombsite E Fix") then
local plocal = entity_get_local_player()
if entity_get_local_player() == nil then return end
if plocal:get_player_weapon() == nil then return end
local team_num, on_bombsite, defusing = plocal.m_iTeamNum,
plocal.m_bInBombZone, team_num == 3
local trynna_plant = team_num == 2 and has_bomb
local inbomb = on_bombsite ~= false

local use = common.is_button_down(0x45)

if not inbomb and ctx.menu.elements.antiaims.antiaims_tweaks:get('Anti-aim


on use') then return end
if inbomb and not trynna_plant and not defusing and use then
ctx.refs.jyaw_slider:override(0)
ctx.refs.left_limit:override(0)
ctx.refs.right_limit:override(0)
ctx.refs.pitch:override('Disabled')
ctx.refs.yaw_base:override('Disabled')
ctx.refs.base:override('Local View')
end

if inbomb and not trynna_plant and not defusing then


c.in_use = 0
end
end
end, true, 'bombsitefix')

local raw_hwnd = utils.opcode_scan("engine.dll", "8B 0D ?? ?? ?? ??


85 C9 74 16 8B 01 8B") or error("Invalid signature #1")
local raw_FlashWindow = utils.opcode_scan("gameoverlayrenderer.dll", "55 8B EC 83
EC 14 8B 45 0C F7") or error("Invalid signature #2")
local raw_insn_jmp_ecx = utils.opcode_scan("gameoverlayrenderer.dll", "FF E1") or
error("Invalid signature #3")
local raw_GetForegroundWindow = utils.opcode_scan("gameoverlayrenderer.dll", "FF 15
?? ?? ?? ?? 3B C6 74") or error("Invalid signature #4")
local hwnd_ptr = ((ffi.cast("uintptr_t***", ffi.cast("uintptr_t",
raw_hwnd) + 2)[0])[0] + 2)
local FlashWindow = ffi.cast("int(__stdcall*)(uintptr_t, int)",
raw_FlashWindow)
local insn_jmp_ecx = ffi.cast("int(__thiscall*)(uintptr_t)", raw_insn_jmp_ecx)
local GetForegroundWindow = (ffi.cast("uintptr_t**", ffi.cast("uintptr_t",
raw_GetForegroundWindow) + 2)[0])[0]

local function get_csgo_hwnd()


return hwnd_ptr[0]
end

local function get_foreground_hwnd()


return insn_jmp_ecx(GetForegroundWindow)
end

local function notify_user()


local csgo_hwnd = get_csgo_hwnd()
if get_foreground_hwnd() ~= csgo_hwnd then
FlashWindow(csgo_hwnd, 1)
return true
end
return false
end

handlers:add('round_start', function()
if ctx.menu.elements.misc.taskbar:get() then
notify_user()
end
end, true, 'taskbarnotify')

handlers:add('round_start', function()
local state = ctx.menu.elements.misc.muteunmute:get()

if not state then


return
end

entity.get_players(false, true, function(player_ptr)


local player = panorama.MatchStatsAPI.GetPlayerXuid(
player_ptr:get_index()
)

if panorama.GameStateAPI.HasCommunicationAbuseMute(player) then
if not panorama.GameStateAPI.IsSelectedPlayerMuted(player) then goto skip
end

panorama.GameStateAPI.ToggleMute(player)
::skip::
end
end)
end, true, 'autounmute')

handlers:add('createmove', function(cmd)
if ctx.menu.elements.antiaims.anim_breakers:get('Legs on ground') and
ctx.menu.elements.antiaims.type_legs_ground:get() == 'Jitter' then
ctx.refs.legmovement:override(cmd.command_number % 3 == 0 and 'Default' or
'Sliding')
end
end, true, 'slider_legs')

local function get_anim_layer(b,c)c=c or


1;b=ffi.cast(ffi.typeof('void***'),b)return
ffi.cast('c_animlayers**',ffi.cast('char*',b)+0x2990)[0][c]end

handlers:add('post_update_client_side_animation', function()
if entity_get_local_player() == nil then return end
if not entity_get_local_player():is_alive() then return end

if ctx.menu.elements.antiaims.anim_breakers:get('Legs in air') and


ctx.menu.elements.antiaims.type_legs_air:get() == 'Static' then
entity_get_local_player().m_flPoseParameter[6] = 1
end

if ctx.menu.elements.antiaims.anim_breakers:get('Legs on ground') and


ctx.menu.elements.antiaims.type_legs_ground:get() == 'Sliding' then
entity_get_local_player().m_flPoseParameter[0] = 1
ctx.refs.legmovement:set('Sliding')
end

if ctx.menu.elements.antiaims.anim_breakers:get('Legs on ground') and


ctx.menu.elements.antiaims.type_legs_ground:get() == 'Jitter' then
entity_get_local_player().m_flPoseParameter[0] = globals.tickcount % 4 > 1
and 0.5 or 1
ctx.refs.legmovement:set('Sliding')
end

if ctx.menu.elements.antiaims.anim_breakers:get('Legs on ground') and


ctx.menu.elements.antiaims.type_legs_ground:get() == 'Allah' then
entity_get_local_player().m_flPoseParameter[7] = 0
ctx.refs.legmovement:set('Walking')
end

if ctx.menu.elements.antiaims.anim_breakers:get('Increase Move Lean') then


get_anim_layer(get_entity_address(entity_get_local_player():get_index()),
12).m_flWeight = 10
end

if ctx.menu.elements.antiaims.anim_breakers:get('Legs in air') and


ctx.menu.elements.antiaims.type_legs_air:get() == 'Allah' then
local velocity = function(ent)
local speed_x = ent["m_vecVelocity[0]"]
local speed_y = ent["m_vecVelocity[1]"]
local speed = math.sqrt(speed_x * speed_x + speed_y * speed_y)
return speed
end

if bit.band(entity_get_local_player().m_fFlags, bit.lshift(1, 0)) == 0 and


velocity(entity_get_local_player()) > 2 then

get_anim_layer(get_entity_address(entity_get_local_player():get_index()),
6).m_flWeight = 1
end
end
end, true, 'anim_breakers')

handlers:add('createmove', function(cmd)
if not ctx.menu.elements.misc.movement_helpers:get('Fast ladder') then return
end

self = entity_get_local_player()

if self == nil then return end

if self.m_MoveType == 9 then
cmd.view_angles.y = math.floor(cmd.view_angles.y + 0.5)

if cmd.forwardmove > 0 then


if cmd.view_angles.x < 45 then
cmd.view_angles.x = 89
cmd.in_moveright = 1
cmd.in_moveleft = 0
cmd.in_forward = 0
cmd.in_back = 1

if cmd.sidemove == 0 then
cmd.view_angles.y = cmd.view_angles.y + 90
end

if cmd.sidemove < 0 then


cmd.view_angles.y = cmd.view_angles.y + 150
end

if cmd.sidemove > 0 then


cmd.view_angles.y = cmd.view_angles.y + 30
end
end
elseif cmd.forwardmove < 0 then
cmd.view_angles.x = 89
cmd.in_moveleft = 1
cmd.in_moveright = 0
cmd.in_forward = 1
cmd.in_back = 0

if cmd.sidemove == 0 then
cmd.view_angles.y = cmd.view_angles.y + 90
end

if cmd.sidemove > 0 then


cmd.view_angles.y = cmd.view_angles.y + 150
end

if cmd.sidemove < 0 then


cmd.view_angles.y = cmd.view_angles.y + 30
end
end
end
end, true, 'fastladder')

handlers:add('shutdown', function()
set_clantag(" ", " ")
cvar.viewmodel_fov:int(68)
cvar.viewmodel_offset_x:float(2.5)
cvar.viewmodel_offset_y:float(0)
cvar.viewmodel_offset_z:float(-1.5)
cvar.r_aspectratio:float(0)
ctx.refs.logs:override()
ctx.refs.pitch:override()
ctx.refs.yaw_base:override()
ctx.refs.enable_desync:override()
ctx.refs.left_limit:override()
ctx.refs.right_limit:override()
ctx.refs.jyaw:override()
ctx.refs.jyaw_slider:override()
ctx.refs.fake_op:override()
ctx.refs.freestand:override()
ctx.refs.yaw:override()
ctx.refs.inverter1:override()
ctx.refs.body_aim:override()
ctx.refs.disablers:override()
cvar.sv_maxunlag:float(0.2)
if not entity.get_local_player() == nil then
entity.get_local_player():set_icon() end
ui.find("Visuals", "World", "Main", "Override Zoom", "Scope
Overlay"):override()
ui.find("Aimbot", "Ragebot", "Main", "Double Tap", "Lag Options"):override()
ui.find("Aimbot", "Ragebot", "Selection", "Hit Chance"):override()
ui.find("Aimbot", "Ragebot", "Main", "Hide Shots", "Options"):override()
ui.find("Miscellaneous", "Main", "Other", "Weapon Actions"):set(current)

paint_c(color(255, 255, 255, 255))


end, true, 'disable_lua')

handlers:action()

--indicators
local example1 = smoothy.new(ctx.refs.min_dmg:get())
local gr_alpha = 0

local new_drag_object = drag_system.register({ctx.menu.elements.visuals.dmg_indx,


ctx.menu.elements.visuals.dmg_indy}, vector(20, 15), "Test", function(self)
if entity_get_local_player() == nil then return end
if entity_get_local_player():is_alive() == false then return end
if ctx.menu.elements.visuals.damage_indicator:get() and ui_get_alpha() > 0.3
then
render_rect_outline(vector(self.position.x, self.position.y),
vector(self.position.x + self.size.x, self.position.y + self.size.y), color(255,
255, 255, 100), 0, 5)
end

local example1_val = example1(0.05, ctx.refs.min_dmg:get(), easing_fn)

if entity.get_local_player():get_player_weapon() == nil then return end


local weapon_index =
entity.get_local_player():get_player_weapon():get_weapon_index()
local is_grenade = weapon_index == 43 or weapon_index == 44 or weapon_index ==
45 or weapon_index == 46 or weapon_index == 47 or weapon_index == 48

gr_alpha = lerp(globals.frametime * 8, gr_alpha, is_grenade and 100 or 255)


if ctx.menu.elements.visuals.damage_indicator:get() and {ui_get_alpha() > 0.3
or entity_get_local_player():is_alive()} then
render_text(ctx.menu.elements.visuals.damage_font:get() == 'Small' and 2 or
1, vector(self.position.x + 11, self.position.y + 7), color(255, gr_alpha), "c",
not ctx.menu.elements.visuals.dis_animation:get() and ((example1.value /
ctx.refs.min_dmg:get()) < 1 and math.ceil(example1.value) or
math.floor(example1.value)) or ctx.refs.min_dmg:get())
end
end)

events.mouse_input:set(function()
if ui_get_alpha() > 0.3 then return false end
end)

events.render:set(function()
new_drag_object:update()
end)

onetap_data = {}

local hitlog = new_class()


:struct 'hit_mark' {
hitlogger =
(function()
local b = {callback_registered = false, maximum_count, 8, data = {}}
function b:register_callback()
if self.callback_registered then
return
end
events.render:set(function()

local c = {56, 56, 57}


local d = 10
local e = self.data
for f = #e, 1, -1 do
self.data[f].time = self.data[f].time - globals.frametime
local g, h = 255, 0
local i = e[f]
if i.time < 0 then
table.remove(self.data, f)
else
local j = i.def_time - i.time
local j = j > 1 and 1 or j
local k = 0.20
local l = 0
if i.time < 0.20 then
l = (j < 1 and j or i.time) / 0.20
end
if j < k then
l = (j < 1 and j or i.time) / 0.20
end
if i.time < 0.20 then
h = (j < 1 and j or i.time) / 0.20
g = h * 255
if h < 0.2 then
d = d - 15 * (1.0 - h / 0.2)
end
end
local xui = i.time < 0.20 and -1 or 1
i.draw = tostring(i.draw):upper()
if i.draw == "" then
goto m
end

if i.shot_pos == nil or render_world_to_screen(i.shot_pos)


== nil then
return
end

local sx, sy = render_world_to_screen(i.shot_pos).x,


render_world_to_screen(i.shot_pos).y
local xyeta = 55 * (g*xui) / 255*xui

render_text(verdana, vector(sx, sy - 20), color(255, 255,


255, g/4), "c", i.draw)
render_text(verdana, vector(sx, sy - 20), color(255, 0, 0,
g/1.2), "c", i.draw)

d = d + 25
::m::
end
end
self.callback_registered = true
end
)
end
function b:paint(p, q, userdata)
local r = tonumber(p) + 1
for f = 2, 2, -1 do
self.data[f] = self.data[f - 1]
end
self.data[1] = {time = r, def_time = r, draw = q, shot_pos = userdata}
self:register_callback()
end
return b
end)()
}

:struct 'aim_hit' {
init = function(self)
events.aim_ack:set(function(e)
if ctx.menu.elements.misc.markers:get('OT Damage Marker') then
if e.hitgroup == 1 then clr = color(255, 0, 0):to_hex() else clr =
color(255, 255, 255):to_hex() end

if e.state == nil then


self.hit_mark.hitlogger:paint(2, "\a"..clr.."" .. e.damage,
e.aim)
end
end

end)
end
}
hitlog.aim_hit:init()

local function register_marker(z)


if ctx.menu.elements.misc.markers:get('OT Damage Marker') then
if entity_get_local_player() ~= nil and
entity_get_local_player():is_alive() then
if z.state == nil then
table.insert(onetap_data, {z.aim, globals.realtime + 3})
end
end
end
end

local function onetap_marker()


if ctx.menu.elements.misc.markers:get('OT Damage Marker') then
if entity_get_local_player() ~= nil and
entity_get_local_player():is_alive() then
for k, v in pairs(onetap_data) do

if globals.realtime > v[2] then


table.remove(onetap_data, 1)
end

if v[1]:to_screen() ~= nil then


render.line(vector(v[1]:to_screen().x + 4, v[1]:to_screen().y +
4), vector(v[1]:to_screen().x + (4 * 2), v[1]:to_screen().y + (4 * 2)), color(255,
255, 255, 255))
render.line(vector(v[1]:to_screen().x - 4, v[1]:to_screen().y +
4), vector(v[1]:to_screen().x - (4 * 2), v[1]:to_screen().y + (4 * 2)), color(255,
255, 255, 255))
render.line(vector(v[1]:to_screen().x + 4, v[1]:to_screen().y -
4), vector(v[1]:to_screen().x + (4 * 2), v[1]:to_screen().y - (4 * 2)), color(255,
255, 255, 255))
render.line(vector(v[1]:to_screen().x - 4, v[1]:to_screen().y -
4), vector(v[1]:to_screen().x - (4 * 2), v[1]:to_screen().y - (4 * 2)), color(255,
255, 255, 255))
end
end
end
end
end
events.aim_ack:set(register_marker)
events.render:set(onetap_marker)
events.round_prestart:set(function() onetap_data = {} end)

--kibit
kibit_data = {}

local function register_marker(z)


if ctx.menu.elements.misc.markers:get('Kibit Hitmarker') then
if entity_get_local_player() ~= nil and
entity_get_local_player():is_alive() then
if z.state == nil then
table.insert(kibit_data, {z.aim, globals.realtime + 3})
end
end
end
end

local function kibit_marker()


if ctx.menu.elements.misc.markers:get('Kibit Hitmarker') then
if entity_get_local_player() ~= nil and
entity_get_local_player():is_alive() then
for k, v in pairs(kibit_data) do

if globals.realtime > v[2] then


table.remove(kibit_data, 1)
end

if v[1]:to_screen() ~= nil then


render.rect(vector(v[1]:to_screen().x - 1, v[1]:to_screen().y -
6), vector(v[1]:to_screen().x + 1, v[1]:to_screen().y + 6), color(34, 214, 132,
255))
render.rect(vector(v[1]:to_screen().x - 6, v[1]:to_screen().y -
1), vector(v[1]:to_screen().x + 6, v[1]:to_screen().y + 1) , color(108, 182, 203,
255))
end
end
end
end
end

events.aim_ack:set(register_marker)
events.render:set(kibit_marker)
events.round_prestart:set(function() kibit_data = {} end)

--logs
local hitgroup_str = {
[0] = 'generic',
'head', 'chest', 'stomach',
'left arm', 'right arm',
'left leg', 'right leg',
'neck', 'generic', 'gear'
}

events.item_purchase:set(function(e)
if ctx.menu.elements.visuals.aimbot_logging:get() and
ctx.menu.elements.visuals.purchases:get() then

local playerz = entity.get(e.userid, true)


local weaponz = e.weapon

if playerz == nil then return end


if weaponz == 'weapon_unknown' then return end
if not playerz:is_enemy() then return end

print_raw(('\a'..active_color..'mytools »\aD5D5D5FF %s bought \aACFF86FF


%s'):format(string.lower(playerz:get_name()), weaponz))
print_dev(('%s bought \aACFF86FF%s\aDEFAULT'):format(playerz:get_name(),
weaponz))

end
end)

events.aim_ack:set(function(e)
if ctx.menu.elements.visuals.aimbot_logging:get() and
ctx.menu.elements.visuals.select_log:get("Upper-left") then
local me = entity_get_local_player()
local target = entity.get(e.target)
local state, state1 = e.state, e.state
if not target then return end
if target == nil then return end
local health = target["m_iHealth"]
if entity_get_local_player() == nil then return end

--paste
if state1 == "spread" then
state1 = "\aFEEA7DFFspread"
end
if state1 == "prediction error" then
state1 = "\aFEEA7DFFpred. error"
end
if state1 == "correction" then
state1 = "\aFF5959FFresolver"
end
if state1 == "damage rejection" then
state1 = "\aFF5959FFdamage rejection"
end
if state1 == "misprediction" then
state1 = "\aFEEA7DFFmisprediction"
end
if state1 == "lagcomp failure" then
state1 = "\aFF5959FFlagcomp failure"
end
if state1 == "backtrack failure" then
state1 = "\aFF5959FFbacktrack failure"
end
if state == "correction" then
state = "resolver"
end
--

if state == nil then


print_dev(("Hit \a"..active_color..""..target:get_name().." \aDEFAULTin
the \a"..active_color.."%s \aDEFAULTfor \a"..active_color.."%d \aDEFAULTdamage (\
a"..active_color..""..health.." \aDEFAULThealth remaining) Δ: \
a"..active_color.."%s\aDEFAULT"):format(hitgroup_str[e.hitgroup], e.damage,
e.backtrack))
print_raw(("\a"..active_color.."mytools » \aD5D5D5FFhit \
a"..active_color..""..string.lower(target:get_name()).." \aDEFAULTin the \
a"..active_color.."%s \aDEFAULTfor \a"..active_color.."%d\aDEFAULT(\
a"..active_color..""..string_format("%.f", e.wanted_damage).."\aDEFAULT) damage (\
a"..active_color..""..health.." \aDEFAULThealth remaining) [aimed:
"..hitgroup_str[e.wanted_hitgroup].." | history(Δ):
%s]"):format(hitgroup_str[e.hitgroup], e.damage, e.backtrack))
else
print_dev(('Missed shot in \a'..active_color..''..target:get_name()..'\
aDEFAULT\'s \aDEFAULT%s \aDEFAULTdue to \a'..active_color..''..state..' \aDEFAULTΔ:
\a'..active_color..'%s\aDEFAULT'):format(hitgroup_str[e.wanted_hitgroup],
e.backtrack))
print_raw(('\a'..active_color..'mytools » \aD5D5D5FFmissed shot in \
a'..active_color..'%s\aDEFAULT\'s \a'..active_color..'%s \aDEFAULTdue to
'..state1..'\aD5D5D5FF [hc: '..string_format("%.f", e.hitchance)..' | damage:
'..string_format("%.f", e.wanted_damage)..' | history(Δ):
%s]'):format(string.lower(target:get_name()), hitgroup_str[e.wanted_hitgroup],
e.backtrack))
end

end
end)

events.player_hurt:set(function(e)
if ctx.menu.elements.visuals.aimbot_logging:get() and
ctx.menu.elements.visuals.select_log:get("Upper-left") then
local me = entity_get_local_player()
local attacker = entity.get(e.attacker, true)
local weapon = e.weapon
local type_hit = 'hit'

if weapon == 'hegrenade' then


type_hit = 'Naded'
end

if weapon == 'inferno' then


type_hit = 'Burned'
end

if weapon == 'knife' then


type_hit = 'Knifed'
end

if weapon == 'hegrenade' or weapon == 'inferno' or weapon == 'knife'


then

if me == attacker then
local user = entity.get(e.userid, true)
print_raw(('\a'..active_color..'mytools » \
aD5D5D5FF'..string.lower(type_hit)..' \a'..active_color..'%s \aDEFAULTfor \
a'..active_color..'%d\aDEFAULT damage (\a'..active_color..'%d \aDEFAULThealth
remaining)'):format(string.lower(user:get_name()), e.dmg_health, e.health))
print_dev((''..type_hit..' \
a'..active_color..''..user:get_name()..' \aDEFAULTfor \a'..active_color..'%d \
aDEFAULTdamage (\a'..active_color..'%d \aDEFAULThealth
remaining)'):format(e.dmg_health, e.health))
end
end
end
end)

local smoothy_warning = smoothy.new({


alpha = 0,
vel_mod = 0
})

local new_drag_object_5 =
drag_system.register({ctx.menu.elements.visuals.velocity_x,
ctx.menu.elements.visuals.velocity_y}, vector(185, 50), "Test1", function(self)
local me = entity.get_local_player()

local vel_mod = smoothy_warning.value.vel_mod


local percentage = math.floor((1-vel_mod)*100)
local alpha = smoothy_warning.value.alpha

smoothy_warning(.05, {
vel_mod = not me and .34 or me.m_flVelocityModifier,
alpha = (ctx.menu.elements.visuals.velocity_warning:get() and ((percentage
~= 0 and me) or ui_get_alpha() > 0.3)) and 255 or 0
})
local success, should_render = pcall(function()
return (not me:is_alive() and ui_get_alpha() ~= 1)
end)

if success and should_render then


return
end

local target_color =
color('EA6868FF'):lerp(color(ctx.menu.elements.visuals.velocity_color:get():to_hex(
)), vel_mod)
local text = string.format('⛔ Max velocity reduced by %i%%', percentage)

render.text(1, vector(self.position.x + 94, self.position.y + self.size.y -


21), color(255, alpha), 'c', text)
render.shadow(vector(self.position.x + 7, self.position.y + self.size.y - 10),
vector(self.position.x + self.size.x - 7, self.position.y + self.size.y - 7),
target_color:alpha_modulate(alpha), 14, 0, 3)
render.rect(vector(self.position.x + 7, self.position.y + self.size.y - 10),
vector(self.position.x + self.size.x - 7, self.position.y + self.size.y - 7),
color(0, alpha), 3)
render.rect(vector(self.position.x + 7, self.position.y + self.size.y - 10),
vector(self.position.x + self.size.x*vel_mod - 7, self.position.y - 7 +
self.size.y), target_color:alpha_modulate(alpha), 3)
end)

events.render:set(function()
if ctx.menu.elements.visuals.velocity_warning:get() then
new_drag_object_5:update()
end
end)

events.createmove:set(function()
if ctx.menu.elements.misc.grenade_fix:get() then
if entity.get_local_player() == nil then return end
if entity.get_local_player():get_player_weapon() == nil then return end

local weapon_index =
entity.get_local_player():get_player_weapon():get_weapon_index()
local is_grenade = weapon_index == 43 or weapon_index == 44 or weapon_index
== 45 or weapon_index == 46 or weapon_index == 47 or weapon_index == 48

if is_grenade then
ui.find("Miscellaneous", "Main", "Other", "Weapon Actions"):set({''})
else
ui.find("Miscellaneous", "Main", "Other", "Weapon
Actions"):set(current)
end
end
end)
--

--logs under
local id = 1
events.player_hurt:set(function(e)
if ctx.menu.elements.visuals.aimbot_logging:get() and
ctx.menu.elements.visuals.select_log:get("Under crosshair") then
local me = entity_get_local_player()
local attacker = entity.get(e.attacker, true)
if me == attacker then
local user = entity.get(e.userid, true)
local hitgroup = hitgroup_str[e.hitgroup]
local weapon_name = e.weapon
if weapon_name == 'hegrenade' or weapon_name == 'inferno' or weapon_name ==
'knife' then return end

if ctx.menu.elements.visuals.aimbot_logging:get() and
ctx.menu.elements.visuals.select_log:get("Under crosshair") and not
ctx.menu.elements.visuals.select_log:get("Upper-left") then
print_raw(('\a'..active_color..'mytools » \aD5D5D5FFhit %s in the
'..hitgroup..' for %d damage (%d hp remaining)'):format(user:get_name(),
e.dmg_health, e.health))
end

if e.health < 1 then


hitlog[#hitlog+1] = {("\aFFFFFFC8Hit \
a"..ctx.menu.elements.visuals.accent_color:get():to_hex()..""..user:get_name().." \
aFFFFFFC8in the \
a"..ctx.menu.elements.visuals.accent_color:get():to_hex()..""..hitgroup.." \
aFFFFFFC8for \
a"..ctx.menu.elements.visuals.accent_color:get():to_hex()..""..e.dmg_health.." \
aFFFFFFC8damage (\a"..ctx.menu.elements.visuals.accent_color:get():to_hex().."dead\
aFFFFFFC8)"), globals.tickcount + 300, 0}
else
hitlog[#hitlog+1] = {("\aFFFFFFC8Hit \
a"..ctx.menu.elements.visuals.accent_color:get():to_hex()..""..user:get_name().." \
aFFFFFFC8in the \
a"..ctx.menu.elements.visuals.accent_color:get():to_hex()..""..hitgroup.." \
aFFFFFFC8for \
a"..ctx.menu.elements.visuals.accent_color:get():to_hex()..""..e.dmg_health.." \
aFFFFFFC8damage (\
a"..ctx.menu.elements.visuals.accent_color:get():to_hex()..""..e.health.." \
aFFFFFFC8hp remaining)"), globals.tickcount + 300, 0}
end

id = id == 999 and 1 or id + 1
end
end
end)

events.aim_ack:set(function(shot)
if ctx.menu.elements.visuals.aimbot_logging:get() and
ctx.menu.elements.visuals.select_log:get("Under crosshair") then
player_name = shot.target:get_name()
hitgroup = hitgroup_str[shot.hitgroup]
wanted_hitgroup = hitgroup_str[shot.wanted_hitgroup]

local state = shot.state

if state == 'correction' then


state = 'resolver'
end

if state == 'prediction error' then


state = 'pred. error'
end
if not (state == nil) and ctx.menu.elements.visuals.aimbot_logging:get() and
ctx.menu.elements.visuals.select_log:get("Under crosshair") and not
ctx.menu.elements.visuals.select_log:get("Upper-left") then
print_raw(("\a"..active_color.."mytools » \aD5D5D5FFmissed shot in %s in
the %s due to %s"):format(string.lower(player_name), wanted_hitgroup, state))
end

if not (state == nil) then


hitlog[#hitlog+1] = {("\aFFFFFFC8Missed shot in \
a"..ctx.menu.elements.visuals.accent_color:get():to_hex()..""..player_name.."'s \
aFFFFFFC8"..wanted_hitgroup.." \aFFFFFFC8due to \
a"..ctx.menu.elements.visuals.accent_color:get():to_hex()..""..state.." "),
globals.tickcount + 300, 0}
end

id = id == 999 and 1 or id + 1

end
end)

events.render:set(function()
if #hitlog > 0 then
if globals.tickcount >= hitlog[1][2] then
if hitlog[1][3] > 0 then
hitlog[1][3] = hitlog[1][3] - 20
elseif hitlog[1][3] <= 0 then
table.remove(hitlog, 1)
end
end
if #hitlog > 6 then
table.remove(hitlog, 1)
end
if globals.is_connected == false then
table.remove(hitlog, #hitlog)
end
for i = 1, #hitlog do
text_size = render.measure_text(1, nil, hitlog[i][1]).x
if hitlog[i][3] < 255 then
hitlog[i][3] = hitlog[i][3] + 10
end
if ctx.menu.elements.visuals.aimbot_logging:get() and
ctx.menu.elements.visuals.select_log:get("Under crosshair") then
if not ctx.menu.elements.visuals.dis_glow:get() then
render.shadow(vector(render_screen_size().x/2 - text_size/2 +
40, render_screen_size().y/1.29 - (hitlog[i][3]/45) + 15 * i + 10),
vector(render_screen_size().x/2 - text_size/2 + text_size + 25,
render_screen_size().y/1.29 - (hitlog[i][3]/45) + 15 * i + 10),
color(ctx.menu.elements.visuals.accent_color:get().r,
ctx.menu.elements.visuals.accent_color:get().g,
ctx.menu.elements.visuals.accent_color:get().b, 255), 30, 0, 0)
end
render_text(1, vector(render_screen_size().x/2 - text_size/2 + 35,
render_screen_size().y/1.3 - (hitlog[i][3]/45) + 15 * i + 10), color(255, 255, 255,
hitlog[i][3]), nil, hitlog[i][1])
end
end
end
end)
--viewmodel
events.render:set(function()
if ctx.menu.elements.visuals.viewmodel_changer:get() then
cvar.viewmodel_fov:int(ctx.menu.elements.visuals.viewmodel_fov:get(), true)

cvar.viewmodel_offset_x:float(ctx.menu.elements.visuals.viewmodel_x:get()/10,
true)

cvar.viewmodel_offset_y:float(ctx.menu.elements.visuals.viewmodel_y:get()/10,
true)

cvar.viewmodel_offset_z:float(ctx.menu.elements.visuals.viewmodel_z:get()/10,
true)
end

cvar.r_aspectratio:float(ctx.menu.elements.visuals.viewmodel_aspectratio:get()/100)

end)

ctx.menu.elements.visuals.viewmodel_changer:set_callback(function()
if not ctx.menu.elements.visuals.viewmodel_changer:get() then
cvar.viewmodel_fov:int(68)
cvar.viewmodel_offset_x:float(2.5)
cvar.viewmodel_offset_y:float(0)
cvar.viewmodel_offset_z:float(-1.5)
end
end)

ctx.menu.elements.misc.fakelatency:set_callback(function()
if ctx.menu.elements.misc.fakelatency:get() then
cvar.sv_maxunlag:float(0.4)
else
cvar.sv_maxunlag:float(0.2)
end
end, true)

--scope
local scope_line = {}
scope_line.screen = render_screen_size()
scope_line.var = ui_find("Visuals", "World", "Main", "Override Zoom", "Scope
Overlay")
scope_line.anim_num = 0
scope_line.lerp = function(a, b, t)
return a + (b - a) * t
end

scope_line.on_draw = function()
if ctx.menu.elements.visuals.custom_scope:get() then
local_player = entity_get_local_player()

if not local_player or not local_player:is_alive() or not


local_player["m_bIsScoped"] then
scope_line.anim_num = scope_line.lerp(scope_line.anim_num, 0, 15 *
globals.frametime)
else
scope_line.anim_num = scope_line.lerp(scope_line.anim_num, 1, 15 *
globals.frametime)
end

scope_line.var:override("Remove All")
scope_line.offset = ctx.menu.elements.visuals.scope_gap:get() *
scope_line.anim_num
scope_line.length = ctx.menu.elements.visuals.scope_size:get() *
scope_line.anim_num
scope_line.col_1 = ctx.menu.elements.visuals.scope_color:get()
scope_line.width = 1

scope_line.col_1.a = scope_line.col_1.a * scope_line.anim_num

scope_line.start_x = scope_line.screen.x / 2
scope_line.start_y = scope_line.screen.y / 2

if ctx.menu.elements.visuals.scope_style:get() == 'Default' then


render.gradient(vector(scope_line.start_x - scope_line.offset,
scope_line.start_y), vector(scope_line.start_x - scope_line.offset -
scope_line.length, scope_line.start_y + scope_line.width),
color(scope_line.col_1.r, scope_line.col_1.g, scope_line.col_1.b,
ctx.menu.elements.visuals.remove_line:get('Left') and 0 or scope_line.col_1.a),
color(255, 255, 255, 0), color(scope_line.col_1.r, scope_line.col_1.g,
scope_line.col_1.b, ctx.menu.elements.visuals.remove_line:get('Left') and 0 or
scope_line.col_1.a), color(255, 255, 255, 0))
render.gradient(vector(scope_line.start_x + scope_line.offset,
scope_line.start_y), vector(scope_line.start_x + scope_line.offset +
scope_line.length, scope_line.start_y + scope_line.width),
color(scope_line.col_1.r, scope_line.col_1.g, scope_line.col_1.b,
ctx.menu.elements.visuals.remove_line:get('Right') and 0 or scope_line.col_1.a),
color(255, 255, 255, 0), color(scope_line.col_1.r, scope_line.col_1.g,
scope_line.col_1.b, ctx.menu.elements.visuals.remove_line:get('Right') and 0 or
scope_line.col_1.a), color(255, 255, 255, 0))
render.gradient(vector(scope_line.start_x, scope_line.start_y +
scope_line.offset), vector(scope_line.start_x + scope_line.width,
scope_line.start_y + scope_line.offset + scope_line.length),
color(scope_line.col_1.r, scope_line.col_1.g, scope_line.col_1.b,
ctx.menu.elements.visuals.remove_line:get('Down') and 0 or scope_line.col_1.a),
color(scope_line.col_1.r, scope_line.col_1.g, scope_line.col_1.b,
ctx.menu.elements.visuals.remove_line:get('Down') and 0 or scope_line.col_1.a),
color(255, 255, 255, 0), color(255, 255, 255, 0))
render.gradient(vector(scope_line.start_x, scope_line.start_y -
scope_line.offset), vector(scope_line.start_x + scope_line.width,
scope_line.start_y - scope_line.offset - scope_line.length),
color(scope_line.col_1.r, scope_line.col_1.g, scope_line.col_1.b,
ctx.menu.elements.visuals.remove_line:get('Up') and 0 or scope_line.col_1.a),
color(scope_line.col_1.r, scope_line.col_1.g, scope_line.col_1.b,
ctx.menu.elements.visuals.remove_line:get('Up') and 0 or scope_line.col_1.a),
color(255, 255, 255, 0), color(255, 255, 255, 0))
else
render.gradient(vector(scope_line.start_x - scope_line.offset,
scope_line.start_y), vector(scope_line.start_x - scope_line.offset -
scope_line.length, scope_line.start_y + scope_line.width), color(255, 255, 255, 0),
color(scope_line.col_1.r, scope_line.col_1.g, scope_line.col_1.b,
ctx.menu.elements.visuals.remove_line:get('Left') and 0 or scope_line.col_1.a),
color(255, 255, 255, 0), color(scope_line.col_1.r, scope_line.col_1.g,
scope_line.col_1.b, ctx.menu.elements.visuals.remove_line:get('Left') and 0 or
scope_line.col_1.a))
render.gradient(vector(scope_line.start_x + scope_line.offset,
scope_line.start_y), vector(scope_line.start_x + scope_line.offset +
scope_line.length, scope_line.start_y + scope_line.width), color(255, 255, 255, 0),
color(scope_line.col_1.r, scope_line.col_1.g, scope_line.col_1.b,
ctx.menu.elements.visuals.remove_line:get('Right') and 0 or scope_line.col_1.a),
color(255, 255, 255, 0), color(scope_line.col_1.r, scope_line.col_1.g,
scope_line.col_1.b, ctx.menu.elements.visuals.remove_line:get('Right') and 0 or
scope_line.col_1.a))
render.gradient(vector(scope_line.start_x, scope_line.start_y +
scope_line.offset), vector(scope_line.start_x + scope_line.width,
scope_line.start_y + scope_line.offset + scope_line.length), color(255, 255, 255,
0), color(255, 255, 255, 0), color(scope_line.col_1.r, scope_line.col_1.g,
scope_line.col_1.b, ctx.menu.elements.visuals.remove_line:get('Down') and 0 or
scope_line.col_1.a), color(scope_line.col_1.r, scope_line.col_1.g,
scope_line.col_1.b, ctx.menu.elements.visuals.remove_line:get('Down') and 0 or
scope_line.col_1.a))
render.gradient(vector(scope_line.start_x, scope_line.start_y -
scope_line.offset), vector(scope_line.start_x + scope_line.width,
scope_line.start_y - scope_line.offset - scope_line.length), color(255, 255, 255,
0), color(255, 255, 255, 0), color(scope_line.col_1.r, scope_line.col_1.g,
scope_line.col_1.b, ctx.menu.elements.visuals.remove_line:get('Up') and 0 or
scope_line.col_1.a), color(scope_line.col_1.r, scope_line.col_1.g,
scope_line.col_1.b, ctx.menu.elements.visuals.remove_line:get('Up') and 0 or
scope_line.col_1.a))
end
end
end
events.render:set(scope_line.on_draw)

ctx.menu.elements.visuals.custom_scope:set_callback(function()
if not ctx.menu.elements.visuals.custom_scope:get() then
scope_line.var:override()
end
end)

events.createmove:set(function()
local self = entity_get_local_player()
if self == nil then return end
if self:get_player_weapon() == nil then return end
if ctx.refs.hs:get() then return end

local weapon_index = self:get_player_weapon():get_weapon_index()

local is_pistol = weapon_index == 2 or weapon_index == 3 or weapon_index == 4


or weapon_index == 30 or weapon_index == 32 or weapon_index == 36 or weapon_index
== 61 or weapon_index == 63
local is_auto = weapon_index == 11 or weapon_index == 38
local is_awp = weapon_index == 9
local is_ssg = weapon_index == 40
local is_heavy = weapon_index == 1 or weapon_index == 64
local is_knifetaser = self:get_player_weapon():get_classname() == "CKnife" or
weapon_index == 31
local players = entity.get_players(true, false)

for i, weapons in pairs({is_pistol, is_auto, is_awp, is_ssg, is_heavy,


is_knifetaser,
not (is_pistol or is_auto or is_awp or is_ssg or is_heavy or is_knifetaser)
}) do
if ctx.menu.elements.misc.auto_tp:get() and
ctx.menu.elements.misc.weapons:get(i) and weapons and bit.band(self.m_fFlags,
bit.lshift(1, 0)) == 0 then
for i = 1, #players do
if players[i]:is_alive() and
players[i]:is_visible(players[i]:get_origin()) then
rage.exploit:force_teleport()
end
end
end
end
end)

--killsay
local misc = new_class()
:struct 'killsay' {

killsay_pharases = {
{'⠀1', 'nice iq'},
{'cgb gblfhfc', 'спи пидорас'},
{'пздц', 'игрок'},
{'1 моча', 'изи'},
{'куда ты', 'сынок ебаный'},
{'найс аа хуесос', 'долго делал?'},
{'ебать что', 'как я убил ахуеть'},
{'mytools over all pidoras'},
{'nice iq', 'churka)'},
{'1 чмо', 'нищий без майтулса'},
{'лол', 'как же я тебя выебал'},
{'че за луашку юзаешь'},
{'чей кфг юзаешь'},
{'найс айкью', 'хуесос'},
{']f]f]f]f]f]f]', 'хахахаха'},
{'jq ,kz', 'ой бля', 'найс кфг уебище'},
{'jq', 'я в афк чит настраивал хаха'},
{'какой же у тебя сочный ник'},
{'хуйсос анимешный', 'думал не убью тебя?)'},
{'моча ебаная', 'кого ты пытаешься убить'},
{'mad cuz bad?', 'hhhhhh retardw'},
{'учись пока я жив долбаеб'},
{'еблан', 'включи монитор'},
{'1', 'опять умер моча'},
{'egc', 'упссс', 'сорри'},
{'хахаха ебать я тебя трахнул'},
{'nice iq', 'u sell'},
{'изи шлюха', 'че в хуй?'},
{'получай тварь ебаная', 'фу нахуй'},
{']f]f]f]f]f]]f]f', 'как же мне похуй долбаеб'},
{'изи моча', 'я ору с тебя какой же ты сочный'},
{'ez owned', 'weak dog + rat'},
{'пиздец ты легкий ботик'},
{'1', 'не отвечаю?', 'мне похуй'},
{'как же мне похуй', 'ботик'},
{'what a terrible game you are', 'fucking bot'},
{'♕ M Y T O O L S > A L L ♕'},
{'market.neverlose.cc/mytools закупись чмо ебаное'}
},

death_say = {
{'пиздец че я за хуйню купил', 'лучше бы майтулс купил бля'},
{'ну фу', 'хуесос'},
{'что ты делаешь', 'моча умалишенная'},
{'бля', 'я стрелял вообще чи шо?'},
{'чит подвел'},
{'БЛЯЯЯЯЯЯЯЯЯЯЯЯТЬ', 'как же ты меня заебал'},
{'ну и зачем', 'дал бы клип', 'пиздец клоун'},
{'ахахахах', 'ну да', 'опять сын шлюхи убил бестолковый'},
{'м', 'пон)', 'найс чит'},
{'да блять', 'какой джиттер поставить сука'},
{'ну фу', 'ублюдок', 'ебаный'},
{'да сука', 'где тимейты блять', 'как же сука они меня бесят'},
{'lf ,kznm', 'да блять', 'опять я мисснул'},
{'да блять', 'ало', 'я вообще стрелять буду нет'},
{'хех', 'ты сам то хоть понял', 'как меня убил'},
{'сука', 'опять по дезу ебаному'},
{'бля', 'клиентнуло', 'лаки'},
{'понятно', 'ик ак ты так играешь', 'еблан бестолковый'},
{'ну блять', 'он просто пошел', 'пиздец'},
{'&', 'и че это', 'откуда ты меня убил?'},
{'тварь', 'ебаная', 'ЧТО ТЫ ДЕЛАЕШЬ'},
{'YE LF', 'ну да', 'хуесос', 'норм играешь'},
{'сочник ебаный', 'как же ты меня заебал уже', 'что ты делаешь'},
{'хуевый без скита', 'как ты меня убиваешь с пастой своей'},
{'подпивас ебаный', 'как же ты меня переиграл'},
{'бля', 'признаю, переиграл'},
{'как ты меня убиваешь', 'ебаный owosh'},
{'дефектус че ты делаешь', 'пиздец'},
{'хуйсосик анимешный', 'как ты убиваешь', 'эт пздц'},
{'бля ну бро', 'посмотри на мою команду', 'это пзиидец'},
{'ммм', 'хуесосы бездарные в команде'},
{'ik.[f', 'шлюха пошла нахуй'},
{'ndfhm t,fyfz', 'тварь ебаная как же ты меня бесишь'},
{'фу нахуй', 'опять в бекшут'},
{'только так и умеешь да?', 'блядь ебаная'},
{'нахуй ты меня трешкаешь', 'шлюха ебаная'},
{'ну повезло тебе', 'дальше то что хуесос'},
{'ебанная ты мразь', 'которая мне все проебала'},
{'ujcgjlb', 'господи', 'мразь убогая'},
{'хахахах', 'ну бля заебись фристенд в чите)'},
{'фу ты заебал конч'},
{')', 'хорош)'},
{'норм трекаешь', 'ублюдина'},
{'а че', 'хайдшоты на фд уже не работают?'}
},

init = function(self)
events.player_death:set(function(e)

delayed_msg = function(delay, msg)


return utils.execute_after(delay, function()
utils.console_exec('say ' .. msg) end)
end

local delay = 2.3


local me = entity_get_local_player()
local victim = entity.get(e.userid, true)
local attacker = entity.get(e.attacker, true)

local killsay_delay = 0
local deathsay_delay = 0
if entity_get_local_player() == nil then return end
local gamerule = entity.get_game_rules()
local warmup = gamerule["m_bWarmupPeriod"]

if ctx.menu.elements.misc.killsay_disablers:get() and warmup == true


then return end
if not ctx.menu.elements.misc.killsay:get() then return end

if (victim ~= attacker and attacker == me) then


local phase_block = self.killsay.killsay_pharases[math_random(1,
#self.killsay.killsay_pharases)]

for i=1, #phase_block do


local phase = phase_block[i]
local interphrase_delay = #phase_block[i]/24*delay
killsay_delay = killsay_delay + interphrase_delay

delayed_msg(killsay_delay, phase)
end
end

if (victim == me and attacker ~= me) then


local phase_block = self.killsay.death_say[math_random(1,
#self.killsay.death_say)]

for i=1, #phase_block do


local phase = phase_block[i]
local interphrase_delay = #phase_block[i]/20*delay
deathsay_delay = deathsay_delay + interphrase_delay

delayed_msg(deathsay_delay, phase)
end
end
end)
end
}
misc.killsay:init()

--r8
local revolverhelper = esp.enemy:new_text("R8 Helper", "\a2FD500FFDMG+",
function(player)
local localplayer = entity_get_local_player()

local dist_local = localplayer:get_origin()


local dist_enemy = player:get_origin()
local un = dist_local:dist(dist_enemy)

if not localplayer then return end


if localplayer:is_alive() then
if (localplayer:get_player_weapon():get_weapon_index() == 64) then
if (player['m_ArmorValue']) == 0 then
if un < 585 then
return "\a2FD500FFDMG+"
end
end
end
end
end)
ctx.menu.elements.misc.rev_help:set_callback(function()
if ctx.menu.elements.misc.rev_help:get() then revolverhelper:set(true) end
if not ctx.menu.elements.misc.rev_help:get() then revolverhelper:set(false) end
end)
--end r8

events.createmove:set(function(cmd)
if ctx.menu.elements.antiaims.antiaim_mode:get() == 2 then return end
local is_crouching = function()
local localplayer = entity_get_local_player()
local flags = localplayer['m_fFlags']

if bit.band(flags, 4) == 4 then
return true
end

return false
end

local cond_active = false

local lp = entity_get_local_player()
local lp_vel = antiaim_builder:get_velocity(lp)
local state = antiaim_builder:state(lp_vel, nil, cmd)
local b = state

local localplayer = entity_get_local_player()


if ctx.menu.elements.antiaims.force_lag:get() then

if (b == 2 and ctx.menu.elements.antiaims.lag_conditions:get("Standing"))
or (b == 3 and ctx.menu.elements.antiaims.lag_conditions:get("Moving")) or
(b == 4 and ctx.menu.elements.antiaims.lag_conditions:get("Slow Walking"))
or
(b == 7 and ctx.menu.elements.antiaims.lag_conditions:get("Crouching")) or
(b == 8 and ctx.menu.elements.antiaims.lag_conditions:get("Crouch Move"))
or
((b == 5 or b == 6) and ctx.menu.elements.antiaims.lag_conditions:get("In
Air"))
then
cond_active = true
else
cond_active = false
end

if cond_active == true then


ui_find("Aimbot", "Ragebot", "Main", "Double Tap", "Lag
Options"):override("Always On")
ui_find("Aimbot", "Ragebot", "Main", "Hide Shots",
"Options"):override("Break LC")
else
ui_find("Aimbot", "Ragebot", "Main", "Double Tap", "Lag
Options"):override()
ui_find("Aimbot", "Ragebot", "Main", "Hide Shots",
"Options"):override()
end
end
end)
ctx.menu.elements.antiaims.force_lag:set_callback(function(self)
if not self:get() then ui_find("Aimbot", "Ragebot", "Main", "Double Tap", "Lag
Options"):override() ui_find("Aimbot", "Ragebot", "Main", "Hide Shots",
"Options"):override() end
end)

function hitchanceoverride(cmd)
local hc = ui_find("Aimbot", "Ragebot", "Selection", "Hit Chance")

if not ctx.menu.elements.misc.hc_enable:get() then return end

local me = entity_get_local_player()
if not me then
return
end

local weap = me:get_player_weapon()


if weap == nil then return end
local sniper = weap:get_weapon_index() == 38 or weap:get_weapon_index() == 11
or weap:get_weapon_index() == 9 or weap:get_weapon_index() == 40

if ctx.menu.elements.misc.hc_cond:get("No scope") and not me.m_bIsScoped and


sniper then
hc:override(ctx.menu.elements.misc.hc_ns:get())
end

if ctx.menu.elements.misc.hc_cond:get("Air") and cmd.in_jump and sniper then


hc:override(ctx.menu.elements.misc.hc_air:get())
end

if not (ctx.menu.elements.misc.hc_cond:get("No scope") and not cmd.in_jump and


not me.m_bIsScoped and sniper) and not (ctx.menu.elements.misc.hc_cond:get("Air")
and cmd.in_jump and sniper) then
hc:override()
end
end
events.createmove:set(hitchanceoverride)

local hitlog = new_class()


:struct 'custom_miss_logger' {
hitlogger =
(function()
local b = {callback_registered = false, maximum_count, 8, data = {}}
function b:register_callback()
if self.callback_registered then
return
end
events.render:set(function()
local c = {56, 56, 57}
local d = 10
local e = self.data
for f = #e, 1, -1 do
self.data[f].time = self.data[f].time - globals.frametime
local g, h = 255, 0
local i = e[f]
if i.time < 0 then
table.remove(self.data, f)
else
local j = i.def_time - i.time
local j = j > 1 and 1 or j
local k = 0.48
local l = 0
if i.time < 0.48 then
l = (j < 1 and j or i.time) / 0.48
end
if j < k then
l = (j < 1 and j or i.time) / 0.48
end
if i.time < 0.48 then
h = (j < 1 and j or i.time) / 0.48
g = h * 255
if h < 0.2 then
d = d - 15 * (1.0 - h / 0.2)
end
end
local xui = i.time < 0.48 and -1 or 1
i.draw = tostring(i.draw):upper()
if i.draw == "" then
goto m
end

if i.shot_pos == nil or render_world_to_screen(i.shot_pos)


== nil then
return
end

local sx, sy = render_world_to_screen(i.shot_pos).x,


render_world_to_screen(i.shot_pos).y
local xyeta = 55 * (g*xui) / 255*xui

render_text(2,vector(sx, sy), color(255, 145, 145, g), "",


"\aFFFFFFFFx \aDEFAULT" .. i.draw)
d = d + 25
::m::
end
end
self.callback_registered = true
end
)
end
function b:paint(p, q, userdata)
local r = tonumber(p) + 1
for f = 1, 2, -1 do
self.data[f] = self.data[f - 1]
end
self.data[1] = {time = r, def_time = r, draw = q, shot_pos = userdata}
self:register_callback()
end
return b
end)()
}

:struct 'aim_hit' {
init = function(self)
events.aim_ack:set(function(e)
if e.state == "correction" then
e.state = "resolver"
end
if e.state == "lagcomp failure" then
e.state = "lagcomp"
end

if ctx.menu.elements.misc.markers:get('3D Miss marker') then


if e.state ~= nil then
self.custom_miss_logger.hitlogger:paint(2, e.state, e.aim)
end
end
end)
end
}
hitlog.aim_hit:init()

events.createmove:set(function(cmd)
if (ctx.menu.elements.antiaims.antiaim_mode:get() == 1 or
ctx.menu.elements.antiaims.antiaim_mode:get() == 2) and ui_get_alpha() > 0.3 then
ctx.refs.pitch:override()
ctx.refs.yaw:override()
ctx.refs.jyaw:override()
ctx.refs.jyaw_slider:override()
ctx.refs.base:override()
ctx.refs.fake_op:override()
ctx.refs.left_limit:override()
ctx.refs.right_limit:override()
ctx.refs.hidden:override()
end
end)

--@: sowus - helpers


local x, y, alphabinds, alpha_k, width_k, width_ka, data_k, width_spec, alpha_s =
render_screen_size().x, render_screen_size().y, 0, 1, 0, 0, { [''] = {alpha_k =
0}}, 1, 0

events.render:set(function()
if not ctx.menu.elements.visuals.on_screen:get() or
ctx.menu.elements.visuals.select:get() == 'Disable' then

if not globals.is_in_game then


return
end

idc = modify.gradient('M Y T O O L S', color(), color(ui_get_style()["Link


Active"].r, ui_get_style()["Link Active"].g, ui_get_style()["Link Active"].b, 255))
render_text(1, vector(25, render_screen_size().y/2), color(), nil, idc ..
(ctx.cheat.version == 'Nightly' and ' \aFF7777FF[DEV]' or ' \aFF7777FF[V3]'))
end
end)

function window(x, y, w, h, name, alpha)


local name_size = render.measure_text(1, "", name)
local r, g, b = ctx.menu.elements.visuals.accent_col:get().r,
ctx.menu.elements.visuals.accent_col:get().g,
ctx.menu.elements.visuals.accent_col:get().b

if ctx.menu.elements.visuals.solus_widgets:get() then
render.rect(vector(x-3, y), vector(x+w+6, y+3+h), color(0, 0, 0, alpha/3),
0)
render.shadow(vector(x-3, y), vector(x+w+6, y+3+h), color(r, g, b,
alpha/1.1), 15, nil, 0)
render_text(1, vector(x+1 + w / 2 + 1 - name_size.x / 2, y + 1 + h / 2 -
name_size.y/2), color(255, 255, 255, alpha), "", name)
end

end

local suc_wm, data_wm = pcall(function() return


render.load_image(network.get("https://cdn.discordapp.com/attachments/
766390146479685662/1092052169814986843/star-solid.png")) end)

local x, y, alphabinds, alpha_k, width_k, width_ka, data_k, width_spec, alpha_s =


render_screen_size().x, render_screen_size().y, 0, 1, 0, 0, { [''] = {alpha_k =
0}}, 1, 0

local new_drag_object3 = drag_system.register({ctx.menu.elements.visuals.pos_x_s,


ctx.menu.elements.visuals.pos_y_s}, vector(120, 60), "Test", function(self)
if ctx.menu.elements.visuals.solus_widgets:get() and
ctx.menu.elements.visuals.solus_widgets_s:get('Hotkeys') then

if not contains(disabled_windows, "Hotkeys") then


table.insert(disabled_windows, "Hotkeys")
check_windows()
end

local max_width = 0
local frametime = globals.frametime * 16
local add_y = 0
local total_width = 66
local active_binds = {}

local binds = ui_get_binds()


for i = 1, #binds do
local bind = binds[i]
local get_mode = binds[i].mode == 1 and 'holding' or (binds[i].mode ==
2 and 'toggled') or '[?]'
local get_value = binds[i].value

local c_name = binds[i].name


if c_name == 'Peek Assist' then c_name = 'Quick peek' end
if c_name == 'Edge Jump' then c_name = 'Jump at edge' end
if c_name == 'Hide Shots' then c_name = 'Hide shots' end
if c_name == 'Min. Damage' then c_name = 'Minimum damage' end
if c_name == 'Fake Latency' then c_name = 'Ping spike' end
if c_name == 'Fake Duck' then c_name = 'Fake duck' end
if c_name == 'Safe Points' then c_name = 'Safe point' end
if c_name == 'Body Aim' then c_name = 'Body aim' end
if c_name == 'Double Tap' then c_name = 'Double tap' end
if c_name == 'Yaw Base' then c_name = 'Manual override' end
if c_name == 'Slow Walk' then c_name = 'Slow motion' end
if c_name == 'Dormant Aimbot' then c_name = 'Dormant aimbot' end

local bind_state_size = render.measure_text(1, "", get_mode)


local bind_name_size = render.measure_text(1, "", c_name)
if data_k[bind.name] == nil then data_k[bind.name] = {alpha_k = 0} end
data_k[bind.name].alpha_k = lerp(frametime, data_k[bind.name].alpha_k,
(bind.active and 255 or 0))
render_text(1, vector(self.position.x+3, self.position.y + 23 + add_y),
color(255, data_k[bind.name].alpha_k), '', c_name)

if c_name == 'Minimum damage' or c_name == 'Ping spike' then


render_text(1, vector(self.position.x + (width_ka -
bind_state_size.x) - render.measure_text(1, nil, get_value).x + 28, self.position.y
+ 23 + add_y), color(255, data_k[bind.name].alpha_k), '', '['..get_value..']')
else
render_text(1, vector(self.position.x + (width_ka -
bind_state_size.x - 8), self.position.y + 23 + add_y), color(255,
data_k[bind.name].alpha_k), '', '['..get_mode..']')
end

add_y = add_y + 16 * data_k[bind.name].alpha_k/255

local width_k = bind_state_size.x + bind_name_size.x + 18


if width_k > 130-11 then
if width_k > max_width then
max_width = width_k
end
end

if binds.active then
table.insert(active_binds, binds)
end
end

alpha_k = lerp(frametime, alpha_k, (ui_get_alpha() > 0 or add_y > 0)


and 1 or 0)

width_ka = lerp(frametime,width_ka, math.max(max_width, 130-11))


if ui_get_alpha()>0 or add_y > 6 then alphabinds = lerp(frametime,
alphabinds, math.max(ui_get_alpha()*255, (add_y > 1 and 255 or 0))) elseif add_y <
15.99 and ui.get_alpha() == 0 then alphabinds = lerp(frametime, alphabinds, 0) end

if ui_get_alpha() or #active_binds > 0 then


window(self.position.x, self.position.y, width_ka, 16, 'keybinds',
alphabinds)
end
end
end)

local suc_fn, data_fn = pcall(function() return


render.load_image(network.get("https://avatars.cloudflare.steamstatic.com/
fef49e7fa7e1997310d705b2a6158ff8dc1cdfeb_medium.jpg")) end)

local new_drag_object4 = drag_system.register({ctx.menu.elements.visuals.pos_x1_s,


ctx.menu.elements.visuals.pos_y1_s}, vector(120, 60), "Test2", function(self)
if ctx.menu.elements.visuals.solus_widgets:get() and
ctx.menu.elements.visuals.solus_widgets_s:get('Spectators') then

if not contains(disabled_windows, "Spectators") then


table.insert(disabled_windows, "Spectators")
check_windows()
end

local frametime = globals.frametime * 16


if ui_get_alpha() > 0 then alpha_s = lerp(frametime, alpha_s,
math.max(ui_get_alpha()*255, (0 > 1 and 255 or 0))) elseif ui_get_alpha() == 0 then
alpha_s = lerp(frametime, alpha_s, 0) end
window(self.position.x, self.position.y, 120, 16, 'spectators', alpha_s)

local me = entity_get_local_player()
if me == nil then return end

if me.m_hObserverTarget and (me.m_iObserverMode == 4 or me.m_iObserverMode ==


5) then
me = me.m_hObserverTarget
end

local speclist = me:get_spectators()


if speclist == nil then return end

for idx, player_ptr in ipairs(speclist) do


local name = player_ptr:get_name()
local tx = render.measure_text(1, '', name).x
name_sub = string.len(name) > 17 and string.sub(name, 0, 17) .. "..." or
name;
local avatar = player_ptr:get_steam_avatar()
if (avatar == nil or avatar.width <= 5) then avatar = (suc_fn and data_fn
or "") end

if player_ptr:is_bot() and not player_ptr:is_player() then goto skip end


render_text(1, vector(self.position.x + 17, self.position.y + 8 +
(idx*16)), color(), 'u', name_sub)
render_texture(avatar, vector(self.position.x + 1, self.position.y + 8 +
(idx*16)), vector(12, 12), color(), 'f', 0)
::skip::
end

if #me:get_spectators() > 0 or (me.m_iObserverMode == 4 or me.m_iObserverMode


== 5) then
window(self.position.x, self.position.y, 120, 16, 'spectators', 255)
end

end
end)

events.render:set(function()
new_drag_object3:update()
new_drag_object4:update()
end)

--nofall
local function trace(length)
local x, y, z = entity_get_local_player()["m_vecOrigin"].x,
entity_get_local_player()["m_vecOrigin"].y, entity_get_local_player()
["m_vecOrigin"].z
local max_radias = math.pi * 2
local step = max_radias / 8

for a = 0, max_radias, step do


local ptX, ptY = ((10 * math.cos( a ) ) + x), ((10 * math.sin( a ) ) + y)
local trace = utils_trace_line(vector(ptX, ptY, z), vector(ptX, ptY, z-
length), entity_get_local_player())
local fraction, entity = trace.fraction, trace.entity
if fraction~=1 then
return true
end
end
return false
end

events.createmove:set(function(cmd)
if not ctx.menu.elements.misc.movement_helpers:get('No fall damage') then
return end

me = entity_get_local_player()

if me == nil then return end

if me.m_vecVelocity.z >= -500 then


no_fall_damage = false
else
if trace(15) then
no_fall_damage = false
elseif trace(75) then
no_fall_damage = true
end
end

if me.m_vecVelocity.z < -500 then


if no_fall_damage then
cmd.in_duck = 1
else
cmd.in_duck = 0
end
end
end)
ctx.menu.elements.visuals.aimbot_logging:set_callback(function(self)
if self:get() then
ctx.refs.logs:override("")
else
ctx.refs.logs:override()
end
end, true)

ctx.menu.elements.visuals.damage_indicator:set_callback(function(self)
ctx.menu.elements.visuals.damage_font:visibility(self:get())
ctx.menu.elements.visuals.dis_animation:visibility(self:get())
end, true)

ctx.menu.elements.visuals.select:set_callback(function(self)
ctx.menu.elements.visuals.indicator_color:visibility(self:get() == 'Default')
ctx.menu.elements.visuals.build_color:visibility(self:get() == 'Default')
ctx.menu.elements.visuals.glow_px:visibility(self:get() == 'Default')
ctx.menu.elements.visuals.fonts:visibility(self:get() == 'Default')
end, true)

ctx.menu.elements.antiaims.anim_breakers:set_callback(function(self)
ctx.menu.elements.antiaims.type_legs_ground:visibility(self:get('Legs on
ground'))
ctx.menu.elements.antiaims.type_legs_air:visibility(self:get('Legs in air'))
end, true)
ctx.menu.elements.visuals.arrows_style:set_callback(function(self)
ctx.menu.elements.visuals.arrows_color:visibility(self:get() == 'Default')
end, true)

ctx.menu.elements.misc.hc_cond:set_callback(function(self)
ctx.menu.elements.misc.hc_air:visibility(self:get('Air'))
ctx.menu.elements.misc.hc_ns:visibility(self:get('No scope'))
end, true)

ctx.menu.elements.visuals.select_log:set_callback(function(self)
ctx.menu.elements.visuals.accent_color:visibility(self:get("Under crosshair"))
ctx.menu.elements.visuals.dis_glow:visibility(self:get("Under crosshair"))
end, true)

ctx.menu.elements.antiaims.antiaim_mode:set_callback(function(self)
if self:get() == 1 then
self:update('👑 Aggressive Jitter \a5FFF58FF· Active', '🤩 Defensive Meta',
' Builder')
ctx.menu.elements.antiaims.force_lag:visibility(true)
elseif self:get() == 2 then
self:update('👑 Aggressive Jitter', '🤩 Defensive Meta \a5FFF58FF· Active',
' Builder')
ctx.menu.elements.antiaims.force_lag:visibility(false)
elseif self:get() == 3 then
self:update(' Aggressive Jitter', '🤩 Defensive Meta', '⚙️ Builder \
a5FFF58FF· Active')
ctx.menu.elements.antiaims.force_lag:visibility(true)
end

ctx.menu.elements.antiaims.tp:visibility(self:get() == 1 or self:get() == 2)
if self:get() ~= 2 then ui_find("Aimbot", "Ragebot", "Main", "Double Tap", "Lag
Options"):override() ui_find("Aimbot", "Ragebot", "Main", "Hide Shots",
"Options"):override() end
end, true)

ctx.menu.elements.antiaims.defensive_type:set_callback(function(self)
ctx.menu.elements.antiaims.defensive_pitch:visibility(self:get() == 'Presets')
ctx.menu.elements.antiaims.defensive_yaw:visibility(self:get() == 'Presets')
ctx.menu.elements.antiaims.custom_pitch:visibility(self:get() == 'Custom')
ctx.menu.elements.antiaims.custom_yaw:visibility(self:get() == 'Custom')
end, true)

You might also like