#post 2 out of 6
so normal per-address anti-abuse throttling would treat my test rig like one machine opening too many connections. The bypass applies only to loopback traffic, which keeps it appropriate for local testing.
On the client side, I found and added six executable patches:
Offset
Patch
Reason
0x00588742
75 to
EB
Bypass the single-instance mutex so twelve clients can run.
0x003776E3
7F 11 to
EB 11
Bypass the first
AddPlayerError crash path during race start.
0x00377BDE
7F 11 to
EB 11
Bypass the second
AddPlayerError crash path.
0x003B5022
limit
08 to
0C
Raise the race creator’s player-list capacity to twelve.
0x003B507A
limit
09 to
0D
Raise the occupied-slot boundary to support twelve entries.
0x003B50BA
limit
09 to
0D
Raise the slot-assignment boundary to support twelve entries.
These changes got twelve players much farther than a server-only limit increase. At this stage, twelve-player rooms could exist and the clients could enter and start races, but the complete post-race flow was not safe yet.
July 7: Automating Full Test Rooms
Manually clicking eleven clients into every new room was slowing down every test, so I added a reversible local room automation system to the server.
The new local_test_rooms config contains:
-
enabled- auto_fill_on_create
auto_ready_on_join
- A tracked list of
CherryMG (really it is test1 through 12) through CherryMG12
When a tracked account creates an eligible twelve-player test room, the server marks that room as managed, summons the other tracked online accounts into it, and automatically readies them as they enter. I restricted this to configured users and eligible local test rooms so it would not affect ordinary players or every room on the server.
I originally triggered the auto-fill too early in the room-entry process. That could make client01, the creator, crash while joining its own newly created room. I moved the auto-fill call until after the creator had received the complete room-entry response and existing users had received the join notification. I also protected the twelve-player count from the vanilla UI sending its normal eight-player room option, and prevented an occupied room from being shrunk below its current population.
This is why all players now join as soon as one room is created: it turns one room-creation action into a repeatable full-load test. The feature can be reversed by setting local_test_rooms.enabled to false.
July 8: Updating the Story of Alicia Repositories
The project had moved ahead upstream, so I updated the local development environment instead of continuing to build on an increasingly old snapshot.
Before changing anything, I created backups/update-20260708-152328. That backup includes:
- A server branch named
backup/cherry-test-before-upstream-47fada2-20260708-152328.
- The previous server head.
- The active game directory.
- All twelve instance directories.
-
multi-client.
-
mod-launcher.
- The existing editor CLI assets.
- The launcher executables.
- The old
res.pak and res.pak.001 files from both active locations.
I moved the server work onto upstream Story-Of-Alicia/alicia-server commit 47fada238fd3cc8a0660b20867b08e68c1960652. I preserved the local 12-player protocol, room, loopback, and automation changes on the upgrade/upstream-47fada2 branch instead of replacing them.
I also cloned the new Story-Of-Alicia/alicia-editor repository into D:\alicia modding\alicia-editor. I kept alicia-editor-cli and alicia-web-editor intact because they serve different purposes and were already part of the workflow.
For the launcher, I downloaded the stable alicia-launcher-cli 1.2 release and installed its CLI executable after backing up the previous one. The installed CLI hash matches the downloaded 1.2 binary.