Project Reality now includes LAN server files (since May 2021) & Server Setup Guide

Table of Contents


How to use the new LAN server files

Notes about Coop play

Coop Game Play Python Options


I’ve been trying to setup a Project Reality (PR) local LAN dedicated server for Coop play for years ! Until now PR has always required a server license. Private Coop servers running on your local LAN or even the same machine with the PR:BF2 client were denied this license which was essential since it contained files necessary for the PR:BF2 server to work properly. However since patch the team have relaxed the restrictions …

Added Windows server files to client install for playing in LAN.

This is all very good news for PR Coop players and especially solo (PvE) players as Coop PR had already been negatively affected by changes made to the flight model. This meant that bots could not be trained in that new flight model so some “old flight model” jets (don’t know if it affects helicopters) had to be reserved specifically for bots, and then the bots could not use the human only jets. This further reduced the amount of bot action on that battlefield. However with the new patch it’s now possible to go past the 48 bot limit restriction that a Coop game started from within the client (non-dedicated server) was limited to. I am currently playing games with 96 bots. This jazzes up a PR Coop game to say the least. Now because there are many more bots they tend to spawn in places where they are more likely to find vehicles or their special bot only jets !

How to use the new LAN server files

First make sure you are using an online profile as joining the server will crash the client if you connect to the server with an offline profile …

The server itself can be started with the included batch file “start_prbf2_w32ded.bat” but all that does is point the server to the correct mod directory. You will also need to edit “maplist.con” (in “C:\Program Files (x86)\Project Reality\Project Reality BF2\mods\pr\settings\“) to only load Coop maps. I just remmed out the unwanted levels with “beginrem” and “endrem” …

rem |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rem |——————————————————————————-|
rem | Project Reality Map List |
rem |——————————————————————————-|
rem | 16/32/64 does not represent player size, instead, different map layouts |
rem | 128 layers are recommended to be used with 100 player servers |
rem |——————————————————————————-|
rem | 16 = Infantry Layer At most light transport vehicles only |
rem | 32 = Alternative Layer An alternative layout with different vehicles/flags |
rem | 64 = Standard Layer The normal map layout |
rem | 128 = Large Layer Copy of 64 with higher ticket count for longer rounds|
rem |——————————————————————————-|
rem |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

rem mapList.append

