-
Notifications
You must be signed in to change notification settings - Fork 0
All Beacon Effects
This document provides an exhaustive technical reference for the configuration, behavior, and implementation of all beacon effects available within the BeaconPlus ecosystem. It is intended for server administrators and system integrators who require precise control over effect mechanics. Be advised that this document serves strictly as a configuration manual; it does not offer gameplay advice or strategic consulting.
Type Identifier: POTION_EFFECT
The Potion Effect module serves as the primary mechanism for applying vanilla Minecraft status effects to entities. It operates by interfacing directly with the server's internal potion registry, allowing for the application of any registered effect type to valid targets within the beacon's radius.
The beacon operates on a scheduled tick cycle. During each cycle, the system performs a spatial scan of the defined radius to identify all entities that match the beacon's target criteria (e.g., players, specific mobs).
Upon identifying a valid target, the system retrieves the entity's current active potion effects. It compares the configured effect with the entity's existing state.
-
Absence Check: If the entity does not currently possess the effect, the beacon applies it immediately using the configured
AmplifierandDuration. -
Intensity Check: If the entity already possesses the effect, the system compares the
Amplifier(level) of the existing effect against the beacon's configured level. If the beacon's level is lower than or equal to the existing level, the application is skipped to prevent overriding a more potent buff (e.g., a Potion of Strength II drank by the player). - Duration Check: If the beacon's level is higher, or if the logic permits extension, the effect is re-applied to refresh its duration.
This logic ensures that beacons act as endless sources of effects without disrupting the utility of consumable potions that might offer superior, albeit temporary, benefits.
Defines the specific potion type to be applied. The value acts as a key to lookup the effect in the server's registry.
- Status: Required
- Format: String (Case-Insensitive)
-
Scope: Accepts all vanilla potion types. Common examples include
SPEED(movement speed),FAST_DIGGING(mining speed),INCREASE_DAMAGE(melee damage),HEAL(instant health),JUMP(jump height),REGENERATION(health recovery),FIRE_RESISTANCE(fire immunity),WATER_BREATHING(oxygen preservation),INVISIBILITY(rendering suppression),NIGHT_VISION(gamma correction),WEAKNESS(damage reduction),POISON(periodic damage),WITHER(periodic decay damage),SLOW(movement reduction),SLOW_FALLING(gravity reduction),LEVITATION(upward velocity),LUCK(loot table modifier),DOLPHINS_GRACE(swim speed),CONDUIT_POWER(underwater vision/speed). - Validation: Invalid names will result in a console error and the effect failing to load.
Defines the intensity level of the potion effect. Minecraft uses a zero-indexed integer system for levels.
- Status: Optional
-
Default:
0(Level I) - Format: Integer
- Zero (0): Corresponds to "Level I" in gameplay terms.
- One (1): Corresponds to "Level II".
- Two (2): Corresponds to "Level III".
-
Mechanics: Higher amplifiers linearly or exponentially increase the potency of the effect depending on the specific potion type. For example,
JUMPlevel 1 allows jumping 1.5 blocks, while level 2 allows 2.5 blocks.FAST_DIGGINGincreases mining speed by 20% per level.
Defines the length of time the effect remains active on the entity after each application cycle. This does not determine how long the beacon runs, but rather how long the effect lingers on the player.
- Status: Optional
-
Default:
320 ticks(16 seconds) - Format: Time String (e.g., "15s" for 15 seconds, "200t" for 200 ticks).
- Continuity: To achieve a seamless experience where the effect never flickers, the Duration must be significantly longer than the beacon's update interval. If the beacon updates every 2 seconds, a duration of "5s" provides a 3-second safety buffer against server lag.
- Flickering: A duration set exactly equal to the update interval will cause the effect to visually disappear for one tick before reappearing, causing screen flashing.
Defines a nested potion effect that is applied implicitly without showing particles or icons.
- Status: Optional
- Format: Nested Configuration Section (Same structure: Effect, Amplifier, Duration...)
- Usage: Useful for stacking effects where only one should be visible to the client.
Toggles the rendering style of the potion particles.
- Status: Optional
-
Default:
true -
Format: Boolean (
true/false) - True: Particles are rendered as "Ambient". In the Minecraft client, ambient particles are more translucent and less obtrusive. This is the default state for effects provided by vanilla beacons.
- False: Particles are rendered as "Normal". These are opaque and vibrant, identical to the particles emitted when a player drinks a potion or is splashed.
Controls the network transmission of particle packets.
- Status: Optional
-
Default:
true -
Format: Boolean (
true/false) - True: The server sends particle packets to the client. The client renders swirls around the affected entity.
- False: The server suppresses particle packets. The effect is applied "silently". Note that other players will not see that the target is buffed unless they check the entity's health or speed.
Controls the visibility of the effect icon in the player's Heads-Up Display (HUD).
- Status: Optional
-
Default:
true -
Format: Boolean (
true/false) - True: The square buff icon is displayed in the top-right corner of the screen (or inventory screen).
- False: The icon is suppressed. This allows for "Invisible" buffs that affect gameplay mechanics without alerting the player via the UI.
Determines the behavior when an entity exits the beacon's effective radius.
- Status: Optional
-
Default:
false -
Format: Boolean (
true/false) - True: The system intercepts the entity's exit event (or calculates it during the tick) and programmatically removes the specific potion effect. The removal is instant.
-
False: The system takes no action upon exit. The effect remains on the entity and persists until its remaining
Durationexpires naturally. This allows for "Charge Up" zones where players can stand to gain a 30-second buff and then leave to use it.
- Milk Buckets: Drinking milk clears all potion effects. The beacon will re-apply the effect on the next update tick (e.g., within 1-2 seconds).
- Death: Upon death, all potion effects are cleared. The beacon will re-apply the effect when the player respawns or returns to the zone.
- Max Amplifier: The Minecraft engine limits potion amplifiers to 255. Values higher than this may overflow to negative numbers or cause unintended behavior.
- Incompatible Effects: Some effects override others (e.g., Night Vision vs Blindness). The beacon applies the effect regardless of conflicting effects; the client handles the visual priority.
Example A: Standard Haste Configures a standard mining buff with seamless duration and ambient particles.
- Type: POTION_EFFECT
Effect: FAST_DIGGING
Amplifier: 1
Duration: "15s"
Ambient: true
Particles: false
Icon: true
Remove On Leave: trueExample B: Hidden Resistance Configures a defensive buff with absolutely no visual indicators (no particles, no icon).
- Type: POTION_EFFECT
Effect: DAMAGE_RESISTANCE
Amplifier: 0
Duration: "10s"
Ambient: true
Particles: false
Icon: false
Remove On Leave: falseExample C: Environmental Wither Configures a zone that applies a detrimental effect to intruders. Usage of particles ensures the hazard is visible.
- Type: POTION_EFFECT
Effect: WITHER
Amplifier: 1
Duration: "5s"
Ambient: false
Particles: true
Icon: true
Remove On Leave: falseExample D: Charging Station Configures a mechanism where players enter to gain 60 seconds of Speed, which they can take with them outside the zone.
- Type: POTION_EFFECT
Effect: SPEED
Amplifier: 1
Duration: "60s"
Ambient: true
Particles: true
Icon: true
Remove On Leave: falseExample E: High-Grav Zone Configures a heavy levitation effect (Levitation 128 usually prevents movement or pulls down depending on version quirks) or generic Slowness.
- Type: POTION_EFFECT
Effect: SLOW
Amplifier: 3
Duration: "5s"
Ambient: false
Particles: true
Icon: true
Remove On Leave: trueType Identifier: IMMORTALITY_FIELD
The Immortality Field is an event-driven protection module. Unlike periodic effects that apply buffs, this module sits dormant monitoring the Event Bus for specific conditions related to entity mortality.
The system registers a high-priority listener for EntityDamageEvent. When an entity within the beacon's radius takes damage, the module performs a simulation:
- Damage Calculation: It calculates the final damage amount after armor, enchantments, and potion effects are processed.
- Mortality Check: It compares this final damage against the entity's current health.
- Intervention: If the damage is sufficient to reduce the entity's health to zero or below, the intervention protocol is initiated.
- Cancellation: The damage event is cancelled (set to 0 damage).
-
State Reset: The entity's health is explicitly set to the configured
Min Healthvalue.
This sequence occurs within a single server tick, ensuring that the entity never actually "dies" in the engine's perspective. The "You Died" screen is never presented to the client, and inventory is not dropped.
Defines the exact health value set on the entity immediately after a fatal damage event is intercepted.
- Status: Optional
-
Default:
1.0(Half heart) - Format: Double (Floating Point Number)
-
Value Scale:
20.0represents full health (standard 10 hearts).1.0represents half a heart. -
Effect: This value is absolute. If configured to
20.0, the player instantly heals to full health upon "dying". If configured to1.0, the player survives but is left in a critical state.
Defines the probability that the intervention logic will successfully execute.
- Status: Optional
-
Default:
100.0(Guaranteed) - Format: Double (0.0 to 100.0)
-
Deterministic Logic: When a fatal event is detected, the system generates a pseudo-random number between 0.0 and 100.0. If the number is less than or equal to
Survival Chance, the entity is saved. If the number is greater, the system yields, allowing the fatal damage to proceed normally. -
Usage: setting this to
100.0ensures total reliability. Lower values introduce RNG elements.
-
Void Damage: Damage from the Void (Y < -64) is treated as standard damage. If the
Min Healthis configured, players falling into the void will repeatedly "die" and heal, effectively becoming trapped in a loop until they are teleported out or the beacon is disabled. -
Kill Command: The
/killcommand applies damage equal to3.4028235E38(Max Float). The Immortality Field intercepts this damage event, effectively preventing administrative kills unless the plugin is bypassed. - Other Plugins: If another plugin cancels the damage event before the BeaconPlus listener (due to priority settings), the Immortality Field logic is skipped. Beacons act on the final calculated damage.
-
One-Shot Protection: Logic triggers only if
FinalDamage >= CurrentHealth. It does not trigger for non-fatal damage (e.g. taking 5 hearts of damage while at 10 hearts).
Example A: Guaranteed Safety Configures a reliable safe zone where death is mathematically impossible.
- Type: IMMORTALITY_FIELD
Min Health: 20.0
Survival Chance: 100.0Example B: Last Stand Configures a zone where players survive fatal damage but are left with only half a heart, emphasizing the danger.
- Type: IMMORTALITY_FIELD
Min Health: 1.0
Survival Chance: 100.0Example C: Unreliable Shield Configures a zone where the protection matrix fails 50% of the time.
- Type: IMMORTALITY_FIELD
Min Health: 10.0
Survival Chance: 50.0Example D: Full Restore Configures a zone that acts as an instant-resurrection point, fully healing the player.
- Type: IMMORTALITY_FIELD
Min Health: 20.0
Survival Chance: 100.0Type Identifier: POTION_DURATION_BOOST
The Potion Duration Boost effect functions as a maintenance module for existing status effects. It does not generate new effects but rather detects and modifies specific effects already present on the entity.
On every update tick (usually once per second), the system retrieves the list of active potion effects on the target entity. It checks this list against the configured Potion Effect Type.
If a match is found:
- The system determines the current remaining duration of the effect in ticks.
- The system adds the
Duration Boost Tickvalue to this current duration. - The modified duration is written back to the entity.
This creates a dynamic equilibrium. If the Duration Boost Tick matches the tick rate of the beacon (e.g., adding 20 ticks every 20 ticks), the effect duration freezes. If the boost is higher, the duration grows. If lower, the duration decays slower than normal.
Defines the specific effect type to target for boosting.
- Status: Required
- Format: String
-
Scope: Must match a valid Minecraft potion name (e.g.,
NIGHT_VISION,WATER_BREATHING). - Limitation: The module targets a single effect type. To boost multiple types (e.g., Strength and Speed), multiple instances of this effect module must be configured in the beacon.
Defines the integer amount of ticks added to the effect's duration per cycle.
- Status: Optional
-
Default:
0 - Format: Integer
- Time Scale: 20 ticks equals 1 second.
- Threshold: To achieve a net increase in duration, this value must exceed the update interval of the beacon. If the beacon updates every 2 seconds (40 ticks), a value of 41 or higher is required to "charge" the potion.
-
Duration Cap: The Minecraft engine caps potion duration at
32767ticks (approx 27 minutes) in some versions, orinfinite(-1) in others. The boost module respects these internal integer limits. - Missing Effects: If the target entity does not have the specified effect active, this module performs no action. It cannot create an effect, only extend an existing one.
- Source Independence: The module boosts effects regardless of their source (Beacon, Potion Bottle, Suspicious Stew, Command).
-
Negative Boosts: It is possible to configure a negative value (e.g.,
-20). This causes the effect to expire faster than normal, effectively functioning as a "Cleanse" or dampening field.
Example A: Night Vision Extender Configures infinite extension for Night Vision, assuming a 1-second update cycle.
- Type: POTION_DURATION_BOOST
Potion Effect Type: NIGHT_VISION
Duration Boost Tick: 40Example B: Resistance Stabilizer Configures a value ensuring Resistance potions do not expire.
- Type: POTION_DURATION_BOOST
Potion Effect Type: DAMAGE_RESISTANCE
Duration Boost Tick: 25Example C: Slow Decay Water Breathing Configures an extension that slows down the expiry of Water Breathing by 50%.
- Type: POTION_DURATION_BOOST
Potion Effect Type: WATER_BREATHING
Duration Boost Tick: 10Example D: Invisibility Sustainer Configures infinite extension for Invisibility.
- Type: POTION_DURATION_BOOST
Potion Effect Type: INVISIBILITY
Duration Boost Tick: 30Type Identifier: FLY
The Flight module manipulates the player's allowFlight capability flag. This is the boolean flag used by Creative Mode to enable double-tap flight.
Upon every scan cycle, the beacon validates if the player is within the radius.
-
Entry Logic: If the player enters the radius and matches the criteria,
player.setAllowFlight(true)is invoked. -
Exit Logic: When the player exits the radius, or if the beacon is destroyed, the system performs a cleanup safety check. It verifies if the player is in Creative or Spectator mode. If the player is in Survival or Adventure mode,
player.setAllowFlight(false)andplayer.setFlying(false)are invoked immediately.
The system includes an optional height delimiter to create "Ceilings" for flight within the zone.
Defines a vertical boundary relative to the beacon core's Y-coordinate.
- Status: Optional
-
Default:
-1(Infinite Vertical Range) - Format: Integer
-
Negative Values: A value of
-1disables the height check logic entirely. Flight is valid at any Y-level within the horizontal radius. -
Positive Values: Defines a ceiling relative to the beacon. If set to
50and the beacon is at Y=64, flight is disabled if the player exceeds Y=114. - Enforcement: Players exceeding the height are considered "Out of Range" and will immediately lose flight capability, causing them to fall.
- Gamemode Precedence: Creative Mode and Spectator Mode grant flight intrinsically. The beacon logic respects this; it will not disable flight for Creative players upon exit, nor will it attempt to enforce flight rules on them.
- Fall Damage: If a player flying high in the air exits the zone (or the beacon breaks), flight is disabled. The player falls. Standard fall damage rules apply upon impact unless other protections ( Feather Falling, Immortality Field) are present.
- Velocity Retention: Players flying at high speed who exit the zone retain their momentum. They become a projectile subject to gravity.
-
Relogging: The flight state persistence across logout/login depends on server configuration (
allow-flight=truein server.properties). The beacon re-evaluates eligibility immediately upon player login.
Example A: Unrestricted Flight Configures flight with no vertical limitations.
- Type: FLY
Height: -1Example B: Low Altitude Hover Configures flight limited to 10 blocks above the beacon.
- Type: FLY
Height: 10Example C: Skyscraper Zone Configures flight allowing access to tall structures up to 100 blocks.
- Type: FLY
Height: 100Example D: Ground Effect Configures flight limited to 2 blocks, effectively allowing high jumps/hovering but not true flight.
- Type: FLY
Height: 2Type Identifier: MAGNET
The Magnet module applies a physics vector to entities within the radius, altering their trajectory. It supports both attraction and repulsion mechanics.
The system calculates a 3D vector from the entity's current position to the beacon's center.
Vector direction = beaconLocation.toVector().subtract(entity.getLocation().toVector()).normalize();
This normalized direction vector is then multiplied by the configured Magnitude scalar. The resulting velocity is added to the entity's current velocity.
This process repeats every tick, creating a smooth, continuous force.
Defines the scalar strength of the velocity vector applied to the entity.
- Status: Optional
-
Default:
0.0 - Format: Double
-
Direction - Attraction: Positive values (e.g.,
0.2) create a force pulling the entity towards the source. -
Direction - Repulsion: Negative values (e.g.,
-0.5) create a force pushing the entity away from the source. -
Intensity:
-
0.1: Gentle drift, easily resisted by walking. -
0.5: Strong current, difficult to walk against. -
1.0+: Extreme force, likely to launch entities violently.
-
- Block Collision: Entities pushed into blocks do not clip through them; they collide. Strong repulsion in a confined space can pin entities against walls, potentially causing suffocation damage if the wall logic allows it.
- No-Clip Mode: Spectators and players in "No-Clip" mode are immune to velocity updates and will not be affected by the magnet.
- Anticheat: Some Anti-Cheat plugins may interpret the forced velocity changes (especially "Black Hole" attraction) as movement hacks (Fly/Speed) and rubber-band the player. Configuration of the Anti-Cheat is typically required to whitelist these zones.
- Item Merging: Strong attraction fields clump dropped items together into a single location. This facilitates item merging logic (optimizing performance) but may make sorting difficult.
Example A: Gentle Collection Configures a subtle pull for items.
- Type: MAGNET
Magnitude: 0.2Example B: Strong Defense Configures a powerful repulsion field to keep mobs away.
- Type: MAGNET
Magnitude: -0.8Example C: Static Field Configures a zero-magnitude field (functionally inert, possibly for visual testing).
- Type: MAGNET
Magnitude: 0.0Example D: Black Hole Configures an inescapable gravity well.
- Type: MAGNET
Magnitude: 1.5Type Identifier: SPAWNER_BOOST
The Spawner Boost module scans the local environment for CreatureSpawner tile entities (Mob Spawners). It directly manipulates the NBT data of these tiles to accelerate their spawn cycles.
Upon identifying a Spawner Tile Entity within the beacon's range, the system reads its current delay variables: SpawnDelay, MinSpawnDelay, and MaxSpawnDelay.
It applies a reduction formula to these integers:
NewDelay = CurrentDelay * (1.0 - (Percentage / 100.0))
If the Speed Up Percentage is 50%, a delay of 800 ticks (40 seconds) is reduced to 400 ticks (20 seconds). The system essentially compresses the timeline for the spawner logic.
Defines the percentage of time removed from the vanilla spawn delay cycle.
- Status: Optional
-
Default:
0.0 - Format: Double (0.0 to 100.0)
-
Linear Scale:
-
10.0: 10% faster (1.11x rate). - 50.0: 50% faster (2.0x rate).
- 75.0: 75% faster (4.0x rate).
- 90.0: 90% faster (10.0x rate).
-
- Safety: Values approaching 100.0 result in delay values of 0 or 1, causing the spawner to attempt a spawn event on every single update tick if conditions allow.
- Spawn Cap: This module does not override the world's mob cap. If the chunk or world has reached the limit for that mob category (Monster/Animal), the spawner will attempt to spawn and fail, even if boosted.
- Light Levels: The module does not override vanilla light level requirements. A Zombie spawner will not spawn if the light level is too high, regardless of how fast the tick delay is.
- Player Range: Vanilla spawners require a player to be within 16 blocks to activate. The BeaconPlus boost does NOT bypass this requirement. The spawner itself must be active (spinning) for the boost to be applied.
- Tile Integrity: If the spawner block is broken, the effect ceases immediately. The boost is transient and does not permanently modify the block data file; it modifies the runtime NBT of the tile.
Example A: Moderate Boost Configures a 25% reduction, providing a noticeable but safe increase.
- Type: SPAWNER_BOOST
Speed Up Percentage: 25.0Example B: Double Speed Configures a 50% reduction, effectively doubling the mob output.
- Type: SPAWNER_BOOST
Speed Up Percentage: 50.0Example C: Extreme Overclock Configures a 90% reduction.
- Type: SPAWNER_BOOST
Speed Up Percentage: 90.0Example D: Minimum Viable Boost Configures a 5% reduction.
- Type: SPAWNER_BOOST
Speed Up Percentage: 5.0Type Identifier: CROPS_BOOST
The Crops Boost module interacts with organic blocks implementing the Ageable data interface. This includes most crops (Wheat, Carrots, Potatoes, Beetroots) and some growth blocks (Nether Wart, Cocoa, Cactus, Sugar Cane, Kelp, Bamboo).
The system performs a block scan of the radius. When it encounters a valid Ageable block, it retrieves its current Age integer.
It increments this integer by the configured Speed Up Stage.
NewAge = CurrentAge + StageIncrement
If the new age exceeds the maximum age for that block type (e.g., 7 for Wheat), the age is clamped to the maximum. This simulates the effect of Bone Meal application without requiring the item.
Defines the integer quantity added to the crop's Age property per update interval.
- Status: Optional
-
Default:
0 - Format: Integer
- Value 1: The crop advances by one growth stage.
- Value 7: The crop instantly advances to maturity (if maximum is 7).
Defines a specific list of Material types to target.
- Status: Optional
-
Default:
Empty List(Target All) - Format: String List
-
Filter Logic:
- If the list is Empty, the system targets ALL blocks that are
Ageable. - If the list is Populated, the system checks
block.getType()against the list. Non-matching blocks are ignored.
- If the list is Empty, the system targets ALL blocks that are
Defines a specific list of Material types to ignore.
- Status: Optional
-
Default:
Empty List - Format: String List
- Prioritization: Blacklist is checked after Whitelist. If a crop is in both (technically impossible if logic is sound), it is ignored.
Toggles safety logic for instant-break crops. Some crops rely on the specialized mechanics of growing into the block AIR above them (Sugar Cane, Cactus, Bamboo, Kelp). Force-setting their age data when they are already grown can cause the block to recognize an invalid state and break (drop as an item).
- Status: Optional
-
Default:
true -
Format: Boolean (
true/false) - True: The system acts conservatively. It checks if the crop is already at max age or height limit. If so, it skips the boost.
- False: The system applies the boost blindly. This is aggressive and may cause automated harvesting by breaking the plant.
Toggles an alternative boosting mechanism.
- Status: Optional
-
Default:
false -
Format: Boolean (
true/false) -
Function: If enabled, the effect may utilize specific
applyBoneMeallogic instead of raw data manipulation, depending on the internal implementation version. Use this if standard boosting is not working for modded crops.
- Light Requirements: Crops require light level 9+ to grow. The boost forces an age increment, but without light, the crop may "pop" (break) on the next block update.
-
Bonemeal Events: This effect fires
StructureGrowEventorBlockGrowEvent(depending on implementation). Other plugins protecting crops (e.g., GriefPrevention) may cancel these events if they interpret the beacon as a "FakePlayer" without permissions. - Unload Chunks: Growth logic cannot be applied to unloaded chunks. If the beacon radius extends into an unloaded area, those crops are ignored to prevent chunk thrashing.
-
Modded Crops: The system relies on the Bukkit
Ageableinterface. Modded crops that do not adhere to this standard API will not be recognized or boosted.
Example A: Wheat Specialist Configures conservative growth logic strictly for Wheat.
- Type: CROPS_BOOST
Speed Up Stage: 1
Prevent Instant Growth: true
Crops Whitelist:
- WHEATExample B: General Agriculture Configures rapid growth for standard food crops.
- Type: CROPS_BOOST
Speed Up Stage: 2
Prevent Instant Growth: true
Crops Whitelist:
- CARROTS
- POTATOES
- BEETROOTSExample C: Industrial Bamboo Configures aggressive growth for a bamboo farm, potentially causing breaks.
- Type: CROPS_BOOST
Speed Up Stage: 1
Prevent Instant Growth: false
Crops Whitelist:
- BAMBOOExample D: Nether Wart Farm Configures specific targeting for Nether Wart.
- Type: CROPS_BOOST
Speed Up Stage: 1
Prevent Instant Growth: true
Crops Whitelist:
- NETHER_WARTType Identifier: KEEP_CHUNK_LOADED
The Keep Chunk Loaded module interacts with the server's chunk provider and ticket manager.
By default, Minecraft unloads chunks (segments of the world) to save memory when no players are nearby. This pauses all logic within that chunk (redstone, furnaces, growth). This module registers a persistent ticket with the server for the specified chunks. This forces the server to maintain the chunk in the memory heap and continue processing its tick logic (Redstone, Entity AI, Tile Entity logic) even in the absence of players.
Scope selector for the loading logic.
- Status: Optional
-
Default:
false -
Format: Boolean (
true/false) - True: The logic is applied strictly to the single 16x16 chunk containing the beacon block. This is a minimal-impact mode.
- False: The logic is applied to every chunk intersected by the calculated radius of the beacon. For a large radius, this can encompass dozens or hundreds of chunks.
Behavior selector for currently unloaded chunks.
- Status: Optional
-
Default:
false -
Format: Boolean (
true/false) - True (Active Load): If the system detects a target chunk is currently unloaded, it issues a command to load it immediately from disk.
- False (Passive Sustain): The system only registers tickets for chunks that are already loaded. It keeps them loaded, but will not "wake up" a region that is currently dormant.
- Server Performance: Forcing chunks to remain loaded consumes RAM and CPU. A radius of 100 blocks contains ~169 chunks. Actively loading all of them can severely degrade server tps.
- View Distance: This effect loads chunks logically for processing, but does not necessarily send them to the client if they are outside the player's view distance.
- Restart Persistence: Tickets are re-applied when the plugin enables on server startup. However, there is a brief window during the boot process where chunks may be unloaded before the beacon initializes.
- Plugin Conflicts: Some "Clearlag" or optimization plugins forcefully unload unused chunks. This creates a "tug of war" where the beacon loads the chunk and the optimizer unloads it, causing rapid load/unload (thrasing). BeaconPlus uses a rigid Ticket system to try and prevent this.
Example A: Local Persistence Configures persistence for the beacon's chunk only.
- Type: KEEP_CHUNK_LOADED
Single Chunk: true
Load Chunk: falseExample B: Area Persistence Configures persistence for the entire radius, actively loading the area.
- Type: KEEP_CHUNK_LOADED
Single Chunk: false
Load Chunk: trueExample C: Passive Area Hold Configures persistence for the area, but only if a player visits first to load it.
- Type: KEEP_CHUNK_LOADED
Single Chunk: false
Load Chunk: falseExample D: Critical Chunk Configures aggressive loading for a single critical chunk.
- Type: KEEP_CHUNK_LOADED
Single Chunk: true
Load Chunk: trueType Identifier: APPLY_MENDING
The Apply Mending module serves as an automated equipment repair station. It emulates the behavior of the "Mending" enchantment absorbing XP orbs, but uses the beacon's operation as the fuel source.
On every update cycle, the system iterates over the target player's inventory contents. The iteration order typically prioritizes: Main Hand -> Offhand -> Armor Slots -> Main Inventory. For each item stack encountered:
-
Enchantment Check: The system verifies if the item contains the
Mendingenchantment. -
Damage Check: The system verifies if the item has current durability damage (
durability > 0). -
Repair Action: If both checks pass, the system reduces the damage value by the configured
Mending Repair Amount. The process repeats until the repair amount for the cycle is exhausted or all items are fully repaired.
Defines the quantity of durability points restored per update cycle.
- Status: Optional
-
Default:
0 - Format: Integer
- Unit: 1 unit equals 1 point of durability.
- Impact: Higher values result in faster repair. A Diamond Pickaxe has 1561 durability. A rate of 10 would repair it fully in roughly 156 seconds.
- XP Orbs: This effect does not consume XP orbs from the ground. It is an "Infinite Mending" source powered by the beacon.
- Conflicts: If a player is wearing full Mending armor and taking damage, vanilla mechanics repair the armor using picked-up XP. The beacon repair runs in parallel to this.
- Inventory Scan: Large inventories (e.g., modded backpacks) are not scanned. Only the vanilla inventory slots (0-40) are processed.
-
Unbreakable Items: Items tagged as
Unbreakableare skipped to save processing time.
Example A: Standard Repair Configures a moderate repair rate.
- Type: APPLY_MENDING
Mending Repair Amount: 5Example B: Fast Repair Configures a rapid repair rate.
- Type: APPLY_MENDING
Mending Repair Amount: 20Example C: Trickle Repair Configures a very slow repair rate.
- Type: APPLY_MENDING
Mending Repair Amount: 1Example D: Instant Fix Configures a rate likely to fully repair items in one or two cycles.
- Type: APPLY_MENDING
Mending Repair Amount: 500Type Identifier: COMMAND_EXECUTOR
The Command Executor module acts as a trigger for server commands. This allows the beacon to interface with other plugins, scripts, or vanilla command logic.
When the effect is triggered (on tick), the system takes the configured command string.
- Parsing: It scans the string for variables (placeholders).
-
Substitution: It replaces
{player}with the name of the target entity. - Dispatch: It sends the final string to the server's Command Map for execution.
Defines the command syntax to be executed.
- Status: Optional
-
Default:
""(Empty String) - Format: String
-
Syntax: Standard Minecraft command syntax (excluding the leading
/in some contexts, though typically supported). -
Placeholders:
-
{player}: Resolves to the player's username. -
{uuid}: Resolves to the player's unique ID.
-
Defines the identity of the command sender.
- Status: Optional
-
Default:
false -
Format: Boolean (
true/false) -
True: The command is executed as the
ConsoleSender. This grants the command full Operator (OP) privileges. It bypasses all permission checks. -
False: The command is executed as the
Playerthemselves. The player attempting to run the command must have the necessary permissions (e.g., if the command isgamemode creative, the player needsminecraft.command.gamemode).
Defines a command string executed by the beacon itself, regardless of player presence.
- Status: Optional
-
Default:
null - Format: String
-
Context: This command runs on every beacon tick cycle. It supports location placeholders
{beacon_x},{beacon_y},{beacon_z},{beacon_world}. It does NOT support{player}placeholders as it is not triggered by a player. - Executor: Always executed by Console.
-
Command Spam: The effect triggers on every configured interval. Setting a command like
/giveon a 1-second interval will fill the player's inventory rapidly and spam the chat. - Asynchronous Safety: Commands are dispatched on the main server thread. Heavy commands (like world edits or database queries) runs on the main thread and will lag the server.
-
Security Risk: Granting
Console: truecombined with user-configurable command strings (if exposed) allows players to run/opor/stop. Ensure this effect is strictly controlled by administrators. -
Target Validity: If
{player}is offline (e.g., logged out exactly when the tick fired), the command will likely fail or return "Player not found".
Example A: Economy Integration Configures a monetary reward using an economy plugin command.
- Type: COMMAND_EXECUTOR
Command: "eco give {player} 5"
Console: trueExample B: Messaging Configures a title message sent to the player.
- Type: COMMAND_EXECUTOR
Command: "title {player} title {\"text\":\"Welcome to the Zone\"}"
Console: trueExample C: Teleportation Configures a forced teleport command.
- Type: COMMAND_EXECUTOR
Command: "tp {player} 0 100 0"
Console: trueExample D: User Action Configures the player to say something in chat.
- Type: COMMAND_EXECUTOR
Command: "say I am at the beacon!"
Console: falseType Identifier: GLOW
The Glow module applies the GLOWING status effect/metadata to the entity. This creates a spectral outline around the entity's model, visible through solid blocks.
The system interacts with the entity's metadata or utilizes packet-based rendering (depending on the method) to flag the entity as glowing. This instructs the client-side renderer to draw the outline.
Defines the technical implementation for rendering the glow.
- Status: Optional
-
Default:
AUTO - Format: String (Enum)
- AUTO: The system detects the server version and selects the most appropriate method.
-
BLOCK_DISPLAY: Utilizes
BlockDisplayentities (Available in Minecraft 1.19.4+). This method provides a sharp, stable outline. - SHULKER: Utilizes legacy invisible Shulker entities riding the target. This is a workaround for older versions (1.9 - 1.12).
- Client Settings: Players can disable the "Glowing" effect in their Minecraft client accessibility settings. The beacon cannot override this preference.
- Invisibility: Glowing entities that are also Invisible (Potion Effect) will show only the outline. This is standard Minecraft behavior (spectral effect).
-
Performance: The
BLOCK_DISPLAYmethod spawns a packet-based entity that follows the player. While efficient, having 100+ glowing players in one area may cause client-side FPS drops.
Example A: Standard Glow Configures a standard outline using automatic detection.
- Type: GLOW
Method: AUTOExample B: Sharp Glow Configures a high-fidelity outline using Block Displays.
- Type: GLOW
Method: BLOCK_DISPLAYType Identifier: ATTRIBUTE_MODIFIER
The Attribute Modifier module temporarily alters the core attributes of players within the beacon's radius. This allows for changes to max health, attack speed, movement speed, and other generic attributes, similar to holding a powerful item.
Upon entering the zone, the system calculates and applies a set of AttributeModifier objects to the player. These modifiers are "Transient", meaning they are not saved to the player file and disappear on logout or when the modifier is explicitly removed (on exit).
Defines the map of attributes to modify.
- Status: Required
- Format: Map (Key: Attribute Name, Value: List of Modifiers)
-
Keys: Standard Bukkit/Minecraft Attribute names (e.g.,
minecraft:scale,generic.max_health).
Each attribute key accepts a list containing:
* Amount (Double): The value of the change.
* Operation (Enum): How the math is applied.
* ADD_NUMBER (Default): Adds X to base.
* ADD_SCALAR: Adds X * Base to current value.
* MULTIPLY_SCALAR_1: Multiplies total by (1 + X).
-
Health Scaling: Increasing
generic.max_healthdoes not instantly heal the player to the new max. They will need to regenerate the empty hearts. -
Speed Limits: Extremely high
generic.movement_speedvalues can cause chunk loading issues or kick the player for flying. - Stacking: This module adds a specific UUID-based modifier. It stacks with armor and potions, but does not stack with itself (the beacon ensures only one instance of its modifier exists on the player).
Example A: Scale (Size Modification) Configures a zone that makes the player larger or smaller.
- Type: ATTRIBUTE_MODIFIER
Modifiers:
minecraft:scale:
- Amount: 0.5
Operation: ADD_NUMBERExample B: Super Soldier Configures a zone with increased attack damage and speed.
- Type: ATTRIBUTE_MODIFIER
Modifiers:
minecraft:generic.attack_damage:
- Amount: 5.0
Operation: ADD_NUMBER
minecraft:generic.movement_speed:
- Amount: 0.1
Operation: ADD_NUMBERType Identifier: COOLDOWN_REDUCTION
The Cooldown Reduction module intercepts item cooldown events (triggered by Ender Pearls, Chorus Fruit, Shields, etc.) and reduces the wait time.
When a player uses an item that triggers a cooldown, the server fires a PlayerItemCooldownEvent. This module listens for that event. If the player is in range, it calculates a new, shorter cooldown based on the configured percentage and overrides the event data.
Defines the fraction of time removed from the cooldown.
- Status: Optional
-
Default:
0.0 - Format: Double (0.0 to 1.0)
-
Scale:
0.2= 20% reduction.0.5= 50% reduction.
- Minimum: The effect guarantees a minimum cooldown of 1 tick to prevent logic errors.
- Plugin Compatibility: This relies on the Paper/Spigot API event. Custom cooldown systems implemented by other plugins (using variable map storage) are NOT affected.
Example A: Rapid Fire Configures a 50% reduction for all item cooldowns.
- Type: COOLDOWN_REDUCTION
Cooldown Reduction Percentage: 0.5Type Identifier: EXP_BOOST
The EXP Boost module multiplies experience orbs collected by the player.
This effect attaches metadata to the player. When the player picks up an Experience Orb, the event handling logic (handled elsewhere in the plugin or server) checks for this metadata and multiplies the value of the orb before it is added to the player's bar.
Defines the additive multiplier factor.
- Status: Optional
-
Default:
1.0 - Format: Double
-
Logic: The formula is
Total = Original + (Original * Multiplier).-
0.5: Adds 50% XP (1.5x total). -
1.0: Adds 100% XP (Double XP). -
2.0: Adds 200% XP (Triple XP).
-
-
Bottles of Enchantment: This effect explicitly ignores XP orbs spawned from Bottles (
EXP_BOTTLE). It only boosts natural orb drops (mobs, mining). - Mending: If the player has Mending gear, the XP is used for repair first. The multiplier applies to the repair value as well.
Example A: Double XP
- Type: EXP_BOOST
Multiplier: 1.0Type Identifier: EXP_GAIN
The EXP Gain module purely generates experience points for the player periodically.
On every update tick, the system grants the player a specific amount of Experience. It features an internal "Stash" system to handle decimal values (e.g., giving 0.5 XP/sec results in 1 XP every 2 seconds).
Defines the amount of experience points to give per tick.
- Status: Optional
-
Default:
0.0 - Format: Double
- Scale: This is raw XP points, not Levels. (Collecting one orb usually gives 1-3 points).
- AFK Farming: This effect allows for fully passive leveling. Server owners should balance this carefully.
Type Identifier: EXTRA_POWER
The Extra Power module passively increases the "Free Power" value reported by the beacon API and placeholders.
This effect adds a flat amount to the value returned by BeaconData#getPower().
Important Note: In the current implementation, this does not increase the beacon's Range or Fuel Buffer. It primarily serves as a way to boost the number shown in the {beacon_free_power} placeholder, which can be useful for roleplay servers or custom plugin integrations that listen to the API.
Defines the amount of power added to the calculation.
- Status: Optional
-
Default:
10.0 - Format: Double
-
Logic:
getPower() = BasePower + EffectPower.
Example A: API Boost Adds 100 extra power units to the display value.
- Type: EXTRA_POWER
Power: 100.0Type Identifier: EXTRA_RANGE
The Extra Range module extends the effective radius of the beacon.
This effect modifies the beacon's spatial scan logic. When the beacon calculates its coverage area, it adds this configured value to its base range (determined by pyramid tier).
Defines the number of blocks added to the radius.
- Status: Optional
-
Default:
10.0 - Format: Double
-
Logic:
FinalRadius = BaseRadius + ExtraRange.
-
Chunk Loading: Significantly increasing the range will force the beacon to scan more chunks. If
Keep Chunk Loadedis active, this can lead to massive performance overhead.
Example A: Long Range Broadcaster Adds 50 blocks to the radius.
- Type: EXTRA_RANGE
Range: 50.0Type Identifier: FIRE_CONTROL
The Fire Control module manipulates the combustion state of entities. It can be used to extinguish fires (safety) or incubate them (traps).
On every tick, the system modifies the entity's FireTicks property. The logic uses an additive formula: NewFireTicks = CurrentFireTicks + ConfiguredTick.
Defines the integer amount of fire ticks added per update.
- Status: Optional
-
Default:
0 - Format: Integer
-
Extinguish Logic: Use a negative number (e.g.,
-20) to reduce fire ticks. Since 20 ticks = 1 second,-20extinguishes 1 second of fire per second. - Ignition Logic: Use a positive number to set the entity on fire or keep them burning.
- Lava: If a player is swimming in lava, the lava source constantly reapplies fire. A negative Fire Control effect effectively neutralizes the burn damage but not the lava contact damage.
Example A: Fire Suppression System Rapidly extinguishes any entities on fire.
- Type: FIRE_CONTROL
Fire Tick: -100Example B: Incinerator Keeps entities burning indefinitely.
- Type: FIRE_CONTROL
Fire Tick: 20Type Identifier: FURNACE_BOOST
The Furnace Boost module accelerates the operation of Furnace, Blast Furnace, and Smoker tiles within the radius.
The system scans for furnace tiles. When found, it manually advances the CookTime (progress bar) and BurnTime (fuel bar) forward, simulating time passing faster.
Defines the percentage speed increase for the smelting progress.
- Status: Optional
-
Default:
0.0 - Format: Double (0.0 to 100.0)
-
Logic:
AdvancedTime = CurrentTime + (TotalTime * (Percentage / 100)). 10.0 means the furnace completes 10% of its operation every tick.
Defines the percentage acceleration for fuel consumption.
- Status: Optional
-
Default: Same as
Speed Up Time - Format: Double
-
Logic: Typically, if you speed up cooking, you also speed up fuel burn to maintain balance. Setting this to
0.0whileSpeed Up Timeis high creates "Free Smelting" (items cook fast, fuel barely burns).
Defines specific furnace types to target.
- Status: Optional
-
Default:
Empty List(Target All) -
Format: List of Materials (
FURNACE,BLAST_FURNACE,SMOKER).
Example A: Industrial Smeltery Speeds up smelting by 5% per tick (extremely fast).
- Type: FURNACE_BOOST
Speed Up Time: 5.0Example B: Efficient Smelting Speeds up smelting but keeps fuel consumption normal (magic efficiency).
Type Identifier: PERMISSION
The Permission module temporarily grants permission nodes to players within range.
This effect utilizes the Bukkit Permissible system to inject "Permission Attachments" into the player's session. This allows players to access restricted features (like /fly, specialized kits, or VIP areas) only while standing near the beacon.
Defines the list or map of permissions to grant.
- Status: Required
- Format: List (String) OR Map (String -> Boolean)
-
List Format:
["my.node.one", "my.node.two"]. Impliestrue. -
Map Format:
{"my.node": true, "blacklist.node": false}. Allows explicitly negating a permission.
- Plugin Compatibility: Works with LuckPerms, PermissionsEx, and standard permission systems.
-
Security: Be careful granting admin nodes (
op,*).
Example A: VIP Lounge Grants access to a region or cosmetic feature.
- Type: PERMISSION
Permissions:
- "essentials.fly"
- "custom.vip.access"Type Identifier: PREVENT_MOB_SPAWNING
The Prevent Mob Spawning module acts as a localized "Mega Torch", stopping natural mob spawns.
The system listens for EntitySpawnEvent. If the spawn location is within the beacon's radius and the entity is a LivingEntity, the event is cancelled.
CRITICAL: This effect is a "Nuclear Option". It prevents ALL living entity spawns, regardless of reason. This includes:
- Natural Spawns (Zombies at night)
- Spawner Blocks (Dungeon Spawners)
- Spawn Eggs
- Commands (
/summon) - Plugin Spawns (Custom Bosses)
- None: This effect has no configurable parameters.
- Non-Living: Item Frames, Armor Stands, and Dropped Items are not affected.
- Existing Mobs: Mobs that walked into the zone after spawning are not removed. This only prevents new spawns.
Example A: Dead Zone Completely sterilizes the area of new biological life.
- Type: PREVENT_MOB_SPAWNINGType Identifier: SATURATION
The Saturation module maintains the player's food saturation level, effectively preventing hunger usage.
Saturation is a hidden float value that buffers the visible Food Bar. This effect sets that value directly.
Defines the saturation level to apply.
- Status: Optional
-
Default:
0.0 - Format: Double
- Mechanics: High saturation results in rapid health regeneration.
Example A: Infinite Food Keeps the player fully saturated.
- Type: SATURATION
Saturation: 20.0Type Identifier: STUPID_AI
The Stupid AI module (internally known as Mob Pacifier) disables the artificial intelligence targeting logic of creatures.
When active, this effect clears the "Target" of nearby mobs (Zombies, Skeletons, etc.). They will wander aimlessly but will not aggro onto players. It effectively neuters hostile mobs.
- None: This effect has no configurable parameters.
- Aggro: Mobs may briefly look at a player before "forgetting" them on the next tick.
- Attacks: If a player bumps into the mob, the mob might still attack once before losing interest.
Example A: Pacifist Run
- Type: STUPID_AIBeacon.yml
All Beacon Effects
- 1. Potion Effect
- 2. Immortality Field
- 3. Potion Duration Boost
- 4. Flight
- 5. Magnet
- 6. Spawner Boost
- 7. Crops Boost
- 8. Keep Chunk Loaded
- 9. Apply Mending
- 10. Command Executor
- 11. Glow
- 12. Attribute Modifier
- 13. Cooldown Reduction
- 14. EXP Boost
- 15. EXP Gain
- 16. Extra Power
- 17. Extra Range
- 18. Fire Control
- 19. Furnace Boost
- 20. Permission
- 21. Prevent Mob Spawning
- 22. Saturation
- 23. Stupid AI