Skip to content

Instantly share code, notes, and snippets.

@leonardoraele
Last active February 8, 2024 22:36
Show Gist options
  • Select an option

  • Save leonardoraele/fe4d4c4af9b2155d30e6ee36034f642e to your computer and use it in GitHub Desktop.

Select an option

Save leonardoraele/fe4d4c4af9b2155d30e6ee36034f642e to your computer and use it in GitHub Desktop.
CSGO scripts for input binds and practice
// Jumpthrow bind
alias "+jumpthrow" "+jump;-attack;-attack2"; alias "-jumpthrow" "-jump"; bind v "+jumpthrow"
// Crosshair lining up bind
bind 1 "slot1; cl_crosshairsize 8;";
bind 2 "slot2; cl_crosshairsize 6;";
bind 3 "slot3; cl_crosshairsize 6;";
bind 5 "slot5; cl_crosshairsize 6;";
bind 4 "slot6; cl_crosshairsize 6;";
bind f "slot7; cl_crosshairsize 6;";
bind c "slot8; cl_crosshairsize 1000;";
bind x "slot9; cl_crosshairsize 6;";
bind z "slot10; cl_crosshairsize 6;";
// Demo shortcuts
bind "kp_ins" "demo_pause"
bind "kp_end" "demo_resume; demo_timescale 0.3"
bind "kp_downarrow" "demo_resume; demo_timescale 1"
bind "kp_pgdn" "demo_resume; demo_timescale 3"
bind "F5" "demo_togglepause"
bind "F6" "+fw"
alias "+fw" "demo_timescale 0.3"
alias "-fw" "demo_timescale 1"
bind "F7" "+fw2"
alias "+fw2" "demo_timescale 3"
alias "-fw2" "demo_timescale 1"
bind "F8" "demoui"
/* nadetraining.nut
* Popflash Training Script
* by S0lll0s, Bidj and Rurre
*
* goes into /csgo/scripts/vscripts/nadetraining.nut
*
* USAGE, in console:
* script_execute nadetraining
* script nadeSetup()
* bind "anykey" "script nadeSavePos()"
* bind "anykey" "script pauseScript()"
* Press the nadeSavePos() key before every nade you want to save, all following nades will fly the same path.
* regardless of how you throw them. To pause the script and throw nades freely use the other bind pauseScript().
*/
this.nadePos <- null;
this.nadeVel <- null;
this.nadeSaveMode <- true;
this.nadeLastNade <- null;
this.isPaused <- false;
printl( @"nadetraining executed" );
printl( @"type to start: script nadeSetup()" );
function nadeSetup() {
printl( @"[NT] nadetraining.nut" );
printl( @"[NT] Popflash Training Script" );
printl( @"[NT] by S0lll0s, Bidj and Rurre" );
printl( @"[NT] USAGE:" );
printl( @"[NT] bind ""anykey"" ""script nadeSavePos()""" );
printl( @"[NT] bind ""anyotherkey"" ""script pauseScript()""" );
printl( @"[NT] Press the key before every nade you save, all following nades will fly the same path" );
printl( @"[NT] starting setup..." );
SendToConsole( @"sv_cheats 1" );
SendToConsole( @"ent_remove nadeTimer" );
SendToConsole( @"ent_create logic_timer" );
SendToConsole( @"ent_fire logic_timer addoutput ""targetname nadeTimer""" );
SendToConsole( @"ent_fire nadeTimer toggle" );
SendToConsole( @"ent_fire nadeTimer addoutput ""refiretime 0.05""" );
SendToConsole( @"ent_fire nadeTimer enable" );
SendToConsole( @" ent_fire nadeTimer addoutput ""startdisabled 0""" );
SendToConsole( @" ent_fire nadeTimer addoutput ""UseRandomTime 0""" );
SendToConsole( @" ent_fire nadeTimer addoutput ""ontimer nadeTimer,RunScriptCode,nadeThink()""" );
printl( @"[NT] done. You can turn off sv_cheats now." );
}
function nadeSavePos() {
nadeSaveMode = true;
ScriptPrintMessageCenterAll( "Saving next Flashbang or Grenade" );
}
function nadeThink() {
local nade = null;
while ( Entities.FindByClassname(nade, "flashbang_projectile") != null ) {
nade = Entities.FindByClassname(nade, "flashbang_projectile");
saveRestore( nade );
}
nade = null;
while ( Entities.FindByClassname(nade, "hegrenade_projectile") != null ) {
nade = Entities.FindByClassname(nade, "hegrenade_projectile");
saveRestore( nade );
}
}
function pauseScript()
{
if(isPaused == false)
{
isPaused = true;
ScriptPrintMessageCenterAll( "Pausing script. You can now throw grenades freely." );
}
else
{
isPaused = false;
ScriptPrintMessageCenterAll( "Resuming script. Last saved grenade remembered." );
}
}
function saveRestore( nade ) {
if (isPaused == false){
if ( nadeLastNade != nade ) {
if ( nadeSaveMode ) {
ScriptPrintMessageCenterAll( "Saved" );
nadePos = nade.GetCenter();
nadeVel = nade.GetVelocity();
nadeSaveMode = false;
} else {
nade.SetAbsOrigin( nadePos );
nade.SetVelocity( nadeVel );
}
nadeLastNade = nade;
}
}
}
// Server configuration
sv_cheats 1
mp_limitteams 0
mp_autoteambalance 0
mp_freezetime 0
mp_roundtime 60
mp_roundtime_defuse 60
mp_roundtime_hostage 60
mp_maxmoney 99999
mp_startmoney 99999
mp_buytime 9999
mp_buy_anywhere 1
ammo_grenade_limit_total 5
sv_infinite_ammo 2
bot_kick
mp_warmup_end
// Grenade trajectory commands. Note – these don't work on dedicated servers.
// For dedicated servers, use SourceMod plugin "Nade tails" instead.
sv_grenade_trajectory 1
sv_grenade_trajectory_time 10
// Show bullet impacts
sv_showimpacts 1
sv_showimpacts_time 10
mp_restartgame 1
// Print out so we know the config has been executed.
Say "Practice config enabled"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment