I am still seeing issues with this, although perhaps I am seeing the behaviour you intend.
I have a server running 1.7.2-10.12.1.1082. 32 mods installed.
I have a client running 1.7.2-10.12.1.1082 with the same 32 mods, plus 3 extra client-side-only mods which are:
[1.7.2]DamageIndicatorsMod-3.1.1.jar
AutoSwitch-v5.0.0-mc1.7.2.jar
InventoryTweaks-1.57-116.jar
When I click Multiplayer in the client, the entry for this server shows up with a big red cross:
http://s8.postimg.org/7put06zs5/Screen_shot_2014_05_15_at_1_15.gif[/img]
If I hit Join Server anyway, it does work fine, so it's not actually preventing me from connecting.
The behaviour I expect is that if the client can connect to the server without problems, the red cross would not be shown. So if the server has server-only mods or the client has client-only mods, no cross would appear.
Server side log of the client connection:
[13:21:13] [Netty IO #6/TRACE] [FML/]: $ClientHello->FMLHandshakeServerState$2:HELLO
[13:21:13] [Netty IO #6/INFO] [FML/]: Client protocol version 1
[13:21:13] [Netty IO #6/TRACE] [FML/]: $ModList:35 mods->FMLHandshakeServerState$2:HELLO
[13:21:13] [Netty IO #6/INFO] [FML/]: Client attempting to join with 35 mods : ThaumicExploration@0.6.0,HopperDuctMod@1.3,inventorytweaks@1.57-116,BiblioCraft@1.6.3,TwilightForest@2.0.3,HardcoreEnderExpansion@1.5a,backpackrenderer@1.7.2 - 2.4,enchantview@4.0.3,mcp@9.03,FML@7.2.196.1082,NotEnoughItems@1.0.1,JABBA@1.1.3,autoswitch@5.0.0,bcmod@1.7.2 - 2.4.2,DamageIndicatorsMod@3.1.1,Thaumcraft@4.1.1.12,Baubles@1.0.0.12,ChickenShed@1.1.3,voxelmap@1.7.2,MonsterSpawnHighlighter@1.4.1.27,LunatriusCore@1.0.2.7,InGameInfoXML@2.6.0.44,ThaumicTinkerer-preloader@0.1,IronChest@6.0.14.719,Forge@10.12.1.1082,CodeChickenCore@1.0.0,EnderTanks@rev15,LotsOfFood@1.7.2,BaMsGRAVE@1.4.1,imc@1.1,backpacks16840@1.7.2 - 2.4.1,Waila@1.5.2_1.7.2,SimpleEnderPouch@1.1,thebombzenapi@2.4.0,ThaumicTinkerer@alpha-2.3-98
[13:21:13] [Netty IO #6/INFO] [FML/]: Attempting connection with missing mods [] at CLIENT
[13:21:13] [Netty IO #6/TRACE] [FML/]: $HandshakeAck:{2}->FMLHandshakeServerState$3:WAITINGCACK
[13:21:13] [Netty IO #6/TRACE] [FML/]: $HandshakeAck:{3}->FMLHandshakeServerState$4:COMPLETE
[13:21:13] [Netty IO #6/TRACE] [FML/]: $HandshakeAck:{4}->FMLHandshakeServerState$5:DONE
[13:21:13] [server thread/INFO] [FML/]: [server thread] Server side modded connection established
[13:21:13] [Netty IO #6/TRACE] [FML/]: $HandshakeAck:{5}->FMLHandshakeServerState$5:DONE
Client side log:
[13:21:13] [Netty Client IO #5/TRACE] [FML/]: $ServerHello->FMLHandshakeClientState$2:HELLO
[13:21:13] [Netty Client IO #5/INFO] [FML/]: Server protocol version 1
[13:21:13] [Netty Client IO #5/TRACE] [FML/]: $ModList:32 mods->FMLHandshakeClientState$3:WAITINGSERVERDATA
[13:21:13] [Netty Client IO #5/INFO] [FML/]: Attempting connection with missing mods [DamageIndicatorsMod, autoswitch, InGameInfoXML] at SERVER
[13:21:13] [Netty Client IO #5/TRACE] [FML/]: $ModIdData:1252 mappings->FMLHandshakeClientState$4:WAITINGSERVERCOMPLETE
[13:21:13] [Netty Client IO #5/INFO] [FML/]: Injecting existing block and item data into this client instance
[13:21:13] [Netty Client IO #5/DEBUG] [FML/]: Registry consistency check successful
[13:21:13] [Netty Client IO #5/TRACE] [FML/]: Registry: minecraft:air 0 net.minecraft.block.BlockAir@7fb0298c
…
[13:21:13] [Netty Client IO #5/TRACE] [FML/]: Registry: SimpleEnderPouch:EnderTome 4483 com.demoxin.minecraft.simpleenderpouch.Item_EnderTome@4f11a931
[13:21:13] [Netty Client IO #5/TRACE] [mcp/mcp]: Sending event FMLModIdMappingEvent to mod mcp
[13:21:13] [Netty Client IO #5/TRACE] [mcp/mcp]: Sent event FMLModIdMappingEvent to mod mcp
[13:21:13] [Netty Client IO #5/TRACE] [FML/FML]: Sending event FMLModIdMappingEvent to mod FML
[13:21:13] [Netty Client IO #5/TRACE] [FML/FML]: Sent event FMLModIdMappingEvent to mod FML
[13:21:13] [Netty Client IO #5/TRACE] [Forge/Forge]: Sending event FMLModIdMappingEvent to mod Forge
[13:21:13] [Netty Client IO #5/TRACE] [Forge/Forge]: Sent event FMLModIdMappingEvent to mod Forge
[13:21:13] [Netty Client IO #5/TRACE] [backpackrenderer/backpackrenderer]: Sending event FMLModIdMappingEvent to mod backpackrenderer
[13:21:13] [Netty Client IO #5/TRACE] [backpackrenderer/backpackrenderer]: Sent event FMLModIdMappingEvent to mod backpackrenderer
…
[13:21:13] [Netty Client IO #5/TRACE] [simpleEnderPouch/SimpleEnderPouch]: Sending event FMLModIdMappingEvent to mod SimpleEnderPouch
[13:21:13] [Netty Client IO #5/TRACE] [simpleEnderPouch/SimpleEnderPouch]: Sent event FMLModIdMappingEvent to mod SimpleEnderPouch
[13:21:13] [Netty Client IO #5/TRACE] [FML/]: $HandshakeAck:{2}->FMLHandshakeClientState$5:PENDINGCOMPLETE
[13:21:13] [Netty Client IO #5/TRACE] [FML/]: $HandshakeAck:{3}->FMLHandshakeClientState$6:COMPLETE
[13:21:13] [Client thread/INFO] [FML/]: [Client thread] Client side modded connection established
[13:21:18] [Client thread/INFO] [THAUMCRAFT/]: Client received server config settings.
[13:21:18] [Client thread/INFO] [THAUMCRAFT/]: CHEAT_SHEET[false], WARDED_STONE[true], MIRRORS[true], HARD_NODES[true], RESEARCH_DIFFICULTY[0], ASPECT_CAP[8], ASPECT_TOTAL_CAP[100
[13:21:18] [Client thread/DEBUG] [NotEnoughItems/]: Loading Remote World
I guess the ideal solution would be for these mods to include a null server side implementation.
Thanks for all your great work!
KeepOnDigging.