Two or more eggs can link: shared users/bans, secure op, one .jump / .+chan fanning out. Pick a hub (most reliable bot) and treat the rest as leafs. AUP still applies per shell: max 2 IRC connections to a given network — linking does not buy you extra connections off one shell.
Modules and channels
On every bot, in the conf:
loadmodule transfer
loadmodule share
Channels you want synced need +shared in that bot's channel settings.
Each bot needs a unique listen port (listen 49152 all / listen 49153 bots as you prefer). The hub's listen port is what leafs connect to. Bind the vhost.
Add bots to each other
Hub BigBoy, leafs Camelback and Mallard. On the hub partyline:
.+bot Camelback camelback.host 49153
.+bot Mallard mallard.host 49154
.botattr Camelback +s
.botattr Mallard +s
On each leaf:
.+bot BigBoy bigboy.host 49152
.botattr BigBoy +s
.link BigBoy
+s is share. Skip the four share-ish steps if you only want a link without userfile sharing. Host/port must match the leaf's actual bind + listen.
Flags to know: +b (bot), .botattr +h hub, +a alternate hub, +s share, +p passive (leaf does not try to link out). Typical leaf is passive + share; hub is share.
Confirm
.bots
.botinfo
Userfile sharing only works if both sides have transfer+share loaded, +s, and the channel is +shared. Passwords for +bot handles are separate from your owner pass — set them when +bot prompts, or .chpass.
If a leaf cannot connect, it is listen/firewall/vhost, not "run it in screen." Security.