Welcome to jdrgaming.com Saturday, April 20 2024 @ 04:04 AM PDT

TPU (Tanks n Planes Unlimited)

New master server for BF1942 is up and running

Thanks to a group of dedicated fans on various sites and Discord channels, there's a new master server for Battlefield 1942: master.bf1942.org.

If you don't use the in-game server browser, you don't need to make any changes, and you can still connect directly to your favourite servers directly via IP address, or indirectly from web-based server lists.

However, if you depend on the in-game server list, you'll need to replace your Battlefield 1942 client binary with a new one that looks at the new master browser instead of the old, defunct one.

Here's a link to the new BF1942 client files: https://www.moddb.com/games/battlefield-1942/downloads/bf1942-masterbf1942org-patch. Extract the contents of the ZIP file into your Battlefield 1942 folder. You might want to consider making a backup first.

I've tested the new server and the new client, joining and playing on TPU successfully.

The new client binary provides the master server fix, but also includes some other useful fixes:

Battlefield 1942 v1.612 Retail patched by henk on 23-2-2022
version 2.1

* No CD
* Portable
* Widescreen support - In game
* Widescreen support - In menu
* master.gamespy.com replaced with master.bf1942.org
* Increased accessible ram from 2gb to 4gb
* Removed this message from console:
	 Error: failed  to add player  to buddylist. Couldn't locate player.

The Tanks 'n Planes Unlimited server is now running a new version of the BF1942 server binary, which allows the server to report its status to the new master server. The new server binary includes several other useful fixes. Here's the full list:

Linux Binary version 23-2-2022 by henk

Modified to include:
- master.bf1942.org replacement for gamespy master
- Ignore client version and checksum (allow 1.61b and 1.612)
- Ignore CD key checks
- No longer sends player keyhashes to public queries
- Allows all console commands on remote and local console
- Fix assaultTeam typo. Defending team now wins if timer expires
- Allow 128 players
- Fix armor zombies generated by death bubble
- Fixes IP bans not taking effect

- Fixes segfault in dice::ref2::io::NetworkManager::getNetUpdate
- Fixes segfault in dice::ref2::world::ObjectManager::checkMessages
- Fixes segfault in dice::ref2::world::FireArms::Fire
- Fixes segfault in dice::ref2::io::NetworkManager::getNetUpdateDelta
- Fixes segfault in dice::ref2::world::BFSoldier::handleUpdate

Addresses the following vulnerabilities:
- BFE-200806.01
- BFE-201107.01
- BFE-201111.01
- BFE-201211.01
- BFE-201611.01
- BFE-201611.02
- BFE-201710.01
- BFE-201804.01

BF1942 master server is DOWN

At about 1am Pacific time today (February 21), the unofficial master server for BF1942 stopped responding.

Because of this, your BF1942 client may hang when it starts. Even if it doesn't hang, the server list will not work.

You can still join the JDRGaming BF1942 server by connecting directly to its IP address:

I've reached out on a few forums, asking if anyone knows what's going on. Stay tuned for updates.

About base camping

Sisko sent me a video that shows someone camping at the uncaptureable Axis base on the Battle of Britain map:

The video was created using Bandicam in spectator view in a recent session on TPU. It's a good demonstration of the kind of base camping that some TPU players find objectionable.

TPU is a co-op vs. bots server, so human players should only ever attack bots. Since the object of any base camping should therefore only ever be to kill bots, and we needn't feel any empathy for bots, camping on TPU is technically allowed.

However, base camping can also be annoying to human teammates. In this example from Battle of Britain, the camping player is destroying Axis bombers before they can even take off, which means any players defending the factory and radar stations in England have nothing to do. Many players, including myself, enjoy dogfighting in a Spitfire over England, and this camping would reduce the potential for that kind of enjoyment.

The other problem with this kind of camping is that it's not very challenging. Sure, the Axis bots at their base will try to kill the camper, and the camper may not last long in that position, but while there, the camper can easily kill huge numbers of bots. So it's not much of an achievement, except for racking up kills. Padding stats like this can also be annoying for other players.

It's an interesting issue. I'm still not convinced that we need a rule against camping. Instead, I will continue to emphasize that: a) it's kind of lame; b) it's too easy; c) it's a simple way to pad stats; and d) other players may find it annoying. If a player is doing this kind of thing on TPU, and it bothers you, use the in-game chat to politely ask them to stop.

If you disagree, or have something to add to this discussion, contact me on the #tpu_server channel on the JDRGaming Discord server.

