Hey Guys,
This weekend I started working on an idea I had for some time.
A platform that allows lua scripts to interact with CS:GO.
Currently I have something functioning but it is far from done.
Screenshot:
Todo:
- Add additional global tables for Menu, Display and Hotkeys
- Add more utility functions like World2Screen (Might be in Utility or in Game)
- Threading
- Networking (normal downloading + websockets)
- (Including a 2d/3d sound engine.)
Done:
- Interacting with the memory (Memory)
- Player entities (Entities)
- Mouse functionality (Utility.Mouse)
Scripts (or actual hack functionality):
- Aimbot
- Triggerbot
- Radar
- RCS
- No Flash
- Mobile phone support (load scripts using your mobile phone, radar on your phone) (using websockets)
- Soft aim (aim assist)
- Sound ESP (maybe using directional sound)
What are scripts and what can they do:
Scripts are created in Lua which is imo a simple scripting language.
Scripts can currently interact with the cs:go memory (RPM/WPM), use the mouse to move & click and get info about entities.
Scripts can have 3 special functions at this moment:
- tick - Gets called approx. 1000 times a second, this is the main function where you put the other functions in.
- updateMe - Gets called when updating the me object (or your player), this allows scripts to add data to the me object which will become available for every other script
- updateEntity - Gets called for every entity when this entity is being updated, this allows scripts to add data to that entity and the changed entity will become available for every other script.
Example scripts:
Demo script:
Code:
TestScript = {
-- Tick function gets called approx. 1000 times a second
tick = function()
end,
-- updateEntity(entity) gets called for every entity that is being updated except the special entity me
updateEntity = function(ent)
-- Currently the engine doesn't have a spotted variable so we can implement that with a script
ent.spotted = false
if (Memory:readInt(ent.dwBase + 0x935) == 1) then
ent.spotted = true
end
-- An isEnemy function would also be nice
ent.isEnemy = function()
return (ent.team ~= Game.me.team)
end
return ent -- Return the modified entity
end,
-- updateMe(me) gets called when updating the me entity
updateMe = function(me)
return me -- The update functions should always(!) return a table with data
end
}
register_script("TestScript")
Radar + Triggerbot script:
Code:
HackScript = {
tick = function()
HackScript.radar()
HackScript.trigger()
end,
radar = function()
for i, ent in ipairs(Game.Entities) do
if (ent.isEnemy() and ent.lifeState == 0 and ent.spotted == false) then
Memory:writeInt(ent.dwBase + 0x935, 1)
end
end
end,
trigger = function()
if (Game.me.inCross ~= 0) then
for i, ent in ipairs(Game.Entities) do
if (ent.isEnemy()) then
Utility.Mouse.click(false)
return
end
end
end
end
}
register_script("HackScript")
For who will this hack be:
The engine will have 2 versions a public and private one, the public one will have the same functionality but it will probably get detected fast. I intend to make the public engine undetected once every week but this depends on the popularity of mainly the private one.
The private one will be able for sale but I am not sure how I will get a user base (as it is not allowed to post any kind of link in the hack).
Who will make scripts:
I have literally no idea who will make scripts but I will release basic scripts for the most popular functions (ESP, Aimbot, Radar, Trigger, RCS, No Flash).
The idea is/was that other people can make improvements to those scripts or maybe sell them back to me for me to publish.
What do you guys think about this idea and do you have any suggestions?