rem |——————————————————————————-|
rem | Advance and Secure. Capture and defend control points (Default GameMode) |
rem |——————————————————————————-|
mapList.append adak gpm_cq 32
mapList.append adak gpm_cq 64
mapList.append adak gpm_cq 128
mapList.append asad_khal gpm_cq 32
mapList.append asad_khal gpm_cq 64
mapList.append assault_on_grozny gpm_cq 16
mapList.append assault_on_grozny gpm_cq 32
mapList.append assault_on_grozny gpm_cq 64
mapList.append assault_on_mestia gpm_cq 64
mapList.append bamyan gpm_cq 32
mapList.append bamyan gpm_cq 64
mapList.append bamyan gpm_cq 128
mapList.append battle_of_ia_drang gpm_cq 16
mapList.append battle_of_ia_drang gpm_cq 32
mapList.append battle_of_ia_drang gpm_cq 64
mapList.append beirut gpm_cq 16
mapList.append beirut gpm_cq 32
mapList.append beirut gpm_cq 64
mapList.append beirut gpm_cq 128
mapList.append bijar_canyons gpm_cq 16
mapList.append bijar_canyons gpm_cq 32
mapList.append bijar_canyons gpm_cq 64
mapList.append bijar_canyons gpm_cq 128
mapList.append black_gold gpm_cq 16
mapList.append black_gold gpm_cq 32
mapList.append black_gold gpm_cq 64
mapList.append black_gold gpm_cq 128
mapList.append brecourt_assault gpm_cq 32
mapList.append brecourt_assault gpm_cq 64
mapList.append burning_sands gpm_cq 16
mapList.append burning_sands gpm_cq 32
mapList.append burning_sands gpm_cq 64
mapList.append burning_sands gpm_cq 128
mapList.append carentan gpm_cq 32
mapList.append carentan gpm_cq 64
mapList.append carentan gpm_cq 128
mapList.append charlies_point gpm_cq 64
mapList.append dovre gpm_cq 16
mapList.append dovre gpm_cq 32
mapList.append dovre gpm_cq 64
mapList.append dovre_winter gpm_cq 16
mapList.append dovre_winter gpm_cq 32
mapList.append dovre_winter gpm_cq 64
mapList.append dragon_fly gpm_cq 16
mapList.append dragon_fly gpm_cq 32
mapList.append dragon_fly gpm_cq 64
mapList.append fallujah_west gpm_cq 64
mapList.append fools_road gpm_cq 16
mapList.append fools_road gpm_cq 32
mapList.append fools_road gpm_cq 64
mapList.append fools_road gpm_cq 128
mapList.append gaza_2 gpm_cq 16
mapList.append gaza_2 gpm_cq 32
mapList.append gaza_2 gpm_cq 64
mapList.append goose_green gpm_cq 16
mapList.append goose_green gpm_cq 32
mapList.append goose_green gpm_cq 64
mapList.append hades_peak gpm_cq 16
mapList.append hades_peak gpm_cq 32
mapList.append hades_peak gpm_cq 64
mapList.append hades_peak gpm_cq 128
mapList.append hill_488 gpm_cq 64
mapList.append iron_ridge gpm_cq 16
mapList.append iron_ridge gpm_cq 32
mapList.append iron_ridge gpm_cq 64
mapList.append jabal gpm_cq 16
mapList.append jabal gpm_cq 32
mapList.append jabal gpm_cq 64
mapList.append kafar_halab gpm_cq 16
mapList.append kafar_halab gpm_cq 32
mapList.append kafar_halab gpm_cq 64
mapList.append kashan_desert gpm_cq 16
mapList.append kashan_desert gpm_cq 32
mapList.append kashan_desert gpm_cq 64
mapList.append kashan_desert gpm_cq 128
mapList.append khamisiyah gpm_cq 16
mapList.append khamisiyah gpm_cq 32
mapList.append khamisiyah gpm_cq 64
mapList.append khamisiyah gpm_cq 128
mapList.append korengal gpm_cq 64
mapList.append kozelsk gpm_cq 16
mapList.append kozelsk gpm_cq 32
mapList.append kozelsk gpm_cq 64
mapList.append masirah gpm_cq 64
mapList.append merville gpm_cq 16
mapList.append merville gpm_cq 64
mapList.append musa_qala gpm_cq 64
mapList.append muttrah_city_2 gpm_cq 16
mapList.append muttrah_city_2 gpm_cq 32
mapList.append muttrah_city_2 gpm_cq 64
mapList.append nuijamaa gpm_cq 16
mapList.append nuijamaa gpm_cq 32
mapList.append nuijamaa gpm_cq 64
mapList.append omaha_beach gpm_cq 16
mapList.append omaha_beach gpm_cq 32
mapList.append omaha_beach gpm_cq 64
mapList.append omaha_beach gpm_cq 128
mapList.append op_barracuda gpm_cq 16
mapList.append op_barracuda gpm_cq 32
mapList.append op_barracuda gpm_cq 64
mapList.append operation_bobcat gpm_cq 16
mapList.append operation_bobcat gpm_cq 32
mapList.append operation_bobcat gpm_cq 64
mapList.append operation_bobcat gpm_cq 128
mapList.append operation_falcon gpm_cq 16
mapList.append operation_falcon gpm_cq 32
mapList.append operation_falcon gpm_cq 64
mapList.append operation_falcon gpm_cq 128
mapList.append operation_ghost_train gpm_cq 16
mapList.append operation_ghost_train gpm_cq 64
mapList.append operation_marlin gpm_cq 16
mapList.append operation_marlin gpm_cq 32
mapList.append operation_marlin gpm_cq 64
mapList.append operation_marlin gpm_cq 128
mapList.append operation_soul_rebel gpm_cq 16
mapList.append operation_soul_rebel gpm_cq 64
mapList.append operation_thunder gpm_cq 32
mapList.append operation_thunder gpm_cq 64
mapList.append outpost gpm_cq 32
mapList.append outpost gpm_cq 64
mapList.append pavlovsk_bay gpm_cq 16
mapList.append pavlovsk_bay gpm_cq 32
mapList.append pavlovsk_bay gpm_cq 64
mapList.append qwai1 gpm_cq 16
mapList.append qwai1 gpm_cq 32
mapList.append qwai1 gpm_cq 64
mapList.append ramiel gpm_cq 64
mapList.append ras_el_masri_2 gpm_cq 64
mapList.append reichswald gpm_cq 16
mapList.append reichswald gpm_cq 32
mapList.append reichswald gpm_cq 64
mapList.append route gpm_cq 32
mapList.append route gpm_cq 64
mapList.append route gpm_cq 128
mapList.append saaremaa gpm_cq 16
mapList.append saaremaa gpm_cq 32
mapList.append saaremaa gpm_cq 64
mapList.append saaremaa gpm_cq 128
mapList.append sahel gpm_cq 16
mapList.append sahel gpm_cq 32
mapList.append sahel gpm_cq 64
mapList.append sbeneh_outskirts gpm_cq 16
mapList.append sbeneh_outskirts gpm_cq 32
mapList.append sbeneh_outskirts gpm_cq 64
mapList.append shahadah gpm_cq 64
mapList.append shijiavalley gpm_cq 16
mapList.append shijiavalley gpm_cq 32
mapList.append shijiavalley gpm_cq 64
mapList.append shijiavalley gpm_cq 128
mapList.append silent_eagle gpm_cq 16
mapList.append silent_eagle gpm_cq 32
mapList.append silent_eagle gpm_cq 64
mapList.append silent_eagle gpm_cq 128
mapList.append tad_sae gpm_cq 16
mapList.append tad_sae gpm_cq 32
mapList.append tad_sae gpm_cq 64
mapList.append the_falklands gpm_cq 16
mapList.append the_falklands gpm_cq 32
mapList.append the_falklands gpm_cq 64
mapList.append ulyanovsk gpm_cq 16
mapList.append ulyanovsk gpm_cq 32
mapList.append ulyanovsk gpm_cq 64
mapList.append vadso_city gpm_cq 16
mapList.append vadso_city gpm_cq 32
mapList.append vadso_city gpm_cq 64
mapList.append wanda_shan gpm_cq 16
mapList.append wanda_shan gpm_cq 32
mapList.append wanda_shan gpm_cq 64
mapList.append wanda_shan gpm_cq 128
mapList.append xiangshan gpm_cq 16
mapList.append xiangshan gpm_cq 32
mapList.append xiangshan gpm_cq 64
mapList.append xiangshan gpm_cq 128
mapList.append yamalia gpm_cq 16
mapList.append yamalia gpm_cq 32
mapList.append yamalia gpm_cq 64
mapList.append yamalia gpm_cq 128

