Examples
Various examples of scripts.
Draw time since cheat inject in seconds
local function ExampleDrawingHook()
draw.Color(220, 50, 50, 255);
draw.Text(128, 128, tostring(common.Time()));
end
callbacks.Register("Draw", "ExampleDrawingHook", ExampleDrawingHook);
Snap lines ESP
local function ExampleSnapLines()
local screenCenterX, screenH = draw.GetScreenSize();
screenCenterX = screenCenterX * 0.5;
draw.Color(255, 0, 0, 255);
local players = entities.FindByClass("CCSPlayer");
for i = 1, #players do
local player = players[i];
if player:IsAlive() then
local x, y = client.WorldToScreen(player:GetAbsOrigin());
if x ~= nil and y ~= nil then
draw.Line(x, y, screenCenterX, screenH);
end
end
end
end
callbacks.Register("Draw", "ExampleSnapLines", ExampleSnapLines);
Kill Say
local Kill_String = "get owned";
local Death_String = "nice luck";
local function CHAT_KillSay(Event)
if (Event:GetName() == "player_death") then
local ME = client.GetLocalPlayerIndex();
local INT_UID = Event:GetInt("userid");
local INT_ATTACKER = Event:GetInt("attacker");
local NAME_Victim = client.GetPlayerNameByUserID(INT_UID);
local INDEX_Victim = client.GetPlayerIndexByUserID(INT_UID);
local NAME_Attacker = client.GetPlayerNameByUserID(INT_ATTACKER);
local INDEX_Attacker = client.GetPlayerIndexByUserID(INT_ATTACKER);
if (INDEX_Attacker == ME and INDEX_Victim ~= ME) then
client.ChatSay(" " .. tostring(Kill_String) .. " " .. NAME_Victim);
elseif (INDEX_Victim == ME and INDEX_Attacker ~= ME) then
client.ChatSay(" " .. tostring(Death_String) .. " " .. NAME_Attacker);
end
end
end
client.AllowListener("player_death");
callbacks.Register("FireGameEvent", "AWKS", CHAT_KillSay);
Auto Buy
local function autobuy(event)
if event:GetName() == "round_prestart" then
client.Command("buy scar20; buy deagle; buy vest; buy vesthelm; buy incgrenade; buy molotov; buy hegrenade; buy smokegrenade", true)
end
end
client.AllowListener("round_prestart");
callbacks.Register("FireGameEvent", "autobuy", autobuy);
Radio Spammer
local last_spam = globals.TickCount()
local function RadioSpam()
if globals.TickCount() - last_spam > 32 then
client.Command("getout")
last_spam = globals.TickCount()
end
end
callbacks.Register("Draw", "RadioSpam", RadioSpam);
GUI
local msc_ref = gui.Reference("MISC", "Part 1");
local msc_lua_checkbox = gui.Checkbox(msc_ref, "msc_lua_checkbox", "Lua Checkbox", false);
local wnd_luatest = gui.Window("wnd_luatest", "Lua GUI", 200, 200, 200, 400);
local lua_checkbox = gui.Checkbox(wnd_luatest, "lua_checkbox", "Checkbox", false);
local lua_slider = gui.Slider(wnd_luatest, "lua_slider", "Slider", 0, 0, 100);
local lua_keybox = gui.Keybox(wnd_luatest, "lua_keybox", "Keybox", 0);
local lua_combobox = gui.Combobox(wnd_luatest, "lua_combobox", "Combobox", "Combo1", "Combo2", "Combo3");
local lua_groupbox = gui.Groupbox(wnd_luatest, "Groupbox", 16, 200, 168, 100);
local lua_groupcheckbox = gui.Checkbox(lua_groupbox, "lua_groupcheckbox", "Group Checkbox", true);
local debugFont = draw.CreateFont("Tahoma", 60);
local function OnDraw()
draw.SetFont(debugFont);
if lua_checkbox:GetValue() then
draw.Text(200, 200, "Checkbox is checked");
end
draw.Text(200, 300, "Slider: " .. lua_slider:GetValue());
end
callbacks.Register("Draw", "LuaGuiTest", OnDraw);
Vector math
print(vector.Length(100, 100, 100));
print(vector.Add({0, 0, 0}, {100, 100, 100}));
print(vector.Add({0, 0, 0}, 100));
print(vector.Distance(0, 0, 0, 100, 100, 100));
print(vector.Distance({0, 0, 0 }, {100, 100, 100}));
local function OnDrawESP(builder)
local ent = builder:GetEntity();
local localply = entities.GetLocalPlayer();
builder:AddTextTop("Distance: " .. vector.Distance({ent:GetAbsOrigin()}, {localply:GetAbsOrigin()}));
end
callbacks.Register("DrawESP", OnDrawESP);
Chat message replacement
callbacks.Register("SendStringCmd", function(cmd)
-- replace "no" with "yes"
if string.find(cmd:Get(), "say \"no\"") == 1 then
cmd:Set("say \"yes\"");
end
end)
Block sending regular chat messages
callbacks.Register("SendStringCmd", function(cmd)
if string.find(cmd:Get(), "say") == 1 then
cmd:Set(""); -- chat message wont be sent
end
end)
Chat logging
-- For more information about user messages look here:
-- https://github.com/SteamDatabase/Protobufs/blob/master/csgo/cstrike15_usermessages.proto
local function UserMessageCallback(msg)
-- CS_UM_SayText2
if msg:GetID() == 6 then
-- CCSUsrMsg_SayText2.ent_idx
local index = msg:GetInt(1);
-- CCSUsrMsg_SayText2.params
local message = msg:GetString(4, 1);
local name = client.GetPlayerNameByIndex(index);
print(name .. " says: " .. message);
end
end
callbacks.Register("DispatchUserMessage", "UserMessageExample", UserMessageCallback);
SVG drawing
local svgData = http.Get("https://upload.wikimedia.org/wikipedia/commons/f/fd/Ghostscript_Tiger.svg");
local imgRGBA, imgWidth, imgHeight = common.RasterizeSVG(svgData);
local texture = draw.CreateTexture(imgRGBA, imgWidth, imgHeight);
local function ExampleTextureDrawing()
draw.SetTexture(texture);
draw.FilledRect(0, 0, imgWidth, imgHeight);
end
callbacks.Register("Draw", "ExampleTextureDrawing", ExampleTextureDrawing);
File writing
local f = file.Open("myfile.txt", "w");
f:Write("mydata");
f:Close();
UDP client and server
local serverIP = "127.0.0.1";
local serverPort = 1234;
local server = network.Socket("UDP");
local client = network.Socket("UDP");
if server:Bind(serverIP, serverPort) then
print("Socket bound to port " .. serverPort);
end
local size = client:SendTo(serverIP, serverPort, "Hello!");
if size > 0 then
print("Sent " .. size .. " bytes");
end
callbacks.Register("Draw", function()
local msg, ip, port = server:RecvFrom("0.0.0.0", 0, 100);
if msg then
print("Received message from " .. ip .. ":" .. port .. ": " .. msg);
end
end)