Go Back   EQEmulator Home > EQEmulator Forums > Quests > Quests::Custom

Quests::Custom Custom Quests here

Thread Tools Display Modes
Old 08-12-2017, 05:38 PM
The_Beast's Avatar
Join Date: May 2016
Location: Under a rock
Posts: 290
Default Simple Instance Zone Script

This is not intended as an uber custom script, it's just for "noobs" who are learning
and this is something simple they can start with to create an instance of any zone.
I am using this on my own server for some customization I am doing and thought I would
share it with people who could use the help getting started with some basic instancing.
Many people have a lot more advanced perl knowledge on this site, than I do, but I am
not interested (yet), in poking around with learning lua, lol. Someday maybe.

In this sample, it sends the player to an instance version of Forgotten Halls, but it
could be used on any zone. Where you see the expression "fhalls", that is just the phrase
I chose to use. It could be anything you want, as long as it is in place where you see
it (in red).
Everything you see in red is what you would need to edit to your own preferences for the
zone you are using. (plus the "say" text, level, etc.) In this example, the player needs
to be level 14 to get the instance from the NPC that you put this script on.
The MovePCInstance "998" is the zone ID number, then the x,y,z coords.
Where you see "14400", that is the timer (in seconds) for the instance to expire.
Just put something like this on an NPC script (whatever_name.pl) and if you're testing
in-game type #reloadquest everytime you edit a quest script.
For anyone who hasn't visited the perl reference wiki yet, tons of help on there.

my @players = ();
my $group;
my $instance;


	if (($text =~/hail/i) && ($ulevel > 14)) {
			quest::say("Greetings $name, Are you interested in exploring the Forgotten [Halls] ?");
	elsif ($text =~/halls/i && ($ulevel < 14)) {
			quest::say("Go away $name I am too busy for you right now.");
	elsif ($text =~/halls/i && ($ulevel > 14)) {
			quest::say("Ok $name just let me know when you are [ready] and I will send you there.");
	elsif (($text =~/ready/i) && ($ulevel > 14)) {
		if (defined($qglobals{"fhallsInsta1"})) {
										$fhallsInst1 = $qglobals{"fhallsInsta1"};
										quest::setglobal("fhalls", 1, 5, "D1");
										quest::MovePCInstance(998, $fhallsInst1, -58.63, -880.25, -12.81);
										quest::say("Ok $name Away you go to Forgotten Halls.");
									else {
										$fhallsInst1 = quest::CreateInstance("fhalls", 0, 14400);
										quest::MovePCInstance(998, $fhallsInst1, -58.63, -880.25, -12.81);
										quest::say("Ok $name Away you go to Forgotten Halls.");
Reply With Quote
Old 08-13-2017, 03:42 AM
Kingly_Krab's Avatar
Join Date: May 2013
Location: United States
Posts: 1,531

Reply With Quote
Old 08-25-2018, 12:43 PM
Fire Beetle
Join Date: Nov 2007
Posts: 21

Is there a way to scale this instance?

Last edited by Slaymore; 08-25-2018 at 12:44 PM.. Reason: typo
Reply With Quote
Old 09-02-2018, 01:55 PM
Fire Beetle
Join Date: Apr 2014
Posts: 3

Does this automatically close after a set period of time?
Reply With Quote
Old 09-02-2018, 08:36 PM
Scorpious2k's Avatar
Join Date: Mar 2003
Location: USA
Posts: 1,068

What happens when the player is level 14?
Maybe I should try making one of these servers...
Reply With Quote
Old 09-02-2018, 08:50 PM
Hill Giant
Join Date: Apr 2014
Posts: 171

Reply With Quote

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT -4. The time now is 08:04 PM.


Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
Powered by vBulletin®, Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3