Jump to content

The Regular Season is Upon Us

SimNFL Teams prepare and strategize for their final preseason matchup before the regular season starts next week.

Conference Finals Showdown

Seattle & Golden State clash for the west; meanwhile in the east, Atlanta and New York are fighting for the right to play in the SimNBA finals. Who will win?

Join Here

Need a team?

Firstly... welcome to the SimFBA! If you are new to the site, and need a team, make sure you head over to the new users section and view the available teams list. You will also be able to fill out your job application there! See you on the field, Coach!

Read more

SimCBB Offseason In Progress

Here is some concept art on American Samoa College's new basketball arena

Join Here

Roster Generation and Progression!

Recommended Posts


Modeling Players

In order to build a player, you need to create attributes that the engine will use to approximate baseball skills and abilities. 

So far, we have the abilities in the spoiler tab below (explanation included)

Player Abilities


Hit Power- ability to make strong contact when connecting on pitches.
Hit Contact- ability to make meaningful contact of any kind with a pitch.
Hit Eye- ability to identify location and type of pitch.
Hit Discipline- ability to identify pitches that won't lead to ideal contact/outcome

Baserunning Speed - Once running, the interval it takes to arrive and next base.
Baserunning Jump - ability to time their jump when stealing bases or after hits.

Speed - general fielding/baserunning modifier

Throw Power - ability and accuracy modifier in executing long distance throws, decreases 'ticks' before ball arrives
Throw Accuracy - general accuracy when throwing to a baseman or cut-off man
Throw Consistency - increases as a player gets putouts at their position, a lower value is more likely to have egregious errors

Fielding Catch - chance of completing catch of ball
Fielding Reaction - reacting to hit ball before fielding attempt
Fielding Spot Ball - reacting to thrown or hit ball before evaluating catch
Fielding Consistency -  increases as a player gets putouts at their position, a lower value is more likely to have egregious errors 

