Welcome to jdrgaming.com Sunday, January 16 2022 @ 08:41 PM PST

TPU (Tanks n Planes Unlimited)

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 binary 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.

Finding TPU after IP changes

At some point in the near future, I intend to change my Internet service to one with a fixed IP address. When that happens, the IP for TPU and everything else on the JRC/JDRGaming server will change.

The last couple of times TPU's IP address changed, I noticed a drop-off in the number of players. Assuming that the two things were actually connected, this implies that some people were unable to find TPU after the IP change.

There are four possible explanations, for affected players:

  • they still aren't using the new master browser, master.bf1942.sk;
  • they forgot to click the Update button in the BF1942 server browser;
  • they are relying on a BF1942 Windows shortcut to the old IP address; or
  • they are relying on an existing Favorites entry in the BF1942 server browser.

Switch to the new master browser

If you're not using the master.bf1942.sk server browser, you should be. Without it, you won't see any servers listed in the BF1942 server browser. You can still connect to any server directly via its IP address, but IP addresses change, and you'll have to find servers some other way. There are instructions for switching to the master.bf1942.sk server browser elsewhere on this site.

Click that Update button

Assuming that you're using the master.bf1942.sk master browser, if you are suddenly unable to connect to TPU, try clicking the Update button on the BF1942 server browser list. This will pull a new server list from master.bf1942.sk, which will include TPU's current IP address.

Update your Windows shortcut for TPU

If you use a Windows shortcut to run BF1942 and auto-connect to TPU, and it stops working, go to jdrgaming.com and check the red notification area at the top. The current IP address will be shown there. Change your shortcut to point to the new IP address.

Update your Favorite

If you have TPU flagged as a Favorite in the BF1942 server browser, and TPU's IP address changes, your Favorite entry will not be updated automatically. Even if you are using master.bf1942.sk, and you click the Update button, if the Favorites filter is enabled, TPU will show with its old IP address, and the PING value will be 9999.

To fix this, disable the Favorite filter, click Update, find TPU in the server list, and mark it as a Favorite.

The screenshot above (click for larger version) shows how TPU looks in the normal Internet server list in BF1942. Note that the IP address is current, and the Ping value is low.

The screenshot above shows how TPU looks as a Favorite in the server list in BF1942. Note that the IP address is out of date, and the Ping value is 9999. That's because I haven't recreated the Favorite recently.

TPU stats reset for 2018

Happy New Year, folks!

I've just archived 2017's TPU stats and made them available from the TPU stats archive page. The current stats have been reset to zero.

The top player in 2017 was Johnny James. Congratulations! Johnny walked away with all the badges except for the healing badge, which went to B. Keeney.

This is a good opportunity to review the points formula for TPU stats. The current formula is below. If you'd like to see a change, let me know (see the About/Contact link at the top right of the site).

Available variables:
score Total Score
tks Total TKs
kills Total Kills
deaths Total Deaths
captures Total Captures
attacks Total Attacks
objectives Total achieved Objectives
heals Total Number of Heals
selfheals Total Number of Self-Heals
repairs Total Number of Repairs
otherrepairs Total Number of Repairs to others
rounds_played Total Number of Rounds-played
kdrate The Kill/Death Rate
first Total Number of being first in Battlefield End-Of-Game-Ranking
second Total Number of being second in Battlefield End-Of-Game-Ranking
third Total Number of being third in Battlefield End-Of-Game-Ranking

Page navigation