Jump to content

[FM2017] Mod for stadiums - especially for lower leagues


KUBI
 Share

Recommended Posts

The stadiums for smaller clubs are looking all the same in the game, and even a 500 capacity stadium has stands around the pitch which is unrealistic.

You can alter this (a bit at least) by going into the data/sigfx/stadiums

Open the 0 - 10000 folder.  (Make a backup first!)

Now you can delete some stands in the different setups to bring in more variety:

You can remove corner stand, right stands and top. If you do it differently in the folders a,b,c,d,e,f you will see stadiums with no stands behind the goal, others with no large stands etc. You can also remove the corners from the no_stand folder to have a stand-free stadium. 

After doing it you need to restart the game.

Do also backup your edited stadium folder, as you may need it, after the next update.

Link to post
Share on other sites

  • Replies 127
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Hi Kubi, that's good to know.

Is it possible to use a similar process to change the way Anfield looks in the game? I'm not a fan of the big gaps in the corners and the 1960s floodlights and, if nothing else, would like to change it back to the way it appeared in FM16.

Just for the record, I've already reported it in the Liverpool data issues thread at the request of a couple of mods.

Thanks, and sorry if this is too off-topic for this thread. (Delete if necessary) :thup:

Link to post
Share on other sites

Thanx Kubi, great tip! I'm a bit confused as to what I'm supposed to do in that folder though. Delete stuff I guess. I'll give it a try, but some questions arise when I try to get my brain around the logic of the contents of this folder:

-do i delete the .sia files, the x-ref folders or just some specific .sia files inside the x-ref folder?

-Can I make adjustments to a specific stadium or do I change all the stadiums when I delete some blocks?

-How does the setup work, is 0-10000 the club-reps? Are a-f the different stadiums-styles that appear at clubs with that type of rep?

-Can I find out what type of stadium (a-f) a certain club gets in game, so I can change the ones I want to change (like my current club, or the ones in my league?

-Is there a way to assign a certain stadium (a-f) to a certain club somehow?

-Is this savegame proof, as it takes place in system files and not by pre game editor?

 

Any chance of altering the surroundigs somewhere aswell? And when an FM-update comes along what happens then?

Thanx!

Edited by ommerson
Link to post
Share on other sites

3 hours ago, mikelfc8 said:

Hi Kubi, that's good to know.

Is it possible to use a similar process to change the way Anfield looks in the game? I'm not a fan of the big gaps in the corners and the 1960s floodlights and, if nothing else, would like to change it back to the way it appeared in FM16.

Just for the record, I've already reported it in the Liverpool data issues thread at the request of a couple of mods.

Thanks, and sorry if this is too off-topic for this thread. (Delete if necessary) :thup:

I hear what you're saying, the look of Anfield is very disappointing. For my Liverpool save I used the editor and made Anfield extinct and created a new stadium with all the same details and it now has corners like in FM16. Of course irl Anfield has no corners but in game the newly created version at least for me is more satisfying than the original with wide open corners.

Link to post
Share on other sites

Just now, RoPS83 said:

I hear what you're saying, the look of Anfield is very disappointing. For my Liverpool save I used the editor and made Anfield extinct and created a new stadium with all the same details and it now has corners like in FM16. Of course irl Anfield has no corners but in game the newly created version at least for me is more satisfying than the original with wide open corners.

Good tip, I'll have a look at that now, thanks.

Link to post
Share on other sites

You need to remove both files the folder with the _xrefs ending and the file with the .sia ending.

As this is unsupported you have to find out yourself what´s possible and how it works. The stadium are the first time build modular, but with just three basic options for smaller stadium to remove.

Link to post
Share on other sites

After some trial & error I've managed to get a no-stand ground. What eventually worked was replacing the contents of the a, b and c directories (there is no d in the 0-10000-map) with the contents (right&corner) of the a-folder in the no-stands-folder which is located directly in the stadium-directory (not the one in the 0-10000 folder). I guess that makes the stone walls appear, in contrary to deleting files what results in no seperation between ground and ajacent roads or gardens. A matter of taste perhaps.

I think I figured out that the c-map represents the opposite stand (long side of pitch), because when I put the original c-map back the opposite stand reappears. But I have no idea how these different stadiums are distributed to the clubs, I guess there are several types, but how they are assigned to clubs is a mystery to me. What the e- and f-folder represent also eludes me at the moment.

Minor setback of the no-stands ground, although it is the best representation of the grounds of the level I currently manage, is the fact that no stands also seems to mean no people. For this reason I'll keep the opposite stand. Just to get the feel of supporters. Would like a smaller one, not streching along the full pitch, but I have no idea it that is at all possible.

Only thing that doesn't make the below picture near-perfect is the Industrial surroundings (my club is in very rural environments IRL). If someone has an idea how to tackle that I'd really like to know.

Naamloos2.jpg

Edited by ommerson
Link to post
Share on other sites

6 hours ago, RoPS83 said:

I hear what you're saying, the look of Anfield is very disappointing. For my Liverpool save I used the editor and made Anfield extinct and created a new stadium with all the same details and it now has corners like in FM16. Of course irl Anfield has no corners but in game the newly created version at least for me is more satisfying than the original with wide open corners.

Would you mind talking me through how you did that, step by step?

I got as far as making Anfield extinct and then failed abysmally.

Link to post
Share on other sites

13 hours ago, ommerson said:

Would like a smaller one, not streching along the full pitch, but I have no idea it that is at all possible.

I tried to make it smaller, but no luck so far. But you can inside the top_xrefs remove the 3 roof files to make it more realistic, as usually only the main stand has a roof. I did also remove the stand_end_sloop.

Bildschirmfoto 2016-11-13 um 11.29.32.jpg

Link to post
Share on other sites

Looks great of someone who is crap at graphics ;-). Altering burger stands is for the later stages of stadium-manipulation for me though.

