Take the 2-minute tour ×
Arqade is a question and answer site for passionate videogamers on all platforms. It's 100% free, no registration required.

I've been bouncing back and forth between client and server mod tutorials, and I can't seem to work out where one starts and the other ends.

If I create a client mod that adds items and blocks, install it on my PC then join a friends server, if there are no conflicts, will I be able to use my new blocks on his server? Does the server specify which mods are to be used... if so, will I not be able to join if I have my mod installed? If I can join, is my mod disabled while I'm on his server?

Alternatively, If I create the same mod,but for a server, will all of the users need to install the mod to be able to join my server? I would imagine that adding blocks may not require this, but what if I want to add a new UI? That screams client side to me, but what about things like permissions, that are geared towards server mods?

So, my questions are: how are server and client mods different (aside from the fact that one is installed on a client,the other on a server), what are the limitations of each, and how do they interact together, if at all?

share|improve this question
add comment

2 Answers

up vote 3 down vote accepted

This entirely depends on what the mod changes.

  • If you have a mod that changes things that only the client cares about (e.g., adds realistic shadow shaders) then the client mod will work fine in multiplayer. (These will not have any effect installed on the server.)

    • A UI mod will only change clients. Installing it on the server will have no effect.
  • If it changes something that only the server is responsible for managing (e.g., changing the world generator algorithm) then the client doesn't have to know about the mod at all and it can be server-only. (These will not have any effect installed on the client when playing multiplayer.)

  • If it changes the world in a way that client and server must both understand (i.e., new items/blocks), then it has to be on the server and the client. (What happens if there is a mod mismatch depends on the mod.)

    • In your specific example, no, adding new blocks to your client will not let you use them on a multiplayer server. You might be able to join, or you might not. You might be able to join, but get kicked as soon as you try to use a custom block. It entirely depends on what code you change. The possible interactions are as many as there are lines of code in Minecraft that can be changed.
    • Adding a new-block mod to a server will make it incompatible with clients. This might manifest as disconnects, crashes, or client-side "ghosts". The client must have a client-side mod that matches the server-side mod.
    • A permissions mod is server-side only, but a UI mod is client-side only. To make a UI mod able to change server-side permissions, you have to have a client mod and a server mod that know how to interact with each other.

These things entirely depend on how the mod is coded. Without knowing what your mod changes, we can't even guess. More technically, where server mods start and client mods begin are a matter of what specific Java functions they change and how those functions operate as part of Minecraft's server-client architecture.

share|improve this answer
    
I'm aiming to create a mod that is specifically used to augment a themed map I've made. I want to add items to allow casting spells, limit general chat to within earshot, add redstone triggers that are toggled by a user saying the password within earshot of the trigger, a custom ui to manage the spells, a custom experience mechanism, as well as custom merchant npcs. –  Chronicide Sep 8 '12 at 18:48
    
@Chronicide That be a complex mod or set of mods. Some of those functions will have to be coordinated between server and client. Specific details of implementing those are going to be too localised for questions here, but the people at the Minecraft Mod Dev forums should be able to help somewhat. Have you been posting there? –  SevenSidedDie Sep 8 '12 at 18:54
    
I'll go check them out. Thank you for your help with this. It definitely gave me a better understanding of what my mod might entail. –  Chronicide Sep 8 '12 at 18:59
    
@Chronicide Specifically: client & server: new items, (maybe) new redstone items/blocks for voice activation; client-only: speech input, custom spell UI, (maybe) experience UI, (maybe) experience usage/management logic, (maybe) new merchant UI; server-only: password processing, custom redstone triggers (if not adding new blocks/items), experience back-end, merchant back-end, text-chat distance limits. –  SevenSidedDie Sep 8 '12 at 19:02
add comment

Client mods will modify the actual game, and you will have to drop them into the Minecraft.jar. This means that only you will see what has changed. (And some features won't work on servers)

Server mods modify the server engine, and generally provide some sort of social functionality.

share|improve this answer
    
So if I wanted my server to have special blocks/items, I would have to have both a server mod to define the new global functionalities (like limiting chat to within earshot), and have all users install a client mod that would add items/ui? Whats stopping someone from using their own client mods to add items I don't want them to have on my server? –  Chronicide Sep 8 '12 at 18:35
    
Technically, all you would need is to add different behaviors on the server for them to behave differently. If you wanted them to also look different, you'd have to either have users install a texture pack or a mod. Secondly, the server is control of all items created, so you can find/make mods that disallow/disable certain items/blocks/etc. –  Shmiddty Sep 8 '12 at 19:11
add comment

protected by Community Feb 4 at 3:00

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.