Master League Promotion/Relegation Tool

MLPR Tool​


This tool has been born out of a necessity to force promotion/relegation to and from leagues that can not currently promote/relegate by traditional in-game automation in Master League. An ongoing frustration of the game led to a rethink in tactics and the idea of editing the Master League Save was born. Through a lot of studying of bytes (and there's a lot) @zlac and @SMcCutcheon have found a way to swap selected IDs resulting in a text mode app (no GUI - oh shock and horror!!!) that performs promotion/relegation between leagues where required.

The tool is opening the door to patches containing added lower leagues.

Limitations, Bugs & Advice - PLEASE READ!

This is not a free-for-all team swapper for each and every competition in the ML file. For example, you can not swap a Brazilian team for a French team as the difference in calendar start dates would cause mayhem and an inevitable crash.

The tool works only for ML files - no support for BAL or League mode

There is a visual 'bug' with the home screen once the edited save is loaded. The league table will be blank until the calendar has been advanced once.

This is not a patch containing new teams, leagues, or any other patch-related content. That is up to you!

Several competitions were required to be 'protected' to resolve various issues arising such as teams that qualify for a Super Cup remaining in their spot as they have earned it from the previous season.

Some advice for creating a 2nd or 3rd division. In eJog's editor unmark the 1st Division checkbox in the competition regulation tab. This will stop the top teams in the newly created 2nd/3rd/4th division qualifying for Champions League, Europa etc based on their league position. Deleting domestic cups linked to your 2nd/3rd/4th division is also advisable although not 100% tested.

This tool does not rectify the issue of how many games are played per season in an edited league structure. This is the final issue in ML as far as league structures are concerned.



We'll be happy to answer any questions based on our knowledge of Master League but please remember WE ARE NOT A WISHING WELL

How to use Instructions:

Unpack contents of Download into your chosen new folder; Example ‘ML PR Tool’

In game:

Navigate through the season of Master League until you reach the last day of the season.

Note down the names of the teams you will be promoting/relegating based on final league positions.
ML Relegation Tool

Go through to the next season in game and immediately save your ML Save

Copy your ML save (e.g. ML00000000) in to the folder \ML PR Tool\temp\in

Double click the ML_promote_relegate.exe (On 1st attempt your Security may suggest the. exe is a virus, you may need to set it as exempt. It is of no threat to your PC)

Enter your ML Save Name and press enter

Select 1 then Enter

Start searching for the teams you will be promoting/relegating. Note down the ‘Team ID:’ of each team.

Continue searching for each team, noting down each ID

Select ‘N’ when you have completed searching for your IDs. Select Option 2 and enter the ID of the first team you will swap. Followed by the ID of the team you will replace them with. Select ‘Y’ when you’re happy with your selection.

Your 1st teams will have swapped position. Repeat Option 2 steps until all your promotions/relegations are complete.

Select Option 3. Save and exit

Copy your ML save from your ‘Out’ Folder back to your Konami save folder. Load this save in game.

Once loaded it is normal for the league table on the ML home screen to be blank. This will correct itself once you have proceeded to the next day.

Do not upload elsewhere. If shared to another site then use the download link here.

@zlac Tool creation and data research - Pestered Genius
@SMcCutcheon Data research and Tester - Pestering Instigator
@Andre1992 Data research and Tester - Experimenter Extraordinaire

[Sider module] Scoreboard Server v1.50 for Sider 6.3.5+/7.1.4+

 Current version: 1.50

Minimum version of Sider required: 6.3.5+ (6.3.6 or newer highly recommended) for PES 2020, 7.1.4+ for PES 2021

Quick Start section:

How to use:

[ONLY if you had initial v1.0 installed] Make backup of your old v1 version of Scoreboard Server content\scoreboard-server folder and then delete content\scoreboard-server folder

Unpack v1.10 archive and copy folders content and modules to your sider folder (overwrite if asked)

Unpack v1.50 archive and copy folder modules to your sider (overwrite if asked) (v1.50 includes all of v1.40, v1.30, v1.20 and v1.11, those three are not needed any more for fresh install)

(If not done already) Download and install CommonLib.lua v1 (follow the instructions for CommonLib installation!)

(If not done already) Add lua.module = "ScoreboardServer.lua" under CommonLib in sider.ini file

[Optional] Customize map_competitions.txt files (located inside content\scoreboard-server folder) and add your own folders with scoreboard files in content\scoreboard-server folder


1. Link v1.10 (base pack, no scoreboards) - Please, do not re-upload to other services

2. Link v1.50 (.lua script update) - v1.10 base pack is required as pre-requisite - Please, do not re-upload to other services

3. Link - mini-scoreboard pack for PES 2020 from various evo-web users (credits to Unknown32, spursfan18, Spursfan07, 1002MB, predator002, ryudek, Cesc Fabregas, Andò12345, Hoppus117 ) - all folders include new short introductory anthem .mp3 files made by predator002 , but not all of the folders include actual scoreboards)

