Kitserver 1.6 – Lua Module For Sider 6 and eFootball PES 20
If you are old enough, you may remember that the very first Kitserver (for PES 3) was a small program that allowed the game to load alternative kits (3rd, 4th, European, etc.). It was initially released in 2003. Over the next few years, Kitserver had grown into a more generic tool (kinda like what sider is now), but the original name stuck to it. And if you are too young – that’s even better! Then you won’t remember all the bugs :)
This sider module, written in Lua, is a new take on that original idea of Kitserver. It allows a lot of freedom in managing kits (uniforms), and also makes it very simple for anyone to draw their own kit and add it to an existng collection. This overall hierarchy of kits – we call it “GDB” (again an old name, which some of you might recognize) – is really just a way to organize kits into folders with a structure that hopefully makes sense and is simple enough to navigate.
Kitserver is brought to you by a team of people:
zlac, Hawke, Cesc Fabregas, mota10, Nemanja, juce.
We have also used information and reverse-engineering efforts of many folks over the last couple of years that helped to understand the format of UniformParameter.bin and other related files. So… without further ado:
Screen gallery here on imgur.
Kitserver 2020 v1.5 [Link]
– automatic selection of goalkeeper kits, using color-matching algorithm.
This comes into play only if you have more than 1 goalkeeper kit available for selection for either of the teams. In this case, Kitserver will try to choose a kit that is most different from the player kits of both home and away team – to avoid clashing with either of them. (Note that home GK is not compared to away GK, but only to player kits)
What is new in 1.6:
– extended ranges of allowed values for ChestNumberY and NameY kit attributes. You will need this, if you are using new sider 6.3.2 and Kit Studio v1.0.4.
Kitserver 2020 v1.6 [Link]
How to update your existing Kitserver: if you already using Kitserver, then you just need to replace modules/kserv.lua with the new file from the archive.
– contains a fix for GK labels from “1.4-update”
– automatically disables GDB kits for teams that are detected as non-licensed
Compared to 1.4, the 1.45 version brings a small new feature: it automatically disables kits from Kitserver GDB for teams that are unlicensed. So you don’t get any erroneous switching going on, etc.
Go on, download, and give it a try. The archive includes two sample kit collections: for Arsenal and Chelsea, prepared for you by our kit masters: Hawke, Nemanja, and Cesc Fabregas. Note that Chelsea kits are disabled by default – you will need to make sure you have Chelsea licensed, then enable its kits in Kitserver by uncommenting (removing the leading ‘#’ symbol) in map.txt. There is work in progress also right now to create more kit collections – for a lot more teams.
The “Editor” only becomes available in Edit mode: when you enter either Teams or Players section and choose a specific team.
Installation is easy:
1. Unpack the archive and copy the content and modules folders into your sider.
2. Modify your sider.ini and add kserv.lua to the list of Lua modules:
lua.module = "kserv.lua"
You will need a recent version of sider: Kitserver requires sider 6.2.0 or newer to work.
More detailed information will be in the next post, but here is a quick bullet-point list for what Kitserver allows you to have:
- unlimited kits for players and goalkeepers (for licensed teams only, right now)
- visual reference in pre-match menu: you see your selected kits, and you can also switch between “Player” and “Goalkeeper” mode
- in Edit mode, Kitserver provides a simple but powerful “Editor” of all supported attributes of a kit. So you can fine-tune the exact position of number on shorts, or size of the number on the back, etc. ( Many thanks to zlac – author of the Editor! )
- support for CompKits (competition kits), where Kitserver will load competition-specific kits, if they are specified for a given team for current competition.
Inside “content\kit-server” folder, you will find two map files: map.txt and map_comp.txt. Let’s start with the first one – map.txt . Its purpose is to link a team (by its id) to a folder that contains the kit collection for this team. So it has lines like this:
Folder structure is whatever you want to make it, but typically it makes sense to organize teams hierarchically: into leagues, maybe even continents. But a flat structure is also fine.
The second map – map_comp.txt – is used to assign short symbolic names to competitions. This names are then used in order files (order.ini and gk_order.ini) inside kit collections, to assign specific kits as competition kits (“CompKits”). This map looks like this – notice that a competition can have multiple ids, which are used during different stages of the competition:
2. Order files
Each kit collection must have two text files – order.ini and gk_order.ini. These are used to define the order in which the kitserver will switch them [with “6” and “7” buttons] – for players and goalkeepers, respectively. Also, in those files, you can define which kits should only be used for specific competitions. That’s where the symbolic names (defined in map_comp.txt) come into play. Here’s an example of how order.ini (for players) can look:
First section (without a name) contains the default kits which are used for league games, and also they are the first to show up in Exhibition mode. The “p1”, “p2” and “px-all-white” are names of folders that contain the kits – each folder has one kit. It does not matter how the kit folder is named, but it must to be specified in order.ini (and gk_order.ini – for goalkeeper kits). If the kit folder exists, but is not listed in the order file – it will be ignored by kitserver. Next section starts with a section name, surrounded by brackets – for example, [fa-cup] . That name must match one of the competition names defined in map_comp.txt. This tells kitserver that the following are kits to be used in FA Cup (English Cup) competition, and only those kits will be offered for choosing in that tournament. If no competition-specific kits are defined in order.ini for some tournament, then the default (league) kits will be used in that tournament. Only in Exhibition mode (and in Edit mode) you can cycle through all kits in the collection.
Default hot-keys for kit switching:
 – switch to next kit for home team,  – switch to next kit for away team
[ctrl+6] – switch to previous kit for home, [ctrl+7] – previous kit for away team
[shift+6] – start from 1st kit for home, [shift+7] – start from 1st kit for away
 – toggle between PLAYERS and GOALKEEPERS mode
3. Kit configs
Inside each kit folder, you will find yet another text file with a simple format of “name=value” lines. The filename is always the same: config.txt . Comments can appear in those files too: they start with “;” symbol. Kitserver reads and writes those files (in Edit mode, when “Editor” is on – any change gets immediately saved on disk). Most of the attributes are self-explanatory, hopefully. The only types of values that perhaps need explanation are colors – those are written in HTML/CSS format: starting with the ‘#’ symbol, followed by 2 hex chars for each of the Red/Green/Blue channels: #RRGGBB. You should make sure that all color attributes have correct values, because two things depend on them:
- Kit matching logic that the game uses when to choose non-clashing kits for home and away teams (UniColor_Color1, UniColor_Color2 which typically should have the same values as ShirtColor1, ShirtColor2)
- Undershirt and underpants to blend seamlessly with the kit (UndershirtColor, ShortsColor)
Texture file attributes – KitFile, BackNumbersFile, LegNumbersFile, NameFontFile – specify corresponding filenames for textures (FTEX files), but with the .ftex extension omitted. This is important to get right – otherwise you’ll be looking at blank white kits. The names of the files can be pretty much anything, although something short is preferred. However, they don’t need to have a team id in them or any special characters, and for example, can be named simply like this:
Kitserver will first look for texture files right in the kit folder, and if it cannot find them there, then it will fall back on the standard path of Asset\model\character\uniform\texture\#windx11 – which can be provided by LiveCPK roots or regular CPK files. I recommend keeping all textures for the specific kit in the kit folder, or in a team/competition folder in GDB (if several teams use the same textures for numbers/name, for example). This way kit collections stay self-contained and can be re-used across different patches.
It is important that a kit config contains all attributes – as seen in sample configs for Arsenal and Chelsea. If you only have a partial config, then you will see strange things happening during kit switching – as if some parts belong to one kit, and some other parts – to another.
Example: config.txt for Arsenal “p1” kit : https://pastebin.com/953xEnzm