A Project/Proposal for Standardizing Retro Roster Mods

A hub for everything related to NBA 2K23 modding. Releases, previews, requests, and other modding discussion belongs here.

A Project/Proposal for Standardizing Retro Roster Mods

Postby vetmin on Sun Nov 06, 2022 5:32 pm

Since I'm starting to see retro rosters roll out for 2K23, I wanna outline a way in which we can standardize retro roster mods so that once users begin playing, they can continue playing indefinitely into future seasons as the league changes organically around them (in terms of rebrands, scoreboards, stadiums, etc.). IIRC, 2K77 already follows standards similar to what I will outline, but I haven't played any other roster mods that do (even ones that look great in and of themselves are a mess behind the scenes), so while I know at a glance the following looks long, please read it if you are creating a retro roster; it could massively improve the playability / longevity of your work.

Last year, thanks to the folder-toggling functionality in looyh's Hook, I began work on what I thought of as a kind of UBR/URB-esque mod stack, though the more natural comparison now is obviously MyNBA Eras. I created a base roster for 1981-82, then created the following Mods folders (ordered as follows in the Hook):

Mods_2021-22
Mods_2020-21
Mods_2019-20
Mods_2018-19
...
...
...
...
Mods_1984-85
Mods_1983-84
Mods_1982-83
Mods_1981-82

This block of folders should be at the top of your folder stack.

Since I was beginning with a 1981-82 base roster, I put all of my 1981-82-related mods (scoreboards, broadcast music, etc.) in the Mods_1981-82 folder, switched that folder on, then switched all the other seasons' folders off, the idea being that as each season passed, I'd switch on the next season's folder so that the mods for that season would overwrite the previous season. For instance, the NBA switched from CBS to NBC in 1990, so one could put a retro NBC scoreboard and "Roundball Rock" broadcast music into the Mods_1990-91 folder and see this change in one's league organically as the '89-90 season rolls over to the '90-91 season.

Now you might be thinking: That's all well and good, but retro roster mod folders (like the amazing 2K77 and 2K97) are always huge (like 5GB sometimes, and with a ton of files). Many (or even most) users do not have space for 40+ folders like that, plus it would be a nightmare putting together and managing that many files.

Well, that's the beauty of organizing seasons in relation to each other rather than individually (and of the Hook, whose folder-toggling functionality is absolutely essential to this). I have a 40-season mod stack that organically activates all major (and many very minor) cosmetic changes to the league, and it's less than 15GB. The reason why it's so small is because each season's folder contains only what changed that year, since what didn't change is handled by an earlier folder in the stack.

If this is unclear, see the following years 1981-85 for an illustration:

Image

Since my earliest folder was 1981-82, that serves as my base folder. I need everything in there: era-appropriate scoreboard, broadcast music, coach portraits, ball texture, retro shorts, etc. etc. etc. This folder is thus 4.02 GB, and that's not even including cyberfaces, which I was handling separately in a different folder (explained below), so size-wise it's your typical roster mod folder (a la 2K77, 2K97, etc.) and maybe even a bit on the large side.

In the Hook, my folders look like this ( = switched on; blank = switched off):

Mods_2021-22 =
Mods_2020-21 =
Mods_2019-20 =
Mods_2018-19 =
...
...
...
...
Mods_1984-85 =
Mods_1983-84 =
Mods_1982-83 =
Mods_1981-82 =

So let's say the 1982 Finals have concluded and my 1981-82 season is done. I press F8 and change my folder toggles to:

Mods_2021-22 =
Mods_2020-21 =
Mods_2019-20 =
Mods_2018-19 =
...
...
...
...
Mods_1984-85 =
Mods_1983-84 =
Mods_1982-83 =
Mods_1981-82 =