An open letter to TPU players

Based on what I've seen in server chat, and some comments from other observers, there's a lot of misunderstanding about TPU: its rules, its admins, and how it operates. This post is an attempt to provide clarification to TPU players.

The main thing I want to point out is that you can talk to me. Use the JDRGaming Discord server; that's what it's there for. If you have trouble with another player, or something you've observed about the server, contact me. Spouting off in server chat about another player (or the server admins) is not helpful. There's a fair chance that whatever pissed you off had nothing to do with the other player or the server admins. Instead, contact me, and let me know what your beef is. I have access to information and tools that you don't. I can provide definitive answers to your questions about how the server operates. I can confirm when server crashes and other server outages occurred.

TPU overview

TPU is a co-op only server; no PvP gameplay is allowed. Anyone who persistently plays against other human players will be kicked and eventually banned.

All human players are expected to be on either the Allied team or the Axis team. The 'human team' will then consist of a mixture of human and bot players, while the 'bot team' will be all bots.

The maximum number of players on TPU is 32. Bots fill in the teams to the maximum, so at any given time there will be as many as 32 bots in total. When a human player joins, one of the bots is removed.

To make things more challenging for human players, the bot ratio is set up so that there are about three times as many soldiers on the bot team as there are on the human team. If there are no humans playing, there will be 24 bots on the bot team and 8 bots on the human team.

The bots are at maximum difficulty, again to make things more challenging for human players. In practise, that means the bots have excellent aim with all weapons, so the use of cover is strongly recommended. Keep in mind that bots are still terrible drivers; they still get stuck on scenery; they happily kill each other; and their strategy is somewhat simple-minded. So it seems only fair to give them good aim.

The human team changes between Allies and Axis every six hours. This allows human players to play both sides of every map, depending on the time of day. Map voting is enabled.

The BF1942 server configuration used by TPU has been patched so that rounds do not restart when a second human player joins a round.

Myths and incorrect assumptions

I've read some truly bizarre things when monitoring the in-game chat. Let me just clear a few things up.

Kicking players for being on the wrong team

There is currently no automated kicking for being on the wrong team. I've been testing some ideas along those lines, but nothing is in place (yet). If you get kicked, it might have been the server auto-kicking you because of your team-killing, or for having a negative score. But only a human admin (often not actually in the game but monitoring from the console) will kick you for being on the wrong team. For now.

Multiple people connecting from one IP address

There's no reason to assume that multiple players joining from one IP address is evidence of malicious intent. When there's more than one computer in a household, they will all appear on the same IP address. I know for sure there is at least one household that has three TPU players who sometimes all play at the same time.

Connecting from multiple different IP addresses

Changing your IP address is one way to get around a server ban, at least temporarily. But there are also legitimate reasons why the IP address you use to connect to TPU might change. Your Internet Service Provider (ISP) may arbitrarily assign a new IP address to your modem/router. You may be using a VPN, for which there are many legitimate use cases. You may be playing from several different locations. The point is that you shouldn't assume that a player connecting from multiple different IP addresses is doing so to evade detection.

Using more than one player name

It's very easy to change your player name in Battlefield 1942, and many players have several player names that they use regularly. Yes, doing this can help to get around server bans, and it's confusing for other players, but you should not assume that there's any malicious intent. I personally only ever play as [TPU]Boot13.


The Battlefield 1942 'keyhash' is basically your game's CD key. It was originally intended to uniquely identify every legitimate copy of the game client.

When you join a multiplayer server (PvP or co-op), your BF1942 client's keyhash is compared against other clients connected to that server. When a duplicate keyhash is detected, the client shows the 'Invalid CD key' message.

Unfortunately, it's now very easy to generate a new, valid (yet completely illegitimate) CD key (keyhash). However, since there's basically no legitimate reason for changing your keyhash, any player who uses multiple keyhashes should be viewed with suspicion. They may be trying to get around bans, or they may be trying to evade detection by server admins and other players.

On being kicked from the server

Admins don't arbitrarily kick people for no reason. If you've been kicked, there was a reason. You may not agree with it, in which case you can contact me and explain your point of view, or you can always play elsewhere. Also, keep in mind that when the server crashes, it may look like you've been kicked, but that's not actually what happened.

Kick voting

Kick voting is currently enabled on the server. The idea is that when a player is being disruptive, or playing on the wrong team, the other players (at least 60% of them) can vote to kick that player. That's useful when there are no admins monitoring the server. Sadly, this feature has been abused in the past, and I even disabled it for a while.