Catcher Framing - ability of a catcher to massage the ball/strike evaluation in their favor (towards strike)
Catcher Sequencing - ability of a catcher to help a pitcher make the optimal pitch choice (increases likelihood of pitcher to choose highest rated pitch on that pitch attempt. This involves both the number of times that pitch has already been thrown, as well as the pitcher's consistency with that pitch, and the raw pitch ability)

Endurance - high value here increases the number of pitches capable of being thrown before the stamina modifier impacts pitches
Throw Power - pitches go across the plate faster, impacting batter eye and quality contact ratings
Control - ability outside of specific pitches to locate throws where needed

Specific Pitches
Accuracy - ability in conjunction with generalized control to hit the right spot
Control - ability in conjunction with generalized control to throw pitch with the right break
Break - impacts hitter's ability to hit even if/after identifying the pitch
Consistency - increases as pitcher throws or 'learns' pitch. Decreases the likelihood of passed balls or wild pitches

Player Generation and Progression

The player creation engine generates players based on the premise that the pool of players should represent the full selection of high level high school, college, and international players that feed into the MLB system.

Those players, largely, suck.

Additionally, many players with 1 or 2 'MLB tools' end up flaming out with little to show for it other than a couple at-bats with the Altoona Curve. 

On the flip side, occasionally a player will emerge from the murk and mud of the farm teams and blow everyone away after they finally put all the pieces together - sometimes without any club really noticing their potential in the first place. 

To capture these aspects of the helter-skelter MLB player development environment, the player creation engine generates players without an overall potential. Instead, each attribute contains it's own potential for growth. A player's overall potential is simply a reflection of the average potential each of their relevant attributes contains.

Additionally, while a completely emergent and self-dictating system would be awesome, there's just a very early influence in developmental baseball that forces players to specialize after high school - and so the roster also designates pitchers and position players when generating the initial batch.

Players are generated as '15 year old' blank slates, with 0 for all attributes, and only their growth potential - and then they go through their first round of progression before being joined with the master roster. What kind of profile a player might have for their potentials on each attribute is guided, loosely, but largely dependent on the random assignment of potential. As mentioned below, the vast, vast, majority of these player will be straight dookie - as is a strong baseball tradition among feeder leagues. 

How Generated

What potential means for these specific attributes is not whether it will increase with 100% certainty, but the general trend of outcomes will favor higher potential ratings compared to lower potential ratings.

This works by generating a random increase year to year based on a normalized distribution of the value the attribute may increase by. Math snippet below: 


The way this math works is this: left hand side is the age of the player, the two values inside the parenthesis are the mean baseline ability increase, and the standard deviation of the desired normalized curve around that mean. 

As you can likely guess - among the specific values showing the top row is the best potential, and lower is worse. The top is A potential, followed by B, C, D, and F. The bottom-most row with an average of 0 growth is 'N' which is for players that don't use that attribute - 'N' for 'not used' more or less. Most position players will have at least half of their pitching attributes as this lowest growth potential, and pitchers are the same for position roles.

Due to the random nature of the normalized curve, it is vanishing unlikely, but still possible, for a player with mostly 'N' potential to develop into a Shohei Ohtani type batter while being designated to develop as a pitcher. But very unlikely.

Once a baseline value is set, the baseline is transformed in a logarithmic function to it's 'play' value that will be displayed to the game engine to run plays and shown (probably fuzzed a little) to users for making roster decisions, etc. These transformed values largely adhere to a 0-100 format, with sub-20 being HS/College level play, and 80+ being truly superlative abilities. A player  averaging above an 80 would likely be the best player in the sim. This is loosely inspired but not mapped 1:1 with baseball's 80-20 scouting scale.

More About Potential

All A potential skills averaged together will outpace all B potential skills by about 10-15% - but the individual outcomes have a pretty fair likelihood of showing any single B potential skill could grow higher than any particular single A potential skill - it's just that it's more likely that B potential will peak lower than an A potential skill.

Growth for all players and their abilities starts the strongest early in their careers and the scope of outcomes narrows or 'locks in' more as they age. This means both that high potential players become more likely (though not with complete certainty) to be busts if they don't hit early, and it also means that lower potential players are more likely to be useful even if they don't have high potential as long as they peak before their 'locked in' age (around 26-29)

This 'spread' between potentials create the kind of uncertainty in development that leads teams to roster and play players that have high potential, but aren't producing quite yet, as well as provide incentive for teams to hang on to some that don't have impressive potential, but have higher 'right-now' skill than would normally be expected given their potential.


Aside from blabbering on, here are some concrete examples of the distribution of talent in a sample generation of the league (overall in these graphs is calculated as an average of all attributes, not weighted to favor specific attributes that are more impactful at the moment, but that's largely inconsequential for this exercise)

Below is a map of a sample league with about 1.5k players generated - left hand axis is cumulative overall, and bottom is age:

As you can see, the general trend is that players get better over time, but specific players actually show a wide variety of career 'shapes' - while still maintaining adherence to the general trend that higher potential players will outgrow lower potential players.

Below are a couple specific players pulled from a test batch:

Here we have Jordany Kraynak, who had an absolutely terrible bat (F for contact and power) but A potential speed, which finally hit it's big 'jump' after his age 20 season, along with a B throw accuracy he would probably be a usable MLB 2nd baseman.


This is Norbert Wolf, who had a B for pitching endurance, but not a single C potential pitch in his arsenal. He was a certified garbageman (throwing trash), and so while he was solidly competitive early in his career (HS, College) his lack of likelihood to have his pitches grow ended up becoming reality and he retired at 30.


Here is Brock Wolters (from a different test set, I tend not to run one's bigger than 1.5k between tunings due to time), who had a B average potential across all his ratings, and ended up hitting on most of them - probably one of the better players in the league all the way through to his age 39 season where he retired.


Lastly, this is T.C. Arango, who didn't cross the MLB-playable threshold until he was 26, and for that matter also ended up in a similar position as a late bloomer in HS - showing little growth as a HS kid and taking off at 18 and then again after for his junior year... but then didn't really meaningfully develop after that for a while. 

Attribute/Player Development Meta

During the current test runs of the roster generator, about 2% of generated players reach 'MLB-starter'. This is actually a little generous, as among high school seniors, about .5% of boys baseball players can expect to end up drafted and of those only 20% will make the MLB - so .1% or a 'one in a thousand' shot to play in MLB. That said, I think it's fair for the engine if we skip generating the completely useless players and avoid turning it from a player engine into an insurance salesmen engine.

Further tuning is needed, but ideally this engine should supply enough players that we could generate at least a partial college recruiting class and full MLB draft class each year. The expected size of that roster is likely around 750-1000 new players each year. To fill the eventual NCAA rosters, we'll likely generate an 'oops, all F' box of players to fill out recruiting/playing.

This is a WIP of course and the particulars will likely change.

Player Elimination

All players keep the dream alive until the age of 30, where the average progression of all players drops below zero and there's very little chance of a late career bloom. After 30, the lower the overall of a player, the higher the likelihood of their retirement, with all sub-AAAA players having effectively a 100% chance to retire.

Desired Outcomes

- Player potential means something tangible, but holds an element of risk
- Being able to hold more 'solid' prospects will likely generate more actual pro-level players than betting the farm on 1-2 superlative prospects
- That said, high potential players are very much capable of reaching much higher highs than most other players.
- The vast majority of players generated for college/juco/draft should not play against the MLB level players or expect to last long above A ball.


Assigning potential for the individual attributes does follow some loose trends and rules (catcher abilities are less likely to have high growth potential, pitchers and batters are very unlikely (though it's not impossible) to get cross-compatible skills, pitchers generally have higher throwing ratings for fielding), but by and large it's randomly distributed from there. 

There are lots of odd combinations of player skills and sometimes wide gaps between abilities on a single player.

In order to have some of those players turn out as useful, making the most of player development is going to be key to fielding solid teams.

What Role You Play

So outside of all of that growth potential, players still get coached and helped along while playing. One of the features that you will have in the college/farm/MLB level is to 'train' an attribute and functionally increase it's development for that year by 2 potential levels. This will likely be applicable to a selection, and not all, of your players.

You could choose to shore up a player's weak spot, choose to double down on a strength, or develop positional versatility in all kinds of ways by focusing fielding or catching skills. The one thing you have to remember is that as players age, the ability rating 'locks in' and it's harder (but not impossible) to get large increases in skill - so focusing on younger players may be a good thing. But on the flip side, you could focus on making sure your 1 all-star level player gets that extra boost before they hit 30 to really maximize their value. 

Additionally, choosing to put players in the right league for their circumstance will also help their development, as a player wildly overmatched in a developmental league (A, AA, AAA) will get a slight malus to their progression. This will be measured using a version WAR fit for the sim and the impact will be the same as dropping 1 potential level across all skills.

This Diary's Poll

1. How should players be assigned to teams? Fantasy draft? Random distribution? Partial draft, partial distribution? Other? 

2. In order to facilitate players joining teams, some sense of economic baseline should be established first. Since owners have voted for a split revenue model, what would be the best way to assign media market strength?

3. The current attributes were created with some consultation from other users, and I definitely appreciate their help! That said, I know there's at least 20 other team owners that would be interested in helping out. Share ideas/input on this process or questions you might have. 

Link to Poll Here: https://forms.gle/qfLrm9LWiqFU5BBA7

Last Diary's Poll Results


While the largest section of voters were in favor of Tuesday-Friday simming, the majority of voters did ask for some kind of break in between series of games. So I think what we'll do is split the difference and do Tuesday-Wednesday-Friday-Saturday to give everyone time to make moves between most series during the season.


  • Fire 4
Link to comment
Share on other sites

On 3/17/2024 at 6:05 PM, nemolee.exe said:

What about spring training and the draft?


Still working on those details, but I think draft is likely a half-season-long process. Spring training I gotta ponder on mechanically, but I think we might just schedule it the same way the regular season is and just treat it like weeks -4, -3, -2, -1, and 0 before the season begins.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...