Properties3
| Type | Concept |
| Note created | Mar 9, 2026 |
| Last updated | Mar 18, 2026 |
The gameplay modules are Sider Lua modules for PES 21 that handle match logic, stamina, exhibition match customisation, environment settings, and gameplay mod loading. For the main gameplay overhaul, see 30 YEARS Simulation Version.
GameplayLoader
By Baris (v2.6, originally published for PES 2020 on pesnewupdate.com). Loads gameplay parameter sets from content/gameplay-loader/ at runtime via Sider’s livecpk system. Each gameplay mod is a folder containing the 9 standard constant_*.bin files at common/match/constant/. Supports switching between gameplay mods via overlay hotkeys (PageUp/PageDown to browse, 7 to set favourite, 9 to toggle random selection).
Available gameplay mods:
| Mod | Contents |
|---|---|
| Simulation_Version (favourite) | 9 constant_*.bin files extracted from Holland’s 30 YEARS Simulation Version dt18 CPK |
| Allstar Mix v1.1 | 9 constant_*.bin files |
| Allstar Mix v1.1-test | 9 constant_*.bin files |
| Allstar Mix v1.1b | 9 constant_*.bin files + 6 .o animation overrides |
| No Mod | Vanilla FL26 gameplay |
For the process of adding new gameplay mods, see Installing Gameplay Mods via GameplayLoader.
Custom modifications
Two fixes were applied to the original GameplayLoader code:
-
\rcarriage return trim — thereadMapTeams()function now strips\rfrom CSV entries via:gsub("\r", ""). Without this, Windows-style line endings (\r\n) ingameplay-mods.csvcaused the parsed mod name"Simulation_Version\r"to not match the favourite setting fromconfig.ini(which is parsed by a regex that naturally strips\r). This caused the favourite to silently fail and fall back to “No Mod” on every boot. -
load_ini()regex underscore bug — the INI parser regex([-%w%d. ]+)could not capture values containing underscores, because Lua’s%wmatches[a-zA-Z0-9](no underscore, unlike most regex flavours where\wincludes_). This causedfavorite_gameplay_mod = Simulation_Versionto be parsed as just"Simulation", which didn’t match any mod name. Fixed by changing the value capture group to([-%w%d._ ]+).
matchset
By juce (Anton Jouline). Part of the official sider7 repository. Sets match settings programmatically, including difficulty level (Beginner through Legend), extra time, penalty shootout rules, and number of substitutions. It differentiates between exhibition matches and competition matches.
env
By juce. Part of the official sider7 repository. Originally a debugging/diagnostic module that prints all Lua globals and the Sider context to the log. The version in FL26 may have been repurposed or extended to handle environment/weather settings.
Anti-Cheat
A Football Life-specific module. Despite the name, this is not about online multiplayer anti-cheat (FL26 is offline). It likely prevents external memory editors (such as Cheat Engine) from tampering with gameplay values during a session, enforcing the integrity of FL26’s gameplay tuning.
stamina
Modifies player stamina drain rates and recovery during matches. Aligns with FL26 v2.0’s gameplay philosophy of being “challenging, reasonably slower, and more tactically demanding, punishing haste.”
CustomExhibitionMatch
Extends the exhibition match setup screen with additional customisation options not available in the default game.
Libraries
Two shared Lua libraries support the modules above:
- CommonLib.lua — common utility functions shared across multiple modules (FL26-specific, not in the sider7 repo)
- nesalib.lua — shared library by nesa24 and juce providing INI parsing, memory caching, overlay UI, and input handling. Used by all camera modules and other nesa24 modules
Current configuration
All six gameplay modules (including GameplayLoader) and both libraries are active in my FL26 setup.