How to apply the scoreboard pack: download it from the above link, extract the archive, and overwrite the current content folder in your sider with the content folder from the scoreboard pack.

[NEW v1.5] Support for team vs team match-up scoreboards that do not need contrasting-color variations

simplification of the v1.4 scenario (see [NEW v1.4] info below for more details) - suitable for scoreboards that only need team-specific gfx (logos, flags, ...), but not the contrasting-color nameplates

team vs team match-up could have been simulated with contrast_names_teams setup from v1.40 too, but at the expense of overall scoreboard size on disk (although only one set of files per team-vs-team matchup is really needed, that set would have to be repeated 4 times within "DarkHome_DarkAway", "DarkHome_LightAway", "LightHome_DarkAway" and "LightHome_LightAway" subfolders)

new dedicated team vs team matchup only, without contrasting colors, in v1.50 eliminates the need to repeat identical files 4 times, therefore reducing overall SB size on disk

unlike v1.2/v1.4 scenarios (contrasting colors), this one does not depend upon reading unicolor values of participating teams, so it should work for unlicensed teams too

required folders structure - it is almost identical to the v1.4 setup for contrast_names_teams scenario

exact folder name "flag_teams" must exist in SB root, then

"home team ID number" as subfolder of "flag_teams", and then

"vs Away team ID number" as subfolder of "home team ID number", and then

usual scoreboard contents hierarchy (at least common\menu\licence\game2dPes.bin file) goes under "vs Away team ID number" folder

you can have as many Home Team ID subfolders as you want

every Home team ID subfolder should contain all the possible Away Team ID opponents as subfolders - if you omit any away ID subfolder, game will most likely revert to original PES scoreboard whenever there will be a match vs the omitted team

example: should Croatia (team ID 24) play a World Cup match as home team vs Morocco (team ID 32) using FIFA WC scoreboard, scoreboard server will:

first try to pull scoreboard-related files from FIFA WC\flag_teams\24\32 folder

if these do not exist, it will fall back to the main scoreboard files - FIFA WC\common\..., FIFA WC\movie, etc.

for the same reasons as v1.40 setup (contrast_names_teams), this mode is also not suitable for general purpose scoreboards, but for the competition specific scoreboards

[IMPORTANT] to avoid potential issues, new flag_teams scenario should not be used together with old contrast_names or contrast_names_teamswithin the same scoreboard

your scoreboard should either need flag_teams functionality or contrast_names/contrast_names_teams functionality, but never both at the same time

having scoreboard files under all flag_teams, contrast_names and contrast_names_teams folders within one scoreboard is not recommended - delete the folders that are not needed


Ball Server v1.30 "Winter, oh Winter!" edition

New features in v1.30

"use winter balls only when it is snowing" (introduced in v1.20) cannot be selected on overlay anymore - it has instead become a new default rule to serve winter balls for all competitions!

new default rule to serve winter balls for all competitions, TL/DR version: it has to actually snow (snowy weather) for the Ball Server to offer winter balls

it does not have to be a winter season at all :) - as long as it snows, the ball server will provide winter ball for the competition (if one exists in GDB) - so if it starts snowing mid-May, you'll still get the winter ball

for leagues that have fixed weeks when winter balls have to be used, there is new map file: map_winter_weeks.txt

only if a league is listed in this new map file, it will always use winter balls (which are assigned in map_competitions.txt) - it does not matter is it is snowing or not, winter ball will be used as long as the match falls in-between defined start/end weeks

if really needed, it can be restricted further to use winter balls within given weeks only if it is snowing too

this new map file only specifies week ranges/intervals when winter balls must be used - the ball itself is still assigned in the map_competitions.txt file

the term "week" is synonymous with the league match day - e.g. "Week 1" is actually Day 1 in a league (from the possible range of e.g. Day 1 to Day 38 for the league with 20 teams/2-rounds-each; or range Day 1 to Day 46 range for a league with 24 teams/2-rounds-each; etc.)

important: the "Week" is read from the sider property ctx.match_info - if match_info is 0, that means we have "Week 1" or Day 1 in the league; if match_info value is 37, the week is 38 (always +1), etc.

important: since "week" detection relies upon sider's ctx.match_info property, this new map file (map_winter_weeks.txt) CANNOT BE USED for cup competitions or in exhibition mode!

The concept of a "week" makes no sense in a cup format, and even more important - sider cannot provide such info for cups

Exhibition mode - the same

all cups and exhibitions follow the new default rule - only if it snows, use winter ball

