When Battlefield 1942 came out, I remember I was captivated by the way there were so many things you could do. It was the first online game I'd ever played where you could walk, drive, fly, or swim across a giant map, working with other teammates or playing as a lone wolf - all the while being in the middle of a giant battlefield. The one thing I do recall thinking was "I wish this was set in modern times, not just WWII". The boys from Desert Combat heard these pleas and released a mod for BF1942 which did exactly that - and there was much rejoicing!
Fast forward to 2005 and EA Games/DICE have finally released the official take on a modernized BF1942 - Battlefield 2 is set in the 21st century where Chinese, American and Middle Eastern forces battle each other on large and varied maps. The gameplay hasn't differed substantially from BF1942, the same sense of a battle on a vast scale exists, and the fans are already out in force making sure most servers are populated with up to 64 players duking it out in epic combat. You can try the game yourself by downloading the demo from here.
Inevitably, as with almost any modern PC game, there are bound to be issues. And BF 2 has its fair share of issues on a variety of systems. For the most part this is due to the game's somewhat steep system requirements, and the controversial decision by the game's developers to not support the popular GeForce4 series of graphics cards. In general the game is quite stressful on most machines, and this can cause a range of problems.
However I can provide you assistance in the form of this Battlefield 2 Tweak Guide. Following on from my initial release of the BF2 Demo Tweak Guide, this full version guide contains nine pages of information designed to explain BF2's settings, provide insight into the reasons behind many common problems, and provide some handy tips and tweaks for you to try.
Note: This guide refers to the latest version of Battlefield 2 Version 1.50. Make sure to check back regularly for updates.
Before getting into any game-specific settings and tweaks, this section covers the obligatory system optimization information I include in all my guides. If you've followed this advice recently, you can skip this section.
Many people report problems with this game and in almost all cases these are due to general system issues and not the game itself. With that in mind I strongly urge you to take some time and follow the advice below if you truly want this game, and indeed every other game you own, to run at its fastest and most trouble-free.
The place to start is with the TweakGuides Tweaking Companion. It is the complete system optimization guide for Windows users. Designed for novice and advanced users alike, it is written in plain English to help you genuinely understand all aspects of Windows and your PC. The guide covers every major topic, from the correct installation of Windows and critical drivers and software, through to recommendations for every significant setting and feature, all the major performance and convenience tweaks and customizations, as well as detailed troubleshooting advice. There are also links to a range of reliable free applications which can enhance your system and give you viable alternatives to purchasing commercial software. There are separate versions available for Windows XP, Windows Vista and Windows 7.
If you've ever wondered what common graphics and display settings like FPS, VSync, Refresh Rate, Antialiasing and Anisotropic Filtering are, and how they really work, then check out my Gamer's Graphics & Display Settings Guide for all the details in an easy to understand format. The guide also gives you a rundown on exactly how a game goes from a being a set of files on your hard drive to a 3D image on your screen, including relevant performance tips.
Finally, if you run an ATI or Nvidia graphics card, I have written two comprehensive guides which you should check out: the ATI Catalyst Tweak Guide and the Nvidia Forceware Tweak Guide. These guides cover absolutely everything about the latest graphics drivers, how to set them up correctly, as well as advanced tweaking, overclocking and benchmarking tips. They're a must-read for configuring your graphics card correctly.
The above information really will serve you well in the long run, not just in this game. If you don't optimize your system and keep everything updated and maintained correctly you will keep running into "mysterious" problems time and time again. Do yourself a favor and when you get a chance spend an afternoon or two optimizing your machine the right way with the guides above.
The next section goes into more detail about specific troubleshooting tips which address common performance issues with the game.
This section contains specific troubleshooting tips which address many of the common problems experienced by Battlefield 2 players. I can't stress enough the importance of taking the time to go through the checklist of advice below if you're having a problem with the game.
Official Support: The first place to look for official support details is in the Readme.txt file in your \Program Files\EA Games\Battlefield 2\Support directory. Importantly you should check out the minimum system requirements in that file, as well as the supported hardware list, since if any of your hardware is not supported then you will experience problems with the game, or quite simply won't be able to run it. Next, open the Electronic_Arts_Technical_Support.htm file in the \EA Help directory under the support directory. This file contains an interactive browser-based offline help manual. For the latest online help check the EA Games BF2 Tech Support Site for more official help. If this doesn't help, read the rest of this guide carefully, and then visit one of the many BF2 Forums such as EA BF2 Forums, the EA UK BF2 Forums, or the Total Battlefield BF2 Forums for example.
Patch Problems: First make sure you check page 4 of this guide for details of the latest patch, and install it. If you have problems, see this 1.50 Patch Troubleshooting FAQ, and remember that your BF2 must already be patched to version 1.41 before you can apply the 1.50 patch. I then recommend running through the tips on this and the previous page of the guide to genuinely optimize and stabilize your system, as most problems are actually due to things like overclocking, background programs, mods, scripts etc. If you still have problems and genuinely believe your system is rock-solid, then I recommend completely uninstalling BF2, rebooting, then reinstalling BF2 and then only installing the full 1.41 Patch, then the latest 1.50 Patch on top of that to bring BF2 up to date.
Windows Vista/7 Users: If you're having problems running BF2 under Windows Vista or 7, first make sure that you're using the latest graphics and audio drivers for your hardware, and the latest patch for the game (see page 4 for patch details). Next, make sure you don't change your UAC settings after the game has been installed, as due to Virtualization this can change the location of the game files and settings. If you can't launch the game successfully when UAC is enabled, or you're getting booted from multiplayer constantly, you will need to run the game with full Admin privileges. To do this either right-click on the launch icon and select 'Run as Administrator', or right-click on the launch icon, select Properties and under the Compatibility tab tick 'Run this program as an administrator' then click OK. I strongly recommend that you refer to the TweakGuides Tweaking Companion for Windows Vista for more information.
Update: The latest 1.50 patch improves BF2 support for Vista.
Launch Issues: The most common problem with BF2 is that the game crashes to desktop or goes to a black screen when you first launch it. The reason for this is either incompatible hardware (make sure you meet all of the minimum specs for the game), or more usually the fact that you're not running at the default refresh rate of 60Hz. By default the game tries to launch at 800x600@60Hz initially, so your system must be able to run that same resolution and refresh rate, otherwise the game will abort. If you are using any other refresh rate, or a refresh rate override program/method, disable it (e.g. if you're using Refresh Force, click the 'Restore Original Settings' button and apply) or set it back to 60Hz for both 800x600 and your chosen gaming resolution. Alternatively, see the Advanced Tweaking section of the guide for details on how to set a different startup resolution, in case your graphics card/monitor simply cannot do 800x600@60Hz resolution. Once you've got the game running, you can then change the resolution to suit your taste in the in-game settings, and importantly you can select a higher refresh rate. Then you can reapply any refresh rate override and the game will launch without any problems. To set a non-standard resolution see the Advanced Tweaking section.
Account Issues: See the In-Game settings section of this guide for more details of online and offline accounts. However note that you can't alter your account details once created. You'll have to contact EA Games support if you still have account-related problems as only they can rectify genuine account errors.
Punkbuster: Battlefield 2 uses the Punkbuster anti-cheat software commonly used in most other online games. This software helps identify and prevent cheating in the game, and cheaters can expect to have their account banned. Make sure you have Punkbuster enabled in the game, as most multiplayer servers require it to allow you to join. Importantly, do not modify your Battlefield 2 files in any way - such as using programs to alter the shader versions - as these may be seen as cheats by PB. Editing the .con files and other tweaks as described in this guide are fine, but be careful as to what you alter if it's not covered here. If you are having problems automatically updating your Punkbuster version when online, you can manually update it by following the instructions here. I recommend using PBSetup, as it is a fairly foolproof method of updating PunkBuster. This may help resolve problems with continually being kicked from servers with PB errors. For other problems with Punkbuster, see this BF2 PunkBuster FAQ.
In-Game Lag/Freezes: Most people experience a lot of in-game lags, pauses and several-second freezes. Aside from optimizing your system as per my guides in the Essential Optimization section, check the Clearing Shader Optimizations tip below, and make sure to carefully read the Video option descriptions in the In-Game Settings section further below as well, and of course make absolutely sure you have defragmented your hard drive after installing the game. However it is quite clear that BF2 requires a lot of memory to operate. Basically many of the pauses/freezes are related to loading information from the hard drive, and for those of you with low amounts of RAM this will happen very often, particularly at the start of a match and whenever new areas/items are encountered. Battlefield 2 has been proven to benefit from 2GB or more of system RAM. Equally as important, graphics cards with low levels of Video RAM (e.g. 128MB or 256MB) will also experience more pauses as textures are loading into/out of Video Memory.
Update: The latest 1.50 Patch now allows the BF2 executable to use more than 2GB of RAM, meaning systems with more than 2GB of system RAM should see a reduction in stuttering.
Clearing Shader Optimizations: When you change the graphical settings or install a new patch, BF2 attempts to optimize the shaders used in the game for the best performance on your particular hardware. These optimized files are stored in your \Documents and Settings\[username]\My Documents\Battlefield 2\mods\bf2\cache\ directory in XP or \[username]\Documents\Battlefield 2\mods\bf2\cache\ in Vista. If you've changed your settings several times, I recommend you finalize your changes, close BF2, go to the above directory and delete everything under the \cache\ directory. The next time you start the game and play single or multiplayer, your shaders will be optimized again. Close BF2 one more time, defragment your hard drive, and now things should be much smoother and load much faster the next time you go to play BF2.
Update: It is strongly recommended that you clear your cache after installing the latest patch.
Gamma, Brightness, Contrast: Battlefield 2 does not seem to have any in-game options to alter the brightness, contrast or gamma of the game. You will have to use a third-party program like PowerStrip which works with all graphics cards, or the gamma options in your graphics card's control panel to alter the game's brightness/gamma/contrast.
Antialiasing: To make sure Antialiasing works in the game, you will need to make sure that any forced antialiasing is disabled in your graphics card's control panel - see the ATI Catalyst Tweak Guide or the Nvidia Forceware Tweak Guide as relevant for more details. Now you can go into BF2 and set the level of Antialiasing you wish to use, however obviously it will reduce your game's performance. If you are unfamiliar with what Antialiasing or Anisotropic Filtering do, see this page for more details. Note that using a forced custom resolution may cause problems with Antialiasing, since it is not an officially supported resolution.
Background Programs: Disable all background applications - especially virus, trojan and spyware scanners and messaging utilities. These applications can and do use up valuable CPU resources, take up precious RAM, cause memory conflicts and crashes to desktop, but most importantly they interfere with read/writes to your hard drive effectively slowing it down and causing even more in-game freezes and longer loading times. Full instructions on how to identify your startup programs and services and how to correctly disable unnecessary ones are in my TweakGuides Tweaking Companion. This is an extremely important step you should not miss, as it is the most common source of problems with any game.
Overclocking: Battlefield 2, like any other game, can be sensitive to overclocking. If you've overclocked any components on your system and are having problems such as crashes, reboots and graphical anomalies, the first thing to do is set everything back to default speeds and try running the game. If you don't experience the same problems at default speed, or they're reduced in severity, then your overclock is the primary culprit. Either permanently reduce your overclock and/or increase cooling to regain stability. Don't assume that because other games or artificial benchmarks run with stability at a particular speed that BF2 will do the same.
There are obviously many more problems people are experiencing with the game, but most of these are due to a lack of system optimization. The game is not as buggy as most people would think. BF2 is quite simply very stressful on your system, and if you do not optimize it, cool it properly, reduce/remove your overclocks, and reduce your settings you will experience more crashes, freezes etc. Read the guides I link to under Essential Optimization above for more details, as well as the game's Readme.txt file - there is no single quick fix to problems like these.
That's just a basic rundown of troubleshooting tips. Read the remainder of this guide for more specific settings and tweaks which can help improve your performance and resolve any problems.
Official Patch
After several years, EA Games has finally released the latest 1.50 Patch. The patch contains a large amount of new content, gameplay tweaks and bug fixes, and is required to play on most official servers. Most significantly, the latest patch improves Vista support, adds proper widescreen support, adds a new map called Operation Blue Pearl, allows the game executable to use more than 2GB of RAM, adds the Euro Force and Armored Fury booster packs as free content for all BF2 players, and removes the disc check component.
Note: You must have the 1.41 Patch installed before being able to use the 1.50 Patch; the 1.50 Patch does not contain all the previous patch changes. Alternatively, if you have purchased the BF2 Complete Collection online from EA, you can install 1.50 directly over the top of it without any previous patches.
Update: There is also a 1.50 Hotfix which can be applied on top of the full 1.50 Patch to address problems when using ALT+TAB in BF2.
If you are having problems with the latest patch, see page 3 for troubleshooting tips.
No-CD Patch
Battlefield 2, much like most other modern games, has a copy protection system based on a CD check. While the game also requires that you enter a unique CD key when installing the game, and even though it is actually this CD key which is the key to preventing pirated versions from being able to play online, EA Games still insists on requiring that legitimate BF2 players keep their BF2 CD/DVD in their drives to play the game. A disc check is a highly undesirable method of protection.
Note, I am well aware of various methods of playing BF2 without the CD/DVD in the drive, but I cannot provide details of these due to legal reasons. It is up to you if you really want to research and find such methods. I strongly recommend against using any such hacks if you're not an experienced user, as aside from potentially being kicked and banned by the PunkBuster anti-cheat system in multiplayer, most No-CD patches for BF2 are actually designed to steal your legitimate serial number instead.
Update: As of the 1.50 Patch, you no longer need to keep your CD/DVD in the drive when playing BF2.
Mods
One of the factors which made BF1942 such an incredible success was quite simply the fact that it had dozens of mods released for it. Mods are modifications to the game which can change it slightly, all the way to completely and totally changing the game to virtually be another game altogether. The most popular of these mods was Desert Combat which ironically took the WWII theme of BF1942 and converted it into modern day warfare - pretty much what Battlefield 2 does. Battlefield 2 is having a similar sort of run with mods, since the engine is future-orientated and highly modifiable. EA Games have now released the Battlefield 2 Mod Editor as an Open Beta. This tool allows existing and aspiring modders to create new maps and modifications based on the BF2 engine. There is a User Manual & Tutorial you can download to go with the editor.
For those of us who aren't interested in creating the actual mods ourselves, try the following popular maps and mods:
To start with, I suggest you look at the BF2 Advanced Tactical Center, which provides an interface for you and friends/clanmates to plot out your tactics for all the BF2 maps. This is an official product, and I highly recommend you give it a go.
The mods Point of Existence 2 and Project Reality also come highly recommended and transform BF2 into almost a completely new game from the ground up.
To download new user-made maps, try this TotalBF2 Map Pack 1 which is a hefty 125MB but has 6 excellent maps to use in multiplayer BF2. There is also a TotalBF2 Map Pack 2, and a TotalBF2 Map Pack 3 as well.
A range of community-developed mods can be seen at places like Total Battlefield, BF2 Mod Database and PlanetBattlefield Mods. In general, to examine/activate any mods you've installed in BF2, start up the game, go to the Community section of the in-game settings, and you will see the names of the 'Custom Games' on your system. Simply double-click on one to activate it instead of the regular BF2.
Finally, remember once again that the Punkbuster anti-cheat system in the game does not look kindly on modified game files and major alterations to the game's directory structures. Therefore I recommend that you be careful as to what you install for BF2, and if in doubt check with other players on a BF2 community forum. If you find yourself constantly being kicked from multiplayer games mysteriously, I recommend you uninstall any recently installed mods and try again.
Update: See this post for details regarding mods on the 1.50 Patch.
Expansion Packs
EA Games have released three official Expansion/Booster packs which add new weapons, new vehicles and new maps for the game: Special Forces, Euro Force and most recently Armored Fury. None of these expansion packs is free, and none is necessary to play the core BF2 game. You can purchase and download each of these packs through EA Downloader. The tweaking advice in this guide applies equally to systems which have installed these packs or not.
Update: The Euro Force and Armored Fury booster packs are now available for free for all BF2 players as part of the recent 1.50 Patch release.
The next section goes into the details of all of Battlefield 2's In-Game Settings.
In this section I provide full descriptions for Battlefield 2's in-game settings, and where possible I provide general recommendations. I note the performance impact of each setting, although bear in mind that it is impossible for me to give exact performance impacts - it all depends on your specific hardware combination and your other game and system-wide settings.
Player Accounts
Before you can access the in-game settings or play the game you will need to login to an account first. There are two types of accounts - Singleplayer (Offline) and Multiplayer (Online):
Online Account: You must have a valid online account and an active Internet connection if you want to play BF2 multiplayer. You can use an existing GameSpy account if you remember the details. If you want to create a new account, you will have to enter a unique Username, a Password and a unique Email address which is not already being used by you or anyone else for another account. If you want to load up an existing online account, you can retrieve its details simply by entering the Username and Password, or the appropriate Email address, then clicking the 'Retrieve Account' button. In fact if you find you are having difficulties finalizing the creation of a new account, simply exit the game, restart it and try to retrieve the account with the appropriate details.
Your online account is very important - do not provide its details to anyone else. While your online account is not directly tied to your CD Key - the serial number you entered when installing BF2 - your account and/or your CD key can be banned for cheating which prevents you from using your current copy of BF2 to play online on certain servers, regardless of the account you use.
Whenever you start BF2, login to your online account to play BF2 Multiplayer. Your main account details will be displayed on the login screen, and the password box will automatically be filled with the correct password if the 'Remember Password' box is ticked. If you think this is risky in your current environment, untick the box. Note that if you pressed any keys prior to seeing the Login screen, these may be added into your password box, and hence when you click the Login button it will result in an error: refrain from pressing any keys during loadup and/or use the No Intro Movies tweak at the end of this guide. If in doubt clear the Password box and retype your original password.
Update: As of the 1.03 patch, you will see a news box whenever you login. You can click the Close button to skip the latest BF2 news. If you click Open, BF2 will close and the news item will open in a new browser window. I haven't found any way to prevent it coming up in the first place.
Update 2: To automatically login to BF2 whenever you launch the game, see the Conclusion section of this guide for an advanced tweak using the command line parameters.
Offline Account: If you want to play singleplayer Battlefield 2 without connecting to the Internet, you must first create an offline account. To do this, click the 'Manage Accounts' button on the main Account Login screen. Next, click the Singleplayer tab at the top right, and enter whatever username you wish to use for Singleplayer - it doesn't matter if it's not unique. Once created, this account will be added to your main Account Login screen, and you can highlight it and click 'Select Account' whenever you want to play BF2 Singleplayer offline.
Note that you can also play Singleplayer using your online account, however you must remain connected to the Internet and logged in to use your online account for singleplayer mode, whereas using an offline account allows you to disconnect from the Internet and still play BF2.
Note further that each of your accounts (both Single and Multiplayer) have different settings attached to them, including separate video, audio and control settings. To learn more about where these profiles are saved see the Advanced Tweaking section. For ease of use I recommend having only one Online account, and using that for both single and multiplayer.
In-Game Settings
Once you've logged in with your selected BF2 account, on the main menu screen click the Options button and you will find the following in-game setting options, which are each explained in detail below:
Game Options
Opt Out of Voting: From time to time other players will initiate votes for various reasons, such as a mutiny against the current Commander or a map change. If you want to exclude yourself from having to constantly vote in these, select this option. Obviously this means you will have no input into decisions such as map changes, changes in Commander, etc.
Quit Confirm Dialog Disable: If ticked, this option will get rid of the confirmation boxes which appears whenever you click try to exit a game, or press the Quit button to exit BF2. This is useful if you just don't want to go through an extra mouse click to quit/exit. Alternatively if you don't want to quit by clicking the wrong button by accident leave this enabled.
Reverse Mousewheel Selection: If ticked, rolling the scroll wheel on your mouse upwards will mean that your selection action will scroll down a list. Set to taste, has no performance impact.
Auto Reload: If ticked, whenever your weapon runs empty you will automatically reload another clip/grenade/missile. This is recommended, as otherwise you will manually have to press your Reload button and this can take an extra split second which may be critical. Note some weapons on vehicles have a fixed reload time, and automatically reload after that period regardless of this setting.
Auto Ready: If ticked, you will always automatically be ready to begin playing at the start of a round. On servers where all players have to indicate they are ready before a game begins, having this option unticked could result in delays, so keep it ticked. Most servers don't need or use Auto Ready as there is no pre-round wait.
Minimap: The minimap is the small map at the top right of the in-game screen. You can set it to rotate as your viewpoint changes (Map Rotation Follows Player), or be unmoving (Static) by selecting one of these options. There is no practical impact on performance, select one to suit your taste.
Connection Settings: Battlefield 2 requires a broadband connection and cannot be played on a dialup modem. As such the options for connection speeds here are limited to 'Cable 256 KBPS or Better', or 'T1 (LAN)'. For all broadband users playing on the Internet I strongly suggest selecting the first option, as the T1 (LAN) option requires too much bandwidth to maintain steady pings - clearly it is designed for LAN play. To check your Ping in an online game, press the TAB key (default) and look at the number to the far right of your name. For more details on Pings and Lag, see the Video settings below, as well as the Server Browser section later in the guide.
HUD Settings: Here you can use the sliders to adjust various aspects of your Heads Up Display (HUD). To change the color of your Crosshair, use the Red, Green and Blue sliders under 'Crosshair Color' - check the crosshair displayed in the small preview graphic on this page to see the impact of your changes. You can also adjust the Transparency (how see-through items are) for the various HUD items, the Minimap, the Icons on the minimap, and the Crosshair itself. For the most part the defaults are best, however you may wish to change them to suit you particular needs.
Controls
This section contains the key/mouse/joystick mappings for all infantry and vehicle movements. Make absolutely certain you go through the five sub-screens of the Controls section carefully. The 'Common Controls' section contains your main controls. Pay particular attention to the 'Mouse Settings' options under each control sub-section - adjusting these to the correct values is vital in particular for successfully controlling vehicles.
Mouse Settings: The 'Invert Mouse' option if ticked means that pushing your mouse forward will move the character's viewpoint downwards, pulling it back will move the view upwards. If unticked it is the opposite - set to suit your preferences. The Sensitivity setting controls how sensitive your in-game movements are to your mouse movements. The 'Yaw Factor' setting controls the degree to which vehicles roll left or right, while the 'Pitch Factor' controls the degree to which they tilt forward or back - the higher the factor, the more sensitive vehicles will be to such movements.
Don't forget to click the Apply button at the bottom of every control sub-screen each time you change controls on that particular screen. This saves your settings, and forgetting to do this will lose your changes as you move to another screen. If you don't want to save your changes, click the Cancel button instead, and if you mess up your mappings click the 'Reset to Default' button to revert them all back to the original settings.
Note that if you have any problems using a particular control device such as a joystick or gamepad, make sure you have installed the device's drivers correctly, and also keep in mind that BF2 doesn't support every gaming controller available. Read the Readme.txt file which comes with BF2 for details of particular control issues, and see the Advanced Tweaking section for more details of how to edit the control configuration file to overcome some of these problems.
Video
Battlefield 2's performance (particularly when online) is highly dependent on your graphics card and video settings, much more so than your CPU speed. Pay particular attention to the descriptions below if you want a good balance of performance and image quality, and of course if you run a graphics card which is old, slow or unsupported by BF2, keep this in mind if your performance is still poor at any setting.
Display Mode: This setting controls the resolution of Battlefield 2. It displays the number of horizontal pixels by vertical pixels and the particular Refresh Rate the screen will run at. The greater the number of pixels, the clearer the game's image appears but the more work your graphics card has to do to render (draw) all of it. Make sure you choose a display mode with the highest refresh rate listed - the refresh rate is the number after the @ sign, and the higher the number the more times per second the screen can 'refresh' (redraw itself), meaning less eye strain. If you can't find the resolution you want here, first choose the one closest to it (at the highest refresh rate), then see the Advanced Tweaking section for details of how to set a custom resolution.
Update 1: As of the 1.03 Patch, 1280x1024 has been added as a standard resolution on the Display Mode list, so you don't need to use the command line method to force this resolution anymore.
Update 2: Widescreen users can now try Widescreenfixer to force proper widescreen support in BF2.
Update 3: Proper Widescreen support has been added as of the 1.50 Patch - see Page 4 for details.
Overall Quality: This setting allows you to choose a pre-defined video settings level, however it is definitely not recommended that you use this method: make sure it's set to Custom then manually adjust the various elements of your video settings as covered below:
Terrain: This setting controls how rich the details on the terrain are. The available options here are Low, Medium and High - see the screenshot comparison below for differences. Note that at each higher level of terrain setting, there are more visible features in the terrain, such as more grass, different types of foliage, more sand, pebbles and so forth. However this comes at the cost of a noticeable decrease in your performance, especially at the High level. The image quality difference between Low and Medium is pronounced, while that of Medium to High is not so noticeable.
Effects: This setting controls various special effects in the game. The difference between Medium and High is not noticeable, but when set to Low the most significant impact is that decals such as bullet holes will no longer appear on walls and objects. However even at Low the explosions, smoke and puffs of dust from bullet impacts will still appear in full detail. The effects setting does not have a major impact on overall performance, however if you are slowing down significantly during heavy combat scenes reduce it to Low to improve FPS. Note that you cannot disable the 'blurred vision' effect which occurs when you are near an explosion - that is a part of the game regardless of your settings, and to disable it (even if possible) would be considered a cheat.
Geometry: The Geometry setting controls the Level of Detail (LOD) setting for various objects and landscape in the game. The options are Low, Medium and High and for most intents and purposes there is virtually no difference between the three levels. At higher levels certain objects will appear more detailed, such as rounder boulders and more curved landscape (i.e. more polygons visible). More importantly, at the higher levels vehicles will come into view sooner when far away, as more of their details are shown earlier. Obviously performance is better at the lowest level, but the extent of it depends on your system. For the reason that it may help you detect vehicles sooner, you should keep this at High unless your system is really struggling.
Texture: Textures are the 2 dimensional surfaces of every 3D object in the game. The higher this setting, the better these surfaces appear, with more detail and realism. However at higher settings more Video RAM is required to hold all of them for rapid access by the game. Thus on systems with only 128MB of Video RAM or less and/or slow hard drives I recommend using Medium or even Low to ensure smoother gameplay. The High setting will improve image quality slightly over the Medium setting, but will contribute greatly to frequent loading pauses and generally reduce performance in the game. The image quality difference is shown in the screenshot comparison below - as can be seen, the textures in BF2 are not fantastic even at the highest setting. The difference between Low and Medium is most noticeable in the blurring of the landscape and the player's clothing at Low. At Medium this sharpens up noticeably, and at High there is only a slight improvement over Medium. For those with very low system memory, Medium is recommended, but for most people High is fine.
Lighting: This setting controls the lightmaps used for static objects in the game, such as building. The screenshot comparison below shows the difference - pay particular attention to the shadow of the building. The difference between High and Medium is negligible, while Medium to Low results in the complete removal of the fixed shadows for the building. This is far less realistic, and for that reason I recommend Medium Lighting. High is not necessary in many cases and can contribute to loading pauses on modest systems.
Dynamic Shadows: This setting controls the shadows cast by moving objects. These 'dynamic' shadows can be switched Off, or set to Low, Medium or High. Each higher level of dynamic shadows means slightly more detailed shadows are cast, particularly for the shadows cast by players and vehicles. However this setting has a dramatic impact on performance, particularly when there are multiple sources of light. Setting this to High or even Medium will result in a great deal of lag/jerkiness during gameplay, and in particular during heavy combat scenes. If your system is old or relatively weak, I strongly recommend Medium or Low, although setting this to Off removes all shadows and thus noticeably reduces realism, so Off is not recommended.
Dynamic Light: This setting relates to lighting from muzzle flashes, fire, explosions, missiles etc. The available options are Off, Low, Medium and High. Quite obviously turning these lights Off reduces realism significantly, but improves performance noticeably. Dynamic lights interact with objects to cast shadows (See Dynamic Shadows setting above), and as such the impact of this setting also depends on your settings for Dynamic Shadows. For old systems I recommend Medium or lower for this setting, as a setting of High can contribute greatly to pauses, lag and jerkiness in the game.
Antialiasing: The options here are Off, 2x, 4x and 8x. When enabled, Antialiasing (AA) smooths the appearance of jagged lines, something which BF2 has plenty of. The higher the level of Antialiasing (i.e. 2x, 4x, etc.), the greater the negative performance impact in return for better image quality. For more details and examples see this page of my Gamer's Graphics & Display Settings Guide. Using Antialiasing correctly is covered in the Troubleshooting Tips section, but basically it involves disabling any forced Antialiasing in your graphics card's control panel, and then selecting it here if you want to enable it. Given its age, the use of Antialiasing can really help BF2 look much better on newer systems with only a mild performance hit on recent systems. For older systems, it is recommended that AA be left Off.
Texture Filtering: This setting controls how crisp and clear textures look as they fade into the distance. The available options are Low, Medium and High, and the higher the setting the better the image quality in return for a decline in performance. The screenshot comparison below shows the impact of different levels of filtering - note in particular the different levels of the blurring on the dirt road leading off into the distance. The texture filtering settings at Medium and High should correspond with 2x Anisotropic Filtering (AF) and 4xAF respectively, with Low being Trilinear. For more details, again refer to the bottom of this page of my Gamer's Graphics & Display Settings Guide. For most people the Medium setting should be optimal for performance purposes while still maintaining good image quality; High on newer systems can really help BF2 look much more acceptable.
View Distance Scale: This slider determines the amount of visible detail your character can see in the distance. The screenshot comparison below shows the differences at 50% (the minimum), 75% and 100% (the maximum) View Distance settings. Note the crane in the distance becomes invisible at 75% view distance. While reducing the view distance improves performance due to less scenery being rendered, it is strongly recommended that you do not reduce your view distance below 100%. A reduced view distance can place you at a disadvantage in the game against other players who use 100% view distance, making it harder for you to spot distant players and vehicles. Keep this setting at its maximum and reduce other settings first to improve your performance if more FPS is necessary.
To implement the changes you've made here, be sure to click the Apply button at the bottom of the screen. As the warning dialog tells you, your shaders may need to be optimized each time you change settings - particularly when you choose settings which you haven't used in the past. See the Clearing Shader Optimizations tip under the Troubleshooting Tips section of this guide for more details of shader optimizations.
The next page continues the descriptions of the in-game settings.
Audio
Audio Renderer: This setting determines the type of audio device which is used to playback the sounds in the game. The options are Software, Hardware and Creative X-Fi. The Software renderer is the most basic, and provides adequate, at times scratchy sound quality, but gives the best performance for very old machines. The Hardware option should be chosen if you have dedicated sound hardware - even if it's onboard audio - as it provides good quality audio with a negligible performance drop. The Creative X-Fi setting provides the best audio quality and should only be used by people who own Creative X-Fi Hardware or equivalent, otherwise selecting this setting may cause problems so leave it unticked.
In general, I recommend Hardware audio renderer if the option is available in BF2. Note however that some older sound cards don't support this option in BF2 (See the Readme.txt file in your \Program Files\EA Games\Battlefield 2\Support\ directory for a full list.) If your audio device supports it I recommend enabling it - the positioning of sounds is a very important advantage in Battlefield 2, and having Software audio with low quality sound (See Sound Quality below) will make the sounds very unrealistic, and make it very difficult for you to determine enemy positions correctly.
Sound Quality: The options here are Low, Medium, High and Ultra High. Note that Ultra High is disabled for most people except those with very high-end sound cards. At Low, sound quality is quite poor, sounding almost like Mono instead of Stereo. Low is not recommended for the reasons given above, and because the performance difference between Low and Medium is not significant. As such Medium is recommended for people struggling for performance, though High provides the best audio quality for a slight decrease in performance.
Enable EAX: If the Audio Renderer is set to Hardware, and you have sound hardware which supports Creative's Environmental Audio (EAX), you can tick this box to enhance the audio quality. Enabling EAX may result in a slight a reduction in performance, however the sound effects in BF2 become much richer and more realistic. Once again if you have hardware which supports EAX, I recommend you tick this box as it provides you with a good advantage in locating enemies for a minimal performance hit.
If you have problems which you believe are related to audio in BF2, first make sure you have the latest audio drivers for your sound device. Next, untick the EAX option and Apply, then quit and restart the game. If problems persist, try the Software audio renderer. If that doesn't solve the issue, try the +nosound command line switch covered in the Advanced Tweaking section to start BF2 with no sound - if the problem still persists it is clearly unrelated to the audio rendering in BF2, and you should check the tips on page 3 for more things you can try.
Game Volume: The Effects, Music and Voice Over sliders in this section control the volume levels of these particular audio effects. Set to suit your taste - note that reducing the sliders to 0% does not disable any of these effects, so there is no performance improvement from doing so.
English VO Only: If ticked, this option forces all players (enemy and friendly) to speak English and not their native language for voice overs (VO's). Ticking this box can improve performance slightly as less sounds are loaded into memory.
Voice Over IP: If you want to use Voice Over IP (VOIP), tick the Enable box. VOIP allows you to use a microphone hooked to your computer and your headphones to speak to and hear conversations with other Battlefield 2 players on the same server who are logged into the VOIP network. Note that enabling VOIP can introduce more lag into your game due to the CPU overhead, and the additional bandwidth used - so untick the Enable box if you don't use VOIP. Using VOIP in BF2 during a game involves pressing your talk button first (default is B for squad, V for Commander) then talking into your microphone.
You can adjust the Transmit and Receive voice volumes using the two sliders provided, and if you find that even at 100% Transmit your voice sounds weak to others, tick the 'Boost Mic Gain' box and readjust the Transmit volume accordingly. The 'Microphone Threshold Test' section allows you to set the threshold up to which your voice/background sounds are disregarded. For example, increasing the slider to 100% means that unless you speak very loudly into your microphone, you will not transmit any noises over VOIP, whereas a threshold of 10% means pretty much every noise in your immediate environment will be sent over your VOIP channel. Click the 'Start Microphone Test' button to test the threshold for your normal speaking voice, and set it accordingly.
Note that you can also set up your BF2 microphone settings interactively by using Battlefield 2's BattleComo software. To do this, go to your \Program Files\EA Games\Battlefield 2\ directory, and run the BF2VoiceSetup.exe file, and follow the instructions on the application screen. When finished, click the 'Save Settings' button and the relevant settings in the Audio section will be adjusted accordingly.
Don't forget to click the Apply button when done changing the Audio settings to save your changes.
Community
The Community section of BF2 has two sub-sections:
Battlerecorder: The Battlerecorder allows you to play back demos which have been bookmarked from particular servers you've played on which have Battlerecorder enabled, and those which you have saved in your Battlerecorder Library. These demos contain full footage of your gameplay during a particular round. Battlerecorder is an option which must be enabled by servers, and can't be used to record games by clients (i.e. regular players). More details of Battlerecorder functionality can be found here. To record and play back your own custom demos see below:
Creating Demos: To make a custom demo of any length, you must be in Singleplayer mode, or on a server of your own creation (See Local Servers below) - you can't record your own demos on Multiplayer Internet servers. To start recording a demo, use the demo.recorddemo [demoname] command in the Command Console (See the Advanced Tweaking section). When you want to stop the demo, use the demo.stoprecording command in the console. Your demo has now been saved as a [demoname].bf2demo file in your Program Files\EA Games\Battlefield 2\mods\bf2\Demos\ directory.
Playing Back Demos: To play back a custom-made demo in Battlerecorder, you must copy your demo into the \Documents and Settings\[username]\My Documents\Battlefield 2\Profiles\Default\demos\ directory (if that directory doesn't exist, create it under the Default profile directory). Then when you go into the Battlerecorder section of BF2, you will find that the demo is listed under the 'Battlerecorder Library' area, and you can simply highlight it and play it from there. Thanks to Ryan Nichols for this tip.
If you want to launch the demos from outside BF2, download my BF2DemoPlayer.zip file (4KB). Once downloaded, extract the contents and place both files in your base BF2 directory (typically \Program Files\EA Games\Battlefield 2) - this is an important step, as the player won't work correctly if run from any other directory. These files are a slightly modified demo.cmd file from EA Games, which you can read more about here, and a custom batch file I've made called BF2DemoPlayer.bat. To play back any demo using these files, first make sure the demo is in your \Program Files\EA Games\Battlefield 2\mods\bf2\Demos\ directory. Then run the BFDemoPlayer batch file, follow the instructions given and your demo will be launched in your chosen resolution. You can stop the demo at any point either by opening the in-game console and entering demo.shutdownDemo, or by pressing the Q key and selecting Quit.
Update: It appears the demo.cmd file no longer works in the latest version of BF2, so this may render the BF2DemoPlayer unworkable. There is no fix I can provide at the moment.
Running a Timedemo: You can also use the demo.cmd file from above to run a timedemo of a benchmark. To run benchmarks using a custom demo, see the instructions in this article Benchmarking BF2.
Note: whenever you run a demo without defining a camera file to use, you can use the movement keys to 'fly' around and use a range of commands to change your view, switching to different player views for example and zooming in and out of the action. The list of commands is shown here, and you can access various demo options by pressing the Q button (by default) while the demo is playing back.
Custom Games: This section allows you to launch any custom games you or someone else have created for BF2. Basically that means mods, and highlighting the mod name and clicking Activate will enable the mod. For installation and usage instructions, check the site where you downloaded the particular mod. For some mods you can download for free, see the Patches, Maps & Mods section of this guide.
Singleplayer
Singleplayer mode is a great way of practicing your Battlefield 2 tactics, learning how to use the various vehicles (especially planes and choppers) without annoying online players with teamkills, a place to test out the various weapons and kits, and of course to learn the layout of the maps. Singleplayer mode can be accessed by both multiplayer and singleplayer accounts, however if you are using a multiplayer account you need to be connected to the Internet even when playing singleplayer.
To start a singleplayer game, first select the Level of Difficulty (Easy, Veteran, Expert) - this determines how well the 'bots' (computer-controlled players) in the game behave. The higher the setting, the more CPU power is required and hence the lower your performance may be. Note in particular that your performance may be lower than that online, simply because of the additional CPU overhead of the artificial intelligence in singleplayer mode. Next, highlight the name of the map you wish to play then click the 'Start Singleplayer' button and the game will launch. Note that by default, there are only 10 singleplayer maps available, and they are all smaller in size than their online counterparts. Note that I still haven't found a working solution which alows you to use the larger maps in singleplayer mode along with bots - see the Local Server option below to be able to play the large maps in singleplayer mode with no bots.
Co-Op Mode: If you want to add bots to a local game and play in 'Co-op' style with a friend against them, first make sure you're connected to the Internet, and using your Online account start a singleplayer game. Write down the IP number shown during the loading screen. Then, on your friend's computer once again make sure they are connected to the Internet and using an Online account, then go to the Multiplayer screen and under the Internet server browser click the 'Join IP' button and enter the IP address you wrote down earlier. You should then be able to play with each other against bots on the 16 player singleplayer maps. Thanks to AverageNewbie for this tip.
Update: As of the 1.3 Patch you can now play online in Singleplayer Co-Op mode, with both bots and humans. These options are available to the server creator to modify and include Number of Bots, Bot Ratio (to humans), and Bot Difficulty.
Multiplayer
This section is where you can join multiplayer games with other players. The available types of multiplayer games are covered below:
Join Internet: The most common form of playing BF2 with others online is over the Internet. On this screen you should first check the fields under the 'Internet Filters' section. These filters are used to refine the types of servers you will see displayed in the main Server Browser windows. For example I have the 'No Password' filter tick, so that servers which are password protected won't be shown. I also have the 'Populated' and 'Not Full' boxes ticked, so that empty and full servers are not shown, as it is usually pointless to join such servers. Finally, make sure you've selected all the map size boxes, and be absolutely certain that the 'Punkbuster' box is ticked, as Punkbuster protected servers provide you with the best chance of having a cheat-free experience.
Once you've selected your filters, click the 'Apply Filters' button. Now click the Refresh button on the main Server Browser window, and wait patiently as the server list is populated, and each server is contacted and the details shown. The most important number to pay attention to is the figure in the 'Ping' column for each server. Ping represents the time in milliseconds for the round trip between when you do something on your computer, that data being sent to the server through your internet connection, registered, and the impact returned to your computer and displayed on your screen. The lower your ping, the less delay (lag) you experience, and the higher your ping, the more lag you experience. Make sure to sort the servers by Ping from lowest to highest by clicking the small triangle to the right of the word 'Ping' at the top of the column twice, then scroll down past the 0 pings (servers which aren't responding or have yet to respond) and double-click on a server name to join it.
If you know the name or the IP Address of the server you wish to join, next time you come to the server browser instead of waiting for the list to refresh, you can enter the server's name in the 'Server Name' box at the top of the server browser, or click the 'Connect to IP' button at the bottom of the server browser and enter the full IP number to join that server. Alternatively, you can simply add the server to your Favorites list the next time you're playing on it, and go to Favorites (See below) to select it the next time you want to play on it.
Verification: Something to note: after a map has finished loading for an online game, you may find yourself waiting for a while longer as the map is verified. This is done to ensure that the game files loaded up are unchanged, and hence no cheats or unapproved modifications have been made to them. This can sometimes take quite a while, and depends on your hard drive speed, available RAM and internet connection speed. There are no tweaks to decrease this time, except for the general system speedup tweaks throughout this guide and my TweakGuides Tweaking Companion.
Local Servers (LAN): If you want to start a server for you and your friends to play on over a LAN connection, click the 'Create Local' button under the Multiplayer section. This screen lets you configure which maps to play on your server, the parameters for the maps (i.e. time limit, maximum players, friendly fire on/off, etc.). Once you've made your choices, click the 'Start Server' button. This launches your new server on the first map in your maplist, and you will be able to join the game and walk around. There are no other players/bots on a local server until other people on your LAN select the 'Join Local' button and highlight and join your particular server.
One of the useful things about the Local Server option - even if you're not connected to a LAN - is that it allows you to wander around all of the online maps (in 16, 32 and 64 player sizes) and hence learn the layout of these maps.
Dedicated Server: A dedicated server is a machine which is only used to run a BF2 server. That means once you launch a dedicated server you cannot play BF2 yourself on that particular machine. This provides the best performance for the server, and provided you have sufficient bandwidth, will allow more than 4-8 players to join without experiencing severe lag. For more details about starting up and configuring a dedicated server, see the ReadMeServer.txt file in your \Program Files\EA Games\Battlefield 2\ directory.
Rent Server: If you want to have a dedicated BF2 Server for your personal use, and that of others, but don't have the necessary hardware to set up a dedicated BF2 server, click this button to get more details of how you can rent a server from EA Games.
Favorites: As of the 1.03 Patch, BF2 has a Favorites list, which holds the details of the last 20 servers you have played on. You can also add to this list by manually tagging a server as a favorite whenever you are playing on it. This makes rejoining your favorite servers much quicker and easier, since you don't have to wait for the full list of servers to refresh, or hunt around for its name in the server list.
PlayNow: The large 'Play Now' button is on most screens in the in-game settings, and is quite tempting to press. It promises to get you into a BF2 multiplayer game rapidly - however this isn't the case. If you press this button you will find that it will seem to sit forever at the 'Server Search' screen. It's likely because BF2 waits for each and every available server to update before it can find the closest, lowest pinging one with an empty slot, and there can literally be thousands of these. For this reason PlayNow is not recommended - take the time to find a server using the methods above. If you want to try to make Play Now working correctly, try adding the command+Playnow 1 at the end of the BF2 shortcut you normally use (See the Advanced Tweaking section), or just use the BF2 Play Now shortcut to launch the game, this may help you - though it didn't make any different in my testing.
BFHQ
This section contains four sub-sections with details about the player attached to your account:
Kit Info: This section holds details such as when you had your last battle, the last time you played as a Squad Leader, Commander, etc. It has your current score - as you play more and more online games of BF2 on ranked servers, you will gain points which contribute to your score. As you get a higher score and your rank rises, you can unlock new weapons for particular kits. Note also that some servers may be rank-restricted, meaning you have to be a particular rank or higher before you can play on them.
Stats: This section has more details about which weapons you use the most, how accurate you are with them, your wins, losses and score components, your most frequently used kits, the maps you play most often etc.
Leaderboards: This section shows where you rank compared to other players in BF2. Remember once again that any score you compile while playing on unranked servers does not contribute to your score and hence your ranking will not rise while playing on such servers.
Awards: This section shows you the awards you have won for various achievements in BF2.
For more details of how the various ranks, awards and unlocks work refer to this great Unofficial Battlefield 2 Ranks and Awards Guide. Some very useful information there to help you figure out what you need to get to the next rank, and which weapons you may want to choose to unlock next.
Note, if you're familiar with America's Army then you'll know all about the AAOTracker website. Well those guys have started up a new site called BattleTracker, and just like its AA counterpart this site allows you to view player statistics, see other players' stats, etc. You will have to register with the site before they start tracking your stats, so if you want to use BattleTracker I recommend registering ASAP.
The next section goes into detail about the types of Advanced Tweaks you can use in Battlefield 2.
Config Files
Aside from the in-game settings, Battlefield 2 has a large number of config (.con) files spread throughout its directories. These files can be edited using a text editor like Windows Notepad or Wordpad. Before editing any .con file, first make sure you make a backup copy of it.
However as you may have noticed, editing many of these .con files can prove pointless as the changes seem to have no impact. I have found that the main configuration files which do have an impact are found under your \Documents and Settings\[username]\My Documents\Battlefield 2\Profiles\ directory, with the settings for each profile (whether an online or offline profile) are listed under a numbered directory (e.g. \0001 for the first profile, etc.). Note, I don't recommend that you edit the files under the \Default directory. To see which particular profile is currently in use, open the Global.con file under the \Profiles parent directory first, then see which number it mentions, and go to that particular numbered directory to find the files mentioned below.
Most of the settings in these .con files can and should be altered using the in-game options. However there are a few things you can adjust which are unique to the .con files:
Video.con
VideoSettings.setResolution 1280x960@75Hz
This setting controls your current resolution in Battlefield 2. The format is Width x Height@Refresh Rate. If you cannot start up BF2 and change the resolution from within the game, try altering it here to help you startup the game. In particular when you want to launch BF2 for the first time and the game just crashes back to desktop (See Troubleshooting Tips section), you can change the resolution from its default of 800x600@60Hz to one your monitor supports. Note however that certain resolutions are unsupported and entering them here will not work - see the Command Line section further below.
VideoSettings.setTerrainQuality 4
VideoSettings.setGeometryQuality 4
VideoSettings.setLightingQuality 4
VideoSettings.setDynamicLightingQuality 4
VideoSettings.setDynamicShadowsQuality 4
VideoSettings.setEffectsQuality 4
VideoSettings.setTextureQuality 4
VideoSettings.setTextureFilteringQuality 4
All of the above settings can be adjusted from within the in-game Video settings. However the highest they can be set to is High from within the game (a value of 3). By setting them each to 4 in Video.con (as shown above), you will have them displayed as 'Videosettings_Ultrahigh' in the in-game Video settings screen, and some people believe this increases the graphics quality to Ultrahigh levels. I didn't see any impact from this change, but if you want the absolute best quality in BF2 give it a try.
Update: As of the 1.3 Patch, you can no longer set Ultra High quality, the highest value which works for these settings is 3, which is also the maximum possible when using the in-game settings.
Profile.con
This file contains details of your online account including the username (GameSpyNick), the Email attached to that name, and the Password (encrypted). You can't change these details here - doing so will have no impact on your online account, except maybe cause problems logging on or with Punkbuster. If you want to change your online account name, email, or both, the correct way to do so is by going directly to the GameSpyID site, and first login using your current details. Then change the relevant information, enter the correct password and submit it to save the changes. Then when you return to BF2, enter your new details and retrieve your new account details then login to your multiplayer account.
General.con
GeneralSettings.addServerHistory
This settings show you the last servers you have successfully connected to. This list is handy because it provides the server names as well as the IP Number and Port Number. You can use these details in the Server Browser window to quickly connect to the same server again. The quickest way however is to simply go to the Favorites tab which has a record of the last 20 servers you've played on as well as any servers you've tagged as favorites. See the Multiplayer section of the In-Game Settings section for more details.
Interestingly, you can add console commands to General.con, and they will be implemented at startup for BF2. So for example if you want the FPS counter to appear whenever you launch BF2 and join a game, add the renderer.drawFps 1 command at the bottom of General.con. The list of console commands is on the next page.
Controls.con
This file contains all of the control mappings for actions in the game. The file structure is quite complex, and rather than cover it at length here, I recommend you see this detailed thread on the PlanetBattlefield Forums: Anatomy of Controls.con.
These are pretty much all of the useful things you can do by way of tweaking the .con files which I am aware of. As I mentioned, most of the settings in the .con files can be (and should be) changed using the in-game settings, and many of the settings in the numerous .con files spread throughout the game directories have no impact on the game. In fact there are a whole series of legacy files using the BF1942 file structure in the \Program Files\EA Games\Battlefield 2\mods\bf2 which use old commands no longer used in BF2.
Usersettings.con
This file is found under your \Program Files\EA Games\Battlefield 2\mods\bf2\Settings directory. There are two particular settings of interest here which are reported to help reduce the inaccurate feel /hit detection of weapons fire in BF2:
SettingsManager.floatSet GSDefaultLatencyCompensation 0.100000
This setting controls latency (or 'lag') compensation, which involves the game attempting to offset the delay between information being sent from your machine to the server and back again (as measured in milliseconds by your Ping). In games without client-side latency compensation, you have to lead your target by a certain amount, since whenever you fire a weapon your bullets will actually register in the game world with a delay equal to your Ping. In BF2, whenever you fire a weapon, whatever appears in your crosshairs at that particular moment is registered as being hit, regardless of where they actually are at that point in time. This removes the need to predict where your target will be based on ping delay, and makes the game feel more responsive. However it can also introduce quirks like ducking behind a wall and still being hit.
In any case, this setting controls the default latency compensation applied, and the normal value is 0.100000 = 100ms. Some people claim that by adjusting this value to match your average ping in the servers you play, it can improve hit detection. For example, if you typically have a 50ms Ping, setting this to 0.050000 should improve the feeling of accuracy in the game. To be honest having experimented with this setting in isolation I didn't notice much difference either way. I believe the latency compensation is actually dynamic, only starting at the default value given in this setting, and adjusting to match your average ping over time. However even if it isn't, in general you can try to match your Ping with this setting to see the results. Note that lowering this setting well below or above your average Ping will only add to lag and may decrease your accuracy at best, so stick with keeping it equal to the Ping you get on most servers.
SettingsManager.U32Set GSInterpolationTime 100
Interpolation is a technique used to increase the smoothness of an online game. Basically interpolation is the prediction of where a particular moving object or character is currently located in the game world, based on data received on where they were and where they are. For example if an enemy soldier is running across the screen, interpolation allows their movement to appear fluid, calculating their predicted movement across the screen even though your computer is receiving only periodic updates of where they actually are. So instead of seeing a person jerkily warping from point to point, you see smooth animated motion all the way along. This especially helps to keep things smooth if/when packets are momentarily lost between the server and you; the game knows where the player currently is, where they were a moment ago, and calculates and displays the movements in between.
By default, Battlefield 2 appears to have a 100 millisecond buffer for interpolation. The problem with this is that while making things appear smoother, it also means that when firing upon a fast-moving object you may miss where they actually are as you're effectively facing an additional 100ms delay. At least that's the theory, and in general in my experimentation I found slightly improved hit detection results (and no noticeable increase in jerkiness) by using a lower value of 50 or even 30 for this setting. Note however that this variable should not be set too low (and certainly not a value of 0) as it will result in increased warping/jerky movements, and if you generally have a ping higher than 100 you shouldn't lower this setting. For those who do try this, also remember that the improvement from lowering this setting is not dramatic, since we're talking a difference of say 50ms (1/20th of a second). However particularly in situations where your opponent(s) are moving fast and/or erratically your accuracy should be noticeably improved.
It is important to understand that the generally inaccurate feel of most weapons in BF2 is intentional, as realism has been sacrificed for the sake of gameplay. Techniques to steady your aim such as going prone and using short bursts can help improve hit rates. Furthermore it appears that much of the time the lack of hit registration is due to lost packets. I've noticed the Battlefield series suffers quite a bit from packet loss, often manifesting as serious warping or jerkiness, getting caught against walls or other barriers, and incidents where you can appear to be firing at an unmoving target at point blank range and still somehow miss with most bullets; information is being lost to/from the server.
The key thing to note about both settings above is that unfortunately neither I nor anyone else knows for sure what the real story is - only EA/DICE know the truth about how their netcode works, and they've stated nothing to clarify these settings. What I've written above is based on my own experimentation, understanding and research about these settings. For the most part I haven't found any problems with PunkBuster by using the recommended settings above, though some servers may be very strict and not allow these values to be changed. If altering these values seems to make things worse for you, or you experience more jerkiness, lag or disconnections, reset them to the defaults shown above and leave them be.
Command Line
There are a range of commands - mainly designed for servers running BF2 - which can be activated via the BF2 command line. You can use these commands by going to your main Battlefield 2 shortcut you use to launch the game, right-click on it and select Properties. Note that in Windows Vista, you should open Games Explorer, right-click on the Battlefield 2 icon, select Customize, highlight the first 'Play' commend and select Edit. Then in the Target box, after the "C:\Program Files\EA Games\Battlefield 2\BF2.exe" text, insert another space, then use any of the commands below. Each command must have a single space between it and the next command.
For example, one of the most commonly requested commands is to run BF2 in a custom resolution - particularly for LCD displays which display the best image at their native resolution. To do this, change your command line to look like this:
"C:\Program Files\EA Games\Battlefield 2\BF2.exe" +menu 1 +fullscreen 1 +szx 1280 +szy 1024
Note the addition of the +szx and +szy commands which respectively set the width and height of the resolution to be used. Substitute other values for other resolutions (e.g. +szx 1900 +szy 1200). Also note that as of the 1.03 Patch, 1280x1024 is now a supported resolution and can be selected within the in-game settings, and as of the 1.50 Patch, widescreen resolutions are also supported, so you don't need to use the +szx/+szy commands to force these resolutions anymore.
The following are the known command line commands for BF2, and descriptions where possible:
+playerName - Set the player name
+playerPassword - Sets the player password
+joinServer - Join a server by IP address or hostname
+fullscreen - Start game in full screen mode
+nosound - Start game without sound
+szx - Set resolution width
+szy - Set resolution height
+dedicated - Start in dedicated server mode
+multi - Allow starting multiple BF2 instances
+password - Set the server password when joining a server
+config - Sets path to the ServerSettings.con file to use
+maplist - Sets the path to the MapList.con file to use
+lowPriority - Run the game with slightly lower priority
+loadLevel - Set the level to load
+wx - Position game window on the screen at certain x-position
+wy - Position game window on the screen at certain y-position
+demo - Sets the con-file with demo options
+maxPlayers - Sets max players
+gameMode - Sets the game mode
+modPath - Sets the mod path (default /mods/bf2)
+help - Displays help
+ranked - Allows GamSpy snapshot sending
+playNow - Use PlayNow functionality
+port - Specifies the network port to be used
+pbPath - Set the path to use for PunkBuster on multi-instance configs
+hostServer -
+checkForAvailablePatch -
+checkForPatch -
+ai -
+restart - skips intro movies
Note: You must use the correct case for these commands to work - for example the +playername command only works if used thusly: +playerName - note the capitalized N. These all work as of the latest version, including commands like +joinServer.
As you can see, most of these commands are really only useful for those running BF2 servers, and the descriptions are fairly vague. However a couple of the more useful commands are covered in more detail on the last page of this guide.
The next page concludes the Advanced Tweaks with a list of known Console Commands.
This section covers all the Battlefield 2 Console Commands which have been discovered so far, and the known descriptions. To access the BF2 in-game console, press the '~' key (or the key above TAB) to open/close the console. To see the list of command categories, press the TAB key twice. To see particular sub-types, enter the start of the command press TAB twice. E.g. enter renderer, then press TAB twice to see the renderer sub-class of commands. The following are working commands in BF2 sorted by category:
Renderer Commands
renderer.drawHud [0,1] - Turns the Heads Up Display (HUD) on or off.
renderer.drawConsole [0,1] - Turns off access to the in-game console if set to 0.
renderer.drawFps [0,1] - Displays the current frames per second (FPS) and the time in milliseconds between frames.
Game Commands
game.sayAll [string] - Says the specified text in global chat
game.sayTeam [number] [string] - Says the specified text in team chat
game.lockFps [framerate] - Caps the game's maximum framerate to specified number
game.allowToggleFullscreen [0,1] - If set to 1 allows toggling of fullscreen/windowed mode
game.toggleFullscreen - Toggles between fullscreen and windowed mode
Demo Commands
demo.recordDemo [demoname] - Starts recording current gameplay and saves the file as demoname.bf2demo in your \Program Files\EA Games\Battlefield 2\mods\bf2\Demos directory
demo.stopRecording - Stops current demo recording
demo.ShutdownDemo - Stops and closes down current demo run
Localprofile Commands
localProfile.setName [name] - Shows/Sets the name for your current account
localProfile.setNick [nick] - Shows/Sets the nickname for your current account
localProfile.setGamespyNick [GameSpyNick] - Shows/Sets the GameSpy login name for your account
localProfile.setEmail [email account] - Shows/Sets the email account for the current account
localProfile.setPassword [password] - Shows/Sets the password for the current account
localProfile.setNumTimesLoggedIn [number] - Shows/Sets the number of times the player has logged in with the current account
localProfile.setTotalPlayedTime [seconds] - Shows/Sets the time the game has been played using the current account
localProfile.save -
localProfile.addDemoBookmark [ ] - Adds a bookmark to a Battlerecorder demo
Globalsettings Commands
globalSettings.setDefaultUser [number] - Sets the profile to use, the first one being 0001, then 0002 etc.
Sv Commands
These commands are used to adjust server settings, particularly in the Serversettings.con file under your \Documents and Settings\[username]\My Documents\Battlefield 2\Profiles\[profile]\ directory.
sv.allowNATNegotiation [0,1] -
sv.interface -
sv.timeBeforeRestarting [0,1] -
sv.autoBalanceTeam [0,1] -
sv.teamRatioPercent [0,1] -
sv.autoRecord [0,1] -
sv.demoIndexURL [address] -
sv.demoDownloadURL [address] -
sv.autoDemoHook -
sv.demoQuality -
sv.adminScript -
sv.sponsorText -
sv.sponsorLogoURL [address] -
sv.communityLogoURL [address] -
sv.radioSpamInterval -
sv.radioMaxSpamFlagCount -
sv.radioBlockedDurationTime [seconds] -
sv.useGlobalRank [0,1] -
sv.useGlobalUnlocks [0,1] -
sv.friendlyfirewithmines [0,1] -
Gamelogic Commands
gameLogic.togglePause - Toggles pausing the game.
Settingsmanager Commands
These commands set a range of variables. E.g. SettingsManager.boolSet GSUseObjectCache 1. The command used must match the type of variable (e.g. .boolset for Boolean variables, .IntSet for variables requiring integer input, etc.)
SettingsManager.stringSet -
SettingsManager.boolSet -
SettingsManager.IntSet -
SettingsManager.floatSet -
SettingsManager.u32Set -
SettingsManager.stringGet -
SettingsManager.boolGet -
SettingsManager.intGet -
SettingsManager.floatGet -
SettingsManager.U32Get -
Inputdevices Commands
InputDevices.setInvertAxis -
InputDevices.setAxisScale -
Controlmap Commands
These settings should be used in the Controls.con file under your \Documents and Settings\[username]\My Documents\Battlefield 2\Profiles\[profile]\ directory.
controlMap.deleteControlMap -
controlMap.dump -
controlMap.setButtonRiseTime -
controlMap.SetButtonFallTime -
controlMap.SetDoubleTapTime -
controlMap.addAxisToAxisMapping [string] -
controlMap.addButtonsToAxisMapping [string] -
controlMap.addKeyAndButtonToAxisMapping [string] -
controlMap.addKeysToAxisMapping [string] -
controlMap.addButtonToTriggerMapping [string] -
controlMap.AddKeyToTriggerMapping [string] -
controlMap.setAxisScale -
controlMap.setYawFactor -
controlMap.setPitchFactor -
controlMap.addAxisToTriggerMapping -
controlMap.InvertMouse [0,1] - Set to 1 for inverted mouse, 0 for default mouse
controlMap.mouseSensitivity [number] - Determines the sensitivity of the mouse
controlMap.keyboardSensitivity [number] - Deterimes the sensitivity of the keyboard
Maplist Commands
These commands are used to manage lists of maps by server administrators.
mapList.list - Lists map ID numbers, map name, game mode and the number of players if specified.
mapList.configFile [new location for file] - Used to specify the location of the _mapList.con file. Default is \My Documents\Battlefield 2\ServerConfigs\
mapList.load - Makes the server reload _mapList.con
mapList.save - Saves the current map list on the server to the file _mapList.con
mapList.mapCount - Shows the total number of maps in the current map list
mapList.currentMap - Shows the map list ID number of the current map being played
mapList.clear - Clears the current map list
mapList.remove [map ID number] - Removes the specified map from the map list
mapList.append [map name] [game mode] [number of players] - Add a new map to the end of the map list. You must specify the map name and game mode.
mapList.insert [map ID number] [map name] [game mode] [number of players] - Same as mapList.append command, but with this command you can specify at what map ID number to insert the new map into the list.
Cheat Commands
These commands allow several cheats to work, but only in Singleplayer mode
aiCheats.code TheAllSeeingEyeOfTheAIProgrammer - AI Stat Toggle
aiCheats.code BotsCanCheatToo - Bots Cheat
aiCheats.code Tobias.Karlsson - Invincibility
aiCheats.code Thomas.Skoldenborg - Kill Bots
aiCheats.code Jonathan.Gustavsson - Kill Enemy Bots
aiCheats.code WalkingIsWayTooTiresome - New Spawn Location
Admin Commands
These commands are used by server administrators.
admin.listPlayers - Lists the players connected to the server, showing their name, ID number and IP number.
admin.runNextLevel - Forces the server to end the round and start the next map in the map list.
admin.currentLevel - Shows the map list ID number for the current map being played.
admin.nextLevel - Shows the map list ID number for the next map to be played.
admin.restartMap - Restarts the current map.
admin.banPlayer [player ID number] [timeout] - Enter the player ID number you want to ban. Bans the player from the server by using their IP address. The timeout value controls the length of the ban e.g. perm for permanent ban, round to ban them for the rest of the round, and 180 is 180 seconds (3 minutes).
admin.banPlayerKey [player ID number] [timeout] - Enter the player ID you want to ban. Bans the player from the server by using their CD key hash.
admin.addAddressToBanList [IP address] [timeout] - Enter the IP number you want to ban.
admin.addKeyToBanList [CD key hash] [timeout] - Enter the CD key hash you want to ban.
admin.removeAddressFromBanList [IP address] - Enter the IP address to remove from the ban list.
admin.removeKeyFromBanList [CD key hash] - Enter the CD key hash you want to remove from the ban list.
admin.clearBanList - Clears all ban lists.
admin.listBannedAddresses - Displays a list of the currently banned IP addresses.
admin.listBannedKeys - Displays a list of the currently banned CD keys.
admin.kickPlayer [player ID number] - Enter the ID number of the player you want to kick.
Remote Console
These commands are used by server administrators.
To setup remote console access to the server, onthe server create a new plain text document in \admin\ called default.cfg and enter the following text into the new file:
port=4711
password=YourPassword
Save the file, and start the server. Now you can access the server remotely by using the following commands from a client:
rcon login [YourPassword] - Use this command to login to the server.
rcon users - This command lists all the users connected to the server. Very similar to admin.listPlayers
rcon exec [command name] - Replace
Exit - Quits the game to desktop.
That covers the known command list. If you know precisely what a particular command above does (no guesses please), please Email Me and after testing them I will add them to this guide.
The next page concludes the guide with some neat tweaks you may find useful.
The guide is fast coming to a close. The following are some tips and tricks I've found which you may find handy.
Disabling the Intro Movies
The introductory movies to BF2, although fun to watch the first couple of times, fast become quite annoying, adding to the startup times for the game, as well as the memory usage (the main movie is 135MB in size). To disable them permanently, I don't recommend deleting the movie files - this may cause problems with verification of client information on certain servers and/or with Punkbuster.
Instead, simply rename the relevant files in your \Program Files\EA Games\Battlefield 2\mods\bf2\Movies\ directory to something else (e.g. rename the Intro.bik to Intro.backup). The files to rename are: Dice.bik, EA.bik, Intro.bik, Legal.bik and Welcome.bik. This will mean the intro movies are all skipped as BF2 starts to load. If you find the movies playing in the background of the Login screen and Settings screens annoying, you can also rename the menu.bik and menu_loggedin.bik to something else as well.
If you've also renamed/removed the menu.bik and menu_loggedin.bik movies, and don't want a dull grey background in the in-game menus, then download this small BF2_Menu_Logo.zip file (201KB), extract the contents and copy them to your \Movies directory. These small files show the BF2 logo in the background, and look much nicer. Thanks to EdisLeado for preparing these files.
Removing all the original movies from the game can save over 250MB of data being loaded up during the start of the game and being placed into memory - this will help smooth your gameplay particularly for those with less RAM. If for any reason you experience any problems with the game after renaming the movies, simply rename them back to their original names.
Update: Instead of the above, the quick way to disable the intro movies is to simply use the +restart command line command in your BF2 startup icon:
E.g.: "C:\Program Files\EA Games\Battlefield 2\BF2.exe" +restart
See the Advanced Tweaking section for more details on how to use command line options.
Automatic Login
If you want to automatically be logged in each time you launch Battlefield 2, edit your BF2 Command Line as follows (See the Advanced Tweaking section for how to edit the Command Line):
"\Program Files\EA Games\Battlefield 2\BF2.exe" +playerName your playername +playerPassword your password
E.g.: "C:\Program Files\EA Games\Battlefield 2\BF2.exe" +playerName DogMaN +playerPassword Banana1
Basically by using the +playerName and +playerPassword parameters in your command line - along with any other entries you want to put in there - you will automatically be logged in as soon as you start the game, skipping the requirement to click Login on the login screen.
Update: Dennis has emailed me and pointed out that for this to work, the playerName and playerPassword commands are case-sensitive. That is, you must enter them exactly as shown, for example +playerName, not +playername. Furthermore your username and password are case sensitive as well, and must be entered precisely as you have them shown on the login screen. This method works with all versions of BF2, including the 1.12 patch onwards.
Battlefield 2 and Multi-Core CPUs
Battlefield 2 is not designed to take full advantage of multi-core (Dual, Quad, etc.) CPUs. At the same time however, it has no known compatibility issues with multi-core CPUs either. If you are having issues with BF2, it has nothing to do with the number of cores on your CPU - refer to page 3 for more troubleshooting tips you can try instead.
Increasing Singleplayer Bots
To increase the number of bots used in singleplayer mode, go to your \Program Files\EA Games\Battlefield 2\mods\bf2\AI directory and open the file aidefault.ai with Notepad or Wordpad (make sure to create a backup copy of it first). Read the instructions in the file which basically involves placing the word REM in front of each of the first 5 lines starting with 'aiSettings.set', then removing the REM's in front of the next 4 lines starting with 'aiSettings.set'. Change the number at the end of the aiSettings.setMaxNBots 32 line to determine the number of bots to use (e.g. aiSettings.setMaxNBots 64 for 64 bots). Note that more bots can really stress your system and hence destabilize it, causing a crash back to desktop - particularly for those with older CPUs. For example, 64 bots on most older systems will cause a crash.
Unlocking All Weapons
A lot of people have emailed me asking for this tweak, and the easiest way I know to do it is to use this Weapons Unlocker add-on. Note, as of Version 1.02, this method no longer works, and I don't know any other way of unlocking the weapons in SP at the moment.
Update: Try the methods here or here - they should work for the latest version, though I haven't tested them. Trying to connect to a multiplayer server with any weapons unlock cheat can see your CD Key banned, so please be careful.
Update 2: As of the 1.4 Patch weapons unlocking is allowed now on unranked servers.
Playing 32 & 64 Player Maps in Singleplayer
Currently there is no way I know to make this tweak work properly. Several astute readers have written in to tell me it is unlikely this sort of tweak will ever work, given that the bots in the game need scripted pathways and the game developers did not invest this time into creating such scripts for the larger maps. Even if you manage to unlock to the larger maps, the bots will ignore the new sections of the map as they are not scripted for those areas. So I would suggest we are stuck with the smaller maps in singleplayer, and check the In-Game Settings section for other ways to play the large maps.
Update: There is now a BF2 64-Player Maps Mod you can try to allow you to use the larger maps in single player. You can also try checking Battlefield SinglePlayer site for more custom offline maps and mods.
Measuring Framerate, Taking Screenshots & Recording Demo Movies
You can use the renderer.drawFps 1 command in BF2 to show your current frames per second (see Console Commands section above). However there is a utility which allows you to do this and much more: FRAPS. This free utility will display a very accurate framerate counter in the corner of the screen. However Fraps also has other handy functions, such as the ability to take screenshots in various formats and even record demo movies which you can play back in a media player outside of BF2. Give it a try as it is a great utility to have on your PC.
Conclusion
The concludes this guide, and in some ways I find it unfortunate that I couldn't find more things to tweak in BF2. It is the pattern with most games from EA Games that there is little genuine 'tweakability' allowable, and when combined with the Punkbuster anti-cheat system, experimenting with various tweaks can see you get banned from playing the game online. Therefore the tweaks and tips in this guide are the major ones I have found through testing and research, and most importantly they should all be perfectly safe to use.
If you discover more tweaks then please Email Me. However note that I can't provide tech support or tweaking advice of any kind, so please do not email me for these purposes, as I simply won't reply. Thanks in particular to all the readers who wrote to me after the release of my BF2 Demo Tweak Guide, especially Mark Laflamme and Devin Cobaugh. Of course, just like all my other tweak guides this guide will be updated and maintained, so make sure to check back regularly.
Until next time, take care!