rem |——————————————————————————-|
rem | Insurgency – Objective based. BluFor is to destroy OpFor ammo caches |
rem |——————————————————————————-|
mapList.append albasrah_2 gpm_insurgency 16
mapList.append albasrah_2 gpm_insurgency 64
mapList.append assault_on_grozny gpm_insurgency 64
mapList.append bamyan gpm_insurgency 64
mapList.append bijar_canyons gpm_insurgency 64
mapList.append black_gold gpm_insurgency 64
mapList.append dragon_fly gpm_insurgency 16
mapList.append dragon_fly gpm_insurgency 64
mapList.append fallujah_west gpm_insurgency 16
mapList.append fallujah_west gpm_insurgency 32
mapList.append fallujah_west gpm_insurgency 64
mapList.append fallujah_west gpm_insurgency 128
mapList.append gaza_2 gpm_insurgency 16
mapList.append gaza_2 gpm_insurgency 64
mapList.append iron_ridge gpm_insurgency 64
mapList.append kafar_halab gpm_insurgency 32
mapList.append kafar_halab gpm_insurgency 64
mapList.append karbala gpm_insurgency 16
mapList.append karbala gpm_insurgency 32
mapList.append karbala gpm_insurgency 64
mapList.append karbala gpm_insurgency 128
mapList.append khamisiyah gpm_insurgency 64
mapList.append kokan gpm_insurgency 16
mapList.append kokan gpm_insurgency 32
mapList.append kokan gpm_insurgency 64
mapList.append korengal gpm_insurgency 64
mapList.append kozelsk gpm_insurgency 64
mapList.append lashkar_valley gpm_insurgency 16
mapList.append lashkar_valley gpm_insurgency 32
mapList.append lashkar_valley gpm_insurgency 64
mapList.append lashkar_valley gpm_insurgency 128
mapList.append musa_qala gpm_insurgency 16
mapList.append musa_qala gpm_insurgency 32
mapList.append musa_qala gpm_insurgency 64
mapList.append operation_marlin gpm_insurgency 64
mapList.append outpost gpm_insurgency 64
mapList.append ramiel gpm_insurgency 16
mapList.append ramiel gpm_insurgency 32
mapList.append ramiel gpm_insurgency 64
mapList.append ras_el_masri_2 gpm_insurgency 64
mapList.append sahel gpm_insurgency 64
mapList.append sbeneh_outskirts gpm_insurgency 16
mapList.append sbeneh_outskirts gpm_insurgency 32
mapList.append sbeneh_outskirts gpm_insurgency 64
mapList.append shahadah gpm_insurgency 64

