From: Primacy Subject: Redbutton Spec Here's some code I wrote for a 'Red Button' that when pushed, will teleport the character to a random room somewhere in the mud. In spec_assign.c add this to assign_objects(): SPECIAL(redbutton); ASSIGNOBJ(32, redbutton); /* transport button */ In spec_procs.c add this in at the bottom: SPECIAL (redbutton) { struct obj_data *obj = (struct obj_data *) me; struct obj_data *port; char obj_name[MAX_STRING_LENGTH]; int z; if (!CMD_IS("push")) return FALSE; argument = one_argument(argument,obj_name); if (!(port = get_obj_in_list_vis(ch,obj_name,world[ch->in_room].contents))) { return(FALSE); } if (port != obj) return(FALSE); act("$n pushes $p and fades away.", FALSE, ch, port, 0, TO_ROOM); act("You push $p, and you are transported elsewhere", FALSE, ch, port, 0, TO_CHAR); char_from_room(ch); char_to_room(ch, number(0, top_of_world)); look_at_room(ch, 0); act("$n slowly materializes from nowhere...", FALSE, ch, 0, 0, TO_ROOM) ; return(TRUE); } Finally, you will want to ensure that you have the 'push' command, so add this line in the command list in interpreter.c: { "push" , POS_DEAD , do_not_here , 0, 0 }, --------- Now, you should create the object itself and put it into 0.obj. #32 button red~ a red button~ A large red button is protruding from the wall here.~ ~ 13 0 0 0 0 0 0 1000 0 -1 0 Presto! Load object 32 somewhere in the mud... and have someone 'push button', and away they go!