OK. I've switched on my folder for the 1982-83 season. Inside that folder we see that not much changed; the Sixers got a new court, the Clippers rebranded (though they're still in San Diego), and New Jersey & Atlanta got new jerseys. But wait, if that's all that's in the folder, what about our retro scoreboard, retro broadcast music, etc.? Won't all of that be missing when we play? No, because you're merely enabling the '82-83 folder ***ON TOP OF*** the '81-82 folder, which does contain all of that stuff. What you'll see in-game is all of the stuff from the '81-82 folder, except for the Sixers court, Nets & Hawks jerseys, and Clippers court & logo, for which you'll see the versions in the '82-83 folder. I positioned the '82-83 folder above '81-82 in the Hook, so that '82-83 is higher in the folder hierarchy; this means that when you load into the Sixers arena, the game first looks for the floor file in the '82-83 folder. If it's there, it uses it; if not, it looks in the next folder in the hierarchy, which is the '81-82 folder immediately below it.

OK, so the 1983 Finals wrap up and I'm on to 1983-84. I press F8 and change my folder toggles to:

Mods_2021-22 =
Mods_2020-21 =
Mods_2019-20 =
Mods_2018-19 =
...
...
...
...
Mods_1984-85 =
Mods_1983-84 =
Mods_1982-83 =
Mods_1981-82 =

Inside the Mods_1983-84 folder we see that the Lakers have a new court (ignore the ones that say "alt"; it's literally just a duplicate of the non-"alt" court made by a different modder; I simply hadn't decided which one I preferred yet), Cleveland rebranded, etc. So let's say hypothetically the first game of the season is Cavs vs. Clippers (in San Diego). Here's how the game loads some of the files, as an example:

  • It looks for the Clippers floor (f006.iff) in Mods_1983-84 (not there), then Mods_1982-83 (there it is! it uses this one).
  • It looks for the Clippers home jersey (u006lac_current_home.iff) in Mods_1983-84 (not there), Mods_1982-83 (not there), then Mods_1981-82 (there it is! it uses this one).
  • It looks for the Cavs away jersey (u004cle_current_away.iff) in Mods_1983-84 (there it is! it uses this one).
  • It looks for the retro scoreboard in Mods_1983-84 (not there), Mods_1982-83 (not there), then Mods_1981-82 (there it is! it uses this one).

Make sense? Using this approach, while you must always start with a normal, large-sized mods folder for your base roster, you can have decades worth of league changes in future seasons' folders for a small fraction of the space. The files themselves are also very manageable. As you can see, not every season is a 2,000-file mega-folder. Most seasons have minimal changes... a stadium here, a jersey there, etc.

Now, I could imagine a roster creator thinking: "But vetmin, I'm making a 2006-07 roster. I'm not about to make people switch on a thousand folders from the 1980s (or earlier) all the way up to 2006 in order to use my roster. Plus all that older stuff is irrelevant to my mod anyway."

That's 100% true, and if you're releasing a retro roster mod, all of the above changes nothing about the number of mods you need to include in your download. You will still have to put together a ~5GB folder for the '06-07-related mods your roster needs. The way in which all of the above is relevant to you is in how you organize your roster assets. Most roster creators organize everything unsustainably, i.e., basically only good for a single-season or maybe two-season playthrough before it becomes a pain in the butt to manage all the real-life jersey / branding changes. The problem is that almost everyone breaks this overarching, golden, cardinal rule:

DO NOT REASSIGN JERSEYS, STADIUMS, LOGOS, ETC. VIA 2K TOOLS. LOAD ALL RETRO ASSETS VIA THE HOOK AS "MODS" OF THEIR PRESENT-DAY VERSIONS.


In other words, if you want your roster's Clippers to use the logo from logo006lac_1979.iff instead of the present-day logo. DO NOT go into 2K Tools > Teams > Clippers and change their logo field to "logo006lac_1979". Instead, export logo006lac_1979.iff from the game, rename it logo006.iff (i.e., in order to overwrite the present-day Clippers logo), then drag that into your roster's mod folder.

