LosaDev - 2021 example set (232LSK source, 231-hero client): one machine, everything on 127.0.0.1
Tested 2026-11-07: all 9 servers start, test accounts log in (CONNECT_OK). Client UI not tested yet.
Guide: https://losadev.wiki/guides/source-2021/#run-it-locally

server\   one folder per server + global_define.ini. Copy each exe in, plus iocpSocketDLL.dll,
          frametimerdll.dll, CrashFind.dll, dbghelp.dll, GAuthClientDLL.dll (from the source lib\).
          Also needed, from the source repository:
            ls_dbagent_game\ls_query.ini and ls_dbagent_logdb\ls_query.ini  <- server-config\ls_dbagent\ls_query.ini
            ls_gamesvr\config\                                             <- server-config\ls_gamesvr\config\ (keep tables\ from here)
            ls_billingsvr\config\GoodsList.ini, GoodsName.ini              <- src\ls_billingsvr\config\
            ls_gamesvr\config\tables\LSC_SnakeLadders_Move.dat             <- client resource\tables\
          The other tables\*.dat are EMPTY tables with the server's header version: the real server
          tables are in no release (dice event, practice, gashapon box, hero items/weapons, excavation
          have no data).
db\       00_logins.sql (logins lstggame/lstglog), then the three source scripts
          (LosaGame_Log.sql, LosaLogData.sql, LosaGame.sql in that order), then 04_accounts.sql.
          Put the encoded password (ls_dbagent.exe -x <password>) into both ls_dbagent.ini files.
tools\    lskey21.cpp builds the client login key (cl lskey21.cpp seed.cpp seedenc.cpp with the
          three files from src\ls_gamesvr\Encode\ and a StdAfx.h that includes windows.h).
          lslogintest.cpp sends the client's first packet and prints the server's answer.
client\   start-client.bat (put it in the client folder's parent, next to tools\, or edit the paths).
          In the client set config\sp2.ini log_server_port=21013 and config\sp2_guild.ini
          file_server_port=21030.

Listen address: the stock servers listen on the address of your network adapter
(gethostbyname of the host name), some on 0.0.0.0, NOT on 127.0.0.1. Either
  - set LS_BIND_IP=127.0.0.1 before starting (the community repository reads it), or
  - replace 127.0.0.1 in global_define.ini, ls_relaysvr.ini, ls_loginsvr.ini, the client launch
    address and userLoginDB.userIP / the IP key with your LAN IP (one active adapter only).

Start order (each from its own folder): ls_dbagent game, logdb, logserver; ls_mainsvr; ls_billingsvr;
ls_gamesvr; ls_relaysvr; ls_loginsvr; ls_filewritesvr.  Command: <exe> -c <its ini>.
Ports: main 21000/21001, DB agents 21011/21012/21013, billing 21021-21023, game 21009 (client)
/21031/21032, relay 21055, login 21005, file write 21030. Passwords are CHANGE_ME.
