The World/Vein-Tapping Arrays·界

Vein-Tapping Arrays

v0.11.1

A Vein-Tapping Array (引脉阵) is a flag planted on a rich or dragon spirit vein that makes the vein pay rent. Once it takes hold it gathers Spirit Stones and Qi on its own, whether you are on the server or not, until its store is full. You stand on the vein to collect. The array is never a block and never an entity, just a record in the world's data, and it does not drain the vein: meditation and breakthroughs on the same ground are untouched. Its yield is arithmetic on the wall clock, the same trick the Cave Abode's Spirit Spring uses.

The cost of owning one is that a rival can raid it. An outsider can stand on your vein, channel a siphon for a minute while your keepers are warned, and walk away with half of what you stored, so an array is something you keep an eye on, defend and sometimes abandon.

The array is on by default (Vein-Tap-Enabled). It has no Reveal gate: the flag is a craftable item, and its Codex article, Vein-Tapping Arrays, shows for every cultivator.

Making the flag

Craft the Vein-Tapping Array Flag at a Workbench, on its Tinkering tab. It is Epic quality and needs no recipe to be learned first.

IngredientAmount
Profound Core1
Spirit Core1
Spirit Stone8

You need a rich or dragon vein to plant it on. A Vein-Seeking Sinan or Heaven-Seeking Luopan will find one, and a vein another cultivator already taps is named as such in the compass's line.

Planting it

Stand on the vein and right-click with the flag. If everything holds, the flag sinks into the ground with a burst and a crystal sound, the flag is used up, and a line tells you the vein's tier, how much it will gather a day and how many hours of yield the store holds. Standing on a vein you already keep and right-clicking another flag shows its status and draws from it, and the second flag is not spent.

The array belongs to you, or, if you are in a sect, to your sect. There is no choice: a sect member's array is the sect's, and any Patriarch, Elder or member the sect's rules allow draws from it (below).

The gates

In the order the game checks them:

Refused whenWhat you are told
Arrays are switched offVein-Tapping Arrays are switched off on this server.
You are a fleeing soul, or deadThe soul refusal, or nothing.
The world has no spirit veinsNo spirit vein runs beneath this place. The Heavenly Realm, a Sea of Consciousness and instanced worlds such as dungeons are excluded.
You are on a test profileThe sandbox notice. The yield is real, so a test profile may not plant or raid.
Your realm is below Vein-Tap-Min-RealmNames the realm you need. Foundation Establishment by default. An admin with the bypass skips this and the caps.
The vein is not rich or dragonThe vein beneath you is too thin to tap. A vein must be rich both by its birth and as it reads right now, so a Meteor Shower's temporary rich veins do not count.
The chunk has not loaded yetThis ground has not finished loading - try again in a moment.
It is another sect's groundThis is another sect's ground. Your own sect's ground is fine.
It is warded against youA Warding formation or an abode's ward holds the ground against you.
An open Secret Realm's seal covers itNothing anchored there would outlast the realm.
The chunk already holds an array has already tapped this vein. One array to a chunk.
Another array is too closeAnother Vein-Tapping Array draws on a vein within N chunks of here. Vein-Tap-Min-Separation-Chunks (3) is the smallest gap allowed, measured in whole chunks of 32 blocks.
You or your sect keep the most allowedVein-Tap-Max-Personal (1) outside a sect, Vein-Tap-Max-Per-Sect (3) for a sect; 0 means no limit. Release one first.
An add-on vetoes itSomething prevents an array from taking hold here. Nothing is spent.

A cultivator in a sect counts against the sect's limit, never their own.

What it gathers

An array gathers at a steady rate set by its vein, and keeps up to Vein-Tap-Storage-Hours of it.

VeinSpirit Stones a dayQi a day
Rich8 (Vein-Tap-Rich-Stones-Per-Day)2,880 (Vein-Tap-Rich-Qi-Per-Day)
Dragon16 (Vein-Tap-Dragon-Stones-Per-Day)5,760 (Vein-Tap-Dragon-Qi-Per-Day)

The rates are calibrated against the Spirit Spring: an abode's spring gives 60 Qi an hour on an ordinary vein and a Spirit Stone pays about a day of abode upkeep, so a rich array is roughly two springs and a dragon array four, in Qi.