examples: here

and yet another completely new map file map_HiVis_winter_balls.txt, used to define only the special super-hi-vis winter balls - e.g. if a league has a regular yellowish winter ball which is always used during winter weeks (that yellowish ball would still be assigned in map_competitions.txt file), that same league may have different orange/red winter ball only for the low-visibility, heavy-snowfall situations
entries in this file are fully optional - if a competition is not listed here, it will still use its' standard winter ball assigned in your old map_competitions.txt file
makes no sense to use for leagues that have only one universal winter ball good enough for super-bad winter weather too (such as Ligue 1, which tends to use orange/reddish winter balls as the standard winter balls) - in that case, having only the old entry in map_competitions.txt is enough - define that universal winter ball there
Danish league for example does have two different winter balls prescribed
the yellowish one (for fine weather winter matches) goes into map_competitions.txt file
and the special snowfall ball which goes into new map_HiVis_winter_balls.txt file
if both types of winter balls are assigned to a competition (in map_competition and in map_hivis), then the ball from map_HiVis_winter_balls.txt file always has priority
unlike new weekly map file (which is usable only for leagues), this file can have effect on all types of competitions!

example: here

The biggest unavoidable change in v1.30 is the new default rule for switching to a winter ball ("only if it snows"), nothing is changed in map_teams.txt and in map_competitions.txt
new map file map_winter_weeks.txt enables you to keep the old seasonal way of using winter balls for the leagues that need it - BUT with more precision now, since it supports start/end week style, instead of serving winter balls throughout entire winter season
new map file map_HiVis_winter_balls.txt for the fully optional super hi-vis snow balls for snowy weather, which will override ordinary winter balls

How to use:

a) Installing Ball Server for the first time: Unpack the v1.1 7z archive and copy unpacked folders content and modules inside your sider folder (folder where you have sider.exe file) - overwrite, if asked
b) Upgrading to version 1.1 and/or using various ballpacks already: Unpack the v1.1 7z archive, delete map_teams.txt and map_competitions.txt files from unpacked v1.1's content folder first and then copy folders content and modules inside your sider folder (folder where you have sider.exe file) - overwrite, if asked
(If not done already) Download and install CommonLib.lua v1
(If not done already) Add lua.module = "BallServer.lua" under CommonLib.lua in sider.ini
[Optional] Customize map_teams.txt and map_competitions.txt files and add more ball folders in the content\ball-server folder (more instructions can be found inside .txt files)
[NEW v1.20] After ensuring you have a fully functional Ball Server v1.1, download and unpack v1.2 zip archive and copy unpacked folder modules inside your sider folder (folder where you have sider.exe file) - overwrite, if asked. Map files are not provided with version 1.2, only the replacement .lua script
[NEW v1.30] After ensuring you have a fully functional Ball Server v1.2, download and unpack v1.3 zip archive and copy unpacked folder modules inside your sider folder (folder where you have sider.exe file) - overwrite, if asked. Only the .lua script and sample versions of the two new map files are provided in v1.3 download

1. Link v1.1 (base pack with .lua script, no balls included) - LATEST version, with search by-name support - read THIS POST to learn more about searching
2. Link v1.2 (only replacement .lua script included - requires already working version v1.1 to be installed) - more info on v1.20 features in THIS POST
3. Link v1.3 (only replacement .lua script and sample versions of the two new v1.3 specific map files - requires already working version v1.2 to be installed)


Small update for Kitserver: v1.12

You probably will want to get this version, if you are also using the new SleeveBadge-ArmbandServer by Hawke and juce

The reason why you'd want to update your Kitserver (just the kserv.lua, nothing else), is because the previous versions were all hiding sleeve badges on CompKits (competition-specific kits) by basically moving them out of sight into extreme positions. This was done, because sleeve badge loading was

Commentary Server by nesa24

What is it?
Sider module that changes commentator of game based on Home team id

How to install?
1. Download module and place it in sider/modules folder

2. Add commentary-server.lua to sider.ini. Like this:
lua.module = "commentary-server.lua"


PES 2020 - 2021 [Sider module] Scoreboard Server v1.40

1. Link v1.10 (base pack, no scoreboards) - Please, do not re-upload to other services
2. Link v1.40 (.lua script update) - v1.10 base pack is required as a pre-requisite - Please, do not re-upload to other services


PES 2020/2021 [Sider Module] Gameplay Loader 2.6 by Baris

Gameplay Loader

New Sider Module to change any gameplay mod for eFootball PES 2020/2021. Thanks to Baris for this module. Sider 6 is required to use this module.

Injecting randomly a gameplay mod per match
Manually selecting a gameplay mod
Saving favorite gameplay mod
Adding unlimited gameplay mods is possible