rem |——————————————————————————-|
rem | Skirmish – Small infantry-only battles, aimed at 6v6 to 10v10 |
rem |——————————————————————————-|
mapList.append adak gpm_skirmish 64
mapList.append albasrah_2 gpm_skirmish 16
mapList.append asad_khal gpm_skirmish 16
mapList.append asad_khal gpm_skirmish 32
mapList.append asad_khal gpm_skirmish 64
mapList.append assault_on_grozny gpm_skirmish 16
mapList.append assault_on_grozny gpm_skirmish 32
mapList.append assault_on_mestia gpm_skirmish 16
mapList.append bamyan gpm_skirmish 16
mapList.append battle_of_ia_drang gpm_skirmish 16
mapList.append battle_of_ia_drang gpm_skirmish 32
mapList.append beirut gpm_skirmish 16
mapList.append beirut gpm_skirmish 32
mapList.append bijar_canyons gpm_skirmish 16
mapList.append black_gold gpm_skirmish 16
mapList.append brecourt_assault gpm_skirmish 64
mapList.append burning_sands gpm_skirmish 16
mapList.append carentan gpm_skirmish 16
mapList.append carentan gpm_skirmish 32
mapList.append carentan gpm_skirmish 64
mapList.append charlies_point gpm_skirmish 16
mapList.append dovre gpm_skirmish 16
mapList.append dovre_winter gpm_skirmish 16
mapList.append dragon_fly gpm_skirmish 16
mapList.append fallujah_west gpm_skirmish 16
mapList.append fools_road gpm_skirmish 16
mapList.append fools_road gpm_skirmish 32
mapList.append gaza_2 gpm_skirmish 16
mapList.append goose_green gpm_skirmish 16
mapList.append goose_green gpm_skirmish 32
mapList.append hades_peak gpm_skirmish 16
mapList.append hill_488 gpm_skirmish 16
mapList.append iron_ridge gpm_skirmish 16
mapList.append iron_ridge gpm_skirmish 32
mapList.append jabal gpm_skirmish 16
mapList.append jabal gpm_skirmish 32
mapList.append jabal gpm_skirmish 64
mapList.append kafar_halab gpm_skirmish 64
mapList.append karbala gpm_skirmish 16
mapList.append kashan_desert gpm_skirmish 16
mapList.append kashan_desert gpm_skirmish 32
mapList.append kashan_desert gpm_skirmish 64
mapList.append khamisiyah gpm_skirmish 16
mapList.append kokan gpm_skirmish 16
mapList.append kokan gpm_skirmish 64
mapList.append korengal gpm_skirmish 16
mapList.append kozelsk gpm_skirmish 16
mapList.append lashkar_valley gpm_skirmish 16
mapList.append masirah gpm_skirmish 16
mapList.append merville gpm_skirmish 16
mapList.append musa_qala gpm_skirmish 16
mapList.append muttrah_city_2 gpm_skirmish 16
mapList.append nuijamaa gpm_skirmish 16
mapList.append omaha_beach gpm_skirmish 16
mapList.append op_barracuda gpm_skirmish 16
mapList.append op_barracuda gpm_skirmish 32
mapList.append operation_bobcat gpm_skirmish 16
mapList.append operation_bobcat gpm_skirmish 32
mapList.append operation_bobcat gpm_skirmish 64
mapList.append operation_falcon gpm_skirmish 16
mapList.append operation_ghost_train gpm_skirmish 16
mapList.append operation_marlin gpm_skirmish 16
mapList.append operation_soul_rebel gpm_skirmish 16
mapList.append operation_thunder gpm_skirmish 16
mapList.append outpost gpm_skirmish 16
mapList.append pavlovsk_bay gpm_skirmish 16
mapList.append qwai1 gpm_skirmish 16
mapList.append qwai1 gpm_skirmish 32
mapList.append ramiel gpm_skirmish 16
mapList.append ras_el_masri_2 gpm_skirmish 16
mapList.append reichswald gpm_skirmish 16
mapList.append reichswald gpm_skirmish 32
mapList.append route gpm_skirmish 16
mapList.append saaremaa gpm_skirmish 16
mapList.append sahel gpm_skirmish 32
mapList.append sahel gpm_skirmish 64
mapList.append sbeneh_outskirts gpm_skirmish 16
mapList.append sbeneh_outskirts gpm_skirmish 32
mapList.append shahadah gpm_skirmish 16
mapList.append shijiavalley gpm_skirmish 16
mapList.append shijiavalley gpm_skirmish 32
mapList.append shijiavalley gpm_skirmish 64
mapList.append silent_eagle gpm_skirmish 16
mapList.append tad_sae gpm_skirmish 16
mapList.append tad_sae gpm_skirmish 32
mapList.append the_falklands gpm_skirmish 16
mapList.append the_falklands gpm_skirmish 32
mapList.append ulyanovsk gpm_skirmish 16
mapList.append vadso_city gpm_skirmish 16
mapList.append vadso_city gpm_skirmish 64
mapList.append wanda_shan gpm_skirmish 16
mapList.append xiangshan gpm_skirmish 16
mapList.append xiangshan gpm_skirmish 32
mapList.append yamalia gpm_skirmish 16
mapList.append yamalia gpm_skirmish 32

rem |——————————————————————————-|
rem | Gungame – Small, fun oriented gamemode aimed at seeding |
rem |——————————————————————————-|
mapList.append asad_khal gpm_gungame 16
mapList.append black_gold gpm_gungame 16
mapList.append black_gold gpm_gungame 64
mapList.append dovre gpm_gungame 16
mapList.append wanda_shan gpm_gungame 16

