//https://wiki.teamfortress.com/wiki/List_of_default_keys

// unbindall before re-doing bindings
unbindall

// tab graph
alias +tabgraph "+showscores; net_graph 1"
alias -tabgraph "-showscores; net_graph 0"

// bind for showing some info
alias +showinfo "cl_showfps 1; net_graph 1; cl_showpos 1"
alias -showinfo "cl_showfps 0; net_graph 0; cl_showpos 0"

// 1 tick ctap script
//alias "+ctap" "+duck 1; -duck 1; +jump 1"
//alias "-ctap" "-jump 1"

// 2 tick ctap script
// +attack only calls spec_next when directly bound to a key
alias +ctap_attack "+attack; spec_next"
alias -ctap_attack  -attack
alias +ctap_rj "-duck; +jump; +ctap_attack"
alias -ctap_rj "-jump; -ctap_attack; bind mouse1 +ctap_attack"
alias +ctap "+duck; bind mouse1 +ctap_rj; spec_prev"
alias -ctap -duck

//medic radar
alias +radar "hud_medicautocallersthreshold 500"
alias -radar "hud_medicautocallersthreshold 59"

// zoom
alias +zoom "fov_desired 75; r_drawviewmodel 0"
alias -zoom "fov_desired 90; r_drawviewmodel 1"

// crouch jump script
alias +rj "spec_mode;-duck;+cr;alias checkrj +cr"
alias -rj "-cr;checkduck;alias checkrj none"
alias +crouch "-cr;+duck;alias checkduck +duck"
alias -crouch "-duck;checkrj;alias checkduck none"
alias checkduck none
alias checkrj none
alias +cr "+jump;+duck"
alias -cr "-duck;-jump"
alias none ""

// quick build/destroy sentry
alias sentry "destroy 2; build 2"

// binds
// slots
bind 1 "slot1"
bind 2 "slot2"
bind 3 "slot3"
bind 4 "slot4"
bind 5 "slot5"
bind 6 "slot6"
bind 7 "slot7"
bind 8 "slot8"
bind 9 "slot9"
bind 0 "slot10"

// notification interaction
bind j "cl_trigger_first_notification"
bind k "cl_decline_first_notification"

// voice menu
bind f1 "voice_menu_1"
bind f2 "voice_menu_2"
bind f3 "voice_menu_3"

// class/team binds
bind n "+quickswitch"
bind m "open_charinfo_direct"
bind , "changeclass"
bind . "changeteam"

// interaction
bind r "+reload"
bind b "lastdisguise"
bind g "+taunt"
bind h "+context_action"
bind \ "dropitem"
bind z "+radar"
bind mouse4 "+zoom"
bind ` "toggleconsole"
bind enter "show_quest_log"
bind escape "cancelselect"
bind [ "retry"
bind ] "pause"
bind rctrl "impulse 101"
//fake call
bind alt "sentry"
//call medic
bind e "voicemenu 0 0"
bind tab "+showscores"
//cancel taunt
bind x "lastinv"
bind f "+inspect"
//call spy
bind ctrl "voicemenu 1 1"
bind mouse5 "+use_action_slot_item"
bind mouse3 "+attack3"

// attack binds
bind mouse1 "+attack"
bind mouse2 "+attack2"

// scroll weapons
bind mwheelup "invprev"
bind mwheeldown "invnext"

// chat binds
bind y "say"
bind u "say_team"
bind i "say_party"
bind v +voicerecord
//spray
bind t "impulse 201"
//show logs.tf logs
bind l "cl_disablehtmlmotd 0; say !log"

// killbinds
bind - "kill"
bind = "explode"

//bind for map vote when it breaks
bind f9 "next_map_vote 0"
bind f10 "next_map_vote 1"
bind f11 "next_map_vote 2"

// loadouts
bind f5 "loadouts.A"
bind f6 "loadouts.B"
bind f7 "loadouts.C"
bind f8 "loadouts.D"
bind q "loadouts.resup"

// ready toggle
bind f4 "player_ready_toggle"

//bind to use mconfig null movement binds
bind w "+mf"
bind a "+ml"
bind s "+mb"
bind d "+mr"

// movement
bind space "+jump"
bind shift "+duck"
bind c "+rj"

// other
bind p "snd_restart;hud_reloadscheme"
//bind <key> "incrementvar r_drawviewmodel 0 1 1"
//bind <key> "incrementvar cl_first_person_uses_world_model 0 1 1"
//bind <key> "incrementvar tf_use_min_viewmodel 0 1 1"

// find alt bind

//disabled as banned in rgl now for some reason
//bind ctrl "+ctap"