The stand in your last post (the one with the small covered main stand and terraces at the sides) seems a pretty realistic lower league stand, if not the most realistic. Any idea where/how to find that one. Is that in one of the 0-10000 folders? I'd like to get that one in my c-folder.

Link to post
Share on other sites

11 hours ago, mikelfc8 said:

Would you mind talking me through how you did that, step by step?

I got as far as making Anfield extinct and then failed abysmally.

 

As this is going a bit off-topic I pm'd you my anfield editor data file.

Downside of this is you obviously have to start a new save for this to have any effect.

Edited by RoPS83
Link to post
Share on other sites

2 hours ago, RoPS83 said:

 

As this is going a bit off-topic I pm'd you my anfield editor data file.

Downside of this is you obviously have to start a new save for this to have any effect.

I've done similar.  Much better now.

Link to post
Share on other sites

This is brilliant I believe and something I have been asking for what seems like years.  Some amazing person out there will be able to edit individual grounds??  Tunnels in the right place, double tier stands where they should be, no roof on another etc..

Who knows athletics tracks, tree, cities in the background....

For the career save nothing better than seeing your club and ground grow as you progress.  New south stand opens and then there it is.....

Link to post
Share on other sites

10 minutes ago, mazza bul said:

This is brilliant I believe and something I have been asking for what seems like years.  Some amazing person out there will be able to edit individual grounds??  Tunnels in the right place, double tier stands where they should be, no roof on another etc..

Who knows athletics tracks, tree, cities in the background....

For the career save nothing better than seeing your club and ground grow as you progress.  New south stand opens and then there it is.....

I wouldnt have though so all the graphics files are locked (.sia) and split by capacity 0-10000, 10000-20000 etc.  so while its easy to effect the lower grounds by taking files out as above, you cant pick and choose with the higher capacity's with out effecting every stadium in that capacity bracket.  

