Wiki / How it is tested

How it is tested

A mod about other players can only be tested with other players. So every release is put through 44 checks by two scripted players on real servers.

The test bench#

Two copies of the game join a dedicated server. One, Alice, does things: types, opens chests, pauses, falls asleep, quits mid-sentence. The other, Bob, watches, and checks that exactly the right thing arrived over the network, then takes a picture. The same script runs on Fabric and on NeoForge, and shorter ones run against a Paper server, a plain vanilla server and with a third player who has no mod at all.

Loaders and servers#

CheckPasses when
Fabric client and Fabric serverTwo scripted players run every check on this page against a dedicated server.
NeoForge client and NeoForge serverTyping, chest copy, flying item, pause menu, the Config button, /bb reload and quitting mid-sentence.
Fabric players on a NeoForge server, and the other way roundBoth directions see typing and live copies.
Fabric players on a Paper server with the pluginThe plugin spots the mod; typing, the live copy and item moves all arrive and nobody is disconnected.
NeoForge players on a Paper server with the pluginThe whole NeoForge script passes against the plugin.
Modded players on a plain vanilla serverNo errors, nothing is sent, and a player standing still still shows as asleep in the tab list.
A player without the mod on a modded serverStays connected through typing, live screens, item moves and chat notices, and sees an ordinary game.

Typing#

CheckPasses when
Typing in chatThe other player gets the speed, and sees the arms, the letter bar and the bubble.
Chat open, nothing typedBar and bubble go still.
Typing a commandNothing shows. With "Share commands" on, the slash icon does.
Signs and hanging signsSign icon and writing pose.
Book and quillBook icon.
Command blockCommand icon.
The typing line"Alice is typing.." appears above the other player's chat box.
CheckPasses when
A chestPanel plus a live copy of the chest.
Clicking in itThe copy refreshes; the server always keeps the newest picture.
Furnace, crafting table, anvil, villager, horse, inventory, creative inventoryEach arrives with the right icon and a live copy.
Pause menu, options and advancementsClock for the pause menu, live copies for all three.
Written book, player reporting, report screenNever copied, and the picture of the screen before does not linger.
Walking 30 blocks away and backFar away only the icon; back in range the live copy returns within a second.
Moving itemsThe item flies in an arc over the panel.
A shulker box holding 784,681 bytes of written booksFlies as a plain shulker box. Nobody is disconnected.
Another mod's screen (Mod Menu)Copied like any other.
Ex Nihilo Reborn's auto sieve and cobblestone generatorEach panel shows the machine itself as its icon, and the live copy of its screen.

Dozing off#

CheckPasses when
Sleeping and wakingHead down and zZ, then the stretch on waking, on Fabric and NeoForge.
The tab listzz replaces the ping bars on a dedicated server.
Tabbing outA clock over the player whose window lost focus.
Chat notices"dozed off" and "is back", at most one pair per ten seconds per player.

Privacy and settings#

CheckPasses when
Poker faceNothing is shared any more.
The settings screenA flipped switch is saved and read back from disk. Mod Menu and the NeoForge mod list both open it.
Viewer switchesLive screens, the typing bar and head icons each disappear for that viewer only.
Third personYou see your own poses; the doll in the inventory screen stays still.
Arm rules fileA bow keeps its own pose; after an edit and /bb reload it takes the typing pose.
Screen rules fileWith the inventory set to none it is never copied, while a chest still is.

Server#

CheckPasses when
/busybodies configIdle time, chat notices and forceOff change live, from chat and from the console.
forceOff screenLive copies stop for everyone, and senders stop capturing.
Editing the file, then /busybodies reloadPlayers get the new values without a restart.
A player who is not an operatorCannot run it, and nothing changes.

Edge cases#

CheckPasses when
Invisible players and spectatorsShow nothing.
Dying with a menu openNo panel on the body, and the death screen is not shared.
A trip to the NetherNothing is left behind, and live copies work there.
Quitting while typingThe status clears for everyone at once.
Leaving and rejoining, then singleplayerThe copy comes back; no leftover statuses in the next world.
A 15-minute soakMemory stays flat at 221 to 222 MB, pictures do not pile up, no warnings.

What a script cannot check#

How it feels. Whether the sounds are pleasant, whether a pose reads well from across a room. If something feels off to you, tell me.

Written for version 0.2.0 · Minecraft 26.3