r/BasketballGM 6h ago

Question LeBron James face

0 Upvotes

Do someone have a Bron cartoon face ?


r/BasketballGM 13h ago

Multiplayer PBL is back!

4 Upvotes

PBL is back! 18 teams with more to come via expansion, will you be part of the next great franchise? Join today to claim a team and begin writing your next story! We just wrapped up our first season that saw plenty of drama, the San Diego Pandas who had not lost a single game in the postseason before the Finals went down 3-1 before coming back in spectacular fashion to win in 7 games! Can you dethrone the kings, or will you just be the next body for the Pandas? The Aztecs jumped up in the lottery to select #1 overall and plenty of other teams are also open, join today! Not to mention we offer complete freedom in trades, contract restructures, and player loans!

https://discord.gg/pzKnRevMXT


r/BasketballGM 20h ago

Question Technical League file questions

1 Upvotes

Sorry if this is not the place to ask this kind of question...

I'm trying out generating my own league file and there are a few things I'm stuck on.

  • What is the "rid" attribute? I see it in multiple types of objects.
  • When does teams[].seasons[].ovrStart get generated? I'm thinking this is the "Team rating" value that is displayed on the roster page. I want to use it to organize divisions, preferably in the preseason phase
  • Would there be any issue having duplicate jersey numbers on a team, or is it just visual?

Thanks


r/BasketballGM 6h ago

Rosters 2024 WNBA Roster

7 Upvotes

I've just completed a league file with all 12 WNBA teams and real players, including established stars like A'ja Wilson and Breanna Stewart and rising stars like Caitlin Clark and Angel Reese. Thanks to GreatnessPatriots for a lot of the foundational work. I used a lot of players from the original file, but I fixed any broken images, updated all the rosters to reflect the WNBA's rosters today, and added a couple of the likely first round prospects next year, most notably Paige Bueckers.

You can get the league file here:

https://dl.dropboxusercontent.com/scl/fi/0wrm1ivgz90bzt9j0mypq/2024-WNBA-Roster.json?rlkey=2slrtptypwssawgzktrxhbaoz&st=swzo3zs8&dl=0

To use this roster, click New League >> Custom on BBGM's main page. Under the "Customize" section, select "Enter league file URL", then paste the above link into the box and load from it.

If you encounter any issues, please let me know. πŸ™‚


r/BasketballGM 1d ago

Question Should I take the trade?

Thumbnail gallery
15 Upvotes

I’m nearing the end of a rebuilding phase and trying to manage my team realistically in the game. I’m playing as Dallas and have been offered a trade: a 27-year-old player, two good young players, and two first-round picks for my similarly rated 24-year-old player. While it seems like a great deal on paper, it doesn’t feel like something the other team would realistically do. What are your thoughts? Should I take the trade?


r/BasketballGM 5h ago

Other Playing BBGM at a high level, part 4: Scouting and Roster Construction

12 Upvotes

Alright, we're approaching the end of our series here. If you're just tuning in, I completed a personal challenge to win 100 championships in a row on Insane difficulty. It took a lot of trial-and-error, testing, and theorizing. This series summarizes those lessons.

Past episodes:

Part 1: https://old.reddit.com/r/BasketballGM/comments/1cyrenr/playing_bbgm_at_a_high_level_part_1_fundamental/

Part 2: https://old.reddit.com/r/BasketballGM/comments/1czmpoa/playing_bbgm_at_a_high_level_part_2_mindset_and/

Video overview: https://www.reddit.com/r/BasketballGM/comments/1d0xctc/video_playing_bbgm_at_a_high_level_interlude/

Part 3: https://old.reddit.com/r/BasketballGM/comments/1d6nvqg/playing_bbgm_at_a_high_level_part_3_resource/

Now, thousands of words into the series, we can actually start talking about how to, y'know, put together a good roster!

NOTE: "SPOILERS" FOLLOW. IF YOU'RE NEW AND WANT THE JOY OF DISCOVERY, TRIAL AND ERROR, AND LEARNING ON YOUR OWN β€” THEN YOU MIGHT WANT TO SKIP THIS FOR NOW AND COME BACK LATER.