rem |——————————————————————————-|
rem | Command and Control – Objective based. Build and defend Forward Outposts |
rem |——————————————————————————-|
mapList.append battle_of_ia_drang gpm_cnc 32
mapList.append battle_of_ia_drang gpm_cnc 64
mapList.append bijar_canyons gpm_cnc 16
mapList.append bijar_canyons gpm_cnc 32
mapList.append bijar_canyons gpm_cnc 64
mapList.append bijar_canyons gpm_cnc 128
mapList.append black_gold gpm_cnc 16
mapList.append black_gold gpm_cnc 32
mapList.append black_gold gpm_cnc 64
mapList.append black_gold gpm_cnc 128
mapList.append dragon_fly gpm_cnc 16
mapList.append dragon_fly gpm_cnc 32
mapList.append dragon_fly gpm_cnc 64
mapList.append fools_road gpm_cnc 16
mapList.append fools_road gpm_cnc 32
mapList.append fools_road gpm_cnc 64
mapList.append fools_road gpm_cnc 128
mapList.append hades_peak gpm_cnc 16
mapList.append hades_peak gpm_cnc 32
mapList.append hades_peak gpm_cnc 64
mapList.append hades_peak gpm_cnc 128
mapList.append iron_ridge gpm_cnc 16
mapList.append iron_ridge gpm_cnc 32
mapList.append iron_ridge gpm_cnc 64
mapList.append kashan_desert gpm_cnc 16
mapList.append kashan_desert gpm_cnc 32
mapList.append kashan_desert gpm_cnc 64
mapList.append khamisiyah gpm_cnc 16
mapList.append khamisiyah gpm_cnc 32
mapList.append khamisiyah gpm_cnc 64
mapList.append route gpm_cnc 32
mapList.append route gpm_cnc 64
mapList.append route gpm_cnc 128
mapList.append saaremaa gpm_cnc 16
mapList.append saaremaa gpm_cnc 32
mapList.append saaremaa gpm_cnc 64
mapList.append sbeneh_outskirts gpm_cnc 16
mapList.append sbeneh_outskirts gpm_cnc 64
mapList.append shijiavalley gpm_cnc 16
mapList.append shijiavalley gpm_cnc 32
mapList.append shijiavalley gpm_cnc 64
mapList.append shijiavalley gpm_cnc 128
mapList.append silent_eagle gpm_cnc 16
mapList.append silent_eagle gpm_cnc 32
mapList.append silent_eagle gpm_cnc 64
mapList.append silent_eagle gpm_cnc 128
mapList.append vadso_city gpm_cnc 16
mapList.append vadso_city gpm_cnc 32
mapList.append vadso_city gpm_cnc 64
mapList.append wanda_shan gpm_cnc 16
mapList.append wanda_shan gpm_cnc 32
mapList.append wanda_shan gpm_cnc 64
mapList.append wanda_shan gpm_cnc 128
mapList.append xiangshan gpm_cnc 16
mapList.append xiangshan gpm_cnc 32
mapList.append xiangshan gpm_cnc 64
mapList.append xiangshan gpm_cnc 128
mapList.append yamalia gpm_cnc 16
mapList.append yamalia gpm_cnc 32
mapList.append yamalia gpm_cnc 64
mapList.append yamalia gpm_cnc 128

rem |——————————————————————————-|
rem | Vehicle Warfare – Large, vehicle only battles |
rem |——————————————————————————-|
mapList.append bijar_canyons gpm_vehicles 64
mapList.append black_gold gpm_vehicles 16
mapList.append black_gold gpm_vehicles 64
mapList.append dragon_fly gpm_vehicles 64
mapList.append kashan_desert gpm_vehicles 32
mapList.append kashan_desert gpm_vehicles 64
mapList.append khamisiyah gpm_vehicles 16
mapList.append khamisiyah gpm_vehicles 64
mapList.append operation_soul_rebel gpm_vehicles 64
mapList.append sbeneh_outskirts gpm_vehicles 16
mapList.append sbeneh_outskirts gpm_vehicles 64
mapList.append shijiavalley gpm_vehicles 64
mapList.append silent_eagle gpm_vehicles 16
mapList.append silent_eagle gpm_vehicles 64
mapList.append the_falklands gpm_vehicles 32
mapList.append the_falklands gpm_vehicles 64
mapList.append wanda_shan gpm_vehicles 64
mapList.append xiangshan gpm_vehicles 64
mapList.append yamalia gpm_vehicles 64

