Independently of the component type limit (separate report) we found a second undocumented cap with the identical failure signature. This one is about the number of modded class blocks that extend one replicated entity class. In our tests it was a player character class derived from SCR_ChimeraCharacter, extended across many script files, which is common practice for keeping a large codebase organized.
The proof that the block count itself is the cause: we moved a set of methods verbatim from their own script file into an already existing modded class file. Identical logic, identical RPC count, identical component and entity types, just one modded class block fewer. Joins worked. Moving them back into their own file broke all joins again, with the same RplCorruptionError: Could not read stream header. spam on the client and a clean server log.
Measured edge on 1.8.0.13 was 78 blocks OK and 79 blocks broken. Workbench and script validation are green in both cases. The problem only shows on a dedicated server with remote clients.
Steps To Reproduce
Create a modded player character class and split its methods across many script files, each opening modded class MyCharacter { ... }. This is a normal pattern for organizing large codebases.
Increase the number of such files to around 79.
Host on a dedicated server and join with a client. The join hangs with RplCorruptionError spam in the client log.
Merge two of the files into one, identical content but one block fewer, and joins work.
Expected behavior:
The number of modded class blocks is a pure source organization detail and should have no runtime or replication impact at all. If an internal limit is unavoidable it should fail loudly at compile or load time with a clear message instead of corrupting the network stream.
Additional Information
Why this matters:
Splitting a large modded class across files is the only sane way to keep a big framework maintainable and merge-friendly for a team. Being forced to consolidate files to stay under an invisible threshold, where crossing it kills every join with a misleading error, is a severe and completely undiscoverable pitfall for any large mod.