Expedition System
The expedition system enables the ability to create Dynamic Zone instances managed by the client's Expedition interface window. This system allows clients to add and remove members of a Dynamic Zone while providing built-in event lockout timer support.
The system is currently quest driven and provides quest APIs to create zone instances without the burden of manually tracking and validating lockout conflicts among characters. The system should have zero impact on servers that don't make use of it.

Expedition requests

When a non-solo expedition request occurs, the leader of the raid or group becomes the lockout authority. If any members of the party have a lockout for the expedition that the leader doesn't already have the expedition request is denied. Denied expedition requests message the party leader (not the member that requested it).
If the request is successful, all party members are added to the expedition and it internally inherits the leader's current lockouts. These inherited lockouts are not assigned to members of the expedition. They are used to determine if players may be added to the expedition later based on their lockouts and to allow quests to choose which expedition events should be enabled or disabled.

Dynamic Zones

Dynamic Zones are a wrapper for instances that extends them with some extra data. In the future these will probably be further modified for use by other systems that make use of dynamic zones.

Commands

The #dz command is provided for GMs and developers to perform various operations. Use the command without arguments in game to see usage (minimum 80 access level).
The #dzkickplayers command is provided for players so that expedition leaders using pre-RoF clients can have the /kickplayers exp functionality to remove all members of an expedition.

Rules

The following rules are available for server customization
Category
Rule Name
Type
Default
Description
Expedition
MinStatusToBypassPlayerCountRequirements
int
80
Minimum GM status to bypass minimum player requirements for Expedition creation
Expedition
EmptyDzShutdownEnabled
bool
true
Enable early instance shutdown after last member of expedition removed
Expedition
EmptyDzShutdownDelaySeconds
int
1500
Seconds to set dynamic zone instance expiration if early shutdown enabled
Expedition
WorldExpeditionProcessRateMS
int
6000
Timer interval (ms) that world checks expedition states
Expedition
AlwaysNotifyNewLeaderOnChange
bool
false
Always notify clients when made expedition leader (such as for going offline). If false (live-like) new leaders are only notified when made leader via /dzmakeleader
Expedition
LockoutDurationMultiplier
float
1.0
Multiplies lockout duration by this value when new lockouts are added
Expedition
EnableInDynamicZoneStatus
bool
false
Enables the 'In Dynamic Zone' member status in expedition window. If false (live-like) players inside the dz will show as 'Online'
DynamicZone
ClientRemovalDelayMS
int
60000
Delay (ms) until a client is teleported out of dynamic zone after being removed as member
Note: The DynamicZone::ClientRemovalDelayMS rule is in its own category for possible future systems that may make use of dynamic zones. The empty dz shutdown rules may be moved to this category in the future depending on design changes.

Known issues

    Using /exit with an expedition invite window open may crash the client instead of exiting cleanly
    Invoking the dynamic zone switch list window after reloading the UI may crash clients
      client bug that still exists on live
      this window is currently unused since expeditions are the only system that use dynamic zones
Last modified 8mo ago