The reason is because: think of what will happen when 1983 rolls around and the logo is supposed to change to logo006lac_1983.iff. If you put logo006lac_1983.iff in your Mods_1982-83 folder and switch it on, nothing will change in-game. You'll still see the old logo, because you specifically told the game to load the IFF with the 1979 version of the logo in it. If you were to rename that copy of logo006lac_1983.iff to "logo006lac_1979.iff", then you would see a change in-game, and you could just rename any future Clippers logos as to "logo006lac_1979.iff", but then what if someone releases a mod starting in the 1970-71 season? If you were to go into 2K Tools and make sure the team is set to logo006lac_1971, then all your folders with "logo006lac_1979.iff" filenames will not take effect. It's just a frickin' mess using the year-specific filenames, whether for logos, jerseys, stadiums, etc. In the case of stadiums, DO NOT go into 2K Tools and assign the Celtics to s528934948958985.iff or whatever. Instead export it, rename it s005.iff, and put it in your roster's mod folder, so that it's 'timeless' and can be cleanly overwritten by later-season s005.iff files for later-era Celtics stadiums.

If you follow the golden rule of keeping all game assets named to their standard, modern-era counterpart, then people can load up your roster and play it hassle free for decades of in-game time, having all of the logos, jerseys, stadiums, dornas, etc. changing organically exactly when they did in real life.

Except... where can you download the year-by-year toggleable folders? Well, that's the "project" part of this post. As I said, I began working on this last year. I have folders from 1981 to 2022 that contain most floor changes, most (all?) logo changes, most jersey changes (at least, all of the default 2K retro jerseys correctly dispersed to the proper years), some dorna changes, and some stadium changes, though the stadium side of things is really lacking IMO due to a general dearth of high-quality retro stadiums out there. Most are just very very light tweaks to the default retro stadium that 2K uses for most classic teams. All of this is for 2K22, so I need to re-do what I have with the 2K23 versions of things (where necessary), plus I was collecting everything for my own use, so I haven't sought permission to be bundling a bunch of other modders' work. For now, I'll just focus on correctly dispersing the default 2K retro assets to the proper years, but on the whole this is really more of a decentralized, community sort of project. Any pack of assets for any season can slide right into the stack and function seamlessly as long as everyone is following the standard naming conventions (i.e., following the golden rule above).

I've written this novel mainly because it sucks to see people spend so much time on retro rosters and then for those rosters to be essentially stranded as 'one-season wonders' due to lack of foresight re: asset organization. If everyone stuck to this general standard, then roster mods could truly be equivalent to Eras in new-gen, as launch points for playthroughs of 5, 10, 20+ seasons.

