Sect Array Domains
v0.11.1When another sect lays siege to yours, your Patriarch or an Elder can raise the sect's Array Domain (宗门大阵; the game's own text calls the feature Sect Array Domains). It is a ward over every chunk the sect has claimed, the hall and everything built around it. Nothing is placed in the world and no block changes: the array is a status effect on the people standing inside it, a ring of light along the border, and a few sounds. Your members and allies take less damage there. The besieging sect's members are slowed and hit softer. It also shaves the attackers' hold clock, and it fights back against an attacker's Dao Domain when one unfolds inside it.
It exists only in wartime, it is paid for out of the raiser's own contribution, and it falls when the siege does.
The Array Domain is not the Mountain-Guarding Array (护山大阵), the Warding formation a sect lays with a flag. A Warding formation is placed on one chunk, stays until someone disperses it, chokes outsiders' meditation and needs no war to exist. An Array Domain is raised with a command once a siege is declared, covers the whole territory, places nothing and ends with the siege. The two stack on the siege clock. This page says Array Domain for the wartime ward and Warding formation for the placed one, because the game's text uses the word "array" for both.
Raising it
/sect array raise raises the array. Every one of these must hold:
- Sect Array Domains are on (
Sect-Array-Enabled), and so are sects and wars (Sects-Enabled,Wars-Enabled). - A siege stands against your sect, and your sect is the defender: the siege is in its Declared, Muster or Contest phase. You can raise the array from the moment the declaration lands, during the notice window, but not before it. A sect that is only attacking cannot raise one for itself.
- Your sect holds a hall, and no array already stands over it.
- You are the Patriarch or an Elder. Outer and Inner Disciples may neither raise nor lower it.
- You hold the cost in your own contribution.
When it works, every member of your sect who is online sees "Your sect's grand array rises over its territory, tuned to Metal. Defenders and allies inside take less damage; invaders are slowed and weakened." and hears a sound, naming the element your sect's array is tuned to (Heavenly Qi when the sect has none, or has one the mod has no flavor for, such as a root an add-on claimed). The besieging sect's online members are told the other half: "Sect Name has raised its grand array... Inside its territory you will be slowed and deal less damage." You get a private receipt, "The array is raised. 100 contribution spent."
When it refuses
The checks run in this order, and the first one that fails is what you are told:
| Message | Why |
|---|---|
| Sect Array Domains are not enabled on this server. | The feature or the sect system is switched off. |
| Sect arrays are raised in wartime, and wars are switched off on this server. | v0.11.1 The array switch is on but Wars-Enabled is off, so there can be no siege. |
| You are not in a sect. | |
| Your rank in the sect is too low for that. | You are not the Patriarch or an Elder. |
| Your sect holds no hall. | There is no territory to cover. |
| Your sect's array already stands. | |
| No siege has been declared against your sect, so there is nothing for an array to defend against. | No siege where your sect is the defender, or it is in a momentary ending phase. |
| Raising the array costs 100 of your own contribution, and you don't have that much. | The number is Sect-Array-Cost-Contribution. |
| Something prevents that right now. | An add-on vetoed the raise (see For add-on developers). Nothing was charged. |
Cost and refunds
Raising costs Sect-Array-Cost-Contribution (default 100) of the raiser's own contribution balance, the same currency as declaring a war or posting a guardian, and not the sect's. Set it to 0 and the array is free, though still wartime-only. An add-on can re-price a single raise; whatever is actually charged is what gets refunded.
- Lowering the array is never refunded.
- The siege ending is never refunded, however it ends: the attackers win, the window lapses, or the defenders hold.
- The siege being called off refunds it. If
Wars-Enabledis switched off while the siege runs, the master switch cancels every open siege, and the raiser gets back exactly what they paid, provided they are still in the sect. They are told "The siege was called off, so the 100 contribution you spent on the array has been returned to you." if they are online. The amount paid is saved with the array, so a restart does not lose the refund. The game's Codex text also says "an admin cancels it", but this version ships no command that cancels a single siege; theWars-Enabledswitch is the only way it happens. - Losing the hall, the feature being switched off, or an admin lowering the array refund nothing.
The territory
The array covers every chunk the sect holds: the hall chunk and the chunk of every building, in whichever world each one lies. A chunk is 32 by 32 blocks and the array reaches every height in it. Who counts as inside is decided on the sect's real claims at that moment, once a second, so ground the sect gives up stops being covered and ground it takes in starts. See Sects for how ground is claimed.
Who is on which side
| Side | Who |
|---|---|
| Defenders | Members of the sect itself. Members of any sect that holds a full Alliance with it (Sect Diplomacy; Non-Aggression and Trade pacts do not count). Members of any sect the siege has recorded as a reinforcement. |
| Attackers | Members of the besieging sect, and only them. The war records reinforcements on the defending side only, so an attacker's allies are not touched. |
| Neither | Everyone else: other sects, players with no sect, spirit beasts, mobs and every other NPC. Also anyone dead, and a Nascent Soul fleeing as a soul in Soul Escape. |
The array touches players only, and it ignores the world's PvP setting. The siege is the consent.
What it does inside
Inside the territory the array gives each player on a side one effect. It is re-applied every second and lasts a second and a half, so it fades about a second after you step out or the array falls. The first time an array catches you, you get a line ("The array of Sect Name closes around you, turning aside part of every blow." for a defender, "The array of Sect Name bears down on you: you are slowed and your blows are weakened." for an attacker) and a sound, once per array, and not again afterward, even if you leave and come back.
| Defenders | Attackers | |
|---|---|---|
| Status effect | Sect Array: Warded | Metal Array: Suppressed, and so on for the sect's element |
| Asset id | Cultivation_SectArray_Defender | Cultivation_SectArray_Attacker_<Element> |
| Damage taken | 15% less, from physical (slashing, bludgeoning, crushing), projectile and elemental damage (fire, ice, water, earth, wind, lightning, poison), and from the Dao-element, Dao Reaction and Dao Seal damage the mod adds. Not environmental damage. | Unchanged, apart from the element's extra below. |
| Damage dealt | Unchanged. | 10% less, whatever it hits (physical, elemental and projectile). |
| Movement | Unchanged. | 15% slower (a horizontal speed of 0.85). Tinted in the element's color. |
The attacker effect is skipped on a target that carries Immunity_Slow: such a player gets none of it, not the slow, not the damage cut and not the catch line.
These numbers live in the entity-effect assets, not in the config. Sect-Array-Defender-Damage-Reduction-Percent only changes the figure the Codex and /sect array quote; it does not change what the array does.
Each element's extra
Everything the array does wears the sect's element: the border ring, the attacker effect and the pitch of its sounds. Four elements add one extra to the attacker effect:
| Array | Extra on attackers |
|---|---|
| Metal | Take 12% more physical damage (slashing, bludgeoning and crushing too). |
| Water | Slowed harder: a speed of 0.75 (25% slower) instead of 0.85. |
| Fire | Take 12% more elemental damage, the Dao-element, Dao Reaction and Dao Seal kinds included. |
| Ice | Cannot sprint. |
| Wood, Earth, Wind, Poison, Lightning, Void | None; the base effect only. |
| Heavenly Qi (a sect with no element) | None; the base effect only. |
A sect can only name Wood, Earth, Water, Fire or Metal as its Spiritual Root Type, so Ice, Wind, Poison, Lightning and Void arrays appear only for a sect that kept a mutant root from before 0.11.0.
The siege clock
While the array stands, is a real one, and no Siege Banner mutes the hall, it adds Sect-Array-Siege-Slow-Percent (default 15) to the attackers' hold-clock slow during the Contest. It draws from the same budget as the Warding formation and the Sect Guardians: the three are added together and the sum is cut at War-Total-Slow-Max-Percent (default 50). The array has no cap of its own.
| Source | At the defaults |
|---|---|
| Warding formation | 10% for a flag-placed array, plus 10% per altar tier, up to 50% (War-Warding-Slow-Base-Percent, War-Warding-Slow-Per-Tier-Percent, War-Warding-Slow-Max-Percent). |
| Sect Guardians | 12% for each living guardian, three at most (Guardian-Slow-Per-Living-Percent). |
| Array Domain | 15% (Sect-Array-Siege-Slow-Percent). |
| All together | Capped at 50% (War-Total-Slow-Max-Percent). |
With the array alone, the attackers earn 85 seconds of hold for every 100 they stand on the hall. A tier 3 Warding altar (40%) and three guardians (36%) already reach the cap without it, so the array adds nothing there; it matters most to a sect with modest defenses. An admin test array adds nothing to any siege.
/sect war statusprints the array's share as its own line during a Contest, before the combined total: "Your sect array slows the attackers' hold by 15%.", or "A Siege Banner mutes your sect array at the hall; it adds no slow right now." The line is worded for the side asking: attackers read "The defenders' grand sect array slows your hold by 15%." instead. See Sect Wars.- The Sect page's Guardians card shows the combined total for the defending sect and, when the array is slowing the clock, names its share: "Combined hold slow: 40% (Warding, Guardians and the sect array together, capped; the array adds 15%)."
/sect arrayshows it too, in the status report.
Siege Banners
An attacker's Siege Banner mutes the array. Within War-Siege-Banner-Suppression-Radius-Chunks (default 2) chunks of the banner, a square reach in every direction, the array does nothing at all: no defender buff, no attacker slow, no catch line, and a Dao Domain unfolded there does not clash with it. If a banner's reach covers the hall chunk, the array's share of the siege clock drops to nothing as well, which is the same cut the banner makes to the Warding slow.
The mute holds only during a Contest, which is the only time a banner can stand, and only while War-Siege-Banner-Trap-Suppression-Steps (default 2) is above 0. Any defender can tear a banner down with bare hands, and the array comes back the moment it falls.
Against a Dao Domain
An attacker's Dao Domain that unfolds inside the territory meets the array and the two weigh their power. This needs both Domain-Clash-Enabled and Domain-Clash-Arrays-Enabled (both on by default, in Arts/DaoDomainConfig.json). Only an attacker's domain clashes (a member of the besieging sect, or the one admin who raised a test array), and not one anchored where a Siege Banner already mutes the array. Dao Domains has the full rule, and Against a sect array the same clash seen from the caster's side.
- The domain's power is its caster's realm number (Body Refinement 0 up to Void Refinement 6), plus
Domain-Clash-Counter-Bonus(default 1) when the caster's element overcomes the sect's in the Wu Xing cycles. - The array's power is the higher of
Sect-Array-Base-Realm(default Nascent Soul, 4) and the highest realm among the defenders standing inside, as of the last once-a-second head count, plus the same counter bonus when the sect's element overcomes the domain's. A Heavenly Qi array, and a Heavenly Qi domain, neither counter nor are countered.
| Result | What happens |
|---|---|
| The domain is stronger | The domain stands, and the array is silenced inside the domain's cylinder until the domain ends. Defenders there lose the buff and attackers lose the slow. The caster is told "The array is silenced inside your domain." |
| The array is stronger | The domain shatters, with the usual clash backlash on its caster: a slow for Domain-Clash-Backlash-Seconds and a share of the Qi the domain cost (Domain-Clash-Backlash-Qi-Percent). |
| A tie | The domain shatters, without backlash. The array holds. |
Each domain meets each array once, when it unfolds, so renaming the sect mid-siege cannot start the clash again. At the defaults a Nascent Soul attacker ties the bare array (4 against 4). If the domain's element overcomes the sect's, the domain wins (5 against 4); if the sect's element overcomes the domain's, the array wins (4 against 5). A Soul Formation attacker beats the bare array (5 against 4) unless the sect's element overcomes the domain's, which ties it (5 against 5), or a defender of Soul Formation or higher stands inside.
How long it lasts
An array stands until something takes it down. The keeper checks about once a second, and every online member of the sect hears the line and a sound.
| It ends when | The line members read | Refund |
|---|---|---|
| The siege ends, however: the attackers win or lose, the window lapses, or wars are switched off | The siege is over, and the array of Sect Name falls quiet. | Only if the siege was called off |
| The sect loses its hall, to a conquest or by disbanding | Sect Name has lost its hall, and its array falls with it. | No |
A Patriarch or Elder runs /sect array lower | The array of Sect Name is lowered. | No |
An admin runs /cultivation admin array lower, or an admin test array runs out of time | The array of Sect Name was taken down by an admin. | No |
| Sect arrays (or sects) are switched off in the config | Sect arrays have been switched off, and the array of Sect Name falls. | No |
A siege that has simply ended is given about three seconds before the array comes down, so a rename, which briefly leaves the war book filed under the old name, cannot tear down a paid array; a siege canceled by switching wars off ends it at once. For those few seconds /sect array still reports it as standing.
The array is saved on the sect, in SectsData.json. A server restart in the middle of a siege does not drop it, and if the siege is still going the array carries on. If Sect-Array-Enabled was turned off in the meantime, it ends as soon as the server is up. An admin test array is the exception: it is dropped at server start.
The border
The territory's edge is drawn in the sect element's color: a small ring at every exposed corner of the claimed ground (a corner where the claimed and unclaimed chunks meet, so a long straight edge gets a ring every 32 blocks) and a larger ring at the center of the hall chunk. Anyone nearby sees it, on any side or none.
- Each viewer is shown the rings within 64 blocks of them (96 for the hall ring), at most
Sect-Array-Border-Max-Posts(default 16), the nearest first. Set it to 0 for no border at all, hall ring included. - The rings are redrawn every
Sect-Array-Border-Seconds(default 1, from 1 to 10). A ring lives about a second and a half, so a value above 1 makes the border blink. - Nothing is spawned in the world: the particles go only to the viewer's own connection. A ring sits on the ground's surface, or at the viewer's feet where the ground cannot be read or is far above them, as in a cave.
Commands
| Command | Description | Permission |
|---|---|---|
/sect array | The status report below. Same as status. | cultivation.sect |
/sect array status | Reports whether the array stands, and if not, why you can or cannot raise it. Any member may ask. | cultivation.sect |
/sect array raise | Raises the array (Patriarch or Elder). | cultivation.sect |
/sect array lower | Takes it down, with no refund (Patriarch or Elder). The refusals are Sect Array Domains are not enabled on this server., You are not in a sect., Your rank in the sect is too low for that. and Your sect has no array standing. | cultivation.sect |
/cultivation admin array raise <sect> | An admin test array. | cultivation.admin |
/cultivation admin array lower <sect> | Takes any sect's array down, whoever raised it. | cultivation.admin |
None of them takes an argument except the admin pair, and there are no aliases or flags. cultivation.sect is granted to everyone by default; the rank checks happen inside the sect.
The status report. With no array standing it prints the header, then "No array stands over your territory. Raising one costs 100 of your own contribution and needs a siege declared against your sect." and either "You can raise it now with /sect array raise." or "You cannot raise it right now:" followed by the first refusal that applies to you. With one standing it prints, in order:
- who raised it and how many minutes ago, and its element (or, for an admin test array, that an admin raised it for testing);
- the defender figure, "Defenders and allies inside take 15% less damage; invaders are slowed and deal less." The number is the config's display value;
- "Inside now: 2 defenders, 0 invaders.", from the last head count;
- "Clash power against an enemy Dao Domain: Nascent Soul.", the realm the array would clash at right now;
- the siege slow: "Siege slow: 15% (shared with Warding arrays and guardians, under the war-wide cap).", or that a Siege Banner mutes it, or that the array adds none right now.
Admin test arrays
A real array needs a siege, and a siege needs two sects with members. /cultivation admin array raise <sect> lets an admin exercise the array's effects, border and clashes on a quiet test server. The sect name is the rest of the line, so it may contain spaces.
- It must be typed in game; the console is refused, because the test array needs to know whom to treat as the intruder.
- It is free, needs no siege and does not need
Wars-Enabled. The sect must hold a hall and the feature must be on. - While no siege stands against that sect, only the admin who raised it counts as an intruder (an attacker); everyone else gets no effect, no line and no clash, so a test cannot touch another player. The admin sees both effect sets: defender while a member of the sect, attacker otherwise. If a real siege does stand against the sect, the usual sides apply.
- It adds nothing to a siege's slow budget and is never refunded.
- It stands for
Sect-Array-Admin-Test-Minutes(default 30) at most, or until lowered. The server drops it at start. An end by its timer is reported as an admin end. - It fires
SectArrayRaisedEvent(withadminRaisedtrue) but never the cancellable pre-event.
Refusals: There is no sect called 'Name'., Name holds no hall, so it has no territory for an array to cover., The array of Name already stands., The array of Name is not standing.
Configuration
mods/Siren_Cultivation/Society/SectArrayConfig.json. Also editable in the Sect Array Domains section of the in-game admin menu (/cultivation admin), where a value typed out of range snaps back at once. A key missing from an older file reads as the default. The mod resets ConfigName and Description-Sect-Array on every load, so do not hand-edit them.
| Key | Default | Range | What it does |
|---|---|---|---|
Sect-Array-Enabled | true | Master switch. Turning it off ends every standing array within a second, with no refund. | |
Sect-Array-Cost-Contribution | 100 | 0 - 1,000,000 | The raiser's own contribution spent per raise. 0 is free. |
Sect-Array-Defender-Damage-Reduction-Percent | 15 | 0 - 90 | Display only. The figure the Codex and /sect array quote. The real 15% is in the effect asset, so keep the two equal by hand. |
Sect-Array-Siege-Slow-Percent | 15 | 0 - 90 | Percent the array adds to the siege slow budget, before the War-Total-Slow-Max-Percent cap. |
Sect-Array-Base-Realm | NASCENT_SOUL | any realm | The floor of the array's clash power. A realm name, or its number from 1 to 7; anything else resets to Nascent Soul. |
Sect-Array-Border-Seconds | 1 | 1 - 10 | Seconds between border redraws. |
Sect-Array-Border-Max-Posts | 16 | 0 - 64 | Border rings shown per viewer; 0 hides the border. |
Sect-Array-Admin-Test-Minutes | 30 | 1 - 240 | How long an admin test array stands. |
The file also carries ConfigName, ConfigVersion (2) and the Description-Sect-Array text. The other numbers a player feels, the 15% and 10% damage figures, the 0.85 and 0.75 speeds and the 12% extras, are in the Cultivation_SectArray_* entity-effect assets and are not config keys. Sect-Array-Siege-Slow-Percent shares its ceiling with the keys in Sect Wars; the ones the clash reads live in DaoDomainConfig.json.
The Sect Array Domain article in the in-game Codex (id cultivation:sectArray, in the World category) explains all of this to players, quotes the live cost, slow and cap, and says whether your own sect's array stands.
For add-on developers
Three events in plugin.siren.API.SectArrayEvents, registered with onPreSectArrayRaise, onSectArrayRaised and onSectArrayEnded. See API Events for the shared conventions.
| Event | Cancellable | Fires | Carries |
|---|---|---|---|
PreSectArrayRaiseEvent | Yes | After every gate has passed and before anything is spent. Never fires for an admin raise. | sect(), raiser(), cost() / setCost(int). Cancelling fails the raise with Something prevents that right now. The cost left in the event is clamped to 0 - 1,000,000, and the raiser must still hold it. |
SectArrayRaisedEvent | No | The array stands. | sect, raiser (null for an admin raise), cost actually charged, adminRaised. |
SectArrayEndedEvent | No | The array came down. | sect, reason, secondsActive. |
The end reasons are SIEGE_ENDED (including a siege canceled by switching wars off, which refunds), HALL_LOST (a conquest took the hall, or the sect was disbanded), LOWERED, ADMIN (including an admin test array timing out) and DISABLED. An end fires from whichever world's keeper noticed it, so do not block, and do not call back into raising or lowering from a listener. A clash with a Dao Domain is reported by DaoDomainEvents.DomainClashEvent, whose second() is null and whose arraySect() names the sect.
See also Sect Wars for the siege itself, Formations for the Warding formation and the Siege Banner, Dao Domains for the domain the array fights, and Sects for territory and contribution.