rem |——————————————————————————-|
rem | Co-Operative – Play with Bots !!!Cannot be run with any other game mode!!! |
rem |——————————————————————————-|
mapList.append bijar_canyons gpm_coop 64
mapList.append adak gpm_coop 128
mapList.append albasrah_2 gpm_coop 16
mapList.append albasrah_2 gpm_coop 32
mapList.append albasrah_2 gpm_coop 64
mapList.append asad_khal gpm_coop 32
mapList.append asad_khal gpm_coop 64
mapList.append assault_on_grozny gpm_coop 16
mapList.append assault_on_grozny gpm_coop 32
mapList.append assault_on_grozny gpm_coop 64
mapList.append assault_on_mestia gpm_coop 64
mapList.append bamyan gpm_coop 16
mapList.append bamyan gpm_coop 32
mapList.append bamyan gpm_coop 64
mapList.append bamyan gpm_coop 128
mapList.append battle_of_ia_drang gpm_coop 32
mapList.append battle_of_ia_drang gpm_coop 64
mapList.append beirut gpm_coop 16
mapList.append beirut gpm_coop 32
mapList.append beirut gpm_coop 64
mapList.append beirut gpm_coop 128
mapList.append bijar_canyons gpm_coop 32
mapList.append bijar_canyons gpm_coop 64
mapList.append black_gold gpm_coop 16
mapList.append black_gold gpm_coop 32
mapList.append black_gold gpm_coop 64
mapList.append black_gold gpm_coop 128
mapList.append brecourt_assault gpm_coop 64
mapList.append burning_sands gpm_coop 16
mapList.append burning_sands gpm_coop 32
mapList.append burning_sands gpm_coop 64
mapList.append carentan gpm_coop 32
mapList.append carentan gpm_coop 64
mapList.append charlies_point gpm_coop 64
mapList.append dovre gpm_coop 64
mapList.append dovre_winter gpm_coop 32
mapList.append dovre_winter gpm_coop 64
mapList.append dragon_fly gpm_coop 16
mapList.append dragon_fly gpm_coop 64
mapList.append fallujah_west gpm_coop 64
mapList.append fools_road gpm_coop 16
mapList.append fools_road gpm_coop 32
mapList.append fools_road gpm_coop 64
mapList.append fools_road gpm_coop 128
mapList.append gaza_2 gpm_coop 16
mapList.append gaza_2 gpm_coop 64
mapList.append goose_green gpm_coop 64
mapList.append hades_peak gpm_coop 16
mapList.append hades_peak gpm_coop 32
mapList.append hades_peak gpm_coop 64
mapList.append hill_488 gpm_coop 64
mapList.append iron_ridge gpm_coop 64
mapList.append jabal gpm_coop 16
mapList.append jabal gpm_coop 32
mapList.append jabal gpm_coop 64
mapList.append jabal gpm_coop 128
mapList.append kafar_halab gpm_coop 16
mapList.append kafar_halab gpm_coop 32
mapList.append kafar_halab gpm_coop 64
mapList.append kafar_halab gpm_coop 128
mapList.append karbala gpm_coop 32
mapList.append karbala gpm_coop 64
mapList.append kashan_desert gpm_coop 16
mapList.append kashan_desert gpm_coop 32
mapList.append kashan_desert gpm_coop 64
mapList.append kashan_desert gpm_coop 128
mapList.append khamisiyah gpm_coop 16
mapList.append khamisiyah gpm_coop 32
mapList.append khamisiyah gpm_coop 64
mapList.append khamisiyah gpm_coop 128
mapList.append kokan gpm_coop 16
mapList.append kokan gpm_coop 32
mapList.append kokan gpm_coop 64
mapList.append kokan gpm_coop 128
mapList.append korengal gpm_coop 64
mapList.append kozelsk gpm_coop 16
mapList.append kozelsk gpm_coop 32
mapList.append kozelsk gpm_coop 64
mapList.append lashkar_valley gpm_coop 16
mapList.append lashkar_valley gpm_coop 32
mapList.append lashkar_valley gpm_coop 64
mapList.append masirah gpm_coop 16
mapList.append masirah gpm_coop 128
mapList.append merville gpm_coop 64
mapList.append musa_qala gpm_coop 32
mapList.append musa_qala gpm_coop 64
mapList.append muttrah_city_2 gpm_coop 16
mapList.append muttrah_city_2 gpm_coop 32
mapList.append muttrah_city_2 gpm_coop 64
mapList.append muttrah_city_2 gpm_coop 128
mapList.append nuijamaa gpm_coop 64
mapList.append omaha_beach gpm_coop 64
mapList.append op_barracuda gpm_coop 16
mapList.append op_barracuda gpm_coop 32
mapList.append op_barracuda gpm_coop 64
mapList.append op_barracuda gpm_coop 128
mapList.append operation_bobcat gpm_coop 16
mapList.append operation_bobcat gpm_coop 64
mapList.append operation_bobcat gpm_coop 128
mapList.append operation_falcon gpm_coop 32
mapList.append operation_falcon gpm_coop 64
mapList.append operation_ghost_train gpm_coop 16
mapList.append operation_marlin gpm_coop 16
mapList.append operation_marlin gpm_coop 32
mapList.append operation_marlin gpm_coop 64
mapList.append operation_marlin gpm_coop 128
mapList.append operation_soul_rebel gpm_coop 64
mapList.append operation_thunder gpm_coop 16
mapList.append operation_thunder gpm_coop 64
mapList.append outpost gpm_coop 32
mapList.append outpost gpm_coop 64
mapList.append pavlovsk_bay gpm_coop 16
mapList.append pavlovsk_bay gpm_coop 32
mapList.append pavlovsk_bay gpm_coop 64
mapList.append qwai1 gpm_coop 16
mapList.append qwai1 gpm_coop 32
mapList.append qwai1 gpm_coop 64
mapList.append ramiel gpm_coop 16
mapList.append ramiel gpm_coop 32
mapList.append ramiel gpm_coop 64
mapList.append ramiel gpm_coop 128
mapList.append reichswald gpm_coop 64
mapList.append route gpm_coop 16
mapList.append route gpm_coop 64
mapList.append saaremaa gpm_coop 32
mapList.append saaremaa gpm_coop 64
mapList.append sahel gpm_coop 16
mapList.append sahel gpm_coop 64
mapList.append sbeneh_outskirts gpm_coop 16
mapList.append sbeneh_outskirts gpm_coop 32
mapList.append sbeneh_outskirts gpm_coop 64
mapList.append shahadah gpm_coop 16
mapList.append shahadah gpm_coop 32
mapList.append shahadah gpm_coop 64
mapList.append shijiavalley gpm_coop 16
mapList.append shijiavalley gpm_coop 32
mapList.append shijiavalley gpm_coop 64
mapList.append silent_eagle gpm_coop 16
mapList.append silent_eagle gpm_coop 32
mapList.append silent_eagle gpm_coop 64
mapList.append tad_sae gpm_coop 16
mapList.append tad_sae gpm_coop 32
mapList.append the_falklands gpm_coop 16
mapList.append ulyanovsk gpm_coop 64
mapList.append vadso_city gpm_coop 32
mapList.append vadso_city gpm_coop 64
mapList.append vadso_city gpm_coop 128
mapList.append wanda_shan gpm_coop 64
mapList.append xiangshan gpm_coop 32
mapList.append xiangshan gpm_coop 64
mapList.append yamalia gpm_coop 16
mapList.append yamalia gpm_coop 32
mapList.append yamalia gpm_coop 64
mapList.append yamalia gpm_coop 128


