Vein-Tapping Arrays
v0.11.1A 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.
| Ingredient | Amount |
|---|---|
| Profound Core | 1 |
| Spirit Core | 1 |
| Spirit Stone | 8 |
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 when | What you are told |
|---|---|
| Arrays are switched off | Vein-Tapping Arrays are switched off on this server. |
| You are a fleeing soul, or dead | The soul refusal, or nothing. |
| The world has no spirit veins | No 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 profile | The sandbox notice. The yield is real, so a test profile may not plant or raid. |
Your realm is below Vein-Tap-Min-Realm | Names the realm you need. Foundation Establishment by default. An admin with the bypass skips this and the caps. |
| The vein is not rich or dragon | The 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 yet | This ground has not finished loading - try again in a moment. |
| It is another sect's ground | This is another sect's ground. Your own sect's ground is fine. |
| It is warded against you | A Warding formation or an abode's ward holds the ground against you. |
| An open Secret Realm's seal covers it | Nothing 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 close | Another 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 allowed | Vein-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 it | Something 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.
| Vein | Spirit Stones a day | Qi a day |
|---|---|---|
| Rich | 8 (Vein-Tap-Rich-Stones-Per-Day) | 2,880 (Vein-Tap-Rich-Qi-Per-Day) |
| Dragon | 16 (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:
- the Spirit Stones go into your bag, and what does not fit stays in the array (Your bag is full - N Spirit Stones stay in the array);
- the Qi goes through the normal Qi pipeline, so your multipliers apply. If you can bank no more Qi, the array keeps it for you.
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
| Rule | Detail |
|---|---|
| Realm | Vein-Tap-Raid-Min-Realm (Foundation Establishment). The admin bypass skips it. |
| Not the keepers | You cannot raid your own array, your own sect's, or a personal array you are the keeper of. |
| Not at peace | A raider whose sect holds any diplomatic pact with the keeping sect (non-aggression, trade or alliance) may not raid it. |
| Claimed land | With 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 something | At least Vein-Tap-Raid-Min-Stones (2) Spirit Stones stored. |
| It is not dormant | A raided array rests. |
| You have not just raided it | The same raider may not raid the same array again for Vein-Tap-Raid-Tap-Cooldown-Hours (24). |
| Your daily cap | Vein-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 cooldown | After 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 raiding | One raid at a time per array, one per raider. |
| A keeper is online | Only when Vein-Tap-Raid-Requires-Keeper-Online is on (off by default). |
| Not a test profile, not dead, not a soul | As for planting. |
| An add-on does not veto it | Something 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:
- Defending stalls it. While any keeper-side player (allies included) stands on the vein, the siphon stalls, and resumes when the vein is clear.
- Leaving breaks it. If the raider steps off the vein for more than
Vein-Tap-Raid-Leave-Grace-Seconds(5), after a warning, the siphon breaks. So does the raider dying, going to a different world, disconnecting or the array being released or removed. Nothing is taken, and the keepers are told the raid was broken. - A halfway line tells the raider the siphon is half done.
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:
- The keeper releases their own array; for a sect's array, its Patriarch or an Elder does. A keeper draws what the array holds first, even if the bag was too full to take it all: whatever stayed in the array goes with it. No flag is refunded.
- The owner of the ground can uproot a foreign array: a sect's Patriarch or Elder on their own claimed land, or the owner of the Cave Abode the array stands on. The keepers are told who did it.
- An array cannot be released while it is being raided.
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
| Command | Does |
|---|---|
/cultivation tap | Lists 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 raid | Begins to raid the array you stand on. |
/cultivation tap release | Releases, 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:
| Command | Does |
|---|---|
/cultivation admin tap list | Lists every array on the server and its keeper. |
/cultivation admin tap fill | Fills the array here to its storage limit. |
/cultivation admin tap rival | Anchors 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 clear | Removes 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.
| Key | Default | Allowed | What it does |
|---|---|---|---|
Vein-Tap-Enabled | true | Master switch for the whole feature. | |
Vein-Tap-Min-Realm | 2 | 0 to 9 | The realm ordinal needed to plant: 0 is Body Refinement, 2 Foundation Establishment, 6 Void Refinement. |
Vein-Tap-Max-Personal | 1 | 0 to 20 | Arrays a cultivator outside a sect may keep. 0 is no limit. |
Vein-Tap-Max-Per-Sect | 3 | 0 to 20 | Arrays a sect may keep. 0 is no limit. |
Vein-Tap-Min-Separation-Chunks | 3 | 0 to 16 | The 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-Day | 8 | 0 to 1000 | Spirit Stones a rich array gathers in 24 hours. |
Vein-Tap-Dragon-Stones-Per-Day | 16 | 0 to 1000 | The same for a dragon array. |
Vein-Tap-Rich-Qi-Per-Day | 2880 | 0 to 100000 | Qi a rich array gathers in 24 hours. |
Vein-Tap-Dragon-Qi-Per-Day | 5760 | 0 to 100000 | The same for a dragon array. |
Vein-Tap-Storage-Hours | 24 | 1 to 168 | Hours of yield an array holds. A full array stops gathering. |
Vein-Tap-Daily-Stone-Cap | 24 | 0 to 10000 | Spirit Stones one account may draw from arrays per UTC day. 0 is none. |
Vein-Tap-Collect-Seconds | 3 | 0 to 60 | Seconds on the vein before it pays out. |
Vein-Tap-Sect-Elders-Only | true | Only a sect's Patriarch and Elders may draw from its arrays. | |
Vein-Tap-Raid-Enabled | true | Whether arrays can be raided at all. | |
Vein-Tap-Raid-Min-Realm | 2 | 0 to 9 | The realm ordinal needed to raid. |
Vein-Tap-Raid-Seconds | 60 | 5 to 600 | The length of the siphon channel. |
Vein-Tap-Raid-Warded-Multiplier | 1.5 | 1 to 5 | The channel's length multiplier on ground a Warding formation holds against the raider. |
Vein-Tap-Raid-Share-Percent | 50 | 0 to 100 | The share of the store a successful raider takes. The rest is lost. |
Vein-Tap-Raid-Min-Stones | 2 | 0 to 1000 | The fewest stored Spirit Stones worth raiding. |
Vein-Tap-Dormant-Hours | 4 | 0 to 168 | Hours an array rests after a raid. |
Vein-Tap-Raid-Daily-Cap | 3 | 0 to 20 | Successful raids per cultivator per UTC day. 0 is none. |
Vein-Tap-Raid-Tap-Cooldown-Hours | 24 | 0 to 168 | Hours before one raider may raid the same array again. |
Vein-Tap-Raid-Start-Cooldown-Seconds | 60 | 0 to 3600 | Seconds before a raider may start another raid. 0 is off. |
Vein-Tap-Raid-Leave-Grace-Seconds | 5 | 0 to 60 | Seconds a raider may step off the vein before the siphon breaks. |
Vein-Tap-Raid-Protect-Claimed-Land | true | An 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-Online | false | Forbid raids while no keeper is online. | |
Vein-Tap-Ambient-Fx | true | The idle particles on an array. | |
Vein-Tap-Admin-Test-Minutes | 30 | 1 to 1440 | How long an admin test array lasts. |
Description-Vein-Tap, -Vein-Tap-Yield, -Vein-Tap-Raids | long text | Documentation 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.
| Event | Cancellable | Fires | Exposes |
|---|---|---|---|
PreVeinTapAnchorEvent | Yes | Every 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). |
PreVeinTapRaidEvent | Yes | A 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(). |
VeinTapAnchoredEvent | No | An array was anchored. | placer, tapId, sectName, world, chunkX, chunkZ, tier. |
VeinTapCollectedEvent | No | A keeper drew from an array. Not fired for a draw that paid nothing. | collector, tapId, stones (into the bag), qi (actually credited). |
VeinTapRaidStartedEvent | No | A raid's channel began. | raider, tapId, requiredSeconds. |
VeinTapRaidEndedEvent | No | A 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). |
VeinTapReleasedEvent | No | An 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.
| Page | Why |
|---|---|
| Spirit Vein Compass | Finds the rich and dragon veins an array needs, and warns when one is already tapped. |
| Qi Gathering | Vein tiers and how a vein is drained and refilled. |
| Sects | Rank, claimed land, diplomacy and rivalry. |
| Sect Wars | The war that opens a sect's arrays on its own land to raids. |
| Formations | The Warding formation that slows a raid. |
| Cave Abode | The Spirit Spring the yield is calibrated against. |