Mountains¶
Configured in resourcenodes.yml. Command: /resourcenode (aliases /node, /mountain).
A Mountain is a region that refills with blocks on a clock — a Glowstone Mountain in the Nether, an Ore Mountain in the warzone. Nothing is captured and nobody wins: the server announces the refill, several teams show up at once, and the fight is the point.
/resourcenode # when each Mountain refills
/resourcenode refill <id> # staff: refill one now (hcfcore.resourcenode.admin)
/resourcenode claim <id> # staff: draw its land with the claiming wand
A Mountain is server land: the land of a server team (claim in resourcenodes.yml), drawn with the claiming wand like spawn or a road — /resourcenode claim <id> makes the team, a combat zone, and hands the wand. It shows on /team map and announces itself at its border. Between its heights (y-min, y-max) it is mined by the Mountain's own rules below; above and below, it is server land. A Mountain can still be given as two corners instead.
Refills also appear in /events, next to the capture events.
Defining one¶
glowstone-mountain:
display-name: "{warning}Glowstone Mountain"
# The Mountain is server land: the land of the server team named here, drawn
# with the claiming wand. /resourcenode claim glowstone-mountain makes the team
# (a combat zone) if it does not exist yet and hands you the wand. Its region
# is that land between y-min and y-max, bounds included: keep it to the
# mountain itself, every position inside is examined on each refill. Several
# claims make one region, the box around them - keep them side by side. The
# team's land above and below those heights is server land like any other.
# A Mountain whose team holds no land neither refills nor protects anything.
claim: Glowstone
y-min: 40
y-max: 80
#
# Or, with no claim, the box between two corners, bounds included, in any order:
# world: world_nether
# corner-1: {x: 40, y: 40, z: 40}
# corner-2: {x: 70, y: 80, z: 70}
# What the refill puts back. Two shapes are accepted:
#
# blocks: [GLOWSTONE, NETHERRACK] <- a plain list, all equally likely
#
# blocks: <- name: weight, for a mix
# GLOWSTONE: 1
# NETHERRACK: 4
#
# Weights are relative, not percentages: 1 beside 4 means one block in five is
# glowstone. Nothing has to add up to 100.
# Names are Minecraft block names; an unknown one is reported in the console at
# startup and skipped, never guessed at.
blocks:
GLOWSTONE: 1
NETHERRACK: 4
# Which blocks a refill may overwrite.
# air - refill what players mined out. This is what you normally want.
# blocks - extra block names the refill may also replace, for repairing a
# region players filled with something of their own.
# A refill never touches anything else, so a region is repaired rather than
# rebuilt from scratch.
replace:
air: true
blocks: []
# When it refills. The two sources are merged, and both may be used.
#
# interval-seconds - every N seconds, ANCHORED TO LOCAL MIDNIGHT. 14400
# means 00:00, 04:00, 08:00 ... every day, whatever the
# server did in between: a restart cannot shift the hours
# and players can learn them. If the interval does not
# divide 24 hours evenly, the last window before midnight
# is shorter than the others.
# times - explicit local times of day.
#
# Leave both empty for a node only staff can refill with
# /resourcenode refill <id>.
#
# Shipped at 0, staff only: a refill writes blocks into the world, and the
# region above is an example - left scheduled, a fresh server would fill
# that box of the Nether with glowstone every four hours. Move the region onto
# your mountain, then set interval-seconds: 14400 (every four hours) or times.
refill:
interval-seconds: 0
times: []
# How long before a refill to warn the server, in seconds. This is what makes
# a refill a rendez-vous rather than a surprise: teams need notice to travel.
# A warning at or beyond the interval itself is ignored - it would be
# permanently on screen.
announce-before-seconds: [300, 60]
# Whether the refill itself is broadcast.
announce-refill: true
# Whether the region is filled once when the server starts. Off by default: on
# an established map the region already holds its blocks, and a fill on every
# restart is a needless pass over tens of thousands of positions.
fill-on-start: false
protection:
# No building inside the region: no towering over the mountain, no walling
# it off, no lava buckets. The same goes for what no player places by hand:
# pistons cannot push blocks in or pull the structure out, and liquids poured
# outside cannot flow in. Liquid already inside the region keeps flowing.
prevent-build: true
# What may be mined inside the region:
# PALETTE_ONLY - only the blocks this node places (GLOWSTONE, NETHERRACK
# above). The structure survives, so there is still a
# mountain to refill next time.
# ANY - anything. The region is then only non-buildable, and
# players will eventually flatten it.
break-policy: PALETTE_ONLY
# Whether teams are refused claims overlapping the region. Leave this on:
# a claimed mountain is a mountain one team owns. (A Mountain that is a
# server team's land cannot be claimed over anyway.)
prevent-claim: true
# Whether explosions are stopped from breaking the region.
#
# Leave this on too. Without it break-policy above is decorative: a player
# refused the netherrack blows it up instead, and after a few days there is
# no mountain left for the refill to fill.
prevent-explosions: true
It ships with interval-seconds: 0, refilled only by staff: set interval-seconds: 14400 for every four hours once the region is on your mountain.
- The region is the box between the two corners, bounds included, in any order. Keep it to the mountain itself: every position inside is examined on each refill.
- The palette is weighted:
GLOWSTONE: 1besideNETHERRACK: 4means one block in five is glowstone. Weights are relative — nothing has to add up to 100. A plain list (blocks: [GLOWSTONE, NETHERRACK]) gives equal weights. An unknown block name is reported at startup and skipped, never guessed.
When it refills¶
Refill times are absolute, not "last refill plus the interval":
interval-secondsis anchored to local midnight —14400means 00:00, 04:00, 08:00... every day, whatever the server did in between. A restart cannot shift the hours, and players can learn them.timesadds explicit local times of day. Both sources merge.- Both empty: only staff refill it.
The shipped examples are at 0, staff only, until you move them onto your map.
Warnings go out ahead of each refill (announce-before-seconds) — that is what turns a refill into a rendez-vous rather than a surprise: teams need time to cross the map. The refill itself is announced when it is done, not when it starts (announce-refill).
What a refill does¶
- It repairs, it does not rebuild: by default it fills only air — what players mined out.
replace.blockslists extra blocks it may also replace, to repair a region players filled with something of their own. - It never walls a player in: the blocks a player's body occupies stay empty until the next refill (
skip-occupied-blocks), instead of the resource closing over them. Spectators are not counted. - It is spread over several ticks (
blocks-per-tick, 4000 shared between running refills) so a mountain of tens of thousands of blocks does not freeze the server. Its chunks are loaded in the background and held until it finishes. fill-on-startfills the region once when the server starts — off by default.
A refill changed nothing?
A refill fills only air: a region under water or inside solid rock has nothing to fill. Move the region, or list the blocks it may replace under replace.blocks.
Protection¶
Each Mountain protects its region (protection):
| Setting | Default | Effect |
|---|---|---|
prevent-build |
on | No building — no towering over it, no walling it off, no lava. Pistons cannot push blocks in or pull the structure out, and liquid poured outside does not flow in |
break-policy |
PALETTE_ONLY |
Only the palette's blocks can be mined, so the structure survives for the next refill. ANY lets players mine anything — and eventually flatten it |
prevent-claim |
on | No team can claim land overlapping the region |
prevent-explosions |
on | Explosions cannot break the region — otherwise the break policy would be decorative |
Inside the warzone, a Mountain's own rules apply in its region, so its resources stay minable. Staff with hcfcore.resourcenode.bypass build and mine freely inside a region.