Then here is my edited “serversettings.con” that will start a game with 96 bots and autobalance the teams …

rem Name of the server for the server list
sv.serverName “PR:BF2 Server”
rem Password for joining the server
sv.password “”
rem 1 for internet servers, 0 for everything else
sv.internet 0
rem IPv4 of the server
sv.serverIP “”
sv.interfaceIP “”
rem Port of the server
sv.serverPort 16567
rem Port to query server information
sv.gameSpyPort 29900
rem IPv4:Port of the mumble server to use. Leave empty to disable mumble
sv.voipServerRemoteIP “”
rem Message displayed in loading screen
sv.welcomeMessage “Welcome to a Project Reality server!”
rem Message displayed in server browser. User ‘|’ for line breaks and add ‘pr_maplist’ to add next maps in rotation
sv.sponsorText “Welcome to a Project Reality server!|pr_maplist”
rem Logo displayed in server browser
sv.sponsorLogoURL “”
rem Logo displayed in server browser
sv.communityLogoURL “”sv.allowFreeCam 0
sv.allowExternalViews 0
sv.allowNoseCam 0
sv.hitIndicator 0
sv.maxPlayers 1
sv.numPlayersNeededToStart 1
sv.notEnoughPlayersRestartDelay 15
sv.ticketRatio 100
sv.roundsPerMap 1
sv.timeLimit 0
sv.scoreLimit 0
sv.soldierFriendlyFire 100
sv.vehicleFriendlyFire 100
sv.soldierSplashFriendlyFire 100
sv.vehicleSplashFriendlyFire 100
sv.tkPunishEnabled 1
sv.tkNumPunishToKick 3
sv.tkPunishByDefault 0
sv.votingEnabled 1
sv.voteTime 90
sv.minPlayersForVoting 1
sv.allowNATNegotiation 0
sv.autoRecord 0
sv.demoIndexURL http://
sv.demoDownloadURL http://
sv.autoDemoHook “adminutils/demo/rotate_demo.exe”
sv.demoQuality 1
sv.timeBeforeRestartMap 30
sv.autoBalanceTeam 1
sv.teamRatioPercent 95
sv.coopBotRatio 50
sv.coopBotCount 96
sv.maxPlayers 1
sv.coopBotDifficulty 90
sv.useGlobalRank 1
sv.useGlobalUnlocks 1
sv.radioSpamInterval 6
sv.radioMaxSpamFlagCount 6
sv.radioBlockedDurationTime 30rem DO NOT MODIFY
sv.adminScript “”rem NOT SUPPORTED
sv.startDelay 15
sv.endDelay 15
sv.spawnTime 10
sv.manDownTime 10
sv.endOfRoundDelay 15
sv.punkBuster 0
sv.voipEnabled 0
sv.voipQuality 3
sv.interfaceIP “”
sv.voipServerRemote 0
sv.voipServerPort 55125
sv.voipBFClientPort 55123
sv.voipBFServerPort 55124
sv.voipSharedPassword “”


I have the IP set to “” as I’m still investigating if this gives improved communication performance between server and client. However the only way to actually join a server on that IP, even if it is listed in the server browser, is to click on “Join IP” in the client and type in “”. So you might want to set that to your usual IP if you just want to join by double clicking on the server listed in the client.

Notes about Coop play

Above a certain amount of of bots (somewhere above 64) you will no longer be able to become squad leader even if you answer yes to the questions that comes up on the screen. However, unlike other mods, in PR you can hit the “Create squad” button and you can become the leader. Then you can manage that squad and invite up to 5 or 6 bots (or human Coop players) into the squad. You have to be squad leader to get an officer kit to build FOB’s and some other tasks require you to be the leader. However sometimes its beneficial to leave your squad and join another and allow another player to be squad leader. This is a quick way of getting in on the action as a green dot marks your squad leader on the level map and you can spawn right on top of him. If you are squad leader and die then spawn options can be limited.

Coop Game Play Python Options

There are a few options in “c:\Program Files (x86)\Project Reality\Project Reality BF2\mods\pr\python\game\” that might be especially interesting if you often play solo …

  1. Define if a player can only pick up a kit from his faction
2. Default is enabled

This determines if you get the “drop this kit now message” and then your screen goes black.

  1. Min number of close by squad members when setting rally points (must be lower than RALLY_LIMIT_SQUAD)
2. Default is 2

Could be especially useful if you play solo or with very few coop players.

  1. Defines if all players in a server running the private config have debug powers