The store holds 24 hours of yield (Vein-Tap-Storage-Hours, 1 to 168). A full array stops gathering; its keepers are told once when it fills. The array keeps counting while the server is off, so a restart does not cost anything: the stored figure is worked out from the clock when you come back. A clock that moves backwards simply restarts the count.

Collecting

Stand on the vein. After Vein-Tap-Collect-Seconds (3) the array pays out:

A keeper who stays on the vein is paid again after 10 minutes, and whoever uses a second flag on the vein draws at once. /cultivation tap lists what is in each array. Collecting needs a living cultivator: it is refused while you are dead, fleeing as a soul or on a test profile (a test profile's draw is held, not lost).

The daily cap. Vein-Tap-Daily-Stone-Cap (24) limits the Spirit Stones one account may draw from arrays per UTC day, across every array and profile. 0 is no cap. The rest waits in the array.

Who collects. The planter of a personal array, or a member of the controlling sect, with one exception: Vein-Tap-Sect-Elders-Only (on by default) restricts a sect's arrays to its Patriarch and Elders, and a member of lower rank is told so. It is on because a sect does not record when a member joined, so a fresh account cannot be told apart from an old one by how long it has belonged: the rank gate is the only guard a sect's store has. Turn it off only if you trust every member of every sect. A server whose config was written by an earlier 0.11.1 build keeps the old stored false until edited.

Allies. A member of a sect in an alliance with the keeper's sect is keeper-side: they see the array's pin and the raid alerts, and standing on the vein stalls a raid. They do not draw its yield.

On the map

A keeper-side viewer sees the array as a pin on the world map and the HUD compass bar: Your Rich Vein Tap, or Sect Name Vein Tap (Rich). Others do not see it. A pin under raid pulses red, labeled Vein Tap under raid! Stepping on a vein tapped by someone else prints who taps it, and, if you could raid it, how.

Raids

Anyone not of the keeper's side may raid an array they stand on. A raid is a channel: the raider holds the vein for Vein-Tap-Raid-Seconds (60) while the keepers are warned, and if it holds the raider takes a share and the array falls dormant.

Who may raid

RuleDetail
RealmVein-Tap-Raid-Min-Realm (Foundation Establishment). The admin bypass skips it.
Not the keepersYou cannot raid your own array, your own sect's, or a personal array you are the keeper of.
Not at peaceA raider whose sect holds any diplomatic pact with the keeping sect (non-aggression, trade or alliance) may not raid it.
Claimed landWith Vein-Tap-Raid-Protect-Claimed-Land (on), an array standing on its own sect's claimed land can only be raided by a sect that has declared rivalry on it or is at war with it.
The array has somethingAt least Vein-Tap-Raid-Min-Stones (2) Spirit Stones stored.
It is not dormantA raided array rests.
You have not just raided itThe same raider may not raid the same array again for Vein-Tap-Raid-Tap-Cooldown-Hours (24).
Your daily capVein-Tap-Raid-Daily-Cap (3) successful raids per UTC day; 0 is no cap. A raid that breaks costs nothing against it.
The raid-start cooldownAfter starting a raid, you must wait Vein-Tap-Raid-Start-Cooldown-Seconds (60) before starting another, so a raid that keeps breaking cannot be restarted over and over to spam the keepers' alerts. 0 turns it off.
Nobody else is raiding it, and you are not already raidingOne raid at a time per array, one per raider.
A keeper is onlineOnly when Vein-Tap-Raid-Requires-Keeper-Online is on (off by default).
Not a test profile, not dead, not a soulAs for planting.
An add-on does not veto itSomething prevents that raid.

Raids can be switched off entirely with Vein-Tap-Raid-Enabled: arrays are then safe wherever they stand.

Running a raid

Stand on the vein and run /cultivation tap raid. The raider sees You begin to siphon the array. Hold this vein for 60s, a warning toast and a burst of particles on the array. If a Warding formation holds the ground against the raider, the channel is Vein-Tap-Raid-Warded-Multiplier (1.5) times as long, and the raider is told so.

All keepers online get a toast, a chat line naming the raider and the array's coordinates (or, if it is far from them, how far and which way), and a sound, and the pin pulses red.

While the channel runs:

If the channel completes, the raider takes Vein-Tap-Raid-Share-Percent (50) of the Spirit Stones and Qi stored, the rest spills back into the earth, and the array falls dormant for Vein-Tap-Dormant-Hours (4): it gathers nothing, cannot be drawn from and cannot be raided until the hours pass. Keepers who were online are told what was lost; those who were away find a notice when they next log in.

Stones that do not fit the raider's bag are held for them (Your bag is full: N Spirit Stones are held for you) and delivered at the next login, or the next time they draw from an array. Qi that a max-level raider cannot bank is lost.

A restart during a raid ends it without an outcome. An array's most recent raider and the hours since are shown in the owner's /cultivation tap list.

Releasing an array

/cultivation tap release, standing on the vein:

An array also goes when its sect is disbanded, when an admin clears it, and, for an admin test array, when its time is up. A sect that is renamed keeps its arrays.

Commands

CommandDoes
/cultivation tapLists your arrays, and your sect's: tier, coordinates, world, what is stored, and whether each is full, dormant or under raid. Also shows the last raider and how long ago, the Spirit Stones you have drawn today against the cap, and any stones held for you from raids.
/cultivation tap raidBegins to raid the array you stand on.
/cultivation tap releaseReleases, or uproots, the array you stand on.

All three need only the base cultivation permission and are player-only. Planting is the flag's right-click and collecting is standing on the vein, so there is no command for either.

Testing it alone

Staff with cultivation.admin have four aids, all acting on the vein you stand on:

CommandDoes
/cultivation admin tap listLists every array on the server and its keeper.
/cultivation admin tap fillFills the array here to its storage limit.
/cultivation admin tap rivalAnchors a full test array owned by no one on an untapped rich or dragon vein, away from other arrays, for Vein-Tap-Admin-Test-Minutes (30). You can raid it with /cultivation tap raid, and the realm, peace, land and cooldown gates are skipped for it. Only the admin who made it can raid it, and the spoils are real. Test arrays are dropped at server start.
/cultivation admin tap clearRemoves the array here, whoever keeps it.

/cultivation admin bypass skips the realm gate and the caps when planting. To test raids properly you need a second keeper-side player, or a second sect: the stall, the alerts, the pins other keepers see and the peace gates cannot be seen alone.

For server owners

Everything is in mods/Siren_Cultivation/Cultivation/VeinTapConfig.json, with the arrays themselves saved in Data/VeinTapsData.json (see Data Files). The file holds 28 settings and three Description-* notes, and the in-game editor (Config tab of /cultivation admin, section Vein-Tapping Arrays) lists all 28, clamping a number you type at once. Its ConfigVersion is 1.

KeyDefaultAllowedWhat it does
Vein-Tap-EnabledtrueMaster switch for the whole feature.
Vein-Tap-Min-Realm20 to 9The realm ordinal needed to plant: 0 is Body Refinement, 2 Foundation Establishment, 6 Void Refinement.
Vein-Tap-Max-Personal10 to 20Arrays a cultivator outside a sect may keep. 0 is no limit.
Vein-Tap-Max-Per-Sect30 to 20Arrays a sect may keep. 0 is no limit.
Vein-Tap-Min-Separation-Chunks30 to 16The smallest gap between two arrays in a world (Chebyshev, in chunks). 0 or 1 adds nothing beyond one array per chunk.
Vein-Tap-Rich-Stones-Per-Day80 to 1000Spirit Stones a rich array gathers in 24 hours.
Vein-Tap-Dragon-Stones-Per-Day160 to 1000The same for a dragon array.
Vein-Tap-Rich-Qi-Per-Day28800 to 100000Qi a rich array gathers in 24 hours.
Vein-Tap-Dragon-Qi-Per-Day57600 to 100000The same for a dragon array.
Vein-Tap-Storage-Hours241 to 168Hours of yield an array holds. A full array stops gathering.
Vein-Tap-Daily-Stone-Cap240 to 10000Spirit Stones one account may draw from arrays per UTC day. 0 is none.
Vein-Tap-Collect-Seconds30 to 60Seconds on the vein before it pays out.
Vein-Tap-Sect-Elders-OnlytrueOnly a sect's Patriarch and Elders may draw from its arrays.
Vein-Tap-Raid-EnabledtrueWhether arrays can be raided at all.
Vein-Tap-Raid-Min-Realm20 to 9The realm ordinal needed to raid.
Vein-Tap-Raid-Seconds605 to 600The length of the siphon channel.
Vein-Tap-Raid-Warded-Multiplier1.51 to 5The channel's length multiplier on ground a Warding formation holds against the raider.
Vein-Tap-Raid-Share-Percent500 to 100The share of the store a successful raider takes. The rest is lost.
Vein-Tap-Raid-Min-Stones20 to 1000The fewest stored Spirit Stones worth raiding.
Vein-Tap-Dormant-Hours40 to 168Hours an array rests after a raid.
Vein-Tap-Raid-Daily-Cap30 to 20Successful raids per cultivator per UTC day. 0 is none.
Vein-Tap-Raid-Tap-Cooldown-Hours240 to 168Hours before one raider may raid the same array again.
Vein-Tap-Raid-Start-Cooldown-Seconds600 to 3600Seconds before a raider may start another raid. 0 is off.
Vein-Tap-Raid-Leave-Grace-Seconds50 to 60Seconds a raider may step off the vein before the siphon breaks.
Vein-Tap-Raid-Protect-Claimed-LandtrueAn array on its own sect's claimed land can only be raided by a declared rival or a sect at war with it.
Vein-Tap-Raid-Requires-Keeper-OnlinefalseForbid raids while no keeper is online.
Vein-Tap-Ambient-FxtrueThe idle particles on an array.
Vein-Tap-Admin-Test-Minutes301 to 1440How long an admin test array lasts.
Description-Vein-Tap, -Vein-Tap-Yield, -Vein-Tap-Raidslong textDocumentation the mod rewrites on every load; editing one does nothing.

Data. Data/VeinTapsData.json holds the arrays, each keeper's drawn-today ledger, raid cooldowns, stones owed to raiders, and the notices queued for keepers who were away. Deleting it deletes every array. Test arrays are dropped at server start. The raid-start cooldown is not saved, so a restart resets it.

In the game. The Codex article Vein-Tapping Arrays sits in The World section and is built from the server's own settings: the rates, the store, the caps, the raid length and the share, and a line that says so if raiding or the elders-only rule is configured differently.

For add-on developers

plugin.siren.API.VeinTapEvents carries seven events. Players are identified by UUID; every listener runs on the thread that caused the event (the planting player's world thread, the raider's, or a command thread), with no Vein-Tap lock held, so keep it cheap.

EventCancellableFiresExposes
PreVeinTapAnchorEventYesEvery gate has passed and nothing is spent or written. Cancelling refuses the planting with Something prevents an array from taking hold here; the flag is not used.placer(), sectName() (empty for a personal array), world(), chunkX(), chunkZ(), tier() (1 rich, 2 dragon).
PreVeinTapRaidEventYesA raid has passed every gate but has not started and no keeper has been warned. Cancelling refuses it with Something prevents that raid.raider(), tapId(), controllerSect(), controllerOwner().
VeinTapAnchoredEventNoAn array was anchored.placer, tapId, sectName, world, chunkX, chunkZ, tier.
VeinTapCollectedEventNoA keeper drew from an array. Not fired for a draw that paid nothing.collector, tapId, stones (into the bag), qi (actually credited).
VeinTapRaidStartedEventNoA raid's channel began.raider, tapId, requiredSeconds.
VeinTapRaidEndedEventNoA raid ended.raider, tapId, outcome (SIPHONED or BROKEN), stones, qi (the share taken, for SIPHONED; the stones may still be owed if the bag was full).
VeinTapReleasedEventNoAn array stopped standing.actor (null for a disband, an expiry or an admin), tapId, sectName, ownerUuid, world, chunkX, chunkZ, reason (RELEASED, UPROOTED, SECT_DISBANDED, ADMIN, EXPIRED).

See Events for the table in the full reference.

Related pages
PageWhy
Spirit Vein CompassFinds the rich and dragon veins an array needs, and warns when one is already tapped.
Qi GatheringVein tiers and how a vein is drained and refilled.
SectsRank, claimed land, diplomacy and rivalry.
Sect WarsThe war that opens a sect's arrays on its own land to raids.
FormationsThe Warding formation that slows a raid.
Cave AbodeThe Spirit Spring the yield is calibrated against.