Ok, So theres lots of travel mage codes out there, and this one works very similar to it. However, mine is cooler, because mine works more like stargate's gate system ;) Orginaly based on the game Amberstar (their travel windgate system), this is a hybrid of the two systems. Anywho, this is how it works. Player's 'press' symbols on the gate, and light them up. If the three symbols they press are valid, it opens up the gate, and creates a semi-perm portal (semi meaning it stays open until someone presses another symbol and resets it) to that location. In my mud, it sorta works like this. The windgates are ancient devices, built by a civilization long gone. (No, i didn't get this from Stargate :P) Through years of warring, gate symbols and gate travel have been restricted, and thus knowledge of symbols is rare, and coveted information. (short of my primary city, which acts like a standard 'recall' command, since i want people to recall, without recalling, this works just fine) Do what you see fit of course :P Ok, this is very very simple to add, its almost completely contained within itself, just a small addition to 2 other files and tada, you got it. (well, and the item type addition) Ok, first things, add the item type ITEM_WINDGATE, const.c, tables.c, and re-compile olc_act.c. Bam your done. Next, add the gate movement for do_enter, at the top of your do_enter command, after it cycles through the obj list in room, before the check for ITEM_PORTAL, add this piece of code in there. Note: Groups do not follow, im lazy, and mptriggers dont activate. Its easy enough to add, I suggest adding a new trigger type MP_GATEENTER and have some fun like that ;) if (portal->item_type == ITEM_WINDGATE) { if (portal->value[4] == 0) { stc("The Windgate is currently not leading anywhere.\n", ch); return; } /* Take care of curses */ if (!IS_TRUSTED (ch, ANGEL) && (IS_AFFECTED (ch, AFF_CURSE) || IS_SET (old_room->room_flags, ROOM_NO_RECALL))) { send_to_char ("Something prevents you from leaving...\n\r", ch); return; } /* Get location, makesure its valid */ location = get_room_index (portal->value[4]); if (location == NULL) { act ("$p doesn't seem to go anywhere.", ch, portal, NULL, TO_CHAR); return; } /* Ok go through */ act ("$n steps into the windgate's swirling vortex.", ch, NULL, NULL, TO_ROOM); act ("You enter the windgate's swirling vortex.", ch, portal, NULL, TO_CHAR); char_from_room (ch); char_to_room (ch, location); act ("$n has arrived through $p.", ch, portal, NULL, TO_ROOM); do_function (ch, &do_look, "auto"); /* Lazy, not adding follow, or MP triggers, also need a new trigger for * gate entry */ return; } Ok, next, add the commands to your interp.c, cmd_windgate - Immortal command, displays all locations, depending on how secretive you want your gate locations, make it high or low. cmd_press - Player command to use the gate. add windgate.c to your makefile (or if your cool like me, just stick it in the directory and it autocompiles it ;) Then goto windgate.c, find the windgate_table (top of file) and create some locations, and give them symbols ( also, i have a wilderness, so if you so choose, you can remove the to_wild, x, and y from the windgate_type and skip that part) Now go into your mud, make a new item for each location, and make a windgate, type windgate, no take (ewww evil if you could heh, hmm maybe a timed quest item? na...) and give it a cool description. (Mine are Giant white arches, like the spine of a whale) reset to rooms. make clean, and make, run the mud and tada, it works. Thats about it. It took me about 3 hours to write from scratch, and another hour of debugging to make this. (Not many bugs, i tried almost every combonation of commands to make it crash, only thing is, you need to keep close tabs on your windgate list and make sure vnums exist, since i removed valid room checks cause they were crashing on entrence, and i got annoyed. If you have a help snippet command, id appreciate a mention, also if you have a primary gate, make an extra description with the keyword _THRI and mention me in there ;) Don't forget to follow all previous licences, Diku, merc, rom, any snipps you have, what goes around, comes around. =)