Escolar Documentos
Profissional Documentos
Cultura Documentos
compiled by:
MAGICK
. . . . . . . CONTENTS . . . . . . .
I. II. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page 3 Setting up EQEMu Setting up your own LAN Server with 0.5.2+. . . . . . . . . . . . Page 4 Using the EQEMu Login Server to Play . . . . . . . . . . . . . . . . Page 11 Running an EQEMu Server with NAT . . . . . . . . . . . . . . . . . Page 13 Using The Emulator EQEMu Commands List and Descriptions . . . . . . . . . . . . . .Page 16 Intro to World Building Skorpius2k Tutorial: Making Mobs Move . . . . . . . . . . . . . . Page 34 Perl Quest System by Just_add_water & Lurker_005 . . . . . Page 38 Loading Any Model in Any Zone . . . . . . . . . . . . . . . . . . . . . Page 45 Appendixes A. Race List (A Guide to Model Types) . . . . . . . . . . . . . . . . Page 47 B. The Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page 51 Class List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page 52 Skills List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page 53 C. Zones List (all expansions including GoD) . . . . . . . . . . . Page 54 Sorted by zone short name . . . . . . . . . . . . . . . . . . . . Page 54 Sorted by Zone ID . . . . . . . . . . . . . . . . . . . . . . . . . . . Page 58 Alpha sorted by name . . . . . . . . . . . . . . . . . . . . . . . . Page 60 D. Model Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page 63 E. EQEmu Model Reference . . . . . . . . . . . . . . . . . . . . . . . . .Page 66 F. Sky Graphic Reference . . . . . . . . . . . . . . . . . . . . . . . . . . Page 202
III. IV.
V.
INTRODUCTION
After a ton of updates to the emulator and much neglect on my part, Im pleased to finally be able to release a new revision of the EQEmu Server Guidebook. Im also extremely excited about a potential discovery which would allow server ops to use any model in any zone(s) they wished. Ill cover this a little further down. For now, the disclaimer part: As Ive mentioned in the past versions, this guidebook is split up into a number of sections. Some will help you set up EQEmu, some help you build worlds, and a very large portion is technical and referencing information. While there are now support helpers available on the forums, please remember that no official technical support is offered for EQEmu. Ive decided to postpone adding/completing the Model Availability section of the guidebook for several reasons: Currently, there appears to be a group putting large efforts into cataloging and thumbnailing models for every zone in EverQuest. While Im fairly confident that I am close to having cataloged virtually every model available, transcribing and verifying my notes for each zone would take a ton of time. So hopefully, theyll complete their project soon. Secondly, youll note commands and file names next to most/all models in Appendix F. I am currently testing my theory but it appears to be a very simple process to force load any model to any zone you wish. Im currently talking with Windcatcher about incorperating this into Zone Proxy. If this works, its a HUGE step forward for customizing zones, and in my opinion, would nullify any reasons to catalog whats generically available in each zone. As always, Id like to thank the entire EQEmu Dev Team for their hard work and never-ending commitment to making this project a reality. The speed of their progress amazes me and I dont believe they get thanked enough for the effort they put forth. Special thanks, in no particular order to: jdankanyin, killspree, Edgar1898, Merth, just_add_water, tcsmyworld, Trumpcard, Scorpious2k, a_Guest03, Kaiyodo, image, Wiz, Drawde, guidex, kathgar, Lurker_005, Windcatcher and anyone else whose knowledge I borrowed to compile this guide.
Any information you can add to the guide would be appreciated. Have a correction? A comment? Want something added? Demand something be removed? Please email me at: emuguide@hotmail.com
- Magick
1. Turn off all firewalls 1. This is a section I will expand, but for simplicity - turn off all firewall stuff for now. This includes the Windows software firewall. 2. Install mysql 3.23 1. Download mysql 3.23 from http://www.mysql.com/downloads/mysql-3.23.html. 2. Run the installation program. This tutorial assumes you have installed to c:\mysql 3. Choose a Typical install 3. Install zlib 1.1.4 1. Download zlib 1.1.4 from http://www.gzip.org/zlib/ 2. Unzip the file you download with the option to preserve directory structure. This tutorial assumes you have installed zlib to c:\EqEmu\zlib
EQEMu Server Guidebook v1.3 4. Install WinCVS 1. Download WinCVS from http://sourceforge.net/project/showfiles.php?group_id=10072&release_id=24467 2. Download the latest version (13b10 as of July 2003) 3. Run setup.exe from the download 4. This tutorial assumes you have installed to c:\EqEmu\cvs\wincvs 5. Add CVS to %PATH% 1. Open Control Panel 2. Open System 3. Click on the Advanced tab 4. Click on Environment Variables 5. Highlight the PATH row in the System Variables Frame 6. Click Edit below the row you have highlighted 7. Add ;c:\EqEmu\cvs\wincvs;c:\EqEmu\cvs\wincvs\CVSNT to the end of the existing vari able value. Don't overwrite the current value in there - just append to the end Win98 Users: Skip 1-7 and add the following to your autoexec.bat PATH c:\EqEmu\cvs\wincvs;c:\EqEmu\cvs\wincvs\CVSNT; %PATH% 8. Add ;c:\mysql\bin to the end of the existing variable value. Don't overwrite the current value in there - just append to the end 6. Get EQEMu Source From CVS
1. Open a DOS prompt Win98/95/ME - start->run->command Win2k/XP/2k3 - start->run->cmd 2. Type in the following: c: cd \eqemu\cvs cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/eqemu login cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/eqemu -z3 co eqemu NOTE: Press enter when it asks you for a password (leave it blank) NOTE: Repeat these commands on failure (sourceforge's network gets swamped at times). NOTE: If you get the following error: 'cvs' is not recognized as an internal or external command, operable program or batch file. - YOU NEGLECTED TO FOLLOW THE DIRECTIONS ABOVE! The section you skipped over is named Add CVS to %PATH% 7. Setup Compiler NOTE: This section is based on the VS.NET 2003 compiler 1. Go to the menu Tools/Options 2. In the folder pane, navigate to Projects/VC++ Directories 3. In the Show directories for dropdown, select "Include Files" 4. At the end of the list, add the following directories: c:\mysql\include c:\EqEmu\zlib
EQEMu Server Guidebook v1.3 5. In the Show directories for dropdown, select "Library files" 6. At the end of the list, add the following directory: c:\mysql\lib\opt
8. Compile EMuShareMem 1. Open EMuShareMem.dsp from the directory C:\EqEmu\cvs\eqemu\NewSource\EMuShareMem 2. Choose 'yes' for converting project to new format (may not apply to your compiler) 3. Click on the menu Build/Rebuild Solution. Watch it compile!
9. Compile World 1. Open World.sln from the directory C:\EqEmu\cvs\eqemu\NewSource\World 2. Click on the menu Build/Rebuild Solution. Watch it compile!
10. Compile Zone 1. Open Zone.sln from the directory C:\EqEmu\cvs\eqemu\NewSource\Zone 2. Click on the menu Build/Rebuild Solution. Watch it compile!
11. Start mysql NOTE: This section can get tricky - and is still under investigation 1. Run c:\mysql\bin\winmysqladmin.exe NOTE: Make sure this is the first time you are running this. If it's not the first time, uninstall and reinstall from scratch 2. Wait 20 seconds 3. The main window should have disappeared by now 4. A username/password window should have appeared 5. Enter in the username and password you will use to administer the database. Don't use the same username and password as your forum account. NOTE: Some people don't see this dialog. If that's you, visit http://www.mysql.com/doc/en/Adding_users.html and figure out how to add a user manually. 6. You should now see a stoplight icon in the systray.
12. Create EQ Database 1. Make sure you followed the instructions in the cvs section for adding mysql binaries to the %path%. 2. Open a DOS prompt Win98/95/ME - start->run->command Win2k/XP/2k3 - start->run->cmd
EQEMu Server Guidebook v1.3 3. Type in the following: c: cd "\eqemu\cvs\eqemu\eqemu release" mysql -u root mysql 4. Inside of mysql, type these commands: create database eq; grant all privileges on *.* to test@localhost identified by 'test' with grant option; quit 5. You should see the following as output from above: C:\EqEmu\cvs\eqemu\EQEMu Release>mysql -u root mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 22 to server version: 3.23.57-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create database eq; Query OK, 1 row affected (0.00 sec) mysql> grant all privileges on eq.* to test@localhost identified by 'test' with grant option; Query OK, 0 rows affected (0.00 sec) mysql> quit Bye C:\EqEmu\cvs\eqemu\EQEMu Release> 6. Back in the DOS prompt, type this command: mysql -u test -p eq 7. You should see a password prompt - enter in your password ('test' in this sample). You should see the following: C:\EqEmu\cvs\eqemu\EQEMu Release>mysql -u test -p eq Enter password: **** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 24 to server version: 3.23.57-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> 8. Time to load a blank database. Type in the following command: source db.sql;
EQEMu Server Guidebook v1.3 9. You will see the following for a LONG time: mysql> source db.sql; Query OK, 0 rows affected (0.03 sec) Query OK, 0 rows affected (0.02 sec) Query OK, 0 rows affected (0.00 sec) (... repeat about fifteen thousand times) 10. You now have an EQ database with NO ITEMS/MOBS/ETC. See http://www.eqemulator.net/forums/viewtopic.php?t=6176 for info on populating your data base. 11. 0.5.0-DR3 - While 0.5.0 is still under development, you will need to run these temporary scripts to create tables that hold our work in progress: source doors_objects.sql; source pets.sql; 12. Close out the DOS window. You are done with it.
13. Copy Files 1. Copy the following files from c:\EqEmu\cvs\eqemu\EQEMu Release to c:\EqEmu\cvs\eqemu\NewSource\Build addon.ini Boot5zones.bat db.ini LoginServer.ini 2. Copy the following file from your fully patched everquest directory to c:\eqemu\cvs\eqemu\newsource\build: spells_en.txt
14. Edit Startup Files NOTE: The files edited in this section should now be found in c:\eqemu\cvs\eqemu\newsource\build after the previous step. 1. Replace the contents of db.ini with the following: [Database] host=localhost user=test password=test database=eq compression=off
EQEMu Server Guidebook v1.3 2. Replace the contents of LoginServer.ini with the following: [LoginServer] loginserver=eqlogin1.eqemulator.net loginport=5997 worldname=Bob's Super Duper worldaddress=999.999.999.999 locked=false [WorldServer] Defaultstatus=0 Unavailzone= NOTE: Replace 999.999.999.999 above with your external IP address. Visit http://www.whatismyip.com/ to determine your IP. NOTE: Make sure your worldname is more than 10 characters long, less than 30 characters long, and does not contain the word "Server"
3. Replace the contents of Boot5zones.bat with the following: if NOT exist spells_en.txt goto NOSPELL start ZoneDebug.exe . 999.999.999.999 7995 192.168.999.999 start ZoneDebug.exe . 999.999.999.999 7996 192.168.999.999 start ZoneDebug.exe . 999.999.999.999 7997 192.168.999.999 start ZoneDebug.exe . 999.999.999.999 7998 192.168.999.999 start ZoneDebug.exe . 999.999.999.999 7999 192.168.999.999 exit cls :NOSPELL echo You did not copy the spells_en.txt from your everquest directory to this one. Please do so or zones will crash on startup. PAUSE NOTE: Replace 999.999.999.999 above with your external IP address. Visit http://www.whatismyip.com/ to determine your IP. NOTE:Replace 192.168.999.999 above with your internal IP address. There are many things to try here: localhost, 127.0.0.1, your external IP address, or the IP shown in ipconfig/winipcfg. For my home network, 192.168.1.3 worked, as I manually assigned my computer that IP address.
EQEMu Server Guidebook v1.3 15. Start EQEMu 1. Run WorldDebug.exe from c:\EqEmu\cvs\eqemu\NewSource\Build. Just double click on it from windows explorer.
10
NOTE: If it opens and disappears really quickly, you have a problem. Run WorldDebug.exe from the command prompt instead of double clicking on it, and it won't disappear (allowing you to see error). If you can't figure out how to run from a command prompt, please continue no further. Sorry, running a server is for advanced users only. 2. Once successful, you will see these three lines (even though you may see some errors) TCP listening on: 999.999.999.999:9000 World server listening on: 999.999.999.999:9000 Connected to LoginServer: eqlogin1.eqemulator.net:5997
16. Run EQ! 1. Run EQ and connect to your server! See http://www.eqemulator.net/forums/viewtopic.php?t=9649 for more information on how to run the EQ client.
17. Create ServerOP 1. After verifying that you can connect to your server, you are ready to create a ServerOP user for your server. This user has more power than the Lead-GM, so be careful in choosing your serverop (how about choosing yourself?). 2. When you have chosen your serverop, logon to your server from EQ at least once, using the account chosen to be ServerOP. 3. Open mysql in DOS once again (mysql -u test -p eq) and enter in the following command: update account set status=200, password='BobsPassword' where name='SuperDuperBob'; NOTE: Replace "User" with the name of the forum account who will be logging in as ServerOP. NOTE: The password can be anything you wish, but will only be used for an advanced feature (telnet) THIS PASSWORD IS NOT USED TO LOGON TO EQEMU FROM INSIDE EQ! NOTE: Do not use a tick mark (') in your password 4. You should see the following: mysql> update account set status=200, password='BobsPassword' where name='SuperDuperBob'; Query OK, 1 row affected (0.00 sec)
11
2. Point EQ to EQEMu a. Open Notepad: Click Start -> Programs -> Accessories -> Notepad b. Inside of Notepad, Click File -> Open c. Navigate to your EQ directory (Typically c:\program files\everquest) d. Open the file eqhost.txt e. REPLACE everything in the file with the following: [Registration Servers] { "eqlogin1.eqemulator.net:5997" } [Login Servers] { "eqlogin1.eqemulator.net:5997" } f. Save the file
3. Change your Data Rate NOTE: This section is still being investigated a. Open Notepad: Click Start -> Programs -> Accessories -> Notepad b. Inside of Notepad, Click File -> Open c. Navigate to your EQ directory (Typically c:\program files\everquest) d. Open the file DataRate.txt e. REPLACE everything in the file with the following: 8.0 f. Save the file
EQEMu Server Guidebook v1.3 4. Make shortcut to run EQEMu a. Open Windows Explorer b. Navigate to your Everquest directory. Typically, this is c:\program files\everquest. c. Locate the file eqgame.exe. This may take a while! d. Using the RIGHT MOUSE BUTTON, click and drag eqgame.exe from Windows Explorer to the desktop. e. In the menu that pops up after you complete the drag, select Create Shortcuts Here f. A new icon has now been created on your desktop. g. Right click on the newly created icon and select "Properties" on the menu. h. In the Properties window that pops up, find the Target field on the Shortcut tab. i. At the end of the text in this field, add a space with the space bar and then type in the word: patchme j. Click OK in the properties window to save your change.
12
5. Create a forum account. a. Visit http://www.eqemulator.net/forums/profile.php?mode=register to create a forum account. If you already have one, there's no need to create another.
6. Play EQEMu! a. Double click on the icon created above on your desktop NOTE: If you receive the message "Please run EverQuest.exe", you forgot to add patchme to your shortcut - which is part of this tutorial! b. Logon to EQ like normal - USE YOUR FORUM ACCOUNT NAME AND PASSWORD TO LOGON TO EQEMU. Do not use your Sony station name and password. c. If you receive the message "Invalid station name", you forgot to change eqhost.txt - which is part of this tutorial! d. Connect to any servers that have a version number 0.5.0 or greater. You will not be able to connect to any previous versions.
Note: As of 11/16/03, EQEmu 0.5.0 is compatible with EQ Live and in a release version. While some bugs are still present, be aware that patching to live (updating EverQuest to the current version) during the next or any forthcoming patches will likely prevent it from working any longer. It is recommended you use a second installation of EverQuest for use on emulated servers if you also play on Live Servers. Visit www.everquestserver.com for current compatibility information and details regarding the safety of patching your eqgame.exe.
13
Loginserver.ini ### --- This file tells world.exe what loginserver to connect to. ### --- Leave the account and password field BLANK. ### --- Public Login is un-supported as is LAN playing. We reccomend using the EQEmu.net Loginserver ALWAYS. ### --- NOTE: Starting 6-1-2002, you can no longer use the word "Server" in worldname. ### --- NOTE2: the word "Server" is added to each server automaticly. # READ README.TXT [LoginServer] loginserver=eqlogin1.eqemu.net loginserver2=eqlogin2.eqemu.net loginport=5999 loginport2=5999 worldname=servername locked=false worldaddress=name.no-ip.org [WorldServer] Defaultstatus= Unavailzone= [LoginConfig] ServerMode=Standalone ServerPort=5999 UplinkAddress= UplinkPort= UplinkAccount= UplinkPassword=
14
Boot5zones.bat
REM: ****Read this first!!!**** REM: This file requires your real IP in the place of "YourIP" when you are connecting REM: To the EQEmu Loginserver. REM: When you are using minilogin, Replace all IP Addresses to say 127.0.0.1 REM: If you still get errors try using localhost instead of 127.0.0.1 REM:--------------Start-----------------------
@echo off start zone . name.no-ip.org 7995 192.168.123.1 start zone . name.no-ip.org 7996 192.168.123.1 start zone . name.no-ip.org 7997 192.168.123.1 start zone . name.no-ip.org 7998 192.168.123.1 start zone . name.no-ip.org 7999 192.168.123.1 exit cls
REM:---------------END------------------------
Last, for clients on your local network (internal ip) you need to edit your hosts file. The file is simply called hosts with no file extension. It can be located in ... on windows 2000: (system drive) winnt\system32\drivers\etc on windows xp: (system drive) windows\system32\drivers\etc Note: The location of your windows drive can differ depending on what you named it during install.
Hosts The format for Hosts is [ip address] [domain name]. My hosts entry: 192.168.123.1 name.no-ip.org So, if you want the name "name.dns2go.com" to be resolved to "192.168.123.1" when typed in thats what you need to do on every client computer on your internal network. People with external ip addresses do not need to do this. Running an EQEmu Server with NAT
15
This is my server config: name.no-ip.org = external address your internal address will be different Go to no-ip.org and register your own dns. Then make the dns point to your external address. Also in loginserver.ini erase the following (my config has both lines erased already) account= password= They will mess up your config if you leave them there, on NAT configs only.
Once again for "hosts" file you need: "name.no-ip.org *internal address* EXAMPLE: myserver.no-ip.org 192.168.123.1 on all other files name.no-ip.org will equal your external address The "hosts" overrides your computer's TCP-IP DNS settings, so for all internal users when "name.no-ip.org" needs to be resolved, it will not go to your ISP's DNS server it will look inside the "hosts" file you made. With this configuration I can host internal and external users Hope it helps you NAT users =)
16
#attack [targetname]
Function: Make your NPC target attack targetname. Will attack botn NPCs or PCs. Alias: None Use: #attack Cazic_Thule00 -- Forces your current target to attack Cazic_Thule00
#ban [charname]
Function: Ban by character name. Alias: None Use: #ban Mrnasty -- Auto boots character Mrnasty and bans them from your server.
#castspell [spellid]
Function: Causes you to cast a spell. Alias: #cast Use: #castspell 1320 -- Causes your PC to cast Thurgadin Gate and port to Thurg.
#charbackup [list/restore]
Function: Query or restore character backups Alias: None Use:
#checklos
Function: Check for line of sight to your target Alias: #los Use: #checklos -- tells you if you are within the line of sight of your target.
#connectworldserver
Function: Make zone attempt to connect to worldserver Alias: #connectworld Use:
17
#corpse
Function: Manipulate corpses, use with no arguments for help Alias: None Use: #corpse
#damage [amount]
Function: Damage your target Alias: None Use: #damage 10000 -- Causes your target to take 10,000 non melee damage.
#datarate [rate]
Function: Query/set datarate Alias: None Use: #datarate 9 -- Sets datatrate to 9.0 (9000kb/sec)
#delacct [accountname]
Function: Deletes an account from the database Alias: None Use: #delacct Newbie -- permanenty deletes account Newbie from the database.
18
#depop
Function: Depop your NPC target Alias: None Use: #depop -- Causes your target to despawn. Respawn time will continue as set in database.
#depopzone
Function: Depop the zone Alias: None Use: #depopzone -- Causes entire zone to despawn and respawn according to database times.
#eitem
Function: Changes item stats Alias: None Use: unknown Notes: Command does not function in ShareMem mode.
#equipitem [slotid(0-21)]
Function: Equip the item on your cursor into the specified slot Alias: None Use: unknown
#face
Function: Unknown Alias: None Use: unknown
19
#findspell [searchstring]
Function: Searches spell_en.txt for a spell. Alias: #spfind Use: #findspell gate -- displays all spell numbers with gate in their name.
#fixmob [nextrace|prevrace|gender|nexttexture|prevtexture|nexthelm|prevhelm]
Function: Manipulate appearance of your NPC target Alias: None Use: #fixmob nextrace -- Sets your NPC targets race to the next sequencial race number.
#flymode [0/1/2]
Function: Sets your or your targets flymode to 0-Off, 1-On or 2-Levitate Alias: None Use: #flymode 1 -- turns flymode on enabling you to use the Z-axis while in zone. Notes: Flymode is reset to 0 anytime you zone.
#fov
Function: Checks whether you are behind or in your targets field of view. Alias: None Use: #fov [targeted npc] -- You are NOT behind mob Lord_Nagafen00, it is looking to 0. Notes:
#freeze
Function: Freeze your target Alias: None Use: #freeze -- Incapacitates your target causing them to cease movement.
#gassign [id]
Function: Assigns targeted NPC to predefined wandering grid id. Alias: None Use: #gassign 1096 -- Assigns target to use grid 1096 for wandering path. Notes: See #grid, #wp, #wpadd, #wpinfo and Wandering NPC tutorial for more information.
#getvariable [varname]
Function: Get the value of a variable from the database. Alias: None Use: unknown Notes:
20
#gender [0/1/2]
Function: Change your or your targets gender to 0-Male, 1-Female or 2-Neuter. Alias: None Use: #gender 1 -- Changes your target to a female.
#gm
Function: Toggles GM flag on or off. Affects targeted PC with correct status. Alias: None Use: #gm on -- You are now a GM.
#gmspeed [on/off]
Function: Turn GM speed hack on/off for you or your player target Alias: None Use: #gmspeed on -- Toggles GM Speed. Will not work until you zone but is perm set until toggled off.
#guild
Function: Guild manipulation commands. Use argument help for more info. Alias: #guilds Use: see help.
#haste [percentage]
Function: Set your haste percentage. Alias: None Use: #haste 65 -- Sets your haste to 65%.
#heal
Function: Completely heals your target. Only affects PCs. Alias: None Use: #heal (with a target) -- instantly restores hitpoint value to 100 percent.
21
#hideme [on/off]
Function: Hide yourself from spawn list. Alias: #gmhideme Use: #hideme on -- Removing you from spawn lists.
#invulnerable [on/off]
Function: Turn player targets or your invulnerable flag on or off Alias: #invul Use: #invulnerable on -- You are now invulnerable from attack.
#iplookup [charname]
Function: Looks up IP address of charname. Alias: None Use: #iplookup Superbob Notes: Displays additional information. See below: ID: 1 Acc# 2 AccName: eqboy IP: 127.0.0.1 Stale: 1 Online: 4 Admin: 200 CharID: 8 CharName: Superbob Zone: gukg (261) 1 CLEs in memory. 1 CLEs listed. numplayers = 1.
#iteminfo
Function: Get information about the item on your cursor Alias: None Use: unknown
#kick [charname]
Function: Disconnects charname from the server.. Alias: None Use: #kick Superbob -- boots player Superbob to Server Select.
#kill
Function: Kill your target Alias: None Use: #kill -- Kills whatever is targeted (NPC or PC).
22
#level [level]
Function: Set your or your targets level (PC or NPC) Alias: None Use: #level 65 (NPC targeted) -- NPC becomes level 65. Notes: Perm on PC, zone reboot resets NPC. Level cap is currently 255.
#listnpcs [name/range]
Function: Search NPCs. Alias: None Use: #listnpcs 1 30 -- Displays NPC 1 thru 30 in the current zone. Notes: (See Below) #listnpcs [#] [#] (Each number would search by ID, ex. #listnpcs 1 30, searches 1-30) #listnpcs [name] (Would search for a npc with [name])
#listpetition
Function: List petitions. Alias: None Use: #listpetition -- Will display all queued petitions along with petition number(s).
#loc
Function: Print out your or your target's current location and heading Alias: /loc Use: #loc -- Displays your current location and heading in the zone.
#lock
Function: Locks the worldserver and prevents clients from connecting. Alias: None Use: #lock -- World locked. Server displays as locked on Server Select Screen. Notes: Correct status level can still enter a licked worldserver.
#manastat
Function: Report your or your targets current and maximum mana (NPC or PC). Alias: None Use: #manastat (targeted PC) -- Mana for Superbob: Current Mana 2030 | Max Mana 3045
23
#mana
Function: Fill your or your targets mana pool (PC only). Alias: None Use: #mana (targeted PC) -- Instantly fills mana pool to 100 percent
#manaburn
Function: Use AA Wizard class skill manaburn on target Alias: None Use: #manaburn -- Nukes your target with the Manaburn skill.
#npcemote [message]
Function: Make your NPC target emote a message. Alias: None Use: #npcemote prepares for battle -- targeted NPC will emote a rat prepares for battle
24
#npcsay [message]
Function: Make your NPC target say a message. Alias: None Use: #npcsay Argh.. I will get you -- targeted NPC will say Argh... I will get you.
#npcshout [message]
Function: Make your NPC target shout a message in zone. Alias: None Use: #npcshout Argh.. I will get you -- targeted NPC will shout Argh... I will get you throughout zone.
#npcspawn [create/add/update/remove/delete]
Function: Manipulate spawn DB Alias: None Use: #npcspawn add -- Adds targeted NPC to the database to make it permanent.
#npcstats
Function: Displays current stats of target NPC. Alias: None Use: (with target NPC) #npcstats -- displays information listed in Notes. Notes: Displays NPCs Name, NpcID, Race, Level, Material, Class, Curr Hp, Max Hp, Gender, Size, Runspeed, Walkspeed, Coin and Loot.
#nukebuffs
Function: Strip all buffs on you or your target. Alias: None Use: #nukebuffs -- Removes all buffs from your target.
#nukeitem [itemid]
Function: Remove itemid from your player targets inventory. Alias: None Use: unknown
25
#numauths
Function: Unknown Alias: None Use: unknown
#oocmute
Function: Mutes OOC chat. Alias: None Use: #oocmute
#peekinv [worn/cursor/inv/bank/trade/all]
Function: Prints out contents of your player targets inventory. Alias: None Use: (PC target) #peekinv worn -- displays each inv slot on player and what item is worn by them.
#permaclass [classnum]
Function: Change your or your player target's class (target is disconnected) Alias: None Use: #permaclass 1 -- Sets your targets class to 1 (Warrior). Note: Your target (or you) will be booted back to server select.
#permagender [gendernum]
Function: Change your or your player target's gender (zone to take effect) Alias: None Use: #permagender 1 -- Perm changes you or your target to female gender.
#permarace [racenum]
Function: Change your or your player target's race (zone to take effect) Alias: None Use: #permarace 1 -- Perm changes you or your targets race to Human (1).
#pvp [on/off]
Function: Set your or your player target's PVP status Alias: None Use: #pvp on -- Sets you or your targets PVP status to on.
#race [racenum]
Function: Change your or your targets race (PC or NPC). Use #Race 0 to return to normal. Alias: None Use: #race 1 -- Changes current targets race to Human til zone reboots or player zones.
#reloadquest
Function: Clear quest cache Alias: #reloadqst Use: #reloadquest -- forces server to reload quest information into memory cache.
26
#reloadzonepoints
Function: Reload zone points from database. Alias: #reloadzps Use: #reloadzonepoints -- causes server to reload all zone points.
#repop [delay]
Function: Repop the zone with optional delay Alias: None Use: #repop 30 -- Repops current zone with 30 second delay.
#save
Function: Force your player or player corpse target to be saved to the database. Alias: None Use: #save -- Forces character/corpse save to database.
#scribespells [level]
Function: Scribe all spells usable by you, up to level specified. Alias: None Use: #scribespells 65 -- If Wizard class, this would cause you to memorize every wiz spell in the game.
#sendop [opcode]
Function: TODO: describe this command Alias: None Use: unknown
#sendzonespawns
Function: Refreshes spawn list for all clients in zone Alias: None Use: #sendzonespawns -- unknown. Possibly affects players with tracking skill?
#setaapts [value]
Function: Set your or your player target's available AA points Alias: #setaapoints Use: #setaapts 40 -- Gives you or your target 40 AA points.
#setaaxp [value]
Function: Set your or your player target's AA experience Alias: #setaaexp Use: #setaaxp 500000 -- Gives you or target an additional 500,000 xp to your AA xp bar.
#setadventurepoints [value]
Function: Set your or your player target's available adventure points Alias: None Use: #setadventurepoints 5000 -- Gives you or target an additional 5000 Adventure points.
27
#setanim [animnum]
Function: Set targets appearance to animnum (NPC only) Alias: None Use: (NPC targetted) #setanim 3 -- causes target NPC to feign death / do death animation. Notes: Set Anim: 1 - Sit | 2 - Duck | 3 - Death/FD | 4 - Loot/Kneel | 5 - Stand
#serversidename
Function: Prints targets server side name (NPC). Alias: None Use: (NPC targeted) #serversidename -- Displays items server name (ie., a_fire_beetle05)
#setskillall [value]
Function: Set all of your targets skills to the entered value (PC). Alias: #setallskill [value] Use: (PC targeted) #setskillall 150 -- Sets all of PCs skills to 150. Notes: This will boost every skill, including skills not used by the PCs class. Max value is 252.
#setxp [value]
Function: Set your or your player target's experience Alias: #setexp Use: #setxp 2500000 -- Gives you or your target 2,500,000 xp points in the exp bar.
28
#showbuffs
Function: List buffs active on your target or you if no target (PC or NPC). Alias: None Use: #showbuffs -- See information below Notes: Displays both spell buffs as well as worn/armor increased statistics: Buffs on: Superbob 0: Speed of Vallon: 407 tics left 1: Focus of the Seventh: 784 tics left itembonuses: Atk:85 Ac:155 HP(7):435 Mana:400 Str:30 Sta:37 Dex:37 Agi:50 Int:41 Wis:0 Cha:0 SvMagic:20 SvFire:45 SvCold:30 SvPoison:45 SvDisease:30 DmgShield:0 Haste:0 spellbonuses: Atk:41 Ac:0 HP(0):544 Mana:0 Str:75 Sta:0 Dex:103 Agi:52 Int:0 Wis:0 Cha:0 SvMagic:0 SvFire:0 SvCold:0 SvPoison:0 SvDisease:0 DmgShield:0 Haste:68
#showskills
Function: Shows the values of you or your targets skills (PC or NPC). Alias: None Use: (PC targeted) #showskills -- Displays targets skills. Displays as: Skill[10] is at [252].
#showstats
Function: Show details about you or your target Alias: None Use: #showstats -- ToDo: List what is displayed.
#shutdown
Function: Shut this zone process down. Alias: None Use: #shutdown -- shuts down current zone.
#size [size]
Function: Changes the size of you or your target (PC or NPC). Alias: None Use: #size 255 -- Turns you into King Kong (unbelievably large)
#spawn [name] [race] [level] [material] [hp] [gender] [class] [priweapon] [secweapon] [merchantid]
Function: Spawns an NPC with entered parameters. Alias: None Use: #spawn Test_Mob 367 45 1 12000 2 5 -- spawns Test_Mob00, Lvl 45 SK Skel with 12k hitpoints. Notes: See Appendixes for Race. Material, Gender, Class Lists. Weapon(s) optional.
29
#spawnfix
Function: Find targeted NPC in database based on its X/Y/heading and update the database to make it spawn at your current location/heading. Alias: None Use: #spawnfix -- NPC must be targeted to work.
#spawnstatus
Function: Show respawn timer status Alias: None Use: #spawnstatus -- Checks targeted NPCs respawn timer in the database.
#spellinfo [spellid]
Function: Get detailed info about a spell Alias: None Use: #spellinfo 818 -- Queries spells_en.txt for spell info and displays it on screen.
#spoff
Function: Sends OP_ManaChange Alias: None Use: unknown
#spon
Function: Sends OP_MemorizeSpell Alias: None Use: unknown
#stun [duration]
Function: Stuns you or your target for duration Alias: None Use: #stun 100
#summon [charname]
Function: Summons your player/NPC/corpse target, or specified charname (PC or NPC). Alias: None Use: #summon Superbob -- Summons char Superbob to you, regardless of where char was.
#synctod
Function: Send a time of day update to every client in zone Alias: None Use: #synctod -- Use after #time to sync new time of day with every connected client..
30
#testspawnkill
Function: Sends an OP_Death packet for spawn made with #testspawn command. Alias: None Use: unknown
#title [title(0-3)]
Function: Set your or your player target's title Alias: None Use: #title 0 -- Removes AA title from you or your targeted PC.
#unfreeze
Function: Unfreeze your target Alias: None Use: #unfreeze -- Re-enables movement of your target. Opposite of #freeze.
#unlock
Function: Unlock the Worldserver Alias: None Use: #unlock -- Unlocks the world on server select, allowing clients to connect to server.
#version
Function: Displays the current version of the EQEmu server. Alias: None Use: #version -- Displays: EQEmu 0.5.0, Compiled on October 14, 2003 at 02:00:54.
#viewmessage [id]
Function: View messages in your tell queue Alias: #viewmessages Use: #viewmessage 2 -- Displays second message in your tell queue.
31
#weather [0/1/2/3]
Function: Changes the weather in zone. (Off/Rain/Snow/Manual) Alias: None Use: #weather 1 -- Causes it to begin to rain in the current zone..
#worldshutdown
Function: Shut down world and all zones. Alias: None Use: #worldshutdown -- shuts down entire server.
32
#wpinfo
Function: Show waypoint info about your NPC target. Alias: None Use: command is not yet implemented.
#zheader [zonename]
Function: Load and send zheader for zonename from its .cfg Alias: #zhdr Use: #zheader befallen -- Would force zone server to reload befallen.cfg
#zonelock [list/lock/unlock]
Function: Set/query lock flag for zoneservers Alias: None Use: #zonelock lock -- Locks zoneservers.
#zoneshutdown [shortname]
Function: Shut down a zone server. Alias: None Use: #zoneshutdown acrylia -- Shuts down Acrylia Caverns zone on the server.
#zonestatus
Function: Show connected zoneservers, synonymous with /servers Alias: None Use: #zonestatus -- Displays all running zoneservers connected to the world server.
33
#zsave [zonename]
Function: Save zheader in .cfg file for zonename. Alias: None Use: #zsave sseru -- Saves zheader information in sseru.cfg.
#zsky [skytype]
Function: Changes zone sky type Alias: None Use: #zsky 5 -- Sets the sky in the current zone to a redish tint. Note: This command differs from #zcolor in that it actually changes the sky texture/color. (See Appendix for a complete graphic list of sky textures) 1 - Blue Sky with East-to-West puffy clouds 2 - Clear Blue Sky with Moon and an occassional red cloud (dusk/sunset look) 3 - Cloudy Sky with Planet showing. North-to-South redish clouds. 4 - Sunrise/Sunset with Sun and redish clouds running East-to-West. 5 - Red Sky - Plane of Fear type sky with red hue.
#zstats
Function: Show info about zone header Alias: None Use: #zstats -- Queries zheader in .cfg file.
#zunderworld [zcoord]
Function: Sets underworld coord Alias: None Use: #zunderworld -4000 -- Sets player is underworld at... coord to -4000 in current zone.
34
What is a grid? The best way to explain this is through illustrations. In this first one at the left, you see we have a forest. Let's say we have a spider at position 1 just standing around, very bored. We walk around the area and select the other places numbered 2 - 6.(More on how to do that later.) Now we have a total of six points selected. You could have as many as 50, but in most cases,"less is more". Each is referred to as a "waypoint". All of these make up our grid. When we assign this grid to our spider, he will move from one waypoint to another. He may pause at each before moving to the next, depending upon choices we made as we built the grid. This is how we make our NPCs move. Pick places in the area and tell the NPC to move from one to the other. Now for the details.... this is where it gets more interesting and a bit more complex.
6 1
5 2
In this picture, you can see how we have connected the dots. Drawn a line from one waypoint to the next in numerical order. Following this grid, the NPC would simply go in circles, from one waypoint to the next in order. This is called a circular wander type. Its useful for boats, for example. We also use it for some single NPCs to have them follow a preordained path. It is simple, but limited in use. It's always a good idea when making a circular path to have the last waypoint close to the first so the circle is closed and you are sure that it won't be walking through walls or climbing over trees to get back to the first waypoint as it starts over.
6 1
5 2
35
Random wandering is the most common type used. It works best in open areas and you can put multiple NPCs on a single grid saving you time and still producing a good looking result. With random wandering, an NPC randomly goes to another waypoint. From there it will go to another one at random. The direction it chooses is unpredictable, making the movement seem more realistic. There are many more ways for an NPC to travel in this type of grid as you can see at the right. To avoid those "walking through walls" and "over the tree" type mistakes, always be sure you can see all the other waypoints from the one you are about to make, 3 There are 2 types of random wandering. Random does as described above. Random 10, the second one, selects a waypoint to move towards randomly, but only from the nearest 10 choices. 1
5 2
6 The last type of wandering is called patrol. As you can guess, this is handy for guards and police type characters. An NPC on patrol, walks along the waypoints in order, just as he would in a circular one. The difference comes when he hits the end. Instead of starting over at the first, he backtracks. He goes back through the waypoints in reverse order. So in our example at left he would walk 1 2 3 4 5 6 5 4 3 2 1 2 3 4 5 6 5 4 3 2 1 2 3... and on and on. 3 1
5 2
36
Pausing options
You may remember that an NPC can be made to pause at a waypoint. Each time you create a waypoint, you specify a pause time. This is the time in seconds that the NPC will pause there before continuing to the next one. But specifying a pause time doesn't mean the NPC will actually stop at the waypoint for that long... there are 3 meanings to the pause value you give, depending on the grid's options. Random - the NPC pauses a random period of time between 1 and the pause amount you set... enter 10, NPC stays from 1-10 seconds Full - the NPC stays at the waypoint for the number of seconds you specified for the pause time... enter 10, NPC stays for 10 seconds Random half - the NPC pauses for half the amount you entered PLUS a random amount of up to the other half... enter 10, NPC will stay from 5-10 seconds
37
38
Commands Comments
Anything after an # is a comment. Example: # This is a comment line
Events
sub EVENT_SAY - Triggered when a mob is targeted and the PC types something. sub EVENT_ITEM - Triggered when (an) item(s) is turned into a PC via trade. sub EVENT_DEATH - Triggered when the NPC dies. sub EVENT_ATTACK - Triggered when the NPC is attacked. (Note: It will not trigger again until the mob has been disengaged in combat for 13 seconds. sub EVENT_SPAWN - Triggered when the NPC spawns. sub EVENT_TIMER(number of seconds) - pause for x number of seconds. Dev's shouldn't this be a quest::timer(secs); sub EVENT_SLAY - Triggered whenever an NPC kills someone. For example: a giant rat says, 'I pwned u lolo' sub EVENT_WAYPOINT - Triggers as the mob reaches each waypoint.
Variables
$text =~ Used to identify words said directed torward an NPC. Say you said "Hello Tunare, my name is chauncie." $text =~/Hello / would match on "Hello " -- case sensitive $text =~/hello / would NOT match on "Hello " -- case sensitive $text =~/hello /i would match on "Hello " -- not case sensitive This uses the perl regular expression matching. Also see http://aspn.activestate.com/ASPN/ docs/ActivePerl/lib/Pod/perlretut.html Guide to the Perl Quest system for EQEMu 0.5.2+
39
Identifiers
$name - Returns the name of the user that triggered the Event. $race - Returns the race of the user that triggered the Event. $class - Returns the class of the user that triggered the event. $userid - Returns the ID of the user that triggered the Event. $ulevel - Returns the level of the user that triggered the Event. $uguildid - Returns the ID of the guild of the user that triggered the Event. $ugildrank - Returns the guild rank of the user that triggered the Event. typo in current code $ugildrang $mname - Returns the Mob's name $mobid - Returns the NPCTypeID of the mob that the user triggered the Event on. not in current code $mlevel - Returns the level of the mob that the user triggered the Event on. not in current code $faction - Returns the faction level number of the user with the mob. 1: Ally 2: Kindly 3: Warmly 4: Amiably 5: Indifferent 6: Apprehensive $zonesn - Returns the zone short name that the Event occured in. $zoneln - Returns the zone long name that the Event occured in. $status - Returns the account status of the user that triggered the Event. not in current code $item0-3 - If user turned in an item, $item0 would be the first item When an item is turned in it is given an identifier: $item0 - The item# in the first slot. $item1 - The item# in the second slot. $item2 - The item# in the third slot. $item3 - The item# in the fourth slot. $itemcount{itemid} - $itemcount{1001} would return 2 if the user turned in 2 1001 items
Commands
Commands require an ; at the end of each one Note: Do NOT use commas in your "Text" This will cause errors. ie. do NOT do quest::say("Hey, Who are you?"); quest::say("Text"); - Mob will say "Text". quest::emote("Text"); - Mob will emote "Text". quest::shout("Text"); - Mob will shout "Text". quest::spawn(npc_type,grid,guildwarset,x,y,z); - Spawn "npc_type" on "grid" with "guildwarset" at "x","y","z". quest::echo("Text"); - Echoes specified text to console.
40
Commands cont.,
quest::summonitem(itemid); or quest::summonitem(itemid,charges); - Summons "itemid" to user that triggered Event. Charges is the number of charges, or number of items in the stack depending on the item type, it is also optional. quest::castspell(id,spellid); - Casts "spell" on entity with "id". quest::depop(); - Mob will de-spawn. quest::cumflag(); - Flag 50 for mob will increase by 1. quest::flagnpc(flag,flag_value); - Sets "flag" to "flag_value" for mob. quest::flagclient(flag,flag_value); - Sets "flag" to "flag_value" for client. quest::exp(amount); - Adds "amount" of exp to user's exp amount. quest::level(newlevel); - Sets user level. quest::safemove(); - Moves user to zone's safe x,y,z. quest::rain(1/0); or quest::snow(1/0); - Makes it rain or snow in zone. quest::givecash (cop.,silv.,gold,plat); - Gives client coin. quest::pvp("on/off"); - Sets pvp on/off for user. quest::doanim(anim_num); - Mob will do animation for "anim_num". quest::addskill(skill,value); - Increases "skill" by "value" for user. quest::me("text"); - Does a name-less emote, me("The ground below you begins to shake") quest::faction(faction_id,value); - Give player faction "value" with "faction_id" see note quest::setguild(guild_id,rank); - Add player to "guild_id" with a "rank" see note quest::rebind - todo see note quest::flagcheck - todo see note quest::write - todo see note quest::settime - todo see note quest::setsky - todo see note quest::settimer - todo see note quest::stoptimer - todo see note quest::settarget - todo see note quest::follow - todo see note quest::sfollow - todo see note quest::movepc - todo see note quest::gmmove - todo see note quest::movegrp - todo see note quest::setallskill - todo see note quest::attack - todo see note quest::save - todo see note Note: not in code yet (see next page)
41
Commands cont.,
For those with compilers you can add the previous noted commands: Replace the current line with "string cmds(..." in zone/parser.cpp string cmds("if 0|break 1|spawn 6|settimer 2|stoptimer 1|rebind 4|echo 1|summonitem 1|castspell 2|say 1|emote 1|shout 1|depop 1|cumflag 1|flagnpc 1|exp 1|level 1|safemove 1|rain 1|snow 1|givecash 4|pvp 1|doanim 1|addskill 2|flagcheck 1|me 1|write 2|settarget 2|follow 1|sfollow 1|save 1|setallskill 1|faction 2|settime 2|setguild 2|setsky 1|movepc 4|gmmove 3|movegrp 4|attack 1|"); add the following to the bottom of zone/embparser.cpp and recompile: "sub faction{push(@cmd_queue,{func=>'faction',args=>join(',',@_)});}" "sub setguild{push(@cmd_queue,{func=>'setguild',args=>join(',',@_)});}" "sub rebind{push(@cmd_queue,{func=>'rebind',args=>join(',',@_)});}" "sub flagcheck{push(@cmd_queue,{func=>'flagcheck',args=>join(',',@_)});}" "sub write{push(@cmd_queue,{func=>'write',args=>join(',',@_)});}" "sub settime{push(@cmd_queue,{func=>'settime',args=>join(',',@_)});}" "sub setsky{push(@cmd_queue,{func=>'setsky',args=>join(',',@_)});}" "sub settimer{push(@cmd_queue,{func=>'settimer',args=>join(',',@_)});}" "sub stoptimer{push(@cmd_queue,{func=>'stoptimer',args=>join(',',@_)});}" "sub settarget{push(@cmd_queue,{func=>'settarget',args=>join(',',@_)});}" "sub follow{push(@cmd_queue,{func=>'follow',args=>join(',',@_)});}" "sub sfollow{push(@cmd_queue,{func=>'sfollow',args=>join(',',@_)});}" "sub movepc{push(@cmd_queue,{func=>'movepc',args=>join(',',@_)});}" "sub gmmove{push(@cmd_queue,{func=>'gmmove',args=>join(',',@_)});}" "sub movegrp{push(@cmd_queue,{func=>'movegrp',args=>join(',',@_)});}" "sub setallskill{push(@cmd_queue,{func=>'setallskill',args=>join(',',@_)});}" "sub attack{push(@cmd_queue,{func=>'attack',args=>join(',',@_)});}" "sub save{push(@cmd_queue,{func=>'save',args=>join(',',@_)});}"
If Statements
An if statement is used to check to see if a condition is true, if it is true then it continues on. If statements can use operators: ==,!=,<,>,<=,>=,=~ also &&,|| for and, or Syntax: if (something operator something_else){quest::command(); quest::command();} if ($text=~/Hail/) { quest::say("Hail there $name $+ ! How is your day?"); } if ($text =~ /hi/i || $text =~ /hey/i || $text =~ /yo/i) { quest::shout("Hello!"); } if ($itemcount{1001} == 3 && $itemcount{1002} == 1) { quest::say("Excellent you brought me the three cloth capss, plus the cloth veil I asked for"); } Guide to the Perl Quest system for EQEMu 0.5.2+
42
If Statements cont.,
You may use if statements inside of if statements example: if ($text=~ /heh/) { if ($text=~ /4/) { quest::say("Bahh"); } } Examples A simple hail script: sub EVENT_SAY { if ($text~= /Hail/) { quest::say(" Why hello there mister!"); } }
More then one responce: sub EVENT_SAY { if ($text~= /Hail/) { quest::say("Hey, have you seen a [rock] around here?"); } if ($text~= /rock/i) { quest::say("Ya it was big and shiny"); } }
Item turn-in: sub EVENT_ITEM { if ($item0 == 1001) { quest::say("Wow thanks for this.. cloth?!");} }
NPC shouting and emoting: sub EVENT_SAY { if ($text~= /Hail/) { quest::me(" Theres a sound of wind blowing as you come close to bob-thenpc");} if ($text~= /wind/i) { quest::shout("This guy is bugging me");} }
NPC death: sub EVENT_DIE { quest::say("I'll get you back $name !"); quest::shout("I've just died!"); }
43
If Statements cont.,
Priest of Discord: #( Zone:freporte ID:3975 -- Priest_of_Discord ) sub EVENT_SAY { if($text=~/Hail/i){ quest::say("Greetings $name. Are you a child of Order? If you have come seeking the path of Discord I require only that you give me your [Tome of Order and Discord] and I shall show you the way. Only then will you be freed from Order's confining restraints.");} if($text=~/tome of order and discord/i){ quest::say("The Tome of Order and Discord was penned by the seventh member of the Tribunal and has become the key to a life of Discord in spite of the author's pitiful warnings. Do you not have one child of Order? Would you [like to read] it?");} if($text=~/read it/i){ quest::say("Very well. Here you go. Simply return it to me to be released from the chains of Order."); quest::summonitem(18700);} } sub EVENT_ITEM { if($itemcount{18700} && $itemcount{18700} == 1){ quest::say("I see you wish to join us in Discord! Welcome! By turning your back on the protection of Order you are now open to many more opportunities for glory and power. Remember that you can now be harmed by others who have also heard the call of Discord."); quest::exp(125); quest::pvp("On");} } #( END of FILE )
Soulbinder: sub EVENT_SAY { if($text=~/Hail/i){ quest::say("Greetings $name. When a hero of our world is slain their soul returns to the place it was last bound and the body is reincarnated. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish.");} if($text=~/bind my soul/i){ quest::say("Binding your soul. You will return here when you die."); quest::castspell($userid,2049);} }
44
If Statements cont.,
Bone chips quest: sub EVENT_SAY { if ($text~= /Hail/i) { quest::say("Hail $name . We of Tunare are charged with protecting the Great Mother from the forces of Innoruk. Even now the evil minions of this foul deity are despoiling our great forest. Will you help us [protect the mother]?"); } if ($text~= /perform a task/i) { quest::say("Just outside the gates of Felwithe the forces of Innoruk gather in the guise of decaying skeletons. Bring me four sets of bone chips as proof of your vigilance. I assure you that your faith shall not go unrewarded."); } } sub EVENT_ITEM { if ($itemcount{13331} == 4) { quest::say("Praise Tunare - I knew that you would be victorious. I reward you with this spell, and pray that it will help you in your fight against the unholy forces of Innoruk."); quest::exp(125); quest::faction(32,5); quest::faction(57,-1); quest::spawnitem(15374);} }
45
Old eqgame.exe The way most of us will remember model availability is that eqgame.exe would access <zonename>_chr.s3d and the global_chr.s3d files. Those files contained the only models that could be used in that zone. Global_chr.s3d are obviously universal models available in every zone.
Current eqgame.exe Somewhere in the string of past patches, Sony must have decided that they wanted a faster way to augment model availability in zones. Quite honestly, once you read what was done youll agree that its a much more efficient way to do it. Its also great news for the EQEMu community because it greatly expands customizing and uniqueness from EQLive. If you view your EverQuest directory, youll notice a few files named: zonename_chr.txt Typically, the _chr.txt files will only be listed for the latest zones (LDoN, revamped zones, etc.) What I have discovered is that the only apparent check made against changing these files is a first line of text that tells eqgame.exe how many models it should be loading. Great news! You can customize the newer zones - or at least thats what I first though. Once I started playing around even further I really got excited. I discovered that eqgame.exe is apparently hardcoded to accept a *_chr.txt file for every zone even if they dont have one now! This means that even though global_chr.s3d and freportw_chr.s3d are loaded when you zone to West Freeport, IF freportw_chr.txt exists the client will force load any and all models specified in that file! Loading Any Model in Any Zone
46
How to add models to any zone A zonename_chr.txt file contains the following type of information: 6 <---- Line 1 tells the client how many models will be loaded. gol,qeynos_chr gia,commons_chr bet,ecommons_chr <---- Lines 2+ specify which models to load and spi,ecommons_chr from which _chr.s3d file(s). gob,butcher_chr format: model_id,file_id (no spaces!) imp,steamfont_chr It is this file that you can manually change to force load any model(s) you wish to be available in that zone as long as you know the model_id and file_id for loading them (EQEMu Guidebook 1.3 will have a listing). the s3d file extension should not be used when specifying the file_id. Also, I cannot stress enough, do not use spaces! NOTE: If you use an incorrect model_id, file_id, use spaces, use a period instead of a comma or type anything incorrectly, you will crash any client zoning into the zone with a bad zonename_chr.txt file. Because of this, I highly suggest you only add 2-3 models at a time (even if using the Guidebook's information) to ensure everything is correct. It's much easier to locate a problem in 3 entries than it is in 30. Example of use: Open Notepad or any text editor. On Line #1 type the following: 3 On Line #2 type the following: skb,skb_chr On Line #3 type the following: fgh,fgh_chr On Line #4 type the following: scr,scr_chr Now save the file (as ANSI text) into your EverQuest directory as freporte_chr.txt The next time you zone into E. Freeport, you will be able to spawn and see Kunark Scorpions, PoNightmare Banshees and LDoN Froglok Ghosts in East Freeport. Its that easy!
As mentioned previously, you can also add/remove files from pre-existing zonename_chr.txt files. And remember, the zone will still load all global models as well as any models in its zonename_chr.s3d file (providing it has one. Later zones do not).
The EQEMu Model Reference Appendix now contains model_id,file_ids along with race numbers, name, gender, texture and the graphics for that model. Loading Any Model in Any Zone
47
Appendix A:
RACE LIST
(A Guide to Model Types)
48
EQEMu Server Guidebook v1.3 120 -- Wolf Elemental 121 -- Gorgon 122 -- Dragon Skeleton 123 -- Innoruuk 124 -- Unicorn 125 -- Pegasus 126 -- Djinn 127 -- Invisible Man 128 -- Iksar 129 -- Scorpion 130 -- Vah Shir 131 -- Sarnak 132 -- Draglock 133 -- Lycanthrope 134 -- Mosquito 135 -- Rhino 136 -- Xalgoz 137 -- Kunark Goblin 138 -- Yeti 139 -- Iksar Citizen 140 -- Forest Giant 141 -- Boat 142 -- Zone Object/Minor Illusion 143 -- Zone Object/Illusion: Tree 144 -- Burynai 145 -- Goo 146 -- Spectral Sarnak 147 -- Spectral Iksar 148 -- Kunark Fish 149 -- Iksar Scorpion 150 -- Erollisi 151 -- Tribunal 152 -- Bertoxxulous 153 -- Bristlebane 154 -- Fay Drake 155 -- Sarnak Skeleton 156 -- Ratman 157 -- Wyvern 158 -- Wurm 159 -- Devourer 160 -- Iksar Golem 161 -- Iksar Skeleton 162 -- Man Eating Plant 163 -- Raptor 164 -- Sarnak Golem 165 -- Water Dragon 166 -- Iksar Hand 167 -- Succulent 168 -- Holgresh 169 -- Brontotherium 170 -- Snow Dervish 171 -- Dire Wolf 172 -- Manticore 173 -- Totem 174 -- Cold Spectre 175 -- Enchanted Armor 176 -- Snow Bunny 177 -- Walrus 178 -- Rock-gem Men 181 -- Yak Man / Faun 182 -- Unknown 183 -- Coldain 184 -- Velious Dragons 185 -- Hag 186 -- Hippogriff 187 -- Siren 188 -- Frost Giant 189 -- Storm Giant 190 -- Ottermen 191 -- Walrus Man 192 -- Clockwork Dragon 193 -- Abhorent 194 -- Sea Turtle 195 -- Black and White Dragons 196 -- Ghost Dragon 197 -- Ronnie Test 198 -- Prismatic Dragon 199 -- ShikNar 200 -- Rockhopper 201 -- Underbulk 202 -- Grimling 203 -- Vacuum Worm 204 -- Evan Test 205 -- Kahli Shah 206 -- Owlbear 207 -- Rhino Beetle 208 -- Vampyre 209 -- Earth Elemental 210 -- Air Elemental 211 -- Water Elemental 212 -- Fire Elemental 213 -- Wetfang Minnow 214 -- Thought Horror 215 -- Tegi 216 -- Horse 217 -- Shissar 218 -- Fungal Fiend 219 -- Vampire Volatalis 220 -- StoneGrabber 221 -- Scarlet Cheetah 222 -- Zelniak 223 -- Lightcrawler 224 -- Shade 225 -- Sunflower 226 -- Khati Sha 227 -- Shrieker 228 -- Galorian 229 -- Netherbian 230 -- Akhevan 231 -- Spire Spirit 232 -- Sonic Wolf 233 -- Ground Shaker 234 -- Vah Shir Skeleton 235 -- Mutant Humanoid 236 -- Lord Inquisitor Seru 237 -- Recuso 238 -- Vah Shir King 239 -- Vah Shir Guard 240 -- Teleport Man 241 -- Lujein 242 -- Naiad 243 -- Nymph 244 -- Ent 245 -- Wrinnfly 246 -- Coirnav 247 -- Solusek Ro 248 -- Clockwork Golem 249 -- Clockwork Brain 250 -- Spectral Banshee 251 -- Guard of Justice 252 -- PoM Castle 253 -- Disease Boss 254 -- Solusek Ro Guard 255 -- Bertoxxulous 256 -- New Tribunal 257 -- Terris Thule 258 -- Vegerog 259 -- Crocodile 260 -- Bat 261 -- Slarghilug 262 -- Tranquilion 263 -- Tin Soldier 264 -- Nightmare Wraith 265 -- Malarian 266 -- Knight of Pestilence 267 -- Lepertoloth 268 -- Bubonian Boss 269 -- Bubonian Underling 270 -- Pusling 271 -- Water Mephit
49
EQEMu Server Guidebook v1.3 272 -- Stormrider 273 -- Junk Beast 274 -- Broken Clockwork 275 -- Giant Clockwork 276 -- Clockwork Beetle 277 -- Nightmare Goblin 278 -- Karana 279 -- Blood Raven 280 -- Nightmare Gargoyle 281 -- Mouths of Insanity 282 -- Skeletal Horse 283 -- Saryrn 284 -- Fennin Ro 285 -- Tormentor 286 -- Necromancer Priest 287 -- Nightmare 288 -- New Rallos Zek 289 -- Tallon Zek 290 -- Vallon Zek 291 -- Air Mephit 292 -- Earth Mephit 293 -- Fire Mephit 294 -- Nightmare Mephit 295 -- Zebuxoruk 296 -- Mithaniel Marr 297 -- Knightmare Rider 298 -- Rathe Councilman 299 -- Xegony 300 -- Balrog / Demon 301 -- unkown 302 -- Lobster Monster 303 -- Pheonix 304 -- Quarm 305 -- Bear (new) 306 -- Earth Golem 307 -- Iron Golem 308 -- Storm Golem 309 -- Air Golem 310 -- Wood Golem 311 -- Fire Golem 312 -- Water Golem 313 -- Veiled Gargoyle 314 -- Lynx 315 -- Squid 316 -- Frog 317 -- Flying Serpent 318 -- Tactics Soldier 319 -- Armored Boar 320 -- Djinni 321 -- Boar 322 -- Knight of Marr 323 -- Armor of Marr 324 -- Nightmare Knight 325 -- Rallos Ogre 326 -- Arachnid 327 -- Crystal Arachnid 328 -- Tower Model 329 -- Portal 330 -- Froglok 331 -- Troll Crew Member 332 -- Pirate Deckhand 333 -- Broken Skull Pirate 334 -- Pirate Ghost 335 -- One-armed Pirate 336 -- Spiritmaster Nadox 337 -- Broken Skull Taskmaster 338 -- Gnome Pirate 339 -- Dark Elf Pirate 340 -- Ogre Pirate 341 -- Human Pirate 342 -- Erudite Pirate 344 -- Undead Pirate 345 -- Luggald Worker 346 -- Luggald Soldier 347 -- Luggald Disciple 348 -- Drogmor 349 -- Froglok skeleton 350 -- Undead Froglock 351 -- Knight of Hate 352 -- Warlock of Hate 353 -- Highborn 354 -- Highborn Diviner 355 -- Highborn Crusader 356 -- Chokidai 357 -- Undead Chokidai 359 -- Undead Vampire 360 -- Vampire 361 -- Rujarkian Orc 362 -- Decaying Mutant 363 -- Prismatic Spirit 364 -- Takish Elves 365 -- Master Vampire 366 -- Master Orc 367 -- Skeleton (new)
50
368 -- Crypt Creeper 369 -- Goblin (new) 370 -- Burrower Bug 371 -- Froglok Ghost 372 -- Vortex 373 -- Shadow 374 -- Golem Beast 375 -- Watchful Eye 376 -- Box 377 -- Barrel 378 -- Chest 379 -- Vase 380 -- Frozen Table 381 -- Weapon Rack 382 -- Coffin 383 -- Skull and bones 384 -- Jester 385 -- Talosian Native 386 -- Talosian Evoker 387 -- Talosian Golem 388 -- Talosian Wolf 389 -- Talosian Amphibion Creature 390 -- Talosian Mountain Beast 391 -- Talosian Stonemite 392 -- Ukan War Hound 393 -- Ixt Centaur 394 -- Ikaav Snakewoman 395 -- Aneuk 396 -- Kyv Hunter 397 -- Noc Sprayblood 398 -- Ra'tuk Brute 400 -- Ixt 402 -- Mastruq Warfiend
51
Appendix B:
THE LISTS
(Classes, Skills & More)
52
CLASS LIST
OLD CLASS LIST (Pre 11/05)
1 - Warrior 2 - Cleric 3 - Paladin 4 - Ranger 5 - Shadow Knight 6 - Druid 7 - Monk 8 - Bard 9 - Rogue 10 - Shaman 11 - Necromancer 12 - Wizard 13 - Magician 14 - Enchanter 15 - Beastlord 16 - Banker 17 - GM Warrior 18 - GM Cleric 19 - GM Paladin 20 - GM Ranger 21 - GM ShadowKnight 22 - GM Druid 23 - GM Monk 24 - GM Bard 25 - GM Rogue 26 - GM Shaman 27 - GM Necromancer 28 - GM Wizard 29 - GM Magician 30 - GM Enchanter 31 - GM Beastlord 32 - Shopkeeper
53
SKILLS LIST
Uses: (GM) Boosting Skills: #setskill [skill number] [0-252] (also #setallskill [0-252]) example: #setskill 10 252 -- this would raise your targets bash skill to 252 Uses: (DB) Database Item Skill Modifiers: skillmodtype [skill number], skillmodvalue [0-100] example: skillmodtype = 1 skillmodvalue = 100 -- adds a 100% modifier to 1H Slashing on item
0 -- 1H Blunt 1 -- 1H Slashing 2 -- 2H Blunt 3 -- 2H Slashing 4 -- Abjuration 5 -- Alteration 6 -- Apply Poison 7 -- Archery 8 -- Backstab 9 -- Bind Wound 10 -- Bash 11 -- Block 12 -- Brass Instruments 13 -- Channeling 14 -- Conjuration 15 -- Defense 16 -- Disarm 17 -- Disarm Traps 18 -- Divination 19 -- Dodge 20 -- Double Attack 21 -- Dragon Punch 22 -- Duel Wield 23 -- Eagle Strike 24 -- Evocation 25 -- Feign Death 26 -- Flying Kick 27 -- Forage 28 -- Hand To Hand 29 -- Hide 30 -- Kick 31 -- Meditate 32 -- Mend 33 -- Offense 34 -- Parry 35 -- Pick Lock 36 -- Piercing Appendix B: The Lists - Skills
37 -- Riposte 38 -- Round Kick 39 -- Safe Fall 40 -- Sense Heading 41 -- Sing 42 -- Sneak 43 -- Specialize Abjure 44 -- Specialize Alteration 45 -- Specialize Conjuration 46 -- Specialize Divinatation 47 -- Specialize Evocation 48 -- Pick Pockets 49 -- Stringed Instruments 50 -- Swimming 51 -- Throwing 52 -- Tiger Claw 53 -- Tracking 54 -- Wind Instruments 55 -- Fishing 56 -- Make Poison 57 -- Tinkering 58 -- Research 59 -- Alchemy 60 -- Baking 61 -- Tailoring 62 -- Sense Traps 63 -- Blacksmithing 64 -- Fletching 65 -- Brewing 66 -- Alcohol Tolerance 67 -- Begging 68 -- Jewelry Making 69 -- Pottery 70 -- Percussion Instruments 71 -- Intimidation 72 -- Berserking 73 -- Taunt
54
Appendix C:
ZONES LIST
55
LONG NAME
Acrylia Caverns Plane of Air Ak'Anon Akheva Ruins The Arena The Bazaar Befallen Gorge of King Xorbb Blackburrow Torden, Bastion of Thunder The Burning Wood Butcherblock Mountains Cabilis East Cabilis West Dagnor's Cauldron Lost Temple of CazicThule Howling stones Chardok Chardok, Halls of Betrayal The City of Mist Cobalt Scar Ruins of Lxanvom West Commonlands Crushbone Crystal Caverns Sunset Home Dalnir Dawnshroud Peaks Dreadlands Mines of Droga Dulaks Harbor Eastern Plains of Karana Eastern Wastelands Echo Caverns East Commonlands The Emerald Jungle Erudin Erudin Palace Erud's Crossing
SHORT NAME
LONG NAME
everfrost Everfrost fearplane Plane of Fear feerrott The Feerrott felwithea Northern Felwithe felwitheb Southern Felwithe fieldofbone Field of Bone firiona Firiona Vie freporte East Freeport freportn North Freeport freportw West Freeport frontiermtns Frontier Mountains frozenshadow Tower of Frozen Shadow fungusgrove Fungus Grove gfaydark Greater Faydark greatdivide Great Divide griegsend Grieg's End grimling Grimling Forest grobb Gukta, Outpost of Marr growthplane Plane of Growth guka The Cauldron of Lost Souls gukb The Drowning Crypt gukbottom Ruins of Old Guk gukc The Ancient Aqueducts gukd The Mushroom Grove guke The Foreboding Prison gukf The Chapel of Witnesses gukg The Root Garden gukh The Accursed Santuary guktop Guk gunthak Gulf of Gunthak halas Halas hatesfury Hates Fury hateplane Plane of Hate highkeep High Keep highpass Highpass Hold hohonora Halls of Honor hohonorb Temple of Marr hole Ruins of Old Paineel hollowshade Hollowshade Moor
56
SHORT NAME
iceclad innothule kael kaesora kaladima kaladimb karnor katta kedge kerraridge kithicor kurn lakeofillomen lakerathe lavastorm letalis lfaydark load maiden mira mirb mirc mird mire mirf mirg mirh miri mirj mischiefplane mistmoore misty mmca mmcb mmcc mmcd mmce mmcf mmcg mmch mmci mmcj mseru nadox najena necropolis nedaria nektulos neriaka neriakb neriakc netherbian nexus
LONG NAME
Iceclad Ocean Innothule Swamp Kael Drakael Kaesora North Kaladim South Kaladim Karnor's Castle Katta Castellum Kedge Keep Kerra Isle Kithicor Woods Kurn's Tower Lake of Ill Omen Lake Rathetear Lavastorm Mountains Mons Letalis Lesser Faydark Loading Zone The Maiden's Eye The Silent Gallery The Maw of the Menagerie The Spider Den The Hushed Banquet The Frosted Halls The Forgotten Wastes The Heart of the Meagerie The Morbid Laboratory The Theater of Imprisoned Horrors The Grand Library Plane of Mischief Castle Mistmoore Misty Thicket The Forlorn Caverns The Dreary Grotto The Asylum of Invoked Stone The Chambers of Eternal Affliction The Sepulcher of the Damned The Ritualistic Summoning Grounds The Cesspits of Putrescence The Aisles of Blood The Halls of Sanguinary Rites The Infenal Sanctuary Marus Seru Crypt of Nadox Najena Dragon Necropolis Nedaria's Landing Nektulos Forest Neriak Foreign Quarter Neriak Commons Neriak Third Gate Netherbian Lair The Nexus
SHORT NAME
nightmareb northkarana nro nurga oasis oggok oot overthere paineel paludal paw permafrost poair podisease poeartha poearthb pofire poinnovation pojustice poknowledge ponightmare postorms potactics potimea potimeb potorment potranquility povalor powar powater qcat qey2hh1 qeynos qeynos2 qeytoqrg qrg rathemtn rivervale ruja rujb rujc rujd ruje rujf rujg rujh ruji rujj runnyeye scarlet sebilis shadeweaver shadowhaven
LONG NAME
Lair of Terris Thule Northern Plains of Karana Northern Desert of Ro Mines of Nurga Oasis of Marr Oggok Ocean of Tears The Overthere Paineel Paludal Caverns Lair of the Splitpaw Permafrost Caverns Eryslai, Kingdom of Wind Plane of Disease Vegarlson, the Earthen Badlands Ragrax, Stronghold of the Twelve Doomfire, Burning Lands Plane of Innovation Plane of Justice Plane of Knowledge Plane of Nightmare Plane of Storms Drunder, Fortress of Zek Plane of Time Plane of Time Plane of Torment Plane of Tranquility Plane of Valor Plane of War Reef of Coirnav Qeynos Aqueduct System Western Plains of Karana South Qeynos North Qeynos Qeynos Hills Surefall Glade Rathe Mountains Rivervale The Bloodied Quaries The Halls of War The Wind Bridges The Gladiator Pits The Drudge Hollows The Fortified Lair of the Taskmasters The Hidden Vale The Blazing Forge The Arena of Chance The Barracks of War Runnyeye Citadel The Scarlet Desert Old Sebilis Shadeweavers Thicket Shadow Haven
57
SHORT NAME
LONG NAME
sharvahl Shar Vahl sirens Sirens Grotto skyfire Skyfire Mountains skyshrine Skyshrine sleeper Kerafyrm's Lair (Sleepers Tomb) soldunga Solusek's Eye soldungb Nagafen's Lair soldungc The Caverns of Exile solrotower Tower of Solusek Ro soltemple Temple of Solusek Ro southkarana Southern Plains of Karana sro Southern Desert of Ro sseru Sanctus Seru ssratemple Ssraeshza Temple steamfont Steamfont Mountains stonebrunt Stonebrunt Mountains swampofnohopeSwamp Of No Hope taka The Sunken Library takb The Shifting Tower takc The Fading Temple takd The Royal Observatory take The River of Recollection takf The Sandfall Corridors takg The Balancing Chamber takh The Sweeping Tides taki The Antiquated Palace takj The Prismatic Corridors templeveeshan Temple of Veeshan tenebrous Tenebrous Mountains thedeep The Deepshade thegrey The Grey thurgadina City of Thurgadin thurgadinb Icewell Keep timorous Timorous Deep torgiran Torgirans Mine tox Toxxulia Forest trakanon Trakanon's Teeth tutorial The Tutorial Zone twilight The Twilight Sea umbral The Umbral Plains unrest Estate of Unrest veeshan Veeshan's Peak veksar Veksar velketor Velketor's Labrynth vexthal Vex Thal wakening The Wakening Lands warrens The Warrens warslikswood Warslilks Woods westwastes Western Wastelands
58
( Zones ID Sorted )
ID 1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 54 55 56 57 58 ZONE LONG NAME South Qeynos North Qeynos Surefall Glade Qeynos Hills Highpass Hold High Keep North Freeport West Freeport East Freeport Runnyeye Citadel Western Plains of Karana Northern Plains of Karana Southern Plains of Karana Eastern Plains of Karana Gorge of King Xorbb Blackburrow Lair of the Splitpaw Rivervale Kithicor Woods West Commonlands East Commonlands Erudin Palace Erudin Nektulos Forest Sunset Home Lavastorm Mountains Halas Everfrost Soluseks Eye Nagafens Lair Misty Thicket Northern Desert of Ro Southern Desert of Ro Befallen Oasis of Marr Toxxulia Forest The Hole Neriak Foreign Quarter Neriak Commons Neriak Third Gate Najena Qeynos Aqueduct System Innothule Swamp The Feerrott Lost Temple of CazicThule Oggok Rathe Mountains Lake Rathetear Gukta Greater Faydark AkAnon Steamfont Mountains Lesser Faydark Crushbone SHORT NAME qeynos qeynos2 qrg qeytoqrg highpass highkeep freportn freportw freporte runnyeye qey2hh1 northkarana southkarana eastkarana beholder blackburrow paw rivervale kithicor commons ecommons erudnint erudnext nektulos cshome lavastorm halas everfrost soldunga soldungb misty nro sro befallen oasis tox hole neriaka neriakb neriakc najena qcat innothule feerrott cazicthule oggok rathemtn lakerathe gukta gfaydark akanon steamfont lfaydark crushbone ID 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 100 101 102 103 104 105 106 107 108 109 110 111 112 113 ZONE LONG NAME Castle Mistmoore South Kaladim Northern Felwithe Southern Felwithe Estate of Unrest Kedge Keep Guk Ruins of Old Guk North Kaladim Butcherblock Mountains Ocean of Tears Dagnors Cauldron Plane of Air Plane of Fear Permafrost Caverns Kerra Isle Paineel Plane of Hate The Arena Field of Bone Warslilks Woods Temple of Solusek Ro Mines of Droga Cabilis West Swamp Of No Hope Firiona Vie Lake of Ill Omen Dreadlands The Burning Wood Kaesora Old Sebilis The City of Mist Skyfire Mountains Frontier Mountains The Overthere The Emerald Jungle Trakanons Teeth Timorous Deep Kurns Tower Eruds Crossing Stonebrunt Mountains Warrens Karnors Castel Chardok Dalnir Howling stones Cabilis East Mines of Nurga Veeshans Peak City of veksar Iceclad Ocean Tower of Frozen Shadow Velketors Labrynth Kael Drakael SHORT NAME mistmoore kaladima felwithea felwitheb unrest kedge guktop gukbottom kaladimb butcher oot cauldron airplane fearplane permafrost kerraridge paineel hateplane arena fieldofbone warslikswood soltemple droga cabwest swampofnohope firiona lakeofillomen dreadlands burningwood kaesora sebilis citymist skyfire frontiermtns overthere emeraldjungle trakanon timorous kurn erudsxing stonebrunt warrens karnor chardok dalnir charasis cabeast nurga veeshan veksar iceclad frozenshadow velketor kael
59
( Zone ID Sorted )
ID 114 115 116 117 118 119 120 121 123 124 125 126 127 128 129 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 179 181 182 183 184 185 186 187 200 201 202 203 ZONE LONG NAME Skyshrine City of Thurgadin Eastern Wastelands Cobalt Scar Great Divide The Wakening Lands Western Wastelands Crystal Caverns Dragon Necropolis Temple of Veeshan Sirens Grotto Plane of Mischief Plane of Growth Sleepers Tomb Icewell Keep Shadow Haven The Bazaar The Nexus Echo Caverns Acrylia Caverns Shar Vahl Paludal Caverns Fungus Grove Vex Thal Sanctus Seru Katta Castellum Netherbian Lair Ssraeshza Temple Griegs End The Deepshade Shadeweavers Thicket Hollowshade Moor Grimling Forest Marus Seru Mons Letalis The Twilight Sea The Grey The Tenebrous Mountains The Maidens Eye Dawnshroud Peaks The Scarlet Desert The Umbral Plains Akheva Ruins The Jaggedpine Forest Nedarias Landing EverQuest Tutorial Loading Zone New Loading Zone The Plane of Hate Shadowrest Ruins of Ixanvom Plane of Justice Plane of Knowledge Plane of Tranquility SHORT NAME skyshrine thurgadina eastwastes cobaltscar greatdivide wakening westwastes crystal necropolis templeveeshan sirens mischiefplane growthplane sleeper thurgadinb shadowhaven bazaar nexus echo acrylia sharvahl paludal fungusgrove vexthal sseru katta netherbian ssratemple griegsend thedeep shadeweaver hollowshade grimling mseru letalis twilight thegrey tenebrous maiden dawnshroud scarlet umbral akheva jaggedpine nedaria tutorial load load2 hateplaneb shadowrest codecay pojustice poknowledge potranquility ID 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 ZONE LONG NAME Plane of Nightmare Plane of Disease Plane of Innovation Plane of Torment Plane of Valor Torden, The Bastion of Thunder Plane of Storms Halls of Honor Solusek Ros Tower Plane of War Drunder, Fortress of Zek Eryslai, the Kingdom of Wind Reef of Coirnav Doomfire, The Burning Lands Vegarlson, The Earthen Badlands Plane of Time Temple of Marr Lair of Terris Thule Stronghold of the Twelve Plane of Time Gulf of Gunthak Dulaks Harbor Torgiran Mines Crypt of Nadox Hates Fury,The Scorned Maiden The Cauldron of Lost Souls The Bloodied Quarries The Sunken Library The Silent Gallery The Forlorn Caverns The Drowning Crypt The Halls of War The Shifting Tower The Maw of the Menagerie The Dreary Grotto The Ancient Aqueducts The Wind Bridges The Fading Temple The Spider Den The Asylum of Invoked Stone The Mushroom Grove The Gladiator Pits The Royal Observatory The Hushed Bankquet The Chambers of Eternal Afflictions The Foreboding Prison The Drudge Hollows The River of Recollection The Frosted Halls The Sepulcher of the Damned The Chapel of the Witnesses The Fortified Lair of the Taskma The Sandfall Corridors The Forgotten Wastes SHORT NAME ponightmare podisease poinnovation potorment povalor bothunder postorms hohonora solrotower powar potactics poair powater pofire poeartha potimea hohonorb nightmareb poearthb potimeb gunthak dulak torgiran nadox hatesfury guka ruja taka mira mmca gukb rujb takb mirb mmcb gukc rujc takc mirc mmcc gukd rujd takd mird mmcd guke ruje take mire mmce gukf rujf takf mirf
60
ID 279 154 71 55 179 77 995 283 151 36 17 209 87 68 106 82 70 48 105 103 277 90 117 200 21 58 121 26 104 174 86 81 225 15 116 153 22 94 24 23 98 30 72 47 61 62 284 78 84 10 8 9 92 111
( Zone ID Sorted )
ID 258 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 995 ZONE LONG NAME The Ritualistic Summoning Ground The Hidden Vale The Root Garden The Heart of the Menagerie The Cesspits of Putrescence The Accursed Sanctuary The Blazing Forge The Sweeping Tides The Morbid Laboratory The Aisles of Blood The Arena of Chance The Antiquated Palace The Theater of Imprisoned Horror The Halls of Sanguinary Rites The Barracks of War The Prismatic Corridors The Grand Library The Infernal Sanctuary The Halls of Betrayal The Caverns of Exile The Abysmal Sea Natimbi, The Broken Shores Qinimi, Court of Nihilia Riwwi, Coliseum of Games Barindu, Hanging Gardens Ferubi, Forgotten Temple of Talosia Sewers of Nihilia, Pool of Sludge Sewers of..., Lair of Trapped Ones Sewers of Nihilia, Purifying Plant Sewers of..., Emanating Furnace Tipt, Treacherous Crags Vxed, The Crumbling Caverns Yxtta, Pulpit of Exiles Uqua, The Ocean God Chantry Kod'Taz, Sullied Ritual Hall Ikkinz, Antechamber of Destruction Qvic, Prayer Grounds of Calling Inktu`Ta, The Unmasked Chapel Txevu, Lair of the Elites Tacvi, Seat of the Slaver Qvic, The Hidden Vault Art Testing Domain SHORT NAME mmcf rujg gukg mirg mmcg gukh rujh takh mirh mmch ruji taki miri mmci rujj takj mirj mmcj chardokb soldungc abysmal natimbi qinimi riwwi barindu ferubi snpool snlair snplant sncrematory tipt vxed yxtta uqua kodtaz ikkinz qvic inktuta txevu tacvi qvicb arttest
61
ID 237 242 247 252 257 262 267 271 275 126 59 33 233 238 243 248 253 258 263 268 272 276 168 227 44 280 123 279 25 40 41 42 161 152 221 13 34 107 37 49 69 93 75 156 18 73 215 205 218 222 217 206 201 202
62
ID 162 56 100 83 298 231 236 241 246 251 256 266 270 274 124 172 164 171 115 289 129 96 226 38 95 183 170 297 176 63 292 108 109 112 158 290 119 101 79 12 120 291
63
Appendix D:
64
PLAYABLE RACES 130 -- Vah Shir 128 -- Iksar 26 -- Froglok 12 -- Gnome 11 -- Halfling 10 -- Ogre 9 -- Troll 8 -- Dwarf 7 -- Half Elf 6 -- Dark Elf 5 -- High Elf 4 -- Wood Elf 3 -- Erudite 2 -- Barbarian 1 -- Human
MATERIAL/TEXTURES FOR PLAYABLE RACES (I could not get all of these to function) 0 Armor (cloth) 1 Armor (leather) 2 Armor (chain) 3 Armor (plate) 4 Armor (monk) 5 Armor (chitin) 7 Armor (scale) 10 Robe (advisor pattern) 11 Robe (FBR pattern) 12 Robe (ishva pattern) 13 Robe (oracle pattern) 14 Robe (kedge pattern) 15 Robe (SMR pattern) 16 Robe (plain) 17 Armor (icy) 18 Armor (dragonskin) 19 Armor (stability pattern) 20 Armor (ulthork) 21 Armor (ry'gorr pattern) 22 Armor (guardian pattern) 105 unknown 213 unknown
All Playable Races are naturally Global Models, and available in every zone. HELM TEXTURES (Graphic will differ on Male and Female models) 0 = No Graphic 1 = Leather Helm 2 = Chain Helm 3 = Plate Helm Note: Helm textures are optional but needed for correct guard models and several others, including Giants/Cyclops.
65
GLOBAL MODELS (these races work in every zone): 367 -- New LDoN Skeleton Model
0 = White / Grey (Normal) 1 = Eroded / Light Rotting 2 = Ghostly / Blue Hue 3 = Blood-coated / Red 4 = Heavy Decay / Dark-colored
75 -- Elemental (old)
0 = Earth 1 = Fire 2 = Water 3 = Air
240 -- Teleport Man 212 -- Fire Elemental 211 -- Water Elemental 210 -- Air Elemental 209 -- Earth Elemental 161 -- Iksar Skeleton 153 -- Bristlebane 151 -- The Tribunal 150 -- Erolisi 141 -- Boat 123 -- Innoruuk 120 -- Wolf Elemental (Transparent)
0 = Black with White Legs 1 = Full Black 2 = Full White 3 = Peppered Body w/ White Legs
42 -- Wolf
0 = Dark Grey 1 = Black 2 = White 3 = Light Grey
27 -- Froglok Ghoul
0 = Normal 1 = Rotted Flesh
85 -- Spectre 82 -- Scarecrow
Note: Due to recently discovering how to force load models into any zone, and Zone Proxy 1.1 utilizing this discovery, I will no longer be listing model availability by zone as it is no longer a valid limitation on world building.
Appendix D: Model Availability and Textures (What models work in which zones)
66
Appendix E:
67
#Race Number
Description of model
71 -- Qeynos Citizen
0 - Female
68
1 - Human
2 - Barbarian
3 - Erudite
69
4 - Wood Elf
5 - High Elf
6 - Dark Elf
70
7 - Half Elf
8 - Dwarf
9 - Troll
71
10 - Ogre
11 - Halfling
12 - Gnome
72
13 - Aviak
14 - Werewolf
0 -Male
0 -Female
73
16 - Centaur
17 - Golem
Gender 0
Gender 0
18 - Giant / Cyclops
Note: For a complete model, the Helm Texture must match material or texture setting. model.
74
19 - Trakenon
0 - Side View
0 21 - Evil Eye
0
Appendix E: EQEmu Model Reference
75
22 - Beetle
23 - Kerra
0 - Male
1 - Male
0 - Female
1 - Female
24 - Fish
76
25 - Fairy (faf,lfaydark_chr)
0 27 - Froglok Ghoul
28 - Fungusman
77
29 - Gargoyle
0 30 - Gasbag*
Male
Note: This model only appeared as a Evil Eye in the zones that displayed it.
31 - Gelatinous Cube
78
32 - Ghost
33 - Ghoul
34 - Giant Bat
79
35 - Giant Eel
36 - Giant Rat
37 - Giant Snake
80
38 - Giant Spiders
39 - Gnoll
40 - Goblin
81
41 - Gorilla
Female
Female
43 - Bear
Helm 1
Helm 2
82
44 - Freeport Guards
46 - Imp
0
Appendix E: EQEmu Model Reference
83
47 - Griffin (gri,gri_chr.s3d)
48 - Kobold (kob,kob_chr.s3d)
49 - Dragons (dra,dreadlands_chr)
(Must use identical helm texture for correct model) Appendix E: EQEmu Model Reference
84
50 - Lion
51 - Lizard Man
52 - Mimic (mim,mim_chr.s3d)
0
Appendix E: EQEmu Model Reference
85
53 - Minotaur
0 54 - Orc
55 - Human Beggar
0
Appendix E: EQEmu Model Reference
86
56 - Pixie (pif,lfaydark_chr)
0 - Male
0 - Female
58 - Solusek Ro (old)
0
Appendix E: EQEmu Model Reference
87
59 - Bloodgills
60 - Skeleton (Old)
61 - Shark
88
62 - Tunare
0 63 - Tiger
64 - Treant
0
Appendix E: EQEmu Model Reference
89
65 - Vampire
67 - Highpass Citizen
0
Appendix E: EQEmu Model Reference
90
68 - Tentacle
69 - Will O Wisp
70 - Zombie / Mummy
Male
Male
Female
91
92
72 - Ship
73 - Launch
74 - Piranha
0
Appendix E: EQEmu Model Reference
93
75 - Elemental
76 - Puma (pum,pum_chr.s3d)
77 - Neriak Citizen
94
78 - Erudite Citizen
79 - Bixie
80 - Reanimated Hand
0
Appendix E: EQEmu Model Reference
95
81 - Rivervale Citizen
0 82 - Scarecrow
0 - Female
83 - Skunk
0
Appendix E: EQEmu Model Reference
96
84 - Snake Elemental
85 - Spectre
86 - Sphinx
0
Appendix E: EQEmu Model Reference
97
87 - Armadillo
0 - Male
0 - Female
89 - Drake
98
90 - Halas Citizen
0 - Female
91 - Alligator
0 92 - Grobb Citizen
0 - Female
99
93 - Oggok Citizen
0 - Female
94 - Kaladim Citizen
0 - Female
95 - Cazic Thule
0
Appendix E: EQEmu Model Reference
96 - Cockatrice (coc,dreadlands_chr)
97 - Daisy Man
98 - Elf Vampire
0 - Male
0 - Female
99 - Denizen
100 - Dervish
101 - Efreeti
104 - Leech
0
Appendix E: EQEmu Model Reference
105 - Swordfish
0 106 - Felguard
107 - Mammoth
109 - Wasp
0 110 - Mermaid
0
Appendix E: EQEmu Model Reference
111 - Harpie
112 - Fayguard
0 - Female
0
Appendix E: EQEmu Model Reference
115 - Clam
0
Appendix E: EQEmu Model Reference
0 - Male
0 - Female
121 - Gorgon
0
Appendix E: EQEmu Model Reference
123 - Innoruuk
0 - Helm 1
1 - Helm 1
125 - Pegasus
0
Appendix E: EQEmu Model Reference
126 - Djinn
128 - Iksar
129 - Scorpion
132 - Draglock
134 - Mosquito
0
Appendix E: EQEmu Model Reference
135 - Rhino
0 136 - Xalgoz
0 - Helm 1
0 - Helm 2
0 - Female
141 - Boat
144 - Burynai
0
Appendix E: EQEmu Model Reference
150 - Erollisi
0
Appendix E: EQEmu Model Reference
151 - Tribunal
152 - Bertoxxulous (old) Could Not Find Model (Replaced with #255)
153 - Bristlebane
0
Appendix E: EQEmu Model Reference
156 - Ratman
157 - Wyvern
158 - Wurm
159 - Devourer
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
167 - Succulent
0
Appendix E: EQEmu Model Reference
169 - Brontotherium
0
Appendix E: EQEmu Model Reference
173 - Totem
0
Appendix E: EQEmu Model Reference
177 - Walrus
182 - Unknown Could Not Find Model (Faun merged with #181)
183 - Coldain
0 - Male
1 - Male
2 - Male
0 - Fem 1 - Fem
2 - Fem
0 - Gender2
3 185 - Hag
0 - Gender 2
190 - Ottermen
0 - Helm 1
0 - Helm 2
0
Appendix E: EQEmu Model Reference
193 - Abhorent
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
200 - Rockhopper
0
Appendix E: EQEmu Model Reference
0 - Male
0 - Female
0 - Neutral
0
Appendix E: EQEmu Model Reference
206 - Owlbear
208 - Vampyre
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
215 - Tegi
216 - Horse
217 - Shissar
0 - Male
1 - Male
0 - Female
0 - Neutral
0
Appendix E: EQEmu Model Reference
0 222 - Zelniak
0 223 - Lightcrawler
0
Appendix E: EQEmu Model Reference
0 - Male
0 - Female
225 - Sunflower
228 - Galorian
229 - Netherbian
230 - Akhevan
0 - Female
0 - Neutral
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
No Model Available
(this is an invisible NPC) Note: 240 - Teleport Man is primarily used for script creation. The Model is invisible with no visible name (differing from an Invisible Man). These can be used for traps or emote scipts.
0
Appendix E: EQEmu Model Reference
246 - Coirnav
247 - Solusek Ro
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
255 - Bertoxxulous
0
Appendix E: EQEmu Model Reference
258 - Vegerog
259 - Crocodile
0
Appendix E: EQEmu Model Reference
261 - Slarghilug
0
Appendix E: EQEmu Model Reference
267 - Lepertoloth
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
272 - Stormrider
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
283 - Saryrn
0
Appendix E: EQEmu Model Reference
284 - Fennin Ro
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
295 - Zebuxoruk
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
299 - Xegony
301 - Unknown
303 - Pheonix
304 - Quarm
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
314 - Lynx
315 - Squid
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
329 - Portal
0 330 - Froglok
0 - Male
0 - Female
0 - Male
0 - Female
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
0 - Male
0 - Female
0 - Male
0 - Female
0 - Male
0 - Female
0 - Male
0 - Female
0 - Male
0 - Female
343 - Unknown/Unused
0 - Male
0 - Female
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
Male 0
Female
Male 0
Female
0
Appendix E: EQEmu Model Reference
0 - Male
0 - Female
0 - Male
1 - Male
0 - Female
1 - Female
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
Male
Male
Fem 1
Fem
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
0
Appendix E: EQEmu Model Reference
Appendix F:
10
11/15
12
13
14
16
These Textures are for use with the #zsky [number] command.
Appendix F: ZSky Texture Reference