Knowing that my data was accurate, I created a breakpoint in the debugger to ensure that the data was being loaded correctly — and it was. At this point I just gave up and went to work on other tasks (like the case of the missing pitch). Sometimes your brain just needs a break.
I came back to the Glavine bug over the weekend and saw the same thing: the data was correct and it was being loaded correctly. Then I clicked 'F4' in Excel and the cursor jumped all the way down to line number 90160 where Tom Glavine was listed a second time — but without the 'L' flagging him as a lefty. With a blank data field, Baseball Mogul was giving Glavine the default throwing hand (righty).
I have no idea how this bad data ended up at the bottom of the "master.csv" file (for Glavine and ~8,200 other players whose last names start with 'G'). I get biograhical data from the Baseball Databank, and I guess I grabbed a file that hadn't been finalized yet.
Anyway, Version 24.13 fixes this bug by removing the bad data (although you will need to start a new game to see the changes). Sorry it took so long.
I got an email this week telling me that some pitchers in Baseball Mogul 2021 were losing one or more of their pitches in the off-season. For example, if you start in 1998, Jeff Suppan has 5 pitches. But then this happens at the beginning of 2002:
His cutter disappears, his sinker becomes a slider, and his "four-seamer" becomes a generic "fastball". It turns out that this bug is a side effect of the way we collected pitch data over the years.
In 2016, we added a file called PItch_Type_Frequency.csv, with pitchF/X data going back to the 2002 season. Now, instead of hand-editing each new pitcher's repertoire, I could just update one file. And because I viewed actual pitchF/X data as "better" than the hand-edited file, I told Baseball Mogul to overwrite the data in PitchRatings.csv with data from Pitch_Type_Frequency.csv whenever possible. And this is how Jeff Suppan's pitch repertoire got f---ed up between the 2001 and 2002 season.
It turns out that the hand-edited data had some advantages, such as including 37 different pitch types instead of the 7 tracked by pitchF/X. So I fixed this problem in Version 24.11 by telling Baseball Mogul to prioritize data from the hand-edited file when possible — and to not overwrite a pitcher's pitch repertoire in the middle of their career.
Some Baseball Mogul users are still having problems with McAfee deleting the game after it's been installed. It's been more than 2 years and McAfee still hasn't fixed the known bug in their software.
If you need proof that Baseball Mogul is safe, you can right click on BB-2021.exe and choose 'Scan' (with the red McAfee icon) and McAfee will tell you the program has no viruses. However, whenever you run Baseball Mogul, McAfee deletes it. After fighting with them since 2018, McAfee is still unwilling to fix this bug. So, here are some steps to workaround the problem:
To replace the one file that McAfee keeps deleting, you can get it here (to avoid reinstalling the entire game):
(or http://files.sportsmogul.com/BB-2020.exe for Baseball Mogul 2020)
Copy this file to c:/Sports Mogul/Baseball Mogul 21/ (or wherever you installed the game).
Then you'll have to exclude BB-2021.exe from McAfee's Real-Time Scanning:
1. Run the McAfee program.
2. Click Settings (the circular gear cog) at the top right.
3. Click Real-Time Scanning.
4. Click Excluded Files.
5. Click Add File.
6. Navigate to the location of BB-2021.exe (e.g. C:\Sports Mogul\Baseball Mogul 21)
7. Click 'BB21.exe' and click the 'Open' button.
8. Close McAfee and run Baseball Mogul 2021.
I hope this finally resolves your problem. If not, you probably have a few choices:
1) Go back into McAfee Real-Time Scanning and turn off the entire feature.
2) Contact McAfee product support for help.
3) Uninstall McAfee.
As I said above — and I cannot stress this strongly enough as a small business owner who has been developing virus-free software for more than 20 years — this is McAfee's problem, not ours. Other developers are frustrated by the same bug. We could all use your help in contacting McAfee and stressing to them that this bug is a serious headache for their customers (some of whom have just uninstalled McAfee once they realized that it was constantly deleting a program that McAfee itself verified was virus-free).
Baseball Mogul is a multi-season General Manager simulator in which player talent is calculated from overall career stats. An example can be seen below. Although Dwight Gooden pitched poorly in 1994, his ratings at the beginning of the season are quite high — because of his performance in the rest of his career.
However, I've gotten a number of emails from people who would like to use Baseball Mogul to replay single historical seasons, in the same way that they might use a game like Strat-O-Matic or Season Ticket Baseball. Replay Mode makes this possible by determining each player's performance from their real-life statistics for the single season that is being simulated. This is Gooden's Scouting Report when a new game is started in Replay Mode:
Replay Mode loads each player's historical stats for the season that is being simulated, and uses these as the player's "Predicted" stats for the upcoming season. Because Gooden had a bad year in 1994, his ratings are much lower than they were in the previous example.
Playing Time Limits
As mentioned above, Replay Mode is designed for single-season historical replays. Playing multiple seasons can cause problems — primarily because teams will no longer have enough playing time at every position. I could have limited Replay Mode to a single season, but I left it open so that I can continue to test and get feedback. If you are using Replay Mode in a multi-season sim, please let me know how I can improve this feature going forward. (For example, I could add a feature that forced team trades to match historical trades if there is enough interest.)
Q: How do I create a league with my favorite players from baseball history?
A: Baseball Mogul already has a feature that does something like this, called "All-Time All-Stars". To create a league with the best players from each of the 30 major league franchises:
1) Run Baseball Mogul.
2) Click "Start a New Game of Baseball Mogul".
3) Click "Custom".
4) Click "All-Time All-Stars".
This will create a baseball universe with 30 teams, each populated with the franchise's best players (at the beginning of their best season).
Q: But I want to choose the players in the league.
A: Baseball Mogul has multiple ways to do this. But the easiest is probably to edit the text file that is used by the "All-Time All-Stars" feature.
1) From the Baseball Mogul Help Menu, choose "Open Baseball Mogul Folder".
2) Go into the "Input" folder and then into the "Players" folder.
3) Open "All-Time All-Stars.csv". (Recommended: Make a backup copy first)
4) Delete the rows for any players you don't want to include.
5) Add rows for any players you want to add. You will need to know the player's "Register ID":
You can find this by visiting the player's Baseball-Reference page and clicking on "Minor Lg Stats" — the player's ID can be found in the URL.
4) Delete the rows for any players you don't want to include.
5) Add rows for any players you want to add.
For Step 5 above, you will need to know the player's 12-character "Register ID". You can find this by visiting the player's Baseball-Reference page and clicking on "Minor Lg Stats" — the player's ID can be found in the URL:
Alternatively, you can download the Player Register from the Baseball Databank (this file is also found in Baseball Mogul's "Database" folder).
The player's "Register ID" is in the column labeled "key_bbref_minors":
6) Save "All-Time All-Stars".
7) Start a new game using the "All-Time All-Stars" option.
Q: Also, I only want to include players from the 16 pre-expansion teams.
A: Follow the steps above to select your favorite players from each franchise. For post-expansion teams like the Arizona Diamondbacks (ARI), leave that part of the file as is. After you start a new game, you can go to the League Editor and delete the teams you don't want included. This will also delete the players on those teams.