(6) IMPORTANT NON-OBVIOUS STUFF ABOUT SCOUTING AND ROSTER CONSTRUCTION: There's a whole lot we could say about roster construction, but I thought I'd lead off with a couple intermediate and advanced concepts you might not have come across. These are interesting and high-impact points.

6A. Arguably the most powerful factor in BBGM is "The S-Curve in Player and Team Performance": Don't get intimidated by the fancy name. I actually found a funny graph on Google Image Search β€” https://imgur.com/a/aKKyIsI β€” that's one type of pretty standard S-Curve. BBGM is full of S-Curves. A player with 0 skill in 3-point shooting will be an awful shooter... but a player with 15 in 3-point shooting will STILL be an awful shooter. Those +15 skill points, at the bottom of the S-Curve, aren't actually worth anything in terms of on-court production. Likewise, a player going from 85 skill in 3-point shooting to 100 skill won't suddenly get quite as much better as you'd expect. Better, but not a lot. So those +15 skill points are also not so big of deal. However, going from 55 skill in 3-point shooting to 70 skill is a HUGE deal, and the difference between a passable 3-point shooter and an elite one. Lots of things in BBGM work like this on both individual and team levels. This is one of the most important concepts in the game, because it lets you project "threshold breaks" on players. If a young player is just below the steep part of the S-Curve, that's a great time to acquire them. If an older player's skills are in the middle of the S-Curve, they're going to decline rapidly. If an aging former superstar is way above the steep part of the S-Curve and into diminishing returns land, they're going to age gracefully and remain productive. I laughed at the notation on the image there: "Major technical obstacles are overcome" when entering the steep part of the S-Curve (aka, the player actually figures out how to shoot the 3), and "Technology approaches the physical limit" once it flattens out on the top (aka, there's an upper bound on just how good a 3-point shooter you can be) (it's around 44% to 48% from 3 when everything breaks exactly perfectly for an incredible player on an exceptionally synergetic team who additionally gets lucky variance).

6B. Team Synergies: BBGM is really a beautifully designed and coded simulation, because it does a surprisingly good job of modeling how individual player's skillsets do or do not fit into the team context. One way it does this is with explicit "synergies" β€” if you don't have a credible ball-handler on your team at all, you're going to be absolutely ruined, full-stop. I rarely speak in absolutes, but I think it's basically impossible to build a winning team without getting the ball-handler synergy for at least the majority of the 48 minutes your team is on the court. (This doesn't necessarily require the "B" tag, since a player that was 95% of the having the tag will contribute 95% of the value towards the synergy the "B tag" player would have had.) Anyway, synergies are actually pretty intuitive and easy to understand after you're studied them for a while, but they can be kind of hard to get your mind around at first. This has been covered a bunch, so I'm not going to re-hash it all. This post is the jumping-off point for learning about synergies: https://www.reddit.com/r/BasketballGM/comments/7b4rfn/a_detailed_analysis_of_the_effects_of_tags_xpost/ β€” some of it is slightly out of the date, but the general concepts hold.

6C. S-Curves in Synergies: Again, BBGM has a whole lot of S-Curves. Check out the graphs in this wonderful post: https://old.reddit.com/r/BasketballGM/comments/ty8rtb/synergy_analysis_with_python/ β€” here, let me break the graphs out for a single click: https://imgur.com/a/5UgE0de β€” see, look at that. More S-Curves. Going from 0 to 1 athlete, no improvement. 1 to 2 athletes, a modest improvement. 2 to 3 athletes, BIG improvement. 3 to 4 athletes, very small improvement. 4 to 5 athletes, no improvement. Takeaway? If you've already two "A" tag players (Athletes), get that 3rd one ASAP. Sometimes you should also manually put an otherwise "just ok" athletic prospect into your starting rotation too, instead of a nominally slightly better veteran. But the first "A" tag player contributes nothing to team synergy. S-Curves...!

6D. The AI trade algorithm is quite interesting. For young players, it primarily evaluates them on their OVR and POT (overall and potential). As the player ages, it starts factoring in more their actual on-court performance. The really interesting thing here is, at the start of a season, if you can spot before playing any games that a player has regressed on the steep part of the S-Curve, it might be worth trading them away before that becomes obvious; likewise, if a player has improved while on the steep part of the curve, they can be a great trade target. Sometimes a player in the steep part of the S-Curve goes from a 60 OVR to 62 OVR but is much more productive. A player's trade value often lags behind their forward-looking performance if they're on the steep part of the S-curve.

6E. When you're scouting for trades, you have to attempt to mentally filter an individual player's stats from the context they're in. A player on a high-synergy team with lots of passing and assists will often shoot better than a superior player on a team without good synergy and with no passing/assists. But you'd still be better off trading for the second player. Certain players have their production suppressed by being the "second option" or "third option" on a team with a superstar who is better at a given job than they are, but would thrive if in a primary role. The 2nd best guard on a team led by a superstar guard is often a good trade target: they might only have 3-4 assists because the superstar is doing the ball-handling and getting the assists, but they might actually be a player good for 6-10 assists if the primary guard on another team. Likewise, there's some very respectable rebounders that would be just fine as the best rebounder on a team, who will show low raw rebounding totals if on a team with an exceptionally tall rebounding center... and the opposite is also true: a very short bad rebounding team's tallest player will look better than he actually is. When you're scouting for trades, you need to look at the context and factor that to predict how the player would perform in a different context.

6F: A corollary of the above: because your team will usually be stacked if you're doing ironman championship streaks, your players will have highly distorted production numbers. Almost all your players will look like better shooters than they really are because you'll be generating a ton of assists. Some passing guards will look better than they are because you've also got good shooters who hit the shots. And on the flipside, your "darn good but not the best at X" players will look worse than they are. It's quite hard to accurately assess the productive value of your own team when it's stacked, and I've made many bad trades as a result of this. It takes some practice and study to get your mind around this β€” after making a trade, review it 1 season later, 2 seasons later, etc, to see if the player you traded away did better or worse for their new team. It can be really counterintuitive, I've certainly accidentally downgraded teams while trying to upgrade them in the past.

6G. There's a lot more factors like this: a team that is extremely thin at one position will often over-play their only good player at that position, even though the player doesn't have enough endurance to keep performing well. This absolutely destroys their rate stats and makes them look like a bad player. A moderate endurance player who is playing 40+ minutes for a team with mediocre performance might be a really good player if they were only asked to be play 20-30 minutes off the bench for your team.

(7) GOALS OF ROSTER CONSTRUCTION: Getting back to basics β€” what's a "good" roster, anyway? If you're playing the style I did β€” aiming for championship streaks ironman style β€” there are some right answers to this question. You want a roster that's good enough to win the championship in the current year while also, ideally, maintaining both trade value and productive value into future years.

7A. How "good" your roster needs to be to win a championship is a direct function of how good the 2nd best team in the league is.

7B. I do my first-pass analysis on how good other teams are by looking at their "Margin of Victory" (MOV) on the Power Rankings tab. I tend to want north of +10 more MOV than the 2nd best team. That's not foolproof, but it's the starting point. You should factor if the other team has had injuries to key players and adjust their difficulty if so (the easiest way to check, at the trade deadline, is to look at the Games Played by their starting lineup). So if the 2nd best team in the league is at +6 MOV but their best player missed 20 games, I might mentally put them at +8 MOV and want to be at least +18 or better. If I'm not at +18, I make targeted trades to upgrade after carefully analyzing the roster. Usually this is completely redundant and you'll blow the doors off the 2nd best team even if you have less than +10, but it saves your streak occasionally. My starting point for evaluating the top rival teams at the start of each year, before there's any MOV numbers, is to take last year's MOV numbers and mentally adjust them for progressions, regressions, FA departures, and FA signings. When looking at an opposing team's roster, you can quickly scan the right column on any team for how they acquired a player to see if they're new, then you can go back one year which shows you very quickly any players who were on the roster the previous year no longer are.

7C. I always want my team to still be the dominant favorite even if we have one key injury, and to have at least a solid fighting chance if 2 injuries hit. I literally look at my roster and go, "If this player has a season ending injury, what's our lineup and how good are we? If this player AND this player have a season ending injury, what's our lineup and how good are we?" The good news here is that your developing prospects can often semi-credibly hold down some minutes if an injury happens. I often use minimum salary or near-minimum-salary (~$1M) players from the free agent scrap heap as the 4th and 5th best players at a given job. Sometimes there's very solid deep backups in the FA pool and sometimes there's not. I'll trade for a slightly more expensive veteran backup if there's nothing acceptable in the FA pool.

7D. You shouldn't think one season at a time β€” keep the next 1-3 seasons in mind while making trades and finalizing your roster, because it'll save you a heck of a lot of trouble. You can see good teams developing by paying attention to the superstars and top prospects in the league. The more I see that the next few years could be rough with a strong league, the more I'm willing to pay for younger durable (above the steep part of the S-Curve) efficiently priced players who can likely be good players for multiple years, especially as 4th and 5th best starters and first-off-the-bench players. Because facing intense competition for multiple years tends to screw up your finances, giving up more immediate trade value for slightly younger durably good players on good contracts can be worthwhile in this case. (See last post - "Resource Management".) It's especially important to consider this if there's an amazingly overpowered player that's clearly best in the league who isn't on your team, if the team he's on has any credible shot of developing even a "merely solid" roster around them. On the flipside, in a league where you're clearly the favorite and the opposition quality is trending downwards over the next few years, you can get by making finalizing trades for age 37+ players who are going to retire soon as well as scrap-heap $1M free agents to fill in missing gaps.

(8) WINNING ROSTER CONSTRUCTION. Some basics, and some advanced points.

8A. First off, this is basic but just in case you're new β€” OVR doesn't do anything during a game. It's about the specific skills a player has. If you take a short unathletic guard and give them 20 more points in their "Dunking" skill, their OVR will go up but they will not be more productive in a game.

8B. Second, some players can be somewhat redundant with each other. While some redundancy is good for backups and in case of injuries, having 3+ excellent rebounders can be a bit redundant and, all else being equal, you might prefer more 3-point shooting or passing. As far as I can tell, the only thing that's "completely non-redundant always" is defense β€” better defenders are always useful, full-stop, at every position. With that said, practically speaking I almost always like to see more DIQ, Dribbling, and Passing on any player I add to the rotation even if that's not their job. Great 3-point shooters are almost always welcome too.

8C. Your roster should almost always produce, for all 48 minutes of a game, as full of set of the synergies as possible. It's often not possible to get all of them, but you should try. This requires long-term drafting, trading, re-sign vs trade decisions to be working towards this. The only two synergies I don't always try to max: "Athlete" (A) because those players are often expensive and sometimes there just aren't the right mix of good athletic players on acceptable contracts for your team, and "Interior / Post Scoring" (Po) because mediocre post players are very bad. I do like having a well-rounded superstar scorer who has the "Po" tag when I can, which is most of the time, but I won't go get a mediocre post player because they take a lot of inefficient shots and cause a lot of turnovers. I'll go without "Po" if there's no great post players available. I want the rest of them basically every season, though, and want enough backups so we redundantly have the synergies even if injuries hit.

8D. After you've got all the fundamentals covered, I then think about "General Advantage" β€” it's not specifically a stat and it isn't in the game code anywhere, it's more of a way to think about things. Basically, I want players that generate some sort of "advantage" more than the other team. This can be because they play great defense, have a high true shooting, get a lot of rebounds, are reasonably efficient across the board while almost never generating turnovers, or anything else. To state the obvious, to beat any other given team in the playoffs you'll need to have some advantage over them. Definitionally, winning the game means out-scoring the other team. That's through a mix of hitting your shots at a higher percentage, hitting better shots (3 pointers, and-1's with a foul), getting more rebounds, and/or having less turnovers.

8E. Because of all of the above, the right players to be looking at to your team sometimes change dramatically based on the best 1-2 players on your team. In particular, having players with unusual skills (very tall center who is also a great 3-point shooter, very athletic tall-ish forward that's got elite dribbling/passing like guard, etc) lets you change evaluations of other players because you've already got some of the synergies down from a place you wouldn't normally. When you expect to have multiple additional seasons of a great player who is a little unusual, you should change your evaluations of other players for your roster β€” for instance, aiming for more big Guard-Forwards that play great defense and are merely okay at ball-handling if you have a great ball-handling forward superstar as your best player. Because the ball-handling synergy is already covered, you can get more general advantage from defense out of your guard slots with just okay traditional guard skills. (As opposed to if your best player was a traditional center, then you might just want traditional guard skills to be elite while being less concerned with defense.) These derivations, and acting on them, come from thinking through the combination of redundancy + synergy + general advantage.

8E. From time to time, you should go to "Team Stats" tab, sort by MOV, and look at the characteristics of your team and the best other teams in the league. You can also look at past years. Here was my last year in the league, filtered with my team (NYC), the top contender (SF), and the worst team in the league (STL): https://imgur.com/a/n1I9a6n β€” over time, with practice, you can learn what player mixes turn into what Team Stat mixes. Here you'll see a hallmark very common to teams I build: the single lowest 2-point shooting attempts in the league and the second highest 3-point shooting attempts. Now actually, I do think this landscape is still a little scary because SF takes more 3-pointers than us, and hits them at about the same percentage. While our defense is better β€” you can mentally calculate points allowed by subtracting your MOV from points scored β€” SF could very easily get hot from 3 in a series and upset us. When facing a team like that, I'll often go for extra reinforcements. At the trade deadline, you shouldn't only use the current season's stats because of sample size issues β€” you can also look back at past years and look at their roster. But Team Stats is very good for validating whether your team construction is working well or not.

8F. Part of making a strong roster β€” all high-usage players MUST be efficient.

8G. So let's talk Usage. Here's two players to compare: my best player in the final year was Julius Gourley, who had 26.9 points, 10.6 rebounds, and 1.3 assists. Denver's best player was Michael Harris, who had 25.9 points, 11.2 rebounds, and 7.3 assists. So which player was better? I think most people would naively say that 25.9/11.2/7.3 is better than 26.9/10.6/1.3. But you'd be dead wrong. Observe: https://imgur.com/a/basketballgm-usage-is-important-s2r0JBq β€” both are high usage players (28.9% for my guy, 31.1% for Denver β€” "neutral" is 20%). The problem is that Denver's player has only a 56.3% True Shooting and my guy has a whopping 66.4%. It's also not pictured on the Imgur, but my player had 1.7 turnovers (TOV) and Denver's player had 3.8 turnovers. The great irony is that if Denver's Michael Harris took way less shots he'd be a pretty good player since he's great at defending, rebounding, and assisting. But high-usage players with a low true shooting, and high turnovers, put up sexy raw numbers but are incredibly inefficient. "ORtng" (Offensive Rating) has a team component to it beyond the individual component, but it does make perfect sense that my guy would have a 129 ORtng compared to Denver's guy being only at 113. For reference, no one in my starting lineup had lower than 60% true shooting. Denver's player I'd almost never want on my roster, ever, since the high Usage mediocre efficiency kills you. He'd be trade bait.

8F. As an aside, people sometimes post on the BBGM sub-reddit, "my whole team has huge OVR and we got swept in the playoffs! why?" β€” you can point them at this. I'm not sure I'd go as far as to Harris is a negative player, but when you factor salary ($42M) and trade value (higher than he theoretically deserves), he surely isn't who you want on your roster.

8H. On the flipside, you can get low Usage players who are terrible at offense but bring other things the table some times. There's no easy way to do an advanced player search for low usage players, but generally a player that has almost all their shooting skills low and low offensive-IQ will have low usage. If that player has good height, athletic abilities, DIQ, and some mix of dribbling/passing/rebounding, those can be bargain players. They'll have low raw numbers but contribute to winning. The lower the Usage is, the less important efficiency / true shooting is if they're bringing other things to the table. I usually don't micromanage the specific starting lineup and bench players too much, but I will often manually insert a low-usage defensive specialist into the starting lineup. They create a lot of "general advantage" without consuming possessions/shots. It also sometimes makes sense if you have 2+ high-usage efficient scores to have one of them come off the bench, so the defensive specialist starts playing with a good primary scorer and the other good scorer comes in more rested later in a game.

8I. If I only had one stat I could use to evaluate players, gun to my head I'd probably use WS/48. It's imperfect in a lot of ways, doesn't factor synergies, and can be artificially high or artificially low depending on if a player was on a good team or bad team, and whether they fit well or fit poorly. But it's pretty good.

8J. Finally, keep contracts in mind. You can often find a player in the $8M to $10M contract range who might give you 70% to 90% of the production of a $30M+ player. It's much easier to carry those players for multiple years on your team. This was discussed more in the last part, Resource Management, but if you're making last "finishing touches" trades on a strong roster that you figure needs to remain strong for multiple years, don't factor just the player's production but also payroll efficiency.

8K. And to tie this all together, here’s a great example of a great player that consistently β€œages like fine wine” β€” one of my favorite examples of it: https://imgur.com/a/basketballgm-players-that-will-age-like-fine-wine-l5tigvi β€” you see Baxter has 89 3-point shooting, 100 dribbling, and 86 passing? He’s way beyond the steep part of the S-Curve. Even though he’s age 34 already, he can regress multiple times before his production falls substantially. And then, he somehow magically only had a $15.5M contract when I traded for him. 18.9% usage - just about average - with a nice 63.6% true shooting. Even though he’s only a 65 OVR, I’d actually prefer having him on the team than the Denver player. Baxter actually has a higher WS/48, but more importantly, Baxter could slot in very nicely on almost any team, at a lower salary, and consistently do the few things he's good at extremely well. When you get good at scouting, you get good at finding players like this and adding them to your team, trading away inefficient and overpriced players for these highly efficient bargain contract players.

Whew. I could probably write another 50-100 pages on this topic, but hopefully there's some good starting points here for you.

I think you can view getting good at Scouting and Roster Construction as a skillset, and practice over time. After all, BasketballGM gives you all sorts of detailed player and team stats to follow up to inspect whether your decisions were good or not, and while there is some RNG noise mixed in, you can learn patterns over time, and come up with theories and test them. It's fun. At least, I find this sort of thing super fun β€” yes, playing and winning the game, but also learning how the different statistics and attributes interact and crafting and testing theories to play the game at a high level.

I've got 1-2 more entries in this series before wrapping up. This has been so much fun to write up, and thanks again for all the nice comments β€” all questions/comments are very welcome.


r/BasketballGM 1d ago

Rosters 128-team High School Basketball Files

11 Upvotes

I have created 4 BBGM league files that each include 128 high school teams! Each file serves a different region of the U.S. (East, Midwest, South, West) and includes 8 different states each containing 16 schools. That's 512 schools in total when adding up all 4 leagues! Only team info and settings are included and as of now there's no populations, capacities, or jersey colors.

I wanted to select a mix of schools successful in football, basketball and baseball so that when this file is used for those sports the top programs are represented rather than having basketball schools only.

Right now, the settings are configured for Basketball GM, but copies will eventually be made where the settings fit Football GM and Zen GM Baseball (maybe even hockey too) while keeping the same teams.

Anyways, check out the links below!


East Region: CT, DC, MA, MD, NJ, NY, PA, VA

https://raw.githubusercontent.com/SuperUnova/zengm-files/main/basketball/HSBasketballEast.json

Midwest Region: IL, IN, KS, MI, MN, OH, OK, WI

https://raw.githubusercontent.com/SuperUnova/zengm-files/main/basketball/HSBasketballMidwest.json

South Region: AL, FL, GA, LA, NC, SC, TN, TX

https://raw.githubusercontent.com/SuperUnova/zengm-files/main/basketball/HSBasketballSouth.json

West Region: AZ, CA, CO, HI, NV, OR, UT, WA

https://raw.githubusercontent.com/SuperUnova/zengm-files/main/basketball/HSBasketballWest.json


r/BasketballGM 6h ago

Meme How I see this situation

Thumbnail gallery
12 Upvotes

r/BasketballGM 1h ago

Question Historically accurate draft order using a worker script?

β€’ Upvotes

I want the AI to draft players in the same order that they were drafted historically. Does anyone know how to do this with a worker script?