Just make sure that when you warped the whole party, all of them should go thru 'setquest' and set the variables that is needed when the player entered the instance.
I think you should also use "instance_enter" instead of "warp" to make sure they are on the right instance map.
I recently made an instance that warps the whole party when the party leader enter the instance for the first time. I use the script from endless tower and modified the warping part.
This one was the script. PS: I removed some checking part bc it was long so i wont recommend just copy pasting this one. Just wanted to give u an idea how warping was made
.@party_id = getcharid(1);
.@md_name$ = "Dragons Dungeon";
.@dragon_timer = checkquest(25000,PLAYTIME); // Cooldown 24 Hours
.@dragon_timer2 = checkquest(25001,PLAYTIME); // Time Limit 3 hours
if( !instance_check_party(.@party_id,2) ) {
mes "Make or join a party with more than 1 member and try again.";
close;
}
switch( .@dragon_timer ) {
case -1:
if( getcharid(0) == getpartyleader(.@party_id,2) ) {
mes "Confirmed the party has been made. Would you like to reserve entrance to the Dragons Dungeon?";
next;
switch( select("Generate dungeon "+.@md_name$+":Enter the dungeon:Cancel") ) {
case 1:
if( instance_create(.@md_name$) < 0 ) {
mes "Party Name: "+ getpartyname(.@party_id);
mes "Party Leader: "+strcharinfo(0);
mes "^0000ff"+.@md_name$+" ^000000- Reservation Failed!";
close;
}
mes "^0000ff"+.@md_name$+"^000000 - Try to reserve";
mes "After making a reservation, you have to talk to NPC behind and select the menu 'Enter the Dungeon' to enter the dungeon.";
close;
case 2:
callsub L_Enter,0,1,1;
case 3:
close;
}
}
switch( select("Enter the "+.@md_name$+":Cancel") ) {
case 1:
callsub L_Enter,1,1,0;
case 2:
end;
}
case 0:
case 1:
if( .@dragon_timer2 < 2 && getcharid(1) == dragonq_partyid ) {
mes "If you have the dungeon generated already, you can enter it. ";
next;
switch(select("Enter the "+.@md_name$+":Cancel")) {
case 1:
callsub L_Enter,0,0,0;
case 2:
close;
}
} else {
.@dun_lim_time = dragonq_timer + 86400; // 24 hours
.@dun_cur_time = gettimetick(2);
.@dun_ent_t = (.@dun_lim_time - .@dun_cur_time);
.@dun_h = (.@dun_ent_t / 3600);
.@dun_m = (.@dun_ent_t - (.@dun_h * 3600)) / 60;
.@dun_s = .@dun_ent_t - ((.@dun_h * 3600) + (.@dun_m * 60));
mes "You cannot enter the Dragons Dungeon right now, " + .@dun_h + "hours " + .@dun_m + "minutes " + .@dun_s + "seconds left to enter the dungeon.";
close;
}
case 2:
dragonq_timer = 0;
erasequest 25000;
erasequest 25001;
mes "^0000ffThe records related to the Dragons Dungeon have been removed. You can generate and enter the Dragons Dungeon again.^000000";
close;
}
L_Enter:
switch( instance_enter("Dragons Dungeon") ) {
case IE_OTHER:
mes "An unknown error has occurred.";
close;
case IE_NOINSTANCE:
mes "The Dragons Dungeon does not exist.";
mes "The party leader did not generate the dungeon yet.";
close;
case IE_NOMEMBER:
mes "You can enter the dungeon after making the party.";
close;
case IE_OK:
if( getarg(2) ) {
.@myRID = getcharid(3);
.@myPID = getcharid(1);
mapannounce "prontera", "The party, "+ getpartyname( .@myPID ) +", is entering the Dragons Dungeon.",bc_map,"0x00ff99",FW_NORMAL,12;
addrid(2), 0, .@myPID;
if( getcharid(3) != .@myRID ) {
if( instance_enter("Dragons Dungeon") == IE_OK ) {
dragonq_timer = gettimetick(2);
dragonq_partyid = getcharid(1);
setquest 25000;
setquest 25001;
end;
} else {
mes "An unknown error has occurred.";
close;
}
}
} else
mapannounce "prontera", strcharinfo(0) +" of the party, "+ getpartyname( getcharid(1) ) +", is entering the Dragons Dungeon.",bc_map,"0x00ff99",FW_NORMAL,12;
if( getarg(1) ) {
dragonq_timer = gettimetick(2);
dragonq_partyid = getcharid(1);
setquest 25000;
setquest 25001;
}
if( getarg(0) == 0 ) close;
else end;
}
This one was the warping part
case IE_OK:
if( getarg(2) ) {
.@myRID = getcharid(3);
.@myPID = getcharid(1);
mapannounce "prontera", "The party, "+ getpartyname( .@myPID ) +", is entering the Dragons Dungeon.",bc_map,"0x00ff99",FW_NORMAL,12;
addrid(2), 0, .@myPID;
if( getcharid(3) != .@myRID ) {
if( instance_enter("Dragons Dungeon") == IE_OK ) {
dragonq_timer = gettimetick(2);
dragonq_partyid = getcharid(1);
setquest 25000;
setquest 25001;
end;
} else {
mes "An unknown error has occurred.";
close;
}
}
}