Abuse by admins?

Admins don't intentionally mess with players except in extreme cases (don't ask). If you suspect that an admin is not treating you fairly, please contact me and I'll look into it.

TPU rules

To reiterate: TPU is co-op only; no PvP gameplay is allowed.

Base camping

Base camping is allowed. On PvP servers, base camping is usually not permitted, because killing another human player just as they spawn is clearly unfair, and incredibly annoying. On TPU, we always play against bots, never humans. And we don't need to be concerned about being nice or fair to bots.

Full disclosure: until recently, the official TPU rules included one against camping. But it wasn't really a hard rule, and the wording been changed to make it clear that camping is actually okay.

Of course, padding your stats by killing huge numbers of bots as they spawn isn't exactly a demonstration of your skill. There's just no way to make it sound like an accomplishment. So you may expect some ridicule from other players when you do this.

Using medpacks

'Medpack gaming' is allowed. I hadn't even heard of this until recently, when a regular TPU player was complaining about it in server chat. Apparently some players get upset when other players use medpacks. I suppose I can see how some players might not like it when another player is able to heal themselves, but that only makes sense on a PvP server, which TPU is not.

Being AFK (Away From Keyboard)

Normally this is not a problem, and everyone has to take a dump once in a while. But staying AFK for an extended period causes problems for other players. In particular, it messes up map voting. So, please don't stay AFK for more than a few minutes at a time. If you're going to be away longer, please disconnect and re-join later.

For a complete list of the TPU rules, see the TPU rules page on the JDRGaming site.

Server crashes

The Battlefield 1942 server that runs TPU crashes frequently. It's configured to restart automatically, but there's often no warning about crashes, and no way for an ordinary human player to know that the server crashed. Unfortunately, some people assume instead that they've been kicked.

There are a number of reasons why the BF1942 server crashes. The server contains numerous bugs, and since development and support for the game stopped long ago, there will never be official fixes for those bugs. The good news is that there are some dedicated (and skilled) people out there who are able to provide unofficial patches. The BF1942 server software run by TPU has a number of unofficial patches installed, including several that prevent known hacks.

Additionally, it seems clear that many of the bugs that cause BF1942 server crashes are related to the use of bots. This explains why PvP-only servers (with no bots) are often more stable than co-op servers like TPU.

Sometimes the server crashes because a player gets pissy and uses a known (and sadly unpatched) exploit. There are also ways to crash the server using DDoS attacks, many of which have been used against TPU. I'm always looking at ways of mitigating such attacks, and reducing the amount of server down time that typically results.

Logging and monitoring

Server logs, in-game chat, and stats are kept forever, and are reviewed sporadically.

All player actions are recorded and can be reviewed or played back using server admin tools, but this is only typically done when investigating specific player issues.

Admins and admin behaviour

I'm Jeff, the server owner and main admin. I always play as [TPU]Boot13. Long-time admin Sisko is helping out again as well these days.

Admins are often watching (chat, teams, etc.) without playing. Admins sometimes join for spectating purposes only.

Normally admins warn before kicking for breaking rules, but lately I've been kicking without any warning for playing on the wrong team, because it happens so often, and people seem to ignore admin requests. Also, the main rule is shown to joining players at least three times while joining, telling them to play one side or the other, then repeated constantly via in-game announcements. There's really no excuse for playing on the wrong team, and I've heard some doozies.

I leave the Battlefield 1942 Remote Server Manager open at all times on my desktop. It's not like I stare at it constantly, but I do glance at it regularly when I'm at my desk. Mainly I look for people playing on the wrong team, and kick them if they persist. But I also monitor in-game chat, watch for issues between players, and take lots of notes.

There's a list of current and past admins on this site.

Automated admin actions

The server will automatically kick any player with a consistently high ping value. Players with excessively high ping drag the server down, causing lag for other players. If you're on the far side of the planet with a shitty Internet connection, I'm sorry.

The server will automatically kick any player who team kills. Accidental team killing happens, so you get a few free ones, but more than a few and you're gone.

Similarly, the server will auto-kick any player who has a bad enough score. Basically, if your score is below zero and dropping, you'll be kicked.

Contacting the admin

Via Discord

By far the best way to contact me about TPU is via Discord. I have Discord running all the time on my main computer, where I spend a lot of time. If I'm at my desk, there's a good chance I'll respond immediately to a message posted in one of the JDRGaming Discord channels. Here's an invite to the JDRGaming #tpu_server channel. And here's an invite for the JDRGaming #general channel.

