Overview
Updated for 0.30!A straightforward guide explaining the important console commands to help players get started in Reflex. I’ll answer all of the common questions, including how to bind the mousewheel. This will step beginners through what a config is and how to create/edit them, but also contains a reference for all useful commands at the end.This guide won’t cover map making commands, only those that you need to get into the game and start playing!
Getting Started: Console 101
The console is the most basic way to change how you interact with the game. By typing commands, you can rebind the keyboard, change the mouse sensitivity and alter the game’s appearence. The console can be activated by pressing the tilde key (~).
The most basic console command is “say”. You can use this to chat to other players in the console, as opposed to the chat key (T by default). Try bringing down the console and typing:
say Hello World!
Anything you “say” will be printed out in the console, and displayed to all of the other players in the server. Congratulations, you’ve mastered your first console command!
The other important command to learn is “bind”. This is how you will reconfigure your keyboard setup until a menu is implemented. The basic syntax is:
bind <key> <command> [value]
Some of the basic actions you might was to reconfigure include movement. To rebind the movement keys from WASD to ESDF, you would type:
bind e +forward
bind d +back
bind s +left
bind f +right
Commands starting with + are special, in that they all have a related – command (-forward, -back, etc.) which is called when the key it’s bound to is released. Try typing “+forward” into the console. You should move forward, and continue to keep moving forward until you type “-forward”.
The other actions you may want to rebind are “+attack” for shooting, and “+jump” for jumping.
Anything you can do in the console can be bound to a key. You can bind a say command, or even another bind! Try typing –
bind l bind k say 🙂
Pressing K should do nothing (unless you have bound it to something already), but if you press L followed by K it should run the say command. This is your first taster of how powerful commands can be.
Configuration Files: Saving Your Work
If you restarted the game or loaded a new map after the first section, you will have noticed that any keys you rebound have changed back to the defaults. This is because the game has a special file called game.cfg, which is run when opening the game and loading a new map. The file can be found in the base directory for Reflex, which defaults to:
C:Program FilesSteamsteamappscommonReflex (32bit Windows)
C:Program Files (x86)SteamsteamappscommonReflex (64bit Windows)
This directory is where all of your configuration (.cfg) files will go.
Make a change to your standard binds (bind X say foo if you’re unimaginative). To save this into your config, type:
saveconfig game
Now any time you load a game, everything you had changed will stay the same. This isn’t the best way to change your configs, however…
Before you can master configuration files, you first have to understand what they are, and how simple it is to create and edit them. The easiest way to see how they work is to open game.cfg. You’ll see a few lines, like those that you would type into the console. Simple, right? This is all that a configuration file is – a list of commands to be parsed and executed in by the console, seperated onto new lines. If you can type it into the console, you can put it in a config file.
Now that we know configuration files are simply lines of plain text, we can start to create and edit them without even opening Reflex! The first thing you want to do is create a new text file, and rename it to something personal, with the file extension .cfg. You may need to change the file extension settings on your computer to do this! Once you have a new config file, copy and paste everything from your modified game.cfg into it. If there are any binds you want to modify or re-add, now is the time to do it.
Now we have a file that isn’t going to be run whenever you load a new map, that will load your desired settings. That may not sound especially useful, but actually it’s much better than using the default file. Open game.cfg again, and delete everything. Replace it with a single line, to load your new personalised file.
loadconfig NAME
Now you have everything stored in a seperate file, but still loaded whenever you need it.
Common Mistake: make sure that you don’t type loadconfig NAME.cfg – the extension is appended automatically, so if you put it there yourself you’ll end up with NAME.cfg.cfg
Imagine your friend sends you his config, l33th4x.cfg. You can copy it into your Reflex directory, and change the one line in game.cfg to play with it through as many client restarts and map loads as you like. This saves tediously renaming files, or copying the entire configs between backup documents. It’s also much more secure, as most people lost all of their cfg changes when game.cfg was rewritten during the first update!
More Config Commands: Visuals and Client Settings
Now that you can make some basic changes and store your configurations properly, it’s time to make a dent in some of the visual commands. Changing resolution is something that lots of people need to do eary on, so we’ll start with that. The resolution command is a bit more complex than others, taking 3 parameters:
r_resolution <x> <y> [refresh rate]
You can call this without a refresh rate specified, however the option is there.
It’s a good idea to start with your monitor’s native resolution, and then work your way down if that’s too demanding on your machine. After you’ve entered the resolution, the command to run the game fullscreen is:
r_fullscreen 1
Test this out, and when you’re happy finalise the changes by adding them to your config, using either saveconfig or directly editing the file.
There are several other basic commands which will make a big difference to how the game looks. Before you start messing around with these, I recommend using:
r_showfps 1
This will give you an indication of how these commands effect your performance. You don’t want your FPS to be below 60 at any time, and a smooth 120 should be your goal.
- r_bloom <0|1>
– This can be resource intensive, so turn this off if you’re struggling with performance. It effects how much effects and lights “glow”. - r_fxaa <0|1>
– This is another big performance saver. Turning this off will make the game look worse, so avoid it unless you need the FPS boost! - r_fov <#>
– Changes your fireld of view. Most players should be fine with this around the defaul, but it’s definitely something to experiment with. I would make sure this is set between 90-115, unless you’re completely sure you want it outside of that range. - cl_gibs_maxcount <#>
– The number of “gibs” (small body parts) that appear when someone dies. Set to 1 for maximum performance, or higher for more eyecandy. - cl_show_gun <0|1>
– Show or hide the gun. There are merits to playing without a bulky gunmodel blocking your view, but this is another personal preference. - cl_show_lagmeter<0|1>
– Displays a graph which gives you detailed information about your connection to a server. Useful if you think you’re lagging. - com_maxfps<#>
– Change the fps cap. You want this to be around 120-250, but as long as this value is smooth and more than 60, the game shoul;d feel ok. This game doesn’t have framerate dependant physics like Quake 3, so there’s no “magic value” which will make you go faster and jump higher. It will feel bad if the framerate isn’t consistent though, and there’s no point setting it to 250 if you only get 80 most of the time, and any random spikes up will impact the feel of the game. - com_idleSleep <0|1>
– Leave this on the default, unless you know what you’re doing!
There are lots of console commands, and it can be hard to remember all of them. Your best friend in changing the long list of settings in this game is the tab key. If you open the console and hit tab twice, you’ll get a list of every command you can change (scroll with PgUp + PgDown). This can be a bit overwhelming, so if you start typing a command and hit tab twice it will only list the commands starting with what you’ve typed. The console will also try to finish commands for you, in which case you can press tab to autocomplete the command.
There are naming prefixes for commands, too, which makes it easier to remember what each one does.
- r_ is for rendering commands
- cl_ is for client commands
- s_ is for sound commands
Commands In-Game
THIS IS A QUIRK OF BEING IN ALPHA! There will be better menus for things soon.
Here is a list of the other commands you will need to use while playing Reflex:
- say <message spanning several words>
– If used without any arguments, this will open the chat box for you to type messages into (ie, just “say”). If you provide it with any more text, this will be printed to chat. This is useful for smiley binds:bind X say 🙂
- sayteam
– The same as say, however this only sends messages to players on the same team as you in team games. This can’t be used for spectator-only chat yet, however this appears to be something that could be added in the future. - ready
– Used to mark yourself as ready. When enough player are ready, the game will start - notready
– Used to mark yourself as ready. When enough player are ready, the game will start - callvote map <name>
– Change the map a server is running on - callvote mode <1v1|ffa>
– Change the server to 1v1 (only 2 people can play at once) or Free For All (everyone can play) - connect <ip>
– Connect directly to a given IP, generally used for private servers that you don’t want to appear in the match browser. - disconnect
– Leave current server and return to the main menu - quit
– Instantly close the client. This is especially good for people who rage :p - loadconfig <name>
– Loads and executes name.cfg - saveconfig <name>
– Saves the current settings in name.cfg - weaponnext
– Switches to the next weapon - weaponprev
– Switches to the previous weapon
Addbind and The Future
Test these commands in the console:
bind p say Hello
addbind p say World!
The addbind syntax is exactly the same as bind, however instead of overriding the key, it adds another command to execute. This means that you can have special binds capable of changing multiple commands at once.
A good example of this is changing from fullscreen 1920×1080 to windowed 1280×720. Before you would have to call r_fullscreen and r_resolution seperately, but with addbind, you can do this:
bind z r_fullscreen 1
addbind z r_resolution 1920 1080
bind x r_fullscreen 0
addbind x r_resolution 1280 720
Pressing Z and X will now toggle between fullscreen and windowed modes.
Addbind can also be good if you want to have different weapon positions for different guns. Perhaps you enjoy the default weapon position for rockets, but want to have your lightning gun (weapon 7) centered. You can achieve this using addbind and cl_weapon_offset_x/y/z.
For every bind that you want the standard model position for, you will use:
bind x weapon #
addbind x cl_weapon_offset_x 5
addbind x cl_weapon_offset_y -10
addbind x cl_weapon_offset_z 5
But for yur weapon 7, you will change this to:
bind z weapon 7
addbind z cl_weapon_offset_x 0
addbind z cl_weapon_offset_y -10
addbind z cl_weapon_offset_z -5
This is only an example, of course. Some people may want different mouse sensitivities and r_fov values for different weapons (not reccomended, but some people like it).
As of Build 28, we can have custom crosshairs for each weapon, by using:
addbind x cl_crosshair <#>
See the console reference at the end of the guide for more information on crosshairs!
Tips and Tricks
The following commands will give you the ideal high-fps config:
cl_gibs_maxcount 1
cl_gibs_expire_time 1
r_dynamic_shadows 0
r_bloom 0
r_fxaa 0
r_dynamic_lights 0
New command in build 28.2:
r_decals 0
After this, you want to play around with lowering your resolution. Some people have been going as low as 640×480 to get the game running smoothly, but that should probably be a last resort. Lowering the resolution from 1080p or 720p can make for a huge performance increase though, and you may even be able to turn some of the above variables back up.
A common question in IRC has been how to bind the mousewheel, with lots of people trying “bind mwheeldown X” like in Quake Live. The key names are actually:
mousewheeldown
mousewheelup
To print a full list of bindable key names, use the command “keylist”.
There are some issues using cl_show_gun 0 when rendereing certain weapon projectiles. The solution to this is to set it back to 1, and use a weapon offset to hide the gun from view. I have personally been using the values:
cl_weapon_offset_x 0
cl_weapon_offset_y -10
cl_weapon_offset_z -10
This has some problems when rendering the melee weapon, but you can fix this using the addbind command, as per the last section.
Spannerz has advised me that cl_weapon_offset_z -100 is a nicer alternative to -10, and I’m inclined to agree. Play around with these values, but I’m leaning towards -100 at the moment!
For the time being there is no alias/macro functionality in Reflex that we’re used to from Quake 3/Quake Live (and other games?). My sub-optimal solution for the time being is to use configuration files to store a simple set of commands, and bind loadconfig calls to keys. This isn’t a good system, and can’t be used in the heat of the moment. I use it for changing to windowed mode. Don’t use this on, for example, your weapon changing binds!!!
In file fscreen.cfg:
r_resolution 1680 1050
r_fullscreen 1
bind end loadconfig hdwin
In file hdwin.cfg:
r_resolution 1280 720
r_fullscreen 0
bind end loadconfig fscreen
And then add the line in my main config:
bind end loadconfig hdwin
This can be used for any kind of toggle that isn’t currently possible with addbind (or at least I don’t think so, feel free to prove me wrong in the comments!)
Appendix – Console Reference (Game and Actions)
- +attack
– Fire weapon - +back
– Move backwards - +forward
– Move forwards - +jump
– Jump - +left
– Strafe left - +right
– Strafe right - +showscores
– Display the player list and match scores
- addbind <key> <command>
– Bind an action to a key, while keeping whatever function it had before - bind <key> <command>
– Set a key to only run the given command when pressed. - callvote map <name>
– Change server to map name. Calling this without a map name will list all maps on the server. - callvote mode <1v1|FFA|TDM|AFFA|ATDM|A1v1>
– Vote to change the current gametype. Currently all modes exist in 2 variants. Arena mode means that all players spawn with 100/150(red) stack and all weapons. There are no items on the map, and the focus is completely on positioning and aiming. Arena games are round-based, with a new round starting when one team is completely eliminated. If you die, you spectate until the start of the next round. - cl_camera_next_player
– When spectating, switch to the next player’s POV - cl_camera_prev_player
– When spectating, switch to the previous player’s POV - cl_camera_freecam
– When spectating, switch to free floating camera - cl_playerState <1|2|3>
– Changes the player state:
1 – playing
2 – spectating
3 – edititngeg. cl_playerState 2 puts you in spectator mode.
- cl_playerTeam <0|1>
– Used to change team. 0 for Alpha, 1 for Zeta. - connect <ip>
– Connect directly to a given IP, generally used for private servers that you don’t want to appear in the match browser - disconnect
– Leave current server and return to the main menu - loadconfig <name>
– Loads and executes name.cfg - name <foo>
– Changes your in-game-name to foo - notready
– Sets your status off of ready (see ready for more details – these commands are far apart because I’ve sorted alhpabetically, sorry!) - quit
– Instantly close the client. - ready
– Used to mark yourself as ready. When enough player are ready, the game will start - saveconfig <name>
– Saves the current settings in name.cfg - say <message spanning several words>
– If used without any arguments, this will open the chat box for you to type messages into (ie, just “say”). If you provide it with any more text, this will be printed to chat. This is useful for smiley binds:bind X say 🙂
- sayteam
– The same as say, however this only sends messages to players on the same team as you in team games. This can’t be used for spectator-only chat yet, however this appears to be something that could be added in the future. - unbind <key>
– Clears a key of any bound commands - unbindall
– Clears the binds of ALL keys! - vote_yes
– Votes yes in callvote - vote_no
– Votes no in callvote - weapon <1-9>
– Selects a weapon - weaponnext
– Switches to the next weapon - weaponprev
– Switches to the previous weapon
Appendix – Console Reference (Renderer and Client)
- cl_corpse_time <#>
– Determines how long corpses are left on the map for. Lowering this will increase performance - cl_crosshair <1-16>
– Sets the crosshair. Defaults are:
(image credit to Spannzer)For customising crosshairs, check out Spannzer’s guide here.[www.reflexfps.net]
- cl_crosshair_colour <1-6>
– Sets the crosshair colour. Values are:
1 = Green
2 = Teal
3 = Red
4 = Purple
5 = Yellow
6 = White - cl_gibs_expire_time <#>
– Determines how quickly the gibs (blood and gore effects on death) decay. Lowering this will increase performance. - cl_gibs_maxcount <#>
– Changes how many gibs (blood and gore effects on death) are spawned at once. Lowering this will increase performance. - cl_player_outline_colour_enemy <#>
– Changes the outline around the enemy.
0 = Blue
1 = Green
2 = Teal
3 = Red
4 = Purple
5 = Yellow
6+ = White - cl_player_outline_colour_friendly <#>
– As above, but for friendly characters.(note: The above commands use colour, not color)
- cl_show_crosshair <0|1>
– Set to 0 to hide the crosshair, or 1 to display it. - cl_show_gun <0|1>
– Show or hide the gun. There are merits to playing without a bulky gunmodel blocking your view, but this is another personal preference. - cl_show_lagmeter <0|1>
– Displays a graph which gives you detailed information about your connection to a server. Useful if you think you’re lagging. - cl_show_lagmeter <0|1>
– Displays information about in-and-outgoing traffic. Different to the lagmeter. This is probably more useful than lagmeter to quickly diagnose connection issues, as this shows information about dropped packets, where lagmeter focuses on how your client is interpolating and extrapolating data. - cl_weapon_offset_x <#>
– Moves the gun model along the length of the screen. 0 is the center, and 5 is the default at the right of the screen. If you want your robot to be a lefty, you can set this to -5. - cl_weapon_offset_y <#>
– Moves the gun model up and down the screen. 0 is right in front of the camera, and -10 is the default. There aren’t many useful values for this. - cl_weapon_offset_z <#>
– Movs the gun “in” and “out” of the screen. The default is 5. You can se this to around -10 to completely hide the gun model without using cl_show_gun 0. This is useful for getting a thinner lighting gun shaft. - com_maxfps <#>
– Change the fps cap. You want this to be around 120-250, but as long as this value is smooth and more than 60, the game should feel ok. This game doesn’t have framerate dependant physics like Quake 3, so there’s no “magic value” which will make you go faster and jump higher. It will feel bad if the framerate isn’t consistent though, and there’s no point setting it to 250 if you only get 80 most of the time because any random spikes up will impact the feel of the game. - com_idleSleep <0|1>
– Leave this on the default (0) unless you know what you’re doing! - hud_chat_fadetime <#>
– Changes how long it takes for chat messages to fade off of the screen. - hud_chat_history <#>
– Determines how many chat messages are shown on screen at once. Lowering this can reduce screen clutter, and missed messages can always be viewed back on the console. - hud_chat_x <#>
– Sets the X (horizontal) position in PIXELS of the chat interface from the left of the screen. This means that you will get different results at different resolutions if you move this too far away from 0. - hud_chat_y <#>
– Sets the Y (vertical) position in PIXELS of the chat interface from the bottom of the screen. As above, because this is in pixels things will look different at different resolutions. - hud_vote_x <#>
– Same as chat, but with the voting interface - hud_vote_y <#>
– As above - m_speed <#>
– Changes how sensitive the mouse is. For people who want an exact formula for a given cm/360 value:m_speed = 387/(cm360 / (387/dpi))
- m_invert <0|1>
– When 1, this inverts the y-axis of the mouse, so that up is down and vice versa (Thanks pvh for correcting this)
- r_bloom <0|1>
– This can be resource intensive, so turn this off if you’re struggling with performance. It effects how much effects and lights “glow”. - r_dynamic_lights <0|1>
– Toggles dynamic lights, which are created by rockets and other moving light sources. Some players may find these distracting, or simply want the extra performance of having these off. - r_dynamic_shadows <0|1>
– Toggles the shadows cast by dynamic lights (unsure if this still works when r_dynamic_lighs is 0) - r_fov <#>
– Changes your fireld of view. Most players should be fine with this around the defaul, but it’s definitely something to experiment with. I would make sure this is set between 90-115, unless you’re completely sure you want it outside of that range. - r_fullscreen <0|1>
– Changes the game from windowed to fullscreen mode. - r_resolution <width> <height> [refresh rate]
– Sets the resolution to width by height pixels. Lowering these values can increase FPS by a lot. A refresh rate does not need to be specified, but you can also set this here. NOTE: refresh rate might not be a valid parameter any more! - r_refreshrate
– Used to specify a refresh rate. Use this over the additional parameter in r_resolution for now. - r_fxaa <0|1>
– This is another big performance saver. Turning this off will make the game look worse, so avoid it unless you need the FPS boost! - r_showFps <0|1>
– Set to 1 to show how many frames are being processed per second on the HUD. It’s very useful for keeping an eye on performance. - r_vsync <0|1>
– When 1, the renderer will wait until your monitor is ready to display another frame before rendering. This will lock your FPS to the refresh rate of your monitor. Higher FPS will probably give you a nicer experience in this game, so unless you have a 120 or 144hz monitor I reccomend leaving this on 0. - r_decals <#>
– Changes how many of certain effects (blood, bullet-holes, explosions) can be drawn at once(?). Setting this to 0 will improve FPS.
The End
Big shoutouts to the developers for answering my questions to help me get this together, and the people in #reflex on Quakenet too. Stay tuned for more updates as new builds come out, and more guides from me!
Also, please point out anything that you feel is unclear, or any spelling/grammar mistakes. I did my best to proofread this, but I’m only human!
Specific people from the community I want to thank: Spannzer, Chiefin|MrSD
9th November 2014 – Added new commands for Build #27:
Added new chat features
Added weapon scrolling commands
21st November 2014 – Updated for Build #28.2:
Added r_decal information
Added vote_yes and vote_no
Added new client commands for hud and crosshair modification
16th January 2015 – Updated for 0.29 and 0.30:
Added cl_camera_* commands
Added new gametypes in “callvote” section
Added cl_show_traffic
Some other minor things were cleaned up a little
Happy new year! 😀