# GDB-style unlimited stadium management – add as many stadiums as you want in a GDB-like folder structure
# Mostly unchanged stadium packaging – stadium structure remains almost identical to the .cpk version, meaning that entire stadium directory tree (starting with “Asset” and “common” folders) can be copy-pasted into one top-level GDB folder. These folders (and their subfolders) from the usual stadium-related cpk-tree are currently supported:
for adboards – only config.xml is supported, for stadiums that need to REMOVE adboards completely!!
IMPORTANT: db files (common\etc\… data_st_list.bin, Stadium.bin, StadiumOrder.bin, StadiumOrderInConfederation.bin) for stadium registration are not required. DO NOT INCLUDE THOSE!!
IMPORTANT: by default, competition assignment would always take priority over team assignment in any game mode, but that can be easily configured within .lua script.
To override this default behavior, you can slightly modify StadiumServer.lua script itself – add/remove competition IDs in override_competitions table, thus defining more or less competitions where individual team assignments from map_teams.txt takes priority over competition assignment from map_competitions.txt
Default stadium server script already includes an exhaustive override_competitions table, which should cover all available exhibition, league and league-cup matches – so that you can keep individual stadiums for those teams that already have one in map_teams.txt, while all the other teams without individual stadium would get randomly selected stadium from map_competitions.txt
## Support for optional stadium to be used in final match of the competition only – again, pretty much self-explanatory. See map_competitions.txt file for more details
CAUTION: if multiple stadiums are assigned to a single competition and you want to use specific stadium for finals, then you must include stadium for final match IN EVERY stadium assignment. Spoiler: https://pastepub.com/spoiler-1/
# Manual stadium selection via in-game overlay – manually selected stadium has highest priority and overrides any assignments made via map_*.txt files
# Exhibition mode behavior – stadium assignment logic is in-line with the usual game behavior:
IMPORTANT: Stadium server will be active in exhibition mode ONLY if you have selected one of the following:
“Home ground” setting in stadium menu or
“Random” setting in stadium menu or
Manual selection of stadium via sider overlay
This enables you to use any stadium from your .cpk pack and additional stadium server’s stadiums side by side.
“Random” setting in exhibition mode is going to select stadium either from your .cpk pack or from stadium server’s repository.
Complementing this, an additional lua table is available to be customized inside the sctipt (teams_with_cpk_homegrounds table), to customize which teams should keep their .cpk+EDIT assigned home grounds (e.g. Barcelona -> Konami’s Camp Nou, Team X -> Stadium X from your .cpk, etc.).
# Correct stadium previews and stadium names – displayed in game menus (where available, depending on game mode) and scoreboards
# More/less detailed level of logging – in config.ini file, property “detailed_logging” controls whether more info will be logged to sider log (value “1”) or less info (value “0”)
1. No support for replay mode yet – if you’re going to watch a saved replay of a match that has been played on custom stadium, you’ll see black screen with adboards only during replay at best (perhaps it may also crash the game) – current version of sider does not support replay gallery!
2. adboards handling – by default, stadium server does not allow for custom adboards embedded within stadiums.
It works safely only with special blank adboards template (which should be used only to fully remove adboards from stadiums) and allows for supplying a custom version of config.xml database for adboards (to assign blank template to the stadium).
Custom adboard models, “baked” directly into stadium 3d model are neither safe nor meant to be used via stadium server – adboards available via global ad-boards system (.cpk files or sider’s live.cpk root) should work well with stadiums from stadium server too!
3. IMPORTANT: cooperation with other .lua scripts that use “set_stadium” and “set_conditions” events – unfortunately, because of the way the stadiums are structured and handled by the game, it was necessary for StadiumServer.lua to use set_stadium event exclusively to force the game to use the exact stadium ID of the new stadium, in order to load all the files that belong to that stadium.
Another approach, which would not “steal” set_stadium event (i.e. trying to override the files of any stadium that the game would like to use) did not prove successful, because stadiums simply are not file-for-file compatible, causing various artifacts when trying to replace e.g. stadium using ID 016 with custom stadium using any other ID
Bottom-line – if you want StadiumServer to work, you must not give HIGHER PRIORITY to any other .lua script that also uses “set_stadium” event to change stadium_id (i.e. StadiumServer.lua must be above any other “lua.module=” lines for scripts that use set_stadium event too)
Using other scripts that control weather conditions and time of day – stadium server works together with @Baris’s script “WeatherConditions.lua” – if weather conditions are NOT changed neither via stadium server itself (manual selection via ingame overlay) nor via cooperation with “WeatherConditions.lua” script, then you can still use 3rd party scripts that handle “set_conditions” event (but to be on the safe side of the story, place your set_conditions related 3rd party scripts below both StadiumServer.lua and WeatherConditions.lua in sider.ini
Recommended way to re-pack stadiums that are available in .cpk files
Although extracted stadium packs will most likely work without any problems, it would be ideal to use only one stadium per folder in content\stadium-server (but, it will be very inefficient in terms of consuming HDD space).
VERY IMPORTANT: Every individual ROOT GDB FOLDER (either for one stadium or for an entire pack) must contain all the necessary files, i.e. it has to be self-sustaining – it is not possible to e.g. borrow “common” stadium files from other stadium server root folders!! See this plea-thread for details
for example, stadium within “Goodison Park” GDB root cannot borrow any files from “MJTS pack” GDB root and vice versa
It is recommended to remove any files that are not directly related to stadium (especially common\etc\… files)
Once you migrate stadiums from .cpk files to GDB, you can remove .cpk files with stadiums from DpFileList.bin
How to use:
Unpack the v1.0 archive and copy folders content and modules inside your sider folder.
Add lua.module = “StadiumServer.lua” near the top of the Extension modules section in sider.ini
Add lua.module = “WeatherConditions.lua” directly below stadium server entry (directly below lua.module = “StadiumServer.lua”) in sider.ini
make sure to REMOVE (or comment-out with “;” sign) any other references to WeatherConditions.lua script or to EvoSwitcher\EvoWeather.lua script (if you use EvoSwitcher) from your sider.ini
Customize map_teams.txt and map_competitions.txt files and add more stadium folders in content\stadium-server folder (NO STADIUMS are included together with the script!!)
Please, read carefully all the comments inside map_teams.txt and map_competitions.txt files! Always use leading zeroes when writing stadium ID’s!
juce and nesa24 for sider
Baris for allowing me to bundle slightly customized version of his “WeatherConditions.lua” script together with stadium server. Thanks also goes to sltpn3 for fixing one nasty hidden bug within original weather script :)
shawminator for doing some pre-release tests
Hawke for putting togehter template for blank adboards
Compatibility with EvoSwitcher
Stadium server does not have to be embedded inside EvoSwitcher structure, it runs best when used on its own.
To avoid any potential conflicts with EvoSwitcher, please do the following changes inside your sider.ini:
Make sure you have ALL the necessary stadiums (at least @MJTS-140914 pack) in stadium-server’s GDB root
initial map_teams.txt file (and map_competitons.txt up to the point) already contain the necessary assignment lines for MJTS’s stadiums – all you have to do is to remove “#” marks in front of the assignment lines (but you need to have stadiums in GDB root “MJST pack” first)
PLEASE READ THE INSTRUCTIONS IN map_teams.txt file – there’s the link to a brief tutorial on how to unpack .cpk files made by @MJTS-140914
Add references to StadiumServer.lua and WeatherConditions.lua (in that exact order) ABOVE any other EvoSwitcher scripts
Disable EvoStadium.lua script – it is obsolete now, because Wanda Metropolitano will be assigned to UCL finals via map_competitions.txt file in stadium server
Disable EvoWeather.lua too – it is also obsolete now, because stadium server uses the original WeatherConditions.lua script that does the same job (EvoWeather.lua may not even be mentioned in sider.ini … that’s one step less for you to do, if so)
PLEASE, NO REQUESTS FOR ANY ADDITIONAL SIDER MODULES, SERVERS, SCRIPTS, ETC.
2. NoAds blank adboard template (thanks to Hawke)
Once extracted, template can be copy-pasted into GDB roots.
Config.xml file is NOT included … you need to edit your own global copy of config.xml for adboards and include that edited copy within your GDB root.