I have packed a GitHub project with all current files about KyrO's Lobby, legacy code and the code from OP for whoever wants to tinker around with the code, or simply to save it for legacy/nostalgic reasons:
https://github.com/magge-faf/KyrOs-Lobby
I have used the modified lobby for so many years, it was unfortunate to see that the original developer had abandoned the project for unknown reasons.
The latest Lobby, from OP, will probably have bugs and could lead to unwanted side effects for host and clients. Officially, it is not supported.
Some background about the lobby:
- The lobby.lua file has ~10k lines in total, ~3k were added by KyrO
- KyrO, macdeffy and any other who tinkered with it have not used git. May the force with you if you try to follow all the untracked changes
Fun fact: Chinese language supported was added, and macdeffy added scaling for the GUI as well.
How the development cycled:
KyrO used a version of FAForever's lobby.lua from the year <2017 and modified it by several enhancements and QOL functions. The last time he was active on this project, was on his Google Group, back in 2018. Since then, it broke several times, when FAF updated something on their end.
It got hackish "fixed" by other FAF members who knew a bit about coding and several, different versions for several iterations of other FAF versions were shared via the Forum attachment function from 2018 until today. Yeah, messy.
Coding environment:
This legacy code is not intended for beginners, you will have a very bad experience working with that huge file. If you are interested with LUA, head over to https://www.codecademy.com/learn/learn-lua
However, feel free to ping me if you need further information about this project. I am not familiar with LUA, but happy to help.
Future hopes:
Integration of following three personal favorite QOL features:
- Auto move me to my favorite spot for each specific map, when slot is free.
myslot = function(self, params)
- Swap lane players with one click
SwapPlayers = function(slot1, slot2)
- The SwapPlayers stuff is directly connected to the entire visualization of the slots, related to the starting points for the players in the map. I think that is one of the harder parts to integrate, because it can break so easily, and the current implementation is incredible hackish. But if you see it once, you never want to go back.