EPILOGUE: RANDOM BULLET POINTS

  • It should go without saying that when I talk about the league "changing organically" via the folder system, I am talking about the kinds of cosmetic changes that are controlled by standalone game files. Stuff like team name, city, etc. obviously still needs to be changed the normal way: in-game or (better) via 2K Tools.
  • A small number of real-life NBA situations in the past complicate the idea of what should be the standard. The two main ones are: #1 - Should the SuperSonics be treated like a distinct team, or should Key Arena actually be s024.iff in a retro '90s roster? The #2 situation is the whole New Orleans / Charlotte / Hornets / Bobcats / Pelicans mess. My personal preferences are to (1) reassign the Thunder as the SuperSonics via 2K Tools [i.e., breaking the golden rule and changing the stadium ID, logo ID, etc. to whatever the Sonics are via 2K Tools, then using that as the Sonics standard], reason being that I always break realism by never letting the Sonics leave Seattle, so I like to leave the "24" ID stuff in place for a potential OKC expansion down the line, and (2) I have no preference right now re: New Orleans / Charlotte... I honestly can't even remember how it all went down. I think I prefer just keeping the Hornets in Charlotte, letting New Orleans expand as the Pelicans, and just pretending like the Bobcats never happened (or maybe just that it was a short-lived Hornets rebrand). I think it's OK for there to be some lack of standardization re: the Sonics and NOLA/CHA though given that there are probably different preferences among gamers re: how they want to play those out.
  • I alluded to cyberfaces above. Cyberfaces can be integrated into the folder stack the same as any other game file. Last year I started out by placing my cyberfaces for players in their appropriate folders, so that players would appear to age (e.g., Steph's rookie face/png1612.iff in Mods_2009-10, then slightly older face/png1612.iff in Mods_2012-13, etc. etc.). This was quickly rendered pointless by looyh's awesome MyLeague+ plugin, which allowed us to handle player aging much more cleanly. I am hopeful that we will get it again for 2K23, so I am not factoring player cyberfaces into this whole folder stack, but for those who don't want to buy it from him, the folder stack could simulate player aging the same way. (Just buy it though. Best $10 I ever spent.) That said, MyLeague+ does not do aging for non-players, like staff, so coach aging, for instance, does need to be handled by the folder stack, as do commissioner changes (i.e., replacing Adam Silver with David Stern for older rosters, then un-replacing him once Stern stepped down).
  • One gripe that some may have about the above folder system is the idea that to quickly switch between vastly different eras, it takes too much toggling (e.g., switching on all years up to 2017 in order to play a 2017 game, then switching them all off to play a 1970 game or whatever). This doesn't apply to me since I tend to just play MyLeague, where time is slow and linear, but it's a fair complaint for Play Now folks. One possible solution is making every change of decade a kind of anchor/consolidation point. So, like, make it so 1990-91 is a totally self-sufficient roster mod folder, such that all the '80s stuff that is still valid for that season is duplicated in the '90-91 folder. If you do that for '90-91, '00-01, '10-11, etc. then in order to play a 1996 game you need to toggle on just 1990-96, to play a 2012 game you need to toggle on just 2010-12, etc. Obviously this uses more space, but there are ways to make this work fluidly for people who jump around between eras.
vetmin
 
Posts: 321
Joined: Sat Mar 14, 2020 8:26 am

Re: A Project/Proposal for Standardizing Retro Roster Mods

Postby snake212 on Mon Nov 07, 2022 12:07 am

Im not sure how this is going to work but it sounds like a better way for us to save aur rosters? Am i right saying this???...........im new here, want to start working on yearly rosters as well. Can you show us a video of how this is going to work. Im sorry im a bit confused. This looks great though. It looks perfect

Thank you
snake212
 
Posts: 316
Joined: Mon Dec 01, 2014 2:16 am

Re: A Project/Proposal for Standardizing Retro Roster Mods

Postby dante24 on Tue Nov 15, 2022 12:58 am

Currently I don't have a lot mods to go with my 2k83 Magic v Bird roster (I mostly use in-game assets) while I'm waiting on permissions from other modders. But was planning on releasing mod folders in directories and stacks similar to this.

Definitely makes it's easier for the user I agree
dante24
 
Posts: 120
Joined: Sun Oct 14, 2018 6:17 am

Re: A Project/Proposal for Standardizing Retro Roster Mods

Postby snake212 on Mon Dec 05, 2022 1:35 am

how's this going so far????......very interested in trying something like this.
snake212
 
Posts: 316
Joined: Mon Dec 01, 2014 2:16 am

Re: A Project/Proposal for Standardizing Retro Roster Mods

Postby YEDYE on Thu Dec 08, 2022 6:18 am

I'm liking how this sounds. Similar to what I try to do in my game having year specific folders and enabling them as I go. Any plans on releasing the mod folders and roster or are you just sharing how you've done yours as reference?
YEDYE
 
Posts: 127
Joined: Sat May 09, 2020 4:58 am

Re: A Project/Proposal for Standardizing Retro Roster Mods

Postby nrosos12 on Fri Dec 09, 2022 12:12 pm

This is exactly how I structure my mods. My current roster mods are under the "Mods" folder then I also have a Mod_97 roster, Mod_83 Roster, and Mod_2000s roster. I like this method. Very organized.
nrosos12
 
Posts: 13
Joined: Fri Oct 30, 2020 9:37 pm

Re: A Project/Proposal for Standardizing Retro Roster Mods

Postby Thunder Shaq on Sat Mar 18, 2023 10:58 am

This is perfect for starting a long MyLeague simulation. I feel like I never see mods organized this way, but it's super efficient. Unfortunately it's impossible to do it this way for my NBA 2K20 mod because it's designed for people to be able to load up any season they want without having to move files around
User avatar
Thunder Shaq
 
Posts: 1167
Joined: Thu Jul 26, 2018 1:07 pm


Return to NBA 2K23 Modding

Who is online

Users browsing this forum: No registered users and 1 guest