All Projects → birjolaxew → csgo-vscripts

birjolaxew / csgo-vscripts

Licence: other
Various vscripts for CS:GO I have written

Programming Languages

Squirrel
32 projects

Projects that are alternatives of or similar to csgo-vscripts

csgo-gsi
A Java library for Counter-Strike: Global Offensive's game state integration
Stars: ✭ 23 (-8%)
Mutual labels:  csgo, valve, counter-strike-global-offensive
discord-10man
Discord bot for CS:GO Scrims and Pugs
Stars: ✭ 34 (+36%)
Mutual labels:  csgo, valve, counter-strike-global-offensive
keyframes
CS:GO camera path smoothing
Stars: ✭ 23 (-8%)
Mutual labels:  csgo, counter-strike-global-offensive, vscripts
Csgo Multi 1v1
CS:GO Sourcemod plugin to create multi-1v1 arena servers
Stars: ✭ 230 (+820%)
Mutual labels:  csgo, counter-strike-global-offensive
Garhal csgo
A project that demonstrates how to screw with CSGO from Kernel Space. (CSGO Kernel Cheat/Hack) All cleaned up, and with updated offsets.
Stars: ✭ 179 (+616%)
Mutual labels:  csgo, counter-strike-global-offensive
Deadcell Csgo
Full source to the CS:GO cheat
Stars: ✭ 339 (+1256%)
Mutual labels:  csgo, counter-strike-global-offensive
Csgo Retakes
CS:GO Sourcemod plugin for a site-retake gamemode
Stars: ✭ 272 (+988%)
Mutual labels:  csgo, counter-strike-global-offensive
Goesp
Cross-platform streamproof ESP hack for Counter-Strike: Global Offensive, written in modern C++. Rendering and GUI powered by Dear ImGui.
Stars: ✭ 210 (+740%)
Mutual labels:  csgo, counter-strike-global-offensive
Pcsgolh
PCSGOLH - Pointless Counter-Strike: Global Offensive Lua Hooks. A open-source Lua API for CS:GO hacking written in modern C++
Stars: ✭ 56 (+124%)
Mutual labels:  csgo, counter-strike-global-offensive
CounterStrike-GlobalOffensive-LiveStat-for-OBS-Studio
Showing you LIVEstats of CS:GO in your Stream like OBS-Studio while playing/streaming.
Stars: ✭ 24 (-4%)
Mutual labels:  csgo, counter-strike-global-offensive
Vac Bypass Loader
Loader for VAC Bypass written in C.
Stars: ✭ 204 (+716%)
Mutual labels:  csgo, valve
Advancedfx
Half-Life Advanced Effects (HLAE) is a tool to enrich Source (mainly CS:GO) engine based movie making.
Stars: ✭ 231 (+824%)
Mutual labels:  csgo, counter-strike-global-offensive
Csgo Pug Setup
CS:GO Sourcemod plugin for setting up private pug/10man games
Stars: ✭ 330 (+1220%)
Mutual labels:  csgo, counter-strike-global-offensive
Get5
CS:GO Sourcemod plugin for competitive matches/scrims
Stars: ✭ 390 (+1460%)
Mutual labels:  csgo, counter-strike-global-offensive
Gametracking Csgo
📥 Game Tracker: Counter-Strike: Global Offensive
Stars: ✭ 286 (+1044%)
Mutual labels:  csgo, valve
Anubis
Free open-source training software / cheat for Counter-Strike: Global Offensive, written in C.
Stars: ✭ 81 (+224%)
Mutual labels:  csgo, counter-strike-global-offensive
Aristois Legit
Full project files for aristois, Counter-Strike: Global Offensive cheat.
Stars: ✭ 110 (+340%)
Mutual labels:  csgo, counter-strike-global-offensive
Vac Bypass
Valve Anti-Cheat bypass written in C.
Stars: ✭ 241 (+864%)
Mutual labels:  csgo, valve
Bhoptimer
A bunnyhop timer plugin for Counter-Strike: Source, Counter-Strike: Global Offensive and Team Fortress 2.
Stars: ✭ 151 (+504%)
Mutual labels:  csgo, counter-strike-global-offensive
Kento-Rankme
Rankme for CSGO
Stars: ✭ 73 (+192%)
Mutual labels:  csgo, counter-strike-global-offensive

A collection of VScripts for CS:GO.

You're probably going to be most interested in the lib/ folder - this is where I keep track of all the utility stuff I've extracted into library scripts, which you can use as you see fit.

If you want to use this code for learning VScript, then you should know that all the code here is a mixture of terrible and fairly decent code. I've learned a decent bit as I've gotten more comfortable with Squirrel, but I wouldn't recommend attempting to duplicate my code style.

If you need help with VScripts, I can suggest joining the Source Engine Discord. People there do tons of stuff I wouldn't even dream of being able to.

Installation

Download this repo, extract it to steamapps\common\Counter-Strike Global Offensive\csgo\scripts\vscripts.

Further installation may be necessary depending on the mod. Make sure you check each folder's README.

Notes on Squirrel

Developing VScripts is cumbersome, mostly due to the poor documentation. Here are a few tips and tricks I've ran into:

CS:GO's Squirrel is old
The version of Squirrel that is embedded in CS:GO is Squirrel 2.2. This means that some of the newer features (e.g. .find() or in on arrays) aren't available.
Script files are executed every round, but root table remains unchanged
At the start of every round, every entity's script is executed. However, the root table still contains any data set from previous runs. Any code you want to run every round (e.g. creating entities, which are invalidated at the end of every round) is fine with this, but any code you want to keep across rounds (e.g. keeping track of state) should be placed behind a guard and store its state in the root table.
VScripts are fucked

Valve's code tends to be... interesting. The VScript implementation is no exception. Whenever you rely on some Valve-implemented API, make sure you test that it returns what you expect.

An example of this: if you loop through entities using Entities.First()/Entities.Next(ent) and check ent.GetClassname() == "player" on each entity, you'll get all bots and players. If you instead loop through entities using Entities.FindByClassname(ent, "player"), then you'll only get players and not bots. Why? Because that's just the way it is. Welcome to the Source engine.

Outputs are asynchronous
Be careful when triggering outputs on entities (e.g. showing messages using an env_hudhint) - they will not execute until your Squirrel code is finished. You can wait until the next think cycle to work around this.
Entities will not react to script-created keyvalues by themselves
If you have an entity that is supposed to do something without being triggered by an input (e.g. a logic_eventlistener) then you cannot set it up in your VScript, as the __KeyValueFrom* functions do not execute any related logic. You must instead set it up in Hammer.
If you have an entity that reads its keyvalues on input (e.g. a env_hudhint) then it's fine to set it up in your VScript, as it will read the keyvalue directly when you trigger it. Experiment a bit, as it's sometimes difficult to know which is which.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].