Hey everyone! I'm Selve and as many you guys are aware, there are a ton of TF2 crosshair switchers out there but I made this one because I really didn't feel comfortable with those. So here it is. In the following text, I'm just basically going to go over customization instructions and some basic guidelines.
1. The Basic Text
So here is the switcher in its most basic form:
alias m_slot1 "slot1; bind MWHEELUP "m_slot3"; bind MWHEELDOWN "m_slot2""
alias m_slot2 "slot2; bind MWHEELUP "m_slot1"; bind MWHEELDOWN "m_slot3""
alias m_slot3 "slot3; bind MWHEELUP "m_slot2"; bind MWHEELDOWN "m_slot1""
bind 1 "m_slot1"
bind 2 "m_slot2"
bind 3 "m_slot3"
As of now, all it does is just switch from slot to slot. Nothing special. The more observant individuals will notice that it doesn't even work for Spy and Engineer. So below are the basic switchers for those to classes, presented respectively
//SPY
alias m_slot1 "slot1; bind MWHEELUP "m_slot4"; bind MWHEELDOWN "m_slot2""
alias m_slot2 "slot2; bind MWHEELUP "m_slot1"; bind MWHEELDOWN "m_slot3""
alias m_slot3 "slot3; bind MWHEELUP "m_slot2"; bind MWHEELDOWN "m_slot4""
alias m_slot4 "slot4; bind MWHEELUP "m_slot3"; bind MWHEELDOWN "m_slot1""
bind 1 "m_slot1"
bind 2 "m_slot2"
bind 3 "m_slot3"
bind 4 "m_slot4"
//ENGINEER
alias m_slot1 "slot1; bind MWHEELUP "m_slot3"; bind MWHEELDOWN "m_slot2""
alias m_slot2 "slot2; bind MWHEELUP "m_slot1"; bind MWHEELDOWN "m_slot3""
alias m_slot3 "slot3; bind MWHEELUP "m_slot2"; bind MWHEELDOWN "m_slot1""
alias m_slot4 "slot4; bind MWHEELUP "m_slot3"; bind MWHEELDOWN "m_slot5""
alias m_slot5 "slot5; bind MWHEELUP "m_slot4"; bind MWHEELDOWN "m_slot1""
bind 1 "m_slot1"
bind 2 "m_slot2"
bind 3 "m_slot3"
bind 4 "m_slot4"
bind 5 "m_slot5"
So, like previously mentioned, the scripts in their current stages literally do nothing special. But all that is about to change (also, in the below examples, I will be using the generic 3-slot cfg for demonstrative purposes. However, the same principles will apply for the Spy and Engineer cfgs)
2. Installation and Basic Customization
2a. Installation
So to get these things to work, first, make sure your current cfg is free of any other crosshair switcher. If it's not, dispose of it as necessary. Then, just put the generic switcher (from here on out, I will refer to the 3-slot switcher as "the generic switcher) into all of the 3-slot class .cfgs (scout.cfg, soldier.cfg, pyro.cfg, etc.) and put the Spy and Engineer switchers into their respective .cfg's and you're set for installation!
but wait, Selves! I don't have [CLASS].cfg items! Where can I get them?
So this was a problem that I ran into when I originally was looking through scripts. So if you don't find your [CLASS].cfg's simply go into Local Disk>Program Files (x86)>Steam>SteamApps>Common>Team Fortress 2> tf> cfg.
In here, there will be a bunch of .cfg's. So find any random one, copy it into the cfg folder (the one you're currently in), right-click on it, hit "Open with Notepad", delete all of the stuff in it, rename it to [CLASS].cfg, and repeat 8 more times (one for each class)
but wait, Shells! I have a MacBook!
Sell it and get a Windows computer. Mac sucks for gaming. End of discussion.
2b. Basic Customization
So to customize is very simple. Say for example, for the Scout primary, you want a green, default xhair (definitely not my cfg). So go into your newly made scout.cfg with the generic switcher in it and add
cl_crosshair_file default; cl_crosshair_red 0; cl_crosshair_green 255; cl_crosshair_blue 0;
in the location indicated below
alias m_slot1 "slot1; bind MWHEELUP "m_slot3"; bind MWHEELDOWN "m_slot2"; //PUT IT HERE"
alias m_slot2 "slot2; bind MWHEELUP "m_slot1"; bind MWHEELDOWN "m_slot3""
alias m_slot3 "slot3; bind MWHEELUP "m_slot2"; bind MWHEELDOWN "m_slot1""
bind 1 "m_slot1"
bind 2 "m_slot2"
bind 3 "m_slot3"
to get this
alias m_slot1 "slot1; bind MWHEELUP "m_slot3"; bind MWHEELDOWN "m_slot2"; cl_crosshair_file default; cl_crosshair_red 0; cl_crosshair_green 255; cl_crosshair_blue 0"
alias m_slot2 "slot2; bind MWHEELUP "m_slot1"; bind MWHEELDOWN "m_slot3""
alias m_slot3 "slot3; bind MWHEELUP "m_slot2"; bind MWHEELDOWN "m_slot1""
bind 1 "m_slot1"
bind 2 "m_slot2"
bind 3 "m_slot3"
And that is basically the gist of it. You find the xhair settings you like and you put it in the slot you like it in for the given [CLASS].cfg
And this works for more than just crosshairs. Let's say you don't want to die from cancer so naturally, you turn off your viewmodels. But since melee weapons have different swing times, you like to keep melee vm's on. So what you will do is put
r_drawviewmodel 0
in the m_slot1 and m_slot2 of your class xhair switcher but for the m_slot3, you will put
r_drawviewmodel 1
The resulting cfg will look something like this:
alias m_slot1 "slot1; bind MWHEELUP "m_slot3"; bind MWHEELDOWN "m_slot2"; r_drawviewmodel 0"
alias m_slot2 "slot2; bind MWHEELUP "m_slot1"; bind MWHEELDOWN "m_slot3"; r_drawviewmodel 0"
alias m_slot3 "slot3; bind MWHEELUP "m_slot2"; bind MWHEELDOWN "m_slot1"; r_drawviewmodel 1"
bind 1 "m_slot1"
bind 2 "m_slot2"
bind 3 "m_slot3"
The same principle applies for just about anything else, like viewmodel_fov (viewmodel_fov [VALUE]) and disabling tracers (viewmodel_fov [VALUE]).
!!!MUY IMPORTANTE!!!
(yes, I know Spanish. Como esta usted?)
Whenever you add new stuff to the cfg, remember to make sure there are semicolons seperating each individual "segment".
The following stuff is bad badcode.
alias m_slot1 "slot1; bind MWHEELUP "m_slot3"; bind MWHEELDOWN "m_slot2" r_drawviewmodel 0"
Notice that between the bind MWHEELDOWN "m_slot2" and the r_drawviewmodel 0 segments, there was no semicolon. If there is not semicolon, Gaben will not be happy (the console won't recognize it as 2 separate segments) and your cfg will not work.
The following is the goodified version of the code
alias m_slot1 "slot1; bind MWHEELUP "m_slot3"; bind MWHEELDOWN "m_slot2"; r_drawviewmodel 0"
Notice the semicolon between bind MWHEELDOWN and r_drawviewmodel. Now Gaben is happy (the console recognizes it as 2 separate segments). However, you don't need semicolons for the last segment on a line.
So for the purposes of generosity and good karma, below, I have organized a table of good commands to know for customization and their correct syntaxes.
//XHAIR ICON
cl_crosshair_file [crosshair(1-7)/default]
//XHAIR SIZE
cl_crosshair_scale [number]
//XHAIR RED (how much red is in the xhair
cl_crosshair_red [number 0-255]
//XHAIR GREEN
cl_crosshair_green [number 0-255]
//XHAIR BLUE
cl_crosshair_blue [number 0-255]
//VIEWMODEL SIZE
viewmodel_fov [number]
//VIEWMODEL ON/OFF
r_drawviewmodel [0 (off) or 1 (on)]
Also, for crosshair colors, TF2 uses rgb additive light to generate its colors so you can look on wikipedia or something if you need a specific color. But yeah thanks for reading! If you have any questions or customization help/issues or if you wanna leave me feedback or a +rep or something like that :3 drop a comment on my Steam Profile. Also, I may or may not also put my personal cfgs online, but other than that, Thanks for reading!!! ☺☺☺☻☻☻