Via email

You can also reach me at my main JDRGaming email address: jrivett@jdrgaming.com

Using the JDRGaming web site

Another option is to create an account on this site (jdrgaming.com). Once your registration has been approved, you can log in to comment on blog posts, as well as post topics and replies on the forum.

Become an admin

Even better, you can apply to become a server admin! It can be a difficult job, but there are perks. You'll be able to kick and ban problem players, and you'll have access to more information. You'll also have more direct access to the server owner (me). Make your voice heard! Contribute! Get involved! Fill out the JDRGaming Server Admins application to get started.

Other methods

There are other ways to communicate with me and the other admins. Check out the rest of this site for clues (jdrgaming.com).

Play style

Not everyone joins TPU for the same reasons; not everyone plays the same way; there is no 'right' way to play. Yes, the general idea is to win a round, but there are many ways to contribute besides taking flags, and some people just want to dogfight, explore, etc.

So yelling at players to 'get a flag' is just pointless. If you really need to win every round, why not play a nice single player game?

Removing problem players

Banning in BF1942 is based on player name, IP address, and keyhash. Player names can be changed easily, and many players have hundreds of names on record. Keyhashes can be changed using available generators; IP addresses can be changed using VPNs. So there's really no way to truly stop someone from joining using just the BF1942 server tools.

Luckily, as the server owner, there are many other tools available to me. I can block all traffic from an IP address or a range of addresses. I can block all traffic from an Internet provider. I can block all traffic from all the IP ranges of a VPN provider. I can block all traffic from a country. And I can remove a player name from the TPU stats. I have done most of these things already in some extreme cases, most notably to get rid of a specific player for his toxic, foul-mouthed, narcissistic, petty, bad-tempered, unsportsmanlike, unhelpful, demanding, uncooperative, intolerant, self-important, hostile, and generally nasty behaviour.

In-game chat issues

The in-game chat in BF1942 can be hard to read, especially on smaller screens, older screens, and some older laptops. If a player doesn't respond to your messages, they may not actually be able to read them easily. Try all caps (seriously).

Language issues

People join TPU from all over the world. Some of those people are not able to read English. Using in-game chat to yell at people in a language they can't understand is pointless and mean.

If you really want to communicate with someone in chat, it's not that difficult to determine where they're playing from using their IP address. Hurricane Electric's BGP Toolkit works for me. Search Google for languages in that country, then use Google Translate to translate your message for in-game chat. Unfortunately, BF1942 chat doesn't handle cyrillic characters, so you might want to try using Google Translate's phonetic (transliterated) translations for Russian.

Generally speaking, we want to keep in-game chat English. If you can communicate in English, please use it, even if you're not very good at it. On the other hand, if the only other people on TPU are your buddies and you all speak the same language, have at it. Just remember that when I see long conversations in a language other than English, I sometimes translate them because I'm just so curious.

TPU stats

The TPU player and map stats are at tpu.jdrgaming.com. Your player's stats will start appearing once you've played a few rounds. If you use multiple player names, each name's stats are tracked separately.

Once upon a time, we used select(bf) for stats. Sadly, that software is now very out of date, and requires such an old version of PHP that running it is a security risk. Select(bf) presents an active PHP web site.

These days we use BFStats, which doesn't have all the features of select(bf), but does have the basics. BFStats is also old code, but it only generates static web pages, unlike select(bf).

The TPU stats are reset yearly, just after the new year begins.

Tips and tricks

There are some useful tips on the TPU FAQ page on this site.

TPU's origins

TPU is co-op only because some people (notably myself) aren't interested in playing against humans. The extra tanks and planes (server-side map mods) are because otherwise there just aren't enough, which means there's a lot of walking, and people fight over them. The lopsided ratio is to make it more challenging for humans, as is the maxed-out bot AI. Their aim is godlike but they still can't drive for shit. Switching from Axis to Allied every six hours is so humans can play every map on both sides over 24 hours.

TPU is a dedicated co-op Battlefield 1942 game server. It is open for anyone to join. All you need to play is a Battlefield 1942 game client. To play all the maps in the regular rotation, you will need both of the official add-ons: The Road To Rome and Secret Weapons (check the Files section of this web site). Although most of the maps have been modified to some extent, we have tried to make sure that no special downloads are required for joining the server. Modifications have mostly been limited to increasing the number of tank and plane spawns and swapping certain units for others (one type of plane or tank for another). More recent mods involve adding gun emplacements, moving ships around and adding subs.