Not sure how the game assigns them to individual teams, there are no files or xmls available in the folders/editing etc :( 

Link to post
Share on other sites

As far as I am aware most of the stadium information is taken from the researchers database (I don't think the editor with the game includes any way to edit the stadiums), with some randomness as well. SI also don't have a license for the stadiums so they are limited in how close to real they can get them to look.

In the past there were some template xml files in the stadium folder you could edit, however it seems these have now gone, though there are some json files that are editable by notepad++ that contain some of the old data. There is also a stadium template edt file in the db folder which looks like it should allow you to set certain teams to use certain stadium templates however I couldn't get it to work when I tried last year and this year we don't even have the templates.

For someone who asked futher up as you are editing the actual game files then there is a chance they could be reverted when the game is patched and they will be wiped if you verify the game files through steam, so when you are happy with your changes you might want to backup the edited files elsewhere aswell.

Link to post
Share on other sites

On 12.11.2016 at 16:00, ommerson said:

Any chance of altering the surroundigs somewhere aswell?

Try the following:

sigfx --> outside scenes  --> north europe < (or Europe) - don't know where north europe starts in the game...

swap the names of city and field and you will have the country surrounding.

Link to post
Share on other sites

The capacities of the different stadiums (a,b,c,etc.) is set in the stand_metadata.json, which is a editable xml file. 

For example

name : "0-10000/a/corner" - capacity 107

name : "0-10000/a/right"   - capacity 556

name : "0-10000/a/top"    - capacity 558

This means (or could mean...) that stadium a will be used for all grounds with a capacity below 1221

The figures for stadium b:

315 - 1150 - 1280 + 1028 (player tunnel) =  3773

If you have a lot of small stadium ins your save (below 1000), you could try to lower the capacities for stadium a and b, to have more variety. I don't know if the game calculates the stands new, when you are doing the stadium edits by removing stands. 

 

Link to post
Share on other sites

Sorry for the double post, but I made a breakthrough. By copying and pasting elements in the file @KUBI mentioned, I was able to create the templates and folders for alternate versions of the a, b, c, and e stadiums for 0-10000.

Screenshot of stadium "aa": http://imgur.com/gallery/iN32o

Screenshot of copy-pasted code:  https://gyazo.com/8e1fc22e58102dc3ee2941380afce2f9

Screenshot of folder structure:  https://gyazo.com/2d6b41f5db806af9fdc93abc4b913ab8

Screenshot of "aa" folder:  https://gyazo.com/494fb14aab615c109b6e195123e2e1aa
 

This is a real breakthrough for custom stadium modding, IMO. I'll clean-up these models and templates and zip them up for a Stadium Mod when I get more conclusive tests. What I'll actually do is make a tutorial on how to do this rather than re-redistribute SI assets.
 

Edited by sevestra
Link to post
Share on other sites

I've been waiting for stadium modding for a few years now so hopefully this is the start of good things to come.

I don't have much time to play FM these days let alone create addons for it so hopefully the FM community can put together a stadium graphics pack for download.

I'm looking forward to seeing how things progress with this!

Link to post
Share on other sites

Any luck with your tutorial yet, Sevestra? I'm trying to understand the things you (and Kubi) did and described in your previous posts, but I'm failing miserably.. :seagull:

I don't really get the general logic of the file- and code-structure. I'm sure your tutorial would help out a lot.

Link to post
Share on other sites

5 minutes ago, wkdsoul said:

So stadiums are picked by capacity rather than allocated to a team? So wouldnt an ingame expansion by the board immediately bugger a build? 

I think it's both. Stadiums are just a graphical representation of data, an expansion would not damage anything.

Link to post
Share on other sites

On ‎13‎-‎11‎-‎2016 at 23:41, KUBI said:

Did you also try it with street and field swap?

I found out yesterday that the field.sia of folder 'uk' actually contains this Industrial area type scenery I thought to be "street" or "city". You can see the map/plan of the scenery in the textures-folder. Strange, as if SI thinks Britain lacks rural scenery... Oh well, so now I pasted the n-europe field.sia over the uk version and that looks much more rural, although not especially British/Welsh.

Furthermore I pasted the grassy textures from the stadiums/textures-folder over the 'concrete' and 'dirt' ones for more lower league feel (grass continued throughout the ground), but unfortunately the sceneries themselves involve a lot of concrete/pavement around the stadium. I guess that cannot be manipulated. By doing this grass-thing, the dirt and concrete textures will probably be extinct throughout the game, so not sure if thats acceptable for all gamers. As I probably spend a year of FM17 in the basements of football no issue for me though.

The only thing that remains to be tackled is that, if you want to see spectators, you need a stand. Poeple in a no stand situation doesn't seem possible. The stand you get in map 0-10000/c/ is rather large for a non-league club (I don't think it is the smallest in the game) and the fact that it is pitch wide is a bummer aswell. The smaller stand (or the one with the teraces on the sides) is probably in some other folder in the 0-10000 and needs some trial&error te be found. I tried to swap a small behind goal stand (b-folder) with the stand behind the dug-outs (c-folder), but that resulted in a perpendicularly placed roof on top of a terrace, protruding over the pitch like a crane. Looked funny, but not the look I was after.

So I'm back to my slightly too big stand on one side of the pitch. Maybe I should try adjusting capacities to make the smallest stands appear.. How how to crop a stand to become (far) less wide is something I'm not very confident about achieving, not with my knowledge of things at least. Sevestra or KUBI might have found a clue by now. Or perhaps it's not possible at all.   

Edited by ommerson
Link to post
Share on other sites

On 17/11/2016 at 15:09, ommerson said:

I found out yesterday that the field.sia of folder 'uk' actually contains this Industrial area type scenery I thought to be "street" or "city". You can see the map/plan of the scenery in the textures-folder. Strange, as if SI thinks Britain lacks rural scenery... Oh well, so now I pasted the n-europe field.sia over the uk version and that looks much more rural, although not especially British/Welsh.

Furthermore I pasted the grassy textures from the stadiums/textures-folder over the 'concrete' and 'dirt' ones for more lower league feel (grass continued throughout the ground), but unfortunately the sceneries themselves involve a lot of concrete/pavement around the stadium. I guess that cannot be manipulated. By doing this grass-thing, the dirt and concrete textures will probably be extinct throughout the game, so not sure if thats acceptable for all gamers. As I probably spend a year of FM17 in the basements of football no issue for me though.

The only thing that remains to be tackled is that, if you want to see spectators, you need a stand. Poeple in a no stand situation doesn't seem possible. The stand you get in map 0-10000/c/ is rather large for a non-league club (I don't think it is the smallest in the game) and the fact that it is pitch wide is a bummer aswell. The smaller stand (or the one with the teraces on the sides) is probably in some other folder in the 0-10000 and needs some trial&error te be found. I tried to swap a small behind goal stand (b-folder) with the stand behind the dug-outs (c-folder), but that resulted in a perpendicularly placed roof on top of a terrace, protruding over the pitch like a crane. Looked funny, but not the look I was after.

So I'm back to my slightly too big stand on one side of the pitch. Maybe I should try adjusting capacities to make the smallest stands appear.. How how to crop a stand to become (far) less wide is something I'm not very confident about achieving, not with my knowledge of things at least. Sevestra or KUBI might have found a clue by now. Or perhaps it's not possible at all.   

That's very useful; I'll try to field.sia thing for my Scottish Highland wilderness teams.

