@ Germanunkol
I didn't see any mistakes, and very nice explination of how things work.
@sheefo.
to answer your question, they were all created on the "server" and now all there functions are being done by the server. Remember though, that the more you have the server doing...the more you bogging it down as well, and the more information it has to send to all the clients to update them.
but also keep in mind that not all clients are "powerfull" machines. some are still way slow. So you have to strike a ballance between what all the server handles and what the clients will handle.
The "dummy" concept that Germanunkol is an option that is not usable in every game situation. To figure out if you need the characters to do there actions: walking, swimming...or whatever on the server or not, think about this:
is it "critical" or "not critical"? in other words if it is "critical" then you want it on the server....so no one can "cheat". if it is not critical, then let the client handle that work.
For instance, in a racing game...it is "critical" where the cars are at all times...so their movement needs to be done on the server and update on the clients. in a role playing game, where you are at, is not "truely" critiacal...so it would be ok to let the movement be done by the client and occasionaly update the server so the server can update all the other clients ( that is the "dummy" thing that Germanunkol was talking about).
You have to be carefull not to bog down your server, but also careful not to totaly bog down the client either...a ballance is needed, and that ballance is weighed by how critical something is.
So if you want the server to create all your characters, use ent_create. but if you want create it on the client only, then use ent_createlocal.
from the manual:
Ent_createlocal:
creates the entity on the local machine only. A local entity is not transmitted to the server, and thus not visible on other clients. The local entity function runs on the local machine only. Local entities can be used for advanced particle effects, player weapons or the like. In a single player system, both instructions are identical
also:
A local entities' function runs only on the client who has created it. Local entities perform collision detection, but are passable for global entities.
On a single player system, the entity function is started immediately when the entity is created. On multiplayer systems, entity functions are triggered by a server transmission, which can occur up to 0.5 seconds later. It is not determined whether the entity function is already running after this instruction, or not.
and finaly from the manual:
A level must be loaded before using these instructions. Thus they can not be called immediately at game start or on the client before it's connected to the server. In a multiplayer system, ent_create must not be used earlier than 0.5 seconds after level_load.
you can lear a lot from the manual itself

best of luck to you Sheefo, hope you get this figured out, and if not keep asking....if you want to "learn" you have to ask and seek

I am a new to the whole multiplayer side as well, so we are all learning fro meach other