2. Default is 0 (no)

Has to be turned on to allow console debug and admin commands.

So that’s it. I hope coop players and bot lovers will get much more enjoyment in PR !

Coop Support for CMP Pacific maps in Forgotten Hope

Ivanwazowsky on the Forgotten Hope 2 forums has released Coop versions of the CMP (Collaborative Multi Player) maps Berlin, Wake island, Tarawa and Tulagi. These were always impressive maps, especially the Pacific one’s which hark back to the early days of Battlefield game play with 1942. Coop support for them was requested years ago. I even briefly tried to start adding the support myself at one point. It’s not easy, especially with complex maps such as these one’s. I played Tarawa for over an hour and that remained stable. However for me Tulagi crashed 15 minutes in so there is still some more work to be done to make them stable (for comparison I was in a Coop Project reality map for over 2 hours with no crashes but they tend to be beta tested by a lot more people).

So download these new Coop maps for Forgotten Hope and support this developer !

Day of Infamy shows where EA/DICE went wrong. As well as cloaking of “bot” and “Single Player” terms.

A rather violent moment at Battlefield-Classic as I fight off legions of raging internet trolls ranting inanities about “bots! bots!” (Day of Infamy).

I’ve been a huge proponent of Bots in games ever since Perfect Dark just like the article writer. However what I’ve found as I’ve spent the years lobbying in game forums on the subject is that people tend to get offended when I would ask the developers to include a Bot option.  I think devs realize this and therefore try to find ways to put Bots in a game but without calling them Bots.

Commenter PAD242 on Why I Still Love Bots in Games article.

So, here we are again. You may wonder why my next article is about yet another game that is not Battlefield 2. Well, as I’ve found out, Day of Infamy epitomises the problems surrounding bad game design decisions post Battlefield 2. But it’s not all the game developers fault. We were overcome by legions of fun hating internet trolls ! Paroxysms of hate and rage about games almost clogged the channels to choking point (the famous Hitler rage video about Infinity Ward cancelling dedicated servers comes to mind).

In a (brilliant really if you think about it) move to out manoeuvre these tantrum ridden trolls, games began to drop the terms “bot“, “AI“, “SP” (and/or “Single Player“). No wonder solo players have not been able to find these games. Even their Steam pages do not list the fact that they have a de facto single player mode.

Rising Storm 2/Rising Storm does not mention anywhere on it’s page that the game can be played entirely with bots, alone, complete with bot commands and other features. Similarly Day of Infamy does not mention that it’s possible to play as a solo player entirely against and with bots in a way that basically emulates a single player campaign (but without any cut scenes). I know, I just played about 4 maps in succession. They were long games with highly talented bots who pause at corners of buildings to take cover, flank you and generally act like you’d expect a trained enemy soldier to act. “Commando” mode is much more difficult, emulating, I can only surmise, how online play is with human players with fast reactions (I don’t play online so can only guess).

Those are all Rising Storm (the expansion for Red Orchestra 2) … wait for it (block you ears now, rude word) … BOTS ! They are split into squads and can all be commanded as long as you are the commander class.

But in the places you would check first, such the Day of Infamy Steam page, no where is this mentioned. “Coop” is, but that does not specify if you can play solo, as many games often force you to wait for at least one more player.

So what are we to make of this mysterious situation ? Well Tripwire removed the dreaded bot support in the their latest release Rising Storm 2: Vietnam, I suspect because of the same raging insanity aimed at any mention of the dreaded term “bot” (for example see here, and here). Meanwhile New World Interactive have produced their extremely focused product Day of Infamy. The dreaded words “bots“, “sp” and “ai” have been changed to “Practice Mode” with bots clearly coded to actually teach people to play better online with human players.

Internet flaming anti-flame weapon.

Meanwhile over in EA/DICE land, the developers have been fighting a losing battle trying to shoe horn single player campaigns (yes, the dread term) into Battlefield 3 then 4. The campaigns were widely hated by the same ignorant raging insanity that has been sweeping round the internet. There was room for improvement, but the 3 and 4 campaigns were very good. So EA/DICE then cave (rather then getting SMART like New World Interactive have) and start paring down the campaign into “War Stories” (there’s a hint here that they have picked up that the naming of these things is the problem). Each War Story is a pitifully short tech demo (basically) that once you get into them are over far too quickly. While in Day of Infamy I was playing for hours in Practice Mode with only me in the local server … and a lot of the dreaded, much feared, bots of course.

Yes, those are all bots (dread term). Apart from one, which is me, Res1s7.

So what’s going to happen ? Well considering the ratings for New World Interactive games on Steam (all with, AFAIK a fully fledged Practice Mode) EA/DICE would be fools not to see the writing on the wall. All they need to do is out smart the haters and just rename a few things (believe me trolls are really this stupid and only attack words that are triggers to them). That way us folk who like a good solo game, for one reason or another, get what we want. The online and coop players get what they want, and EA/DICE get what they want as well, high ratings and sales. Everything will return to normality again and everyone will live happily ever after (well, you know). I for one need my games to keep me sane and I don’t need a mass of internet insanity spoiling it for everyone, solo players and online players.