The thing about crowds in stadia - say, unedited there's a crowd of 100, 90 of whom are in the big stand. If you remove it and the people, you'll just have the remaining 10 - the lost 90 won't relocate around the ground! Currently I'm living with invisible (yet noisy) crowds of 50 fans.

 

Update: The north Europe field.sia file works beautifully!

Edited by phnompenhandy
update
Link to post
Share on other sites

5 hours ago, phnompenhandy said:

That's very useful; I'll try to field.sia thing for my Scottish Highland wilderness teams.

The thing about crowds in stadia - say, unedited there's a crowd of 100, 90 of whom are in the big stand. If you remove it and the people, you'll just have the remaining 10 - the lost 90 won't relocate around the ground! Currently I'm living with invisible (yet noisy) crowds of 50 fans.

 

Update: The north Europe field.sia file works beautifully!

Good to hear the field-swap worked out. In an efford to get a smaller stand I tried bringing the capacity of my stadium back to 200 in the in-game editor, but that doesn't seem to influence the look of my stand. I didn't dare to tweek the .Json file yet. Not sure how that works.

Would be great to get the low roofed stand that is behind the goal in many FM lower league stadiums, cut it in half and place it on the long side of the pitch behind the dugouts (which I have releaved of the oddly out of place SEGA-logo's, simply by deleting those all together). Or get the stand with the side terracing and cut off the terraces. Wishful thinking probably...

Edited by ommerson
Link to post
Share on other sites

I think I've had some luck messing with this. On a quick noodle around based on what @sevestra and @KUBI shared I:

- Created a new "aa" folder in the "0-10000" directory.

- Copied the "top" and "corner" directories and matching .sia files from "stadiums/no_stand/a" (that's not the subdirectory within "0-10000", but the root stadium folder) into "aa". This allows stadiums with no stands behind the goals (and I figured the corners wouldn't hurt).

- Copied the "right" directory and matching .sia file from "0-10000/b" to "aa". The "b" directory seems to have many more variants within it than "a", including all the stands with railings, with no roofs, etc.

- Added the following to the .json file:

    {
      capacity_tags : 0,
      hash_key : 1424662799,
      id : 545,
      name : "0-10000/aa/corner",
      steps : [
        {
          capacity : 107,
          hash_key : 1643777492,
          name : "WALL_CORRUGATED_CURVED",
          section : [
            {
              capacity : 107
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            }
          ],
          tunnel : false
        }
      ]
    },
    {
      capacity_tags : 0,
      hash_key : 1081417356,
      id : 553,
      name : "0-10000/aa/right",
      steps : [
        {
          capacity : 556,
          hash_key : 1643777492,
          name : "RAILINGS_SIDE_STAND",
          section : [
            {
              capacity : 556
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            }
          ],
          tunnel : false
        }
      ]
    },
    {
      capacity_tags : 0,
      hash_key : 671878609,
      id : 553,
      name : "0-10000/aa/top",
      steps : [
        {
          capacity : 558,
          hash_key : 1643777492,
          name : "CROWD_PARTITION",
          section : [
            {
              capacity : 558
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            }
          ],
          tunnel : false
        }
      ]
    },

(I assumed the "name" attribute would match the actual graphics files within the top/corner/right directories).

What I've ended up with on a match for Ange IF (who have a stadium of 1,000 capacity) at least seems to partly match some of the new settings: http://imgur.com/a/79XNe

Dreadful camera angle (from low down you can see the trees and stuff behind the sea of concrete surrounding it, which makes it look better), but there's no stand behind either goal and the corners are the curved corrugated metal. I don't think the stand to the right of that pic is the "aa/right" variant, and the main stand to the left definitely isn't, but I'd guess the individual modules are picked from all those on offer in the appropriate size range. If I edited the .json to offer more all-standing/tiny options for low-capacity "right" modules (create more directories - "ab", "ac", "bb", etc. - and reference each in the .json using similar RAILINGS_SIDE variants), I suspect I'd see more of those and fewer big stands.

For comparison, this is Soderhamns 1,000-cap ground: http://imgur.com/a/EOd0v

No corrugated corners, so that's obviously a random choice depending on needed capacity, and most grounds at this size will have empty corners, and both main stands are different, but there's still no stand behind the goal.

Link to post
Share on other sites

On 13/11/2016 at 12:52, RoPS83 said:

 

As this is going a bit off-topic I pm'd you my anfield editor data file.

Downside of this is you obviously have to start a new save for this to have any effect.

Hi there.

 

I'd be really grateful if you could ping me a copy of this as well, please ☺

 

Where do I stick it (as the parlour maid said to the bishop)?

 

Link to post
Share on other sites

On 11/13/2016 at 11:48, mazza bul said:

This is brilliant I believe and something I have been asking for what seems like years.  Some amazing person out there will be able to edit individual grounds??  Tunnels in the right place, double tier stands where they should be, no roof on another etc..

Who knows athletics tracks, tree, cities in the background....

For the career save nothing better than seeing your club and ground grow as you progress.  New south stand opens and then there it is.....

atheltic tracks would be amazing

Link to post
Share on other sites

I've done a little more experimenting, creating another couple of custom directories ("ba" and "ca"), this time using just the "crowd_partition.sia" in corner_xrefs and top_xrefs (and their matching corner.sia and top.sia files) from the original "a" directory in the interests of seeing if that makes a difference - I was hoping to get a result with stands but no wall behind the goal - and amending the .json file to offer different entries for "right" like so:

        {
      capacity_tags : 0,
      hash_key : 1424662799,
      id : 545,
      name : "0-10000/ba/corner",
      steps : [
        {
          capacity : 107,
          hash_key : 1643777492,
          name : "CROWD_PARTITION",
          section : [
            {
              capacity : 107
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            }
          ],
          tunnel : false
        }
      ]
    },
    {
      capacity_tags : 0,
      hash_key : 1081417356,
      id : 553,
      name : "0-10000/ba/right",
      steps : [
        {
          capacity : 556,
          hash_key : 1643777492,
          name : "RAILINGS_SIDE_STAND1",
          section : [
            {
              capacity : 556
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            }
          ],
          tunnel : false
        }
      ]
    },
    {
      capacity_tags : 0,
      hash_key : 671878609,
      id : 553,
      name : "0-10000/ba/top",
      steps : [
        {
          capacity : 558,
          hash_key : 1643777492,
          name : "CROWD_PARTITION",
          section : [
            {
              capacity : 558
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            }
          ],
          tunnel : false
        }
      ]
    },
        {
      capacity_tags : 0,
      hash_key : 1424662799,
      id : 545,
      name : "0-10000/ca/corner",
      steps : [
        {
          capacity : 107,
          hash_key : 1643777492,
          name : "WALL_BRICK_CURVED",
          section : [
            {
              capacity : 107
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            }
          ],
          tunnel : false
        }
      ]
    },
    {
      capacity_tags : 0,
      hash_key : 1081417356,
      id : 553,
      name : "0-10000/ca/right",
      steps : [
        {
          capacity : 556,
          hash_key : 1643777492,
          name : "RAILINGS_STAND_BACK",
          section : [
            {
              capacity : 556
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            }
          ],
          tunnel : false
        }
      ]
    },
    {
      capacity_tags : 0,
      hash_key : 671878609,
      id : 553,
      name : "0-10000/ca/top",
      steps : [
        {
          capacity : 558,
          hash_key : 1643777492,
          name : "CROWD_PARTITION",
          section : [
            {
              capacity : 558
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            },
            {
              capacity : 0
            }
          ],
          tunnel : false
        }
      ]
    },

Since I assume stadium layouts generate either at new game start or else the first time they're viewed, I've started another test game in Sweden (which has loads of tiny grounds) and the results are now:

Arameisk-Syrianska (capacity 1,000): http://imgur.com/GwS3UYv

Savedalens (capacity 2,000): http://imgur.com/hI5bJ4n

And the one that I'm particularly pleased by - bearing in mind I've not deleted any of the original, default graphics/files/directories, so this is properly generated and not a case of missing graphics - is Konyaspor's 500-capacity ground: http://imgur.com/zHBBeVN

From this, I'm guessing that @ommerson may be right and the "c" directory could be where the main stand (the one behind the dugouts) is generated from, although in the .json it seems like "a" is for very small cap modules, "b" for small, "c" for slightly larger, etc. (and it may then be that his ground where deleting "c" made his main stand vanish would have simply used a "c" module for that stand because of the ground's actual capacity, while the other, stand had a smaller capacity and was pulled from "b"). The other possibility is that they're just being pulled from the other options (particularly, I'd guess, medium_steps_exits.sia) in the "a/b/aa/ba/ca" directories.

Next area for investigation I think I'll try will be lowering the "capacity" entries in the .json to give a more restricted set of ranges and allow for tighter control of just which modules are available in which sizing. It'd be a lot easier if I knew what the different modules actually looked like in game - (what's "double_sloped_roof.sia" actually render like, for instance?) - or had something that could edit .sia files (I can see enough to know they call different texture/mesh elements, and editing would allow quite fine control over which ones not to call, for instance) or view .dds graphics. Still, promising so far.

Link to post
Share on other sites

I like the idea of adjusting the json instead of deleting files. But as it's not really clear to me what the code in the json does exactly I'm not sure where to stick cregan's piece of code into the json file though. I thought I had it, but FM refuses to start after adjusting is so I probably pasted it in the wrong part of the json. I'll wait for a clear step by step 'custom stadiums for dummies' tutorial before making another attempt. Hopefully I'll get my brain around the code then..

 

Link to post
Share on other sites

@sevestra: Ouch, that's rough. :(

@ommerson: It's very sensitive to errors; I missed out a comma at one point and that stopped the game from running the moment it had to generate match reports.

 

JSON entries

I've kept noodling around with the .json for the a-c entries. This is my current .json from line 75 down to line 366 in the original: http://pastebin.com/e0CS1fDq  

(Copy that, highlight everything in stand_metadata.json from 75 to the closing "}," on the line before the first entry for "e", which begins - 

    {
      capacity_tags : 0,
      hash_key : 2695165259,
      id : 520,
      name : "0-10000/e/corner",

 - and then paste over and it'll be exactly the same as mine.)

 

Folders

You'll also need a similar folder setup. This is mine: http://imgur.com/a/AOtf9 (each image's description tells you where the parts come from).

 

What The Bits Do, Or "How Is Stadium Formed?"

All I've changed so far are stadiums within the a-c range. With each letter - a, b, c, e, f - as well as the graphics options varying, the capacity of each modular part listed in the .json rises. "a" stadiums (or parts thereof) are the smallest, the 0-2,000-ish (you could do the maths and get the actual amount, but this seems to be the system) ones. "b" covers the band above, and so on. I've concentrated most on the smallest "a" band because it's "a" that has the fewest original graphical variants - "b" has plenty, some of them really neat. It's also in "b" that you get the first two-tier stands in the original, and I've changed the .json to (hopefully) take those out because I don't think it's especially realistic.

So far, this is what I've deduced:

  • "Top", as referred to in the .json and in the corresponding directory, is the two main, "long" stands. Reason I think that: it's these ones that have PLAYER_TUNNEL references. Note: I used to think "top" was the stands behind the goal and I haven't yet changed those directories with "no stand" _xrefs in "top" so that it's "right" that's the spartan one.
  • "Right", confusingly, refers to the stands behind each goal. Reason I think that: they never have tunnels. Also, their capacity is always slightly lower, and they're not the first ones to start getting double tiers.
  • "Corner", is as you'd expect, the bits that fill in the corners of the ground. For small stadiums, these will almost always be empty barrier walls.
  • Within each xxxx_xrefs directory are the individual graphical pieces/options that together make up an individual design. Some will have a roof, for example, while some won't. Some have an end wall. Some are scaffolding-type bleachers, some are concrete stands. And so on. I don't know if deleting an option - a type of roof, say - within one xrefs directory will prevent it being picked as an option (since it'd surely still be listed in the directory's corresponding .sia file) or if it'll simply fail to render as a missing asset.
  • The call made in the .json for each section of ground (for example name : "MEDIUM_STEPS_PLAYER_TUNNEL"doesn't define the default look of each section. In my current version of the .json I've changed everything back to MEDIUM_STEPS_EXITS because that seems to be the expected default and doesn't seem to stop other designs appearing with equal frequency. I was also hoping to cut out a couple of graphical glitches (see below) doing this, but failed.
  • If there is more than one section listed between the square brackets after "steps:" (for example, c/top has two), each section is a tier, and tiers are set from bottom up. Reason I think that: it's the first section that has the tunnel.
  • Tiers are built like a flight of stairs and are picked from the range of available builds, layering one above and behind the other. This can result in anything from a "classic" two-tier stand built from two sets of steep seating with exit tunnels with a guard wall at the front of the upper stand to a Stade Velodrome-style smooth progression of simple steps all the way up.

And here's what I've deciphered of the JSON tags in each entry in the file:

capacity_tags: ???

hash_key: ???

id: ???

name: the location FM will look for this section's .sia file and _xrefs directory.

steps: how it builds the stand; more than one section within these square brackets will mean more than one tier on the stand. Edit: Not so! I should've paid more attention to "e" and "f". I think this might actually be a way of setting different options. "f" has versions of LONG_, MEDIUM_ and SHORT_EXITS_STEPS both with and without tunnels, for six steps in total, so this can't be tiering, or at least not as straightforwardly.

capacity: how many people the section can hold; I presume FM adds together capacities to make a ground total equal(ish) to the stadium's listed total capacity. There doesn't seem to be any difference between different graphical options; a blocky concrete stand and a little-large-little scaffold stand both pulled from "b" will hold the same number of people. I think it builds main/tunnel stand first, then the opposite stand, then the two stands behind the goal, so if it picks a big one for the main stand (from "c" say) it may pull a smaller one (from "a", say) for the other long stand, then have run out of spare capacity and leave nothing behind the two goals.

hash_key: ???

name: what I presume to be the base, default graphical building block of the section of the options in _xrefs. Varying this doesn't seem to do much.

section: here comes the crowd maths, I guess

capacity (top one): same as "capacity". I presume some kind of max crowd size but mostly ??? I've not tried varying any of these yet, beyond making sure the top one matches the overall one.

capacity (middle-top one): ???

capacity (middle-bottom one): ???

capacity (bottom one): ???

tunnel: boolean, tells FM whether there might be a player tunnel or not.

 

Results So Far

By providing more results in the standard capacities in the "a" range, and a few more in "b" and "c", I think FM is more inclined to mix its smaller stadiums and it's definitely much more disposed to have small stadiums with only two stands, rather more realistically. From experimentation there's clearly some kind of setting for clubs within the database that means they render consistently within their size range (Boden's ground in Sweden is particularly distinctive, as is Konyaspor's), but I have no idea how, and since I'd have to copy the unmodded files back and then go messing around again, I haven't had time to play with it.

There are flaws, though. I've noticed a couple of graphical glitches where certain assets - one type of seating for scaffold-style stands, low, unroofed steps on concrete-style stands - don't render for the stands opposite the main/tunnel stands (and nor do spectators on them, though their shadows do). See an 800-cap ground here - http://imgur.com/leEsuCj - or a 1,500-cap ground here - http://imgur.com/TSyTHUe

I'm hoping that this might be an artifact of the deleted corner assets in the "ad" directory, some weird glitch carried over that can be sorted by getting rid of "ad". Otherwise, I'm at a loss, unless there's some odd path within an .sia file somewhere relying on the file being in "b" directory (where I copied them from). Without being able to edit .sia files, I can't know for sure (I've not tried renaming them to .xml and seeing if that's all they are, of course...).

There's also Sandvikens IF. There are other examples, but their ground is the worst. I've been testing on Sweden which has loads of small grounds, starting a new save each time (because ground generation is fixed the moment matches start being simulated), and starting with the D2N and working down through home games, I soon come to Sandvikens IF. Used to be a big club, but not any more. The ground has a 4,000-cap in-game as I recall. In reality, it looks like this: http://www.groundhopping.se/Sandviken.htm

That's empty behind both goals, the nearside stand just a grass bank with some wooden benches at the top, and the main stand quite a neat example of a railings/scaffold/seats type of the kind that's right there in the graphics assets. Here's how it renders without fail every single game: http://imgur.com/9NXFp5k

Even after taking multi-tiers out of "b", I still get that hideous unroofed main stand. Empty behind both goals, single-tier on the nearside, and that monstrosity leering at me. Very annoying. It's probably removable by changing capacity values at each stage so multi-tier really won't kick in until at least 8-9,000 (or maybe not even within the 0-10k range at all), but I've not had the time yet.

On the upside, there's a sign there and in the 800-cap glitch screenshot of Lindome's ground above that quasi-athletics tracks might be possible because there's a coloured border strip around each pitch. Lindome's is more or less the right shade for a running track. No way of setting that in the .json though.

Edited by cregan
Missing/typos
Link to post
Share on other sites

Minor further update:

  • The graphics glitch maybe because SI's naming scheme for the base steps structure is inconsistent. I thought I'd got it the right way round but I'm pretty sure I've goofed a couple of times which is why the steps (which underlie the whole structure) weren't appearing on certain stands. "a" stadiums have MEDIUM_EXITS_STEPS in their "top" parts list. "b" stadiums have MEDIUM_STEPS_EXITS in theirs (and, because reasons, MEDIUM_EXITS_STEPS in their "corner" parts). :idiot: That JSON in the pastebin link has it wrong at least once. I finally figured this out by reverting to my first version of JSON and folders which throws up no glitches at all. Later versions don't actually seem to improve variation at all, not noticeably anyway, so maybe this is better. (Part of that may be because individual .sia files call on the resources of others via fixed paths - pulling assets from "b", for instance - so other than presenting the game with a wider set of graphical options within a given capacity range, by offering "aa" that then routes to "b" and "no_stand", further variants probably won't add anything.)
  • The .sia files I assume are Silo 3d graphics scenes, but Silo (at least, the downloadable version from the Silo website) can't seem to open them. I tried editing the readable part of one of the "no stand" files to get rid of the brick wall behind the pitch, again for variation, because you can see the texture paths called on, but no success. That's a dead end for me, I think.
  • Even dropping all the multiple section references from "b-f" doesn't stop multi-tier stands appearing, nor does it restrict them to short exits. Damn you, Sandvikens. Just... damn you.

In all honesty, I might be at my limit here. Unless it were possible to dig in to the existing .sia files (or create new ones - a chainlink fence mesh that would offer an alternative option to brick walls set in prop_metadata.json, for instance), or set stadium properties in the database, giving small "a" class stadiums access to the resources of "b" and "no_stand" is probably as good as I can get it.

Link to post
Share on other sites

I don't want to redistribute SI assets other than copying my JSON, but as luck would have it, here's a final step-by-step if anyone wants to give it a whirl, or mess with things further, and it's all actually pretty easy, just a matter of copying a few directories into the right places:

 

Before going further - terms and definitions:

Root directory: 

(path to steamapps)/common/FM)/data/sigfx/stadiums

All directory paths will start from here (e.g. “/root/0-10000/a/“).

Source resources: 

These come in pairs, the xxxx.sia and the matching xxxx_xrefs subdirectory, and they're what you'll need to copy/paste into the new directories. In reality you probably only need the .sia because they seem to point to assets in the original directories - so my top.sia in “ba” will pull graphics from top_xrefs in “b” - but for safety’s sake it’s probably best to keep them together. For clarity, I’ll refer to them like this:

#noright: this is /root/no_stand/right.sia and right_xrefs. It gives you no stand behind the goal, and while it might be called by the game by default sometimes anyway I use #noright in the new folders.

#notop: this is /root/no_stand/top.sia and top_xrefs. It gives you no east/west stand. I haven’t copied #notop anywhere myself (FM’s not bad at calling it for grounds of 500-cap and below) but it’d be an option if you wanted to try creating a single-stand stadium option for sub-1k.

#nocorner: this is /root/0-10000/no_stand/corner.sia and corner_xrefs. It gives you just a wall for your corners. Most small grounds call this anyway, but I copy #nocorner into most of the new folders.

#acorner: this is /root/0-10000/a/corner.sia and corner_xrefs. I’m not sure that this has any effect to be honest but I was hoping to get a slight variation from the basic “wall” corner by using it in one of the new folders.

#btop: this is /root/0-10000/b/top.sia and top_xrefs. The “b” assets are where all the fun stuff is. There are so many more options here compared to "a".

#bright: this is /root/0-10000/b/right.sia and right_xrefs.

 

Step 1: Backup

Copy your /root/stadium_metadata.json file and /root/0-10000/ directory to a backup location. If anything goes horribly wrong, you can copy and paste these back.

 

Step 2: Create your directories

In /root/0-10000/ create three new directories called “aa”, “ba” and “ca”. If you call them something else you'll have to edit the JSON to match down in Step 4.

 

Step 3: Copy assets into them

Into /root/0-10000/aa/ you want to copy and paste #nocorner, #noright, #btop.

Into /root/0-10000/ba/ you want to copy and paste #acorner, #noright, #btop.

Into /root/0-10000/ca/ you want to copy and paste #nocorner, #noright, #btop. (And yes, this is the same as “aa”, and yes, this may be needless duplication. It will give you an easy directory for making any tweaks to capacity settings in the JSON though, and doesn’t do any harm. You could also swap #noright for #aright here if you wanted to maybe get fewer two-stand grounds sub-1,500ish capacity.) 

 

Step 4: Set the JSON

This is my entire /root/stadium_metadata.json file: http://pastebin.com/NpZBTPUi

Delete the existing contents of your /root/stadium_metadata.json and paste everything from that pastebin in its place. The JSON assumes you've copied the assets in Step 3. I've used a variety of calls for "name" rather than the default "medium steps" options. I don't know if doing so makes the slightest bit of difference, but given that hideous naming inconsistency between the otherwise identical "medium steps" of "a" and "b", it avoids calling the wrong one and getting missing assets.

 

Step 5: Backup again

Game updates may (probably won’t, but may) overwrite all this, so you want to backup your modified /root/stadium_metadata.json and /root/0-10000/ directory into another safe place so you can copy it back.

 

Finished!

 

The game generates stadiums from available modules according to some kind of style setting in the database (I imagine) that relates somehow to the .json. It sets which modules it’ll use for each stadium, as far as I can tell, the first time it simulates a match at full detail for that ground. Once modules have been set I don’t think they change (after running so many Swedish test saves and looking at so many stadiums I’m simply not sure any more) - if MyClub FC has “single-roof box stand tunnel east, unroofed box stand no-tunnel west, no stand north/south” flags set after its first match, that’s what it’ll be on that save no matter how much messing you do with the JSON afterwards. The only way of altering grounds once set is by deleting assets, which will leave those sections empty. We don’t want to go deleting assets, though, do we?

This version seems to be glitch-free and offer a reasonable amount of variation given what I've got to work with. I'd love a GRASS_BANK option, for instance, or a CHAINLINK_FENCE, but without being able to add assets from scratch and edit .sia files to call them, that's impossible. Likewise, I wish I could stop the game calling the same blue shipping containers and traffic cones so often, but them's the breaks. I haven’t messed with any of the capacities here, but if you wanted to I’d advise shifting them upwards from the baseline “a” capacities to avoid multi-tier stands appearing unrealistically early. 

I’ve considered adding in an “a_tiny” variant using #notop, #noright, #nocorner and the capacity settings from “a”, as well as a #nocorner, #btop, #bright “a_plus” variant with capacity between “a” and “b”, somewhere around 800 for the top stand and around 5-600 for the right stand, and a “c_minus” variant using the capacities for “c” but #nocorner, #btop and #bright or #nocorner, #ctop and #bright. I don’t, in all honesty, know how much difference that’d make though given that I’d expect larger grounds to be more “fixed” in the database in terms of their overall style.

I've also considered, but not played with, trying to use the glitch I suffered before when calling something with the wrong name to sometimes artificially get rid of the brick wall behind the goal (and the corner walls that join it) when there's no stand there, by, for "ba", say, calling "NOCROWD_PARTITION" in the JSON entry for ba/right and ba/corner instead of "CROWD_PARTITION". If this worked, it'd look for an .sia file that doesn't exist and fail to render the wall asset. This'd give more variation between different two-stand grounds. I haven't messed with it, though.

Edited by cregan
one forgotten note
Link to post
Share on other sites

If it looks like everything's broadly similar (how the JSON's organised/written, how the default folders are laid out), I'd assume so. So long as you back up first, it doesn't take long to tweak & test, so the possible time wasted and risk factor are pretty small. :thup:

Link to post
Share on other sites

7 hours ago, gavo01 said:

Can I assume this will also work for older versions of FM, as long as the file structure is the same?

It may work on FM16 as that is the one that switched to using the json file type, previous versions had the same information but stored in xml files so the same kind of thing should work but the actual coding will be slightly different.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

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