First of all, what is an event queue? An event queue is nothing more than a list of actions to be performed in a certain amount of time. For example: in 5 seconds move ch to room 3001 in 10 seconds force simon to shutdown reboot in 15 seconds ... ... Get the idea? Next, how to use it? It's use is very simple: Whenever you want something to happen delayed, all you have to do is put the code in an EVENT. I'll use for example the code in the mpdelayed command. I made this command so that mobs do make delayed commands. First the event. The person that originates the event must issue a command. An event receives 3 commands: the causer, the victim, and additional info. Info can be whatever you want, causer and victim should be either obj_data or char_data pointers. Always remember to free info if you allocated any memory to it. EVENT(delayed_command) { command_interpreter(CAUSER_CH,(char *)info); free((char *)info); } Now the code for the command. We'll ignore all the parsing stuff. All we want is one line: it must queue the event in the list: add_event(delay,delayed_command,ch,NULL,(int)strdup(buf)); It means: queue the event 'delayed_command' to be run in 'delay' seconds. It was caused by 'ch'. There is no victim. It's additional parameters are only a copy of buf. If you need, in any ocasion to remove events from the queue, you can use the function clean_events. I use it inside the function to extract chars and objects. This function receives a pointer. Every entry in the queue that has a causer, victim or function pointer equal to the argument will be removed. Simple enough? I hope so. Other uses for it include teleport rooms, spells cast with delays in the beginning, auto-auctioning announcements, shutdown warnings (i actually have a mob that does the shutdown and warns the players every minute before the shutdown)... And lots more. It's up to your imagination really. In the end of the instructions file there are two examples of use of the events: the one i showed here and an event for a teleport room. Luis Carvalho, aka Mim @ Implementor's MUD [circle-coders.intserv.com 9000]