TPU stats are updating again

I found a workaround for the TPU stats problem that started on January 1, 2020. It involves changing the year of each round from 2020 to 2019. Yes, it's clunky, but it works.

None of the round, map, or player stats refer to dates, so this doesn't actually mess anything up. Well, nothing important anyway.

The only place on the stats page where year is now showing as 2019 when it should be 2020 is in the server stats section towards the bottom:

Server has logged rounds from 2019-01-01, 04:01:43 to 2019-01-05, 04:49:30

UPDATE 2020Jan07: I found a workaround for the year being wrong in that one spot on the stats page.

TPU stats are stuck in 2019

When I started the yearly rollover process for the TPU stats, I noticed that rounds from 2020 were causing errors. Investigation shows that the stats software (BFStats) is choking on the year for rounds played in 2020.

Unfortunately, I don't have access to the Java source code for BFStats, so I'm not able to fix the problem. So the stats are stuck in 2019, at least for now.

There's a small possibility that someone at bfmods.com (where I've reported the problem) will find a solution and patch the Java code. They've come through in the past.

Meanwhile, if anyone out there knows of another alternative to select(bf) and BFStats, please let me know.

TPU stats are back

Making the old stats software compatible with PHP 7 turns out to be a non-trivial task. So I've shelved that project and switched to BFStats for TPU stats.

BFStats has a slightly smaller feature set than its predecessor, select(bf). But it has all the basics. One big difference is that each of your player names has a separate set of stats. That's either a good thing or a bad thing, depending on your perspective.

The stats will update at 3am every day, just like before, but I may increase the frequency to hourly. I had to remove the gold, silver, and bronze stars from the stats, because they were causing browser issues. And I have no idea how the 'score' column is calculated.

I'll roll the stats over in January as before. If there's interest, I'll post all previous years' stats as well.

You can find the TPU stats at the same address as before: tpu.jdrgaming.com.

Game server outage and TPU stats

You may have noticed that all the JDRGaming game servers, as well as this web site, were offline yesterday (July 3) for a while.

The server hosting the game servers was due for a Linux upgrade, which was completed yesterday by 9am. The individual game servers came back online gradually thorughout the day as I performed various tests and fixed the inevitable issues.

There's just one major issue left to resolve: the TPU stats. Stats for rounds completed on TPU are still being recorded, but the web page that shows the stats is not working. I have to dig into the (rather old) PHP code and retrofit it for the version of PHP now running on the server. That could take a while.

Please let me know if you notice anything unusual with any of the game servers, or with this web site. Click the About/contact item in the menu above.

TPU stats reset for 2019

It's a new year, so the stats for TPU have been reset. All the stats for 2018 are still accessible via TPU Stuff > Statistics [archive] in the sidebar.

In 2018, the overall points winner was Johnny James with 22.55, and the next closest player was Big Ed with 19.90. Keep in mind that points are calculated using a formula based on several factors: (((attacks*1)-tks+(heals/10)+(otherrepairs/100))/rounds_played)+kdrate. This formula is designed to reward players who take flags, heal players, repair vehicles, and don't team kill. The formula is always open for revision; let me know if you have any suggestions.

If you aren't interested in ranking by points, remember that you can always sort the TPU stats by another column, such as S/R (score per round), Score, Kills, Deaths, K/D (kills:deaths ratio), gold/silver/bronze stars awarded, TKs (team kills), attacks, rounds played, heals, or repairs.

Johnny James walked away with the top score in almost all categories in 2018. He had a K/D ratio of 19.4114, ahead of Big Ed in second-place with 17.0075.

The only place Johnny James didn't nab top spot was in S/R, score per round. The winner in that category was Tanos with 76.9231. Johnny James came in second, with 70.2736.

Congratulations to Johnny James and Tanos, and happy new year to all!

IP address changed

There's bad news, and good news. The bad news is that the IP address for all JDRGaming servers has changed again. As of 2018May12, the IP address is

If you're having trouble joining TPU, please refer to this post for assistance.

The good news is that we're finally on a business Internet plan, which has several advantages. The IP address is static, which means it's much less likely to change randomly. And the available bandwidth has increased from 25 Mbps download / 2.5 Mbps upload to 75 Mbps download / 15 Mbps upload. The increase in upload bandwidth in particular should mean less lag and connection problems when there are a lot of players.

Page navigation