Frequently Asked Questions
My leagues are gone! What happened?
ZenGM Baseball stores all game data on your computer, in your browser profile. This means that you can't play one league on multiple devices unless you export it (from the Tools menu) and then create a new league with that file. So first, make sure you're using the same browser on the same computer. This is true even if you're logged into an account - league data is currently stored only locally, not in your account.
If you are using the same browser on the same computer and your leagues are missing, the game data has probably been deleted. There are unfortunately several different ways data might be lost:
- Schools and libraries may configure browsers to automatically delete everything when they are closed.
- Especially on mobile, data can be deleted if you are running low on disk space or if you don't play the game for a while.
- You might manually delete your browser data without realizing it affects ZenGM Baseball. For example, in Chrome, if you go to More tools > Clear browsing data... > Cookies and other site data, that will delete all your ZenGM Baseball data. This is true even if you tell it to only delete data from today - if you played ZenGM Baseball at all today, it will completely delete all your leagues, and the Chrome devs do not consider this to be a bug.
- If you run some kind of "PC cleaner" or "system optimizer" software like CCleaner or BleachBit, that may delete browser data depending on your settings.
- There can even be a hardware glitch (like a faulty hard drive) or a bug in your web browser that results in lost data.
Many users will never run into a problem like this, but for some it can be a recurring issue. This is most common on mobile, especially on iOS which is very aggressive about deleting data from unused web apps.
To minimize the chance of data loss, you can:
- Go to the global settings page and enable Persistent Storage.
- If you are low on disk space, delete some other data.
- If you're on Android, install the ZGMB app. If you're on iOS, add it to your home screen.
- Make a backup of a league at Tools > Export League
In cases where the data has been deleted from your browser profile, the only way to get it back is if you have a backup. Sorry :(
Followup: Why is this a problem for ZenGM Baseball but not for most other games?
Most other games don't have this problem of browsers deleting data because most games don't store their data inside the browser itself. So why does ZenGM Baseball different? There are tradeoffs.
The current method has some big advantages. Since the data is stored on your computer rather than on my server, my server costs are extremely low, which is what allows me to make this game free and unlimited. But still, you may think of other purely local apps that don't have this data loss problem. ZenGM Baseball is different because it runs in a web browser. A normal game you install from Steam or a mobile app store stores controls how it stores data on your hard drive, but ZGMB does not really control its own data, the web browser does. So why not make ZGMB a "normal game"? Two reasons. First, it's really nice to just be able to type a URL into your browser and start playing immediately, without installing anything. That even lets you play on devices where you are not allowed to install apps. And second, it's really nice that a web game runs on any device. As a solo developer, it'd be a lot of work to make separate UIs of the game for iOS, Android, Windows, Mac, Linux, etc.
So basically - it's all tradeoffs. I hope in the future web browsers have ways to more robustly store local data, to better support apps like ZenGM Baseball. The "Persistent Storage" option mentioned above is supposed to be that, but it doesn't always work.
How can I play the same league on two computers?
Currently there's no easy way to do this, but it is possible.
You can export a league (Tools > Export League), copy the file to your other computer, and then create a new league using that file.
How do I make sure I'm running the latest version of the game?
Sometimes your browser can get stuck on an old version of ZenGM Baseball. Here are a few things you can try to force an upgrade.
Method 1: Open ZenGM Baseball in a single tab in your web browser. Do a hard refresh (ctrl+shift+r, or ctrl+cmd+r on a Mac). If that didn't work, try again with your browser dev tools open (ctrl+shift+i, or ctrl+cmd+i on a Mac).
Method 2: Close all tabs with ZenGM Baseball open and then open ZenGM Baseball again. Or restart your browser. If this doesn't work the first time, try again.
Method 3: Try manually emptying your cache. In Chrome, from the main menu (... in the top right) go to "Delete browsing data...". Make sure you select "Cached images and files" and do not select "Cookies and other site data" because "other site data" is where ZenGM Baseball stores all your leagues. Then try closing all open tabs with ZenGM Baseball and opening it again, like above.
Method 4: Open ZenGM Baseball in a single tab in your web browser. Open your browser dev tools (ctrl+shift+i, or ctrl+cmd+i on a Mac). At the top of dev tools panel, click "Application" (if it's too narrow to see, you might have to click the >> to see it) and then click "Service Workers" on the left:

Then click "Unregister" to the right of https://baseball.zengm.com/:

Finally, reload ZenGM Baseball and hopefully you will see the latest version.
Can you make ZenGM Baseball into an app for my phone?
ZenGM Baseball is now available for Android in the Google Play Store. But it's no different than playing the game in your mobile browser, which works fine on iOS too.
Followup 1: Can you release an app for iOS (iPhone or iPad) similar to the Android app?
Maybe some day, but Apple makes it a lot harder to do than Google, so I'm not exactly eager to do it. Also, like I said above, it wouldn't actually make the game any better than just using your mobile browser.
But what if you just want it to look and feel a little more app-like? You can do that on iOS today, by following these steps:
Open https://baseball.zengm.com/ in Safari.
Tap the icon featuring a right-pointing arrow coming out of a box along the top of the Safari window to open a drop-down menu.
Tap "Add to Home Screen." The Add to Home dialog box will appear, with the icon that will be used for this website on the left side of the dialog box.
Enter the name for the shortcut using the on-screen keyboard and tap "Add". Safari will close automatically and you will be taken to where the icon is located on your desktop.
(You can also do a similar thing on Android, by going to your browser's menu and tapping "Add to homescreen"... or you could just install the Android app!)
Followup 2: Can you make a better mobile app? Like a native app designed specifically for small screens?
ZenGM Baseball already runs on your phone, in your mobile web browser. I know the UI is not perfect, but I am working on it and it has improved over the years. This is going to continue.
Making a separate native app with a very different UI than the current web app - that is not going to happen any time soon. I'm just one guy working on this project, and it'd be too much work to maintain multiple different UIs for the game at the same time. That's the beauty of the web version, it runs on any device.
If you notice something specific about the mobile UI that you think should be improved, please let me know!
If I give a player more playing time, will he improve faster?
No. I'm not convinced that playing time really matters for player development.
It's a chicken and egg problem. Do good young players get more playing time because they're already good? Or do young players become good if they get more playing time? It's obvious that the first scenario happens. But is it obvious that the second scenario happens? I haven't seen any convincing evidence that it does.
I know that's not really a fair argument, because it could be that it's a real effect that is just hard to see in the stats we have available. But if it's hard to see in the stats we have available, does it matter for a game like ZenGM Baseball? Because if it's so difficult to notice in reality, it'd be equally difficult to notice in ZenGM Baseball.
I can make a counterargument, though. ZenGM Baseball is a video game. Its primary purpose is to be fun, not to be realistic. So maybe it'd be fun to give unrealistically large bonuses to young players who get a lot of playing time. I don't know. It could be fun. But I also very much like to keep things simple, so I err on the side of simplicity. And doing nothing is very simple.
I also am aware that I could be wrong. Maybe there is a convincing, data-driven argument that playing time leads to quantifiable improvement. If so, please let me know!
Can you make another sport like soccer, or college sports?
I am very bad at planning, so I'm not going to commit to any timeline. But I would like to do other games.
Now that I've done the 4 major American sports, there's no more low hanging fruit, since other pro sports tend to have different types of leagues. For example, consider soccer. There's multiple competing leagues, cross-league tournaments, buying/selling players, relegation... a soccer management game would be a little unsatisfying without all those features.
College sports would also be fun to do, and could be my next "big" project, although I'm not exactly sure when. There's also a lot I could do to improve the existing games.
Why are ovr ratings different than other games like 2k or Madden?
Many games, including mine, use a 0-100 rating system. However that doesn't mean they are the same scale. ZenGM Baseball generally has lower ovr ratings than other games, so 90+ ovr players will be quite rare. You can see the breakdown of how good players at different ovr ratings are in the manual.
Is this a good thing? My thought process was that if the scale is 0-100, I might as well try to use all of it. If 100 rated players are common, what happens when there is someone even better? On the other hand, maybe I should have made my ratings more similar to other games just for familiarity? I don't know. Actually I think a better system would be unbounded, so average rating would be 0 and players could go above/below that any amount. But that might be too big a change for me to make in my games at this point.
Why are contracts in ZenGM Baseball so simple?
Contracts in ZenGM Baseball are indeed quite simple. They pay the same amount every season, they are all fully guaranteed with no player/team options, there are no restricted free agents, special salary cap exceptions are mostly not present, etc.
That's certainly unrealistic. I completely understand people who wish that every little contract rule from the real world was included. But I am wary of making the contract system too complicated. Sometimes there is a tradeoff between complexity and fun, and for me personally when I'm playing a game like this, I don't want to have to worry about the ever-changing ridiculously complex contract rules that pro leagues have.
Maybe some day I will include some of that stuff as options. But that's easier said than done, for something as central to the game as contracts. The AI would need to be smart enough to handle all possible combinations of settings, and the AI struggles enough already!
Can you add "tendencies" to the game in addition to ratings, to more easily control how often players do certain things?
A lot of the problems people want to solve with "tendencies" would be better solved by having more realistic ratings, and more realistic game simulation based on those ratings. ZGMB is far from ideal in those aspects right now. But adding a layer of tendencies on top of the current system is not a good solution - it just masks the problem, and then you have another problem of how you set the tendencies, which is probably just as hard if not harder than the initial problem of making the ratings/sim good!
The only thing tendencies are fundamentally good for is to let you simulate guys who play stupidly, like a player in BBGM who takes a lot of bad shots. In this post-moneyball world, those types of players are not very common, to the point where many people might not even notice if they didn't exist in the game. Their absence would be most apparent in historical sims, as if you look through history there were a lot of guys who in retrospect took a lot more/less shots than they should have. But possibly even players like that could be simulated with appropriate ratings such as the oIQ/dIQ ratings in BBGM.
Can you add more stuff to the game? Like coaches, training camps, in-game decision making, etc.
Maybe. But in general, I am wary of adding too much micromanagement, because that is something that often annoys me in other games. I like the streamlined gameplay my games have now.
These features would also pose some challenges for balancing the game. Like you don't want one coaching strategy to always be the best for pretty much any situation. And you don't want it to make it too obvious what the best strategy is (then it's no fun, might as well not even be there) but you also don't want to make it too hard to figure out (then the user is basically just guessing). I'm sure you've seen other games that struggle with these kinds of issues.
How is WAR calculated?
In general, WAR is more of a concept than a specific formula. Fangraphs and Baseball Reference both have their own formulas for WAR which are not exactly the same. And neither one of them fully publish the details of their formulas, which are quite complicated. Because of that, I use a less well-known but simpler method of calculating WAR that is fully specified in this paper, which includes formulas for all the WAR components you see in the advanced stats table:
- Rbat: batting runs
- Rbr: baserunning runs
- Rfld: fielding runs
- Rpos: positional adjustment runs
- Rpit: pitching runs saved
Add those up and you get RAA (runs above average). Scale that based on how many runs are scored per game and you get WAA (wins above average). To compare against replacement level rather than average, also add in Rrep (runs from replacement level) and then you have RAR (runs above replacement). Scaling that by runs scored gives WAR (wins above replacement).
How does the game decide what position a player plays, and why does it sometimes change from one season to the next?
In ZenGM Baseball, a player's position is based on their ratings. For each position, defensive ability depends on certain ratings. For example, the Ground Ball Fielding (Gnd) rating is very important for a shortstop, but not for an outfielder.
This means that as player ratings change from year to year, their position may change too. Like a SS who loses a little athleticism might become a 2B or 3B.
However you can also play players out of position. In general if you move a player from a more difficult position to a less difficult position (like SS -> 2B or CF -> LF/RF) they will be fine, and may even do better than someone whose best position is one of the easier positions. (I believe this is also true IRL.) And moving a player in the opposite direction to a more difficult position may still be worthwhile if it helps your offense enough.
You may also wonder if "experience" matters for defense, like if you move an outfielder to 1B do they get better at 1B over time? And for ZGMB the answer is no, defensive ability is just based on ratings, not based on playing experience. I know other games do consider experience and it probably is realistic and I did think about implementing it that way, but ultimately decided against it for simplicity.