Crops & Blocks  Faster Crops ⚡ Spawner Control ⚙️ Placement Limits  GUI ✅ | 1.21.x icon

Crops & Blocks Faster Crops ⚡ Spawner Control ⚙️ Placement Limits GUI ✅ | 1.21.x -----

Drop‑in control for crops, spawners, and limits — clean GUI, safe defaults.



[​IMG]


Crops & Blocks
boosts crops inside the natural ticking area — no chunk loading, TPS‑friendly. All changes apply server‑wide (all players, all worlds): per‑crop growth control, precise spawner rates ( true 200–800 at 1.0×), and per‑player placement limits — all managed in a clean GUI (/cnb).

[​IMG]
CROPS — WHAT CAN YOU DO
  • Growth Enabled — global switch for crop control. When off, vanilla growth is fully blocked for supported crops (Wheat, Carrots, Beetroots, Sugar Cane).
  • Per‑crop multipliers — individual multipliers per crop:
    • 1.0 — pure vanilla (no change).
    • > 1.0 — speed up: the booster adds smooth extra growth only inside the natural ticking area (player simulation‑distance). No chunk loading.
    • < 1.0 — slow down: vanilla growth is probabilistically throttled (via BlockGrowEvent) to avoid spikes.
    • ≤ 0.0 — fully block this crop (usually better to use the per‑crop Enabled switch instead).
  • Per‑crop Enabled — hard ON/OFF per crop, independent of the multiplier. Great if you want to completely disable, e.g., sugar cane.
  • TPS‑friendly by design — the booster operates only where the server already runs ticks (the natural player simulation‑distance). No chunk tickets, no forced loading.
How it works (under the hood)
  • Column‑based scan near the surface targets real crops (or farmland with a crop above), so the hit rate is high and results are visible.
  • Sugar cane has dedicated logic and respects the vanilla height limit (up to 3 blocks).
  • The booster never touches unloaded areas — it acts only in chunks that are already loaded and ticking.
Player Crop Caps (optional)
  • Per‑player crop caps (Wheat, Carrots, Beetroots, Sugar Cane) via Player Settings → Crop Caps.
  • Use for rank perks or to limit farm scale per player — values act as per‑player overrides you can manage from the GUI or commands.
Quick tips
  • For small servers: start at 1.0; when you want a visible effect, set 2.0–3.0 only on the crops you care about.
  • If crops sit under a roof and hits seem low, raise column-scan.depth or surface-offset slightly.
  • For testing, run /cnb boosterdebug onshow to see Crop hits / Eligible / Age‑ups.
[​IMG]

Introduction to CROPS GUI

[​IMG]

15s Timelapse with 5.0 multiplier boost.

[​IMG]

CROPS per-type disable function

[​IMG]


[​IMG]
SPAWNERS — WHAT CAN YOU DO
  • Global enable — one switch to allow or block all spawners server‑wide (all players, all worlds).
  • Global rate — set the overall spawn rate multiplier. 1.0× = true vanilla timing (200–800 ticks). Higher = faster cycles, lower = slower.
  • Per‑entity rates — override the global rate for specific mobs (inherit or custom).
  • Per‑entity enable — enable/disable individual spawner types (inherit or custom).
  • Burst protection — a small inter‑tick cooldown ensures spawns don’t “burst” across ticks while still allowing same‑tick batches from one cycle.
  • GUI‑first — manage everything in the Spawners page via /cnb; debug tools included.
How it works (under the hood)
  • At 1.0× global rate, spawners are aligned to the true vanilla baseline: 200–800 tick delay range (with vanilla core params set consistently).
  • When you change the rate, min/max delays are recalculated from a stable baseline — if the current delay falls outside the new range, it’s reset to a random value inside it (no weird spikes).
  • A minimal between‑tick cooldown prevents cross‑tick bursty behavior but does not cap the normal same‑tick batch from a single spawner cycle.
  • Settings are applied to spawners in currently loaded chunks; on chunk load, all spawners inside the chunk are automatically re‑applied. No chunk loading is performed.
  • When a type or global spawners are disabled, the plugin does not mutate spawner fields — the listener simply cancels those spawn attempts.
Debugging
  • /cnb spawnerdebug onshow — displays the nearest spawner’s min/max delay, effective rate, vanilla params, and attempt counts (proves the 1.0× = 200–800 baseline).
  • /cnb spawnerdebug reset — resets the local window counter for the nearest spawner.
[​IMG]

Introduction to SPAWNER GUI
[​IMG]

15s Timelapse with SKELETON spawner with value 5.0

[​IMG]

[​IMG]

[​IMG]
PLACEMENT LIMITS — WHAT CAN YOU DO
  • Global limits switch — turn the system ON/OFF server‑wide (all players, all worlds).
  • Per‑block caps (server defaults) — set per‑player limits for spawner, hopper, slime_block, redstone.
  • Per‑block enable — fully allow/deny placement of each block type (independent of limits).
  • Per‑player overrides — give or remove custom caps for specific players (via GUI or commands) — perfect for rank perks and rewards.
  • GUI‑first — manage everything in the Limits page via /cnb, or automate with commands.
How it works (under the hood)
  • On place, the plugin checks the player’s effective cap for that block type; if the count would exceed the cap, placement is denied with a clear message.
  • Counts are maintained per player and type, and decrease on valid block break.
  • Ownership moves/cleans up correctly in common edge cases:
    • Pistons moving slime_block — ownership is transferred.
    • Explosions breaking controlled blocks — counts are decremented.
  • Data is saved to disk and restored on startup; all limits apply across all worlds.
Server‑wide scope
  • Global enable and default caps affect everyone on the server, across all worlds. Per‑player overrides supersede the defaults for that player only.
[​IMG]

Introduction to PLACEMENT LIMITS and PLAYER SET LIMITS GUI

[​IMG]

Player SET LIMITS GUI

[​IMG]

Example of GLOBAL LIMIT

[​IMG]

Example of GLOBAL LIMIT + PLAYER SET LIMIT

[​IMG]



Compatibility
  • Spigot/Paper 1.21.x • Java 21
  • No NMS, no chunk tickets; plays well with performance plugins.
Installation
  • Drop the jar into /plugins, restart.
  • Use /cnb to configure; edit config.yml for advanced options; /cnb reload to apply.
FAQ
  • What is the “natural ticking area”? — The player’s simulation‑distance where the server already runs ticks.​
  • Does it load chunks? — No. It only scans chunks that are already loaded.​
  • How to make crops faster? — Set per‑crop multiplier > 1.0 (e.g., 2.0).​
  • How to slow crops? — Set multiplier < 1.0 — we safely throttle vanilla growth.​
  • Is it TPS‑friendly? — Yes. It never expands ticking beyond the natural area, and defaults are conservative.​

    Support

Free to use. If this helps your server, consider supporting via PayPal (click here).
Feedback and ideas are welcome — I actively maintain and improve the plugin.
Ready? Drop the jar, run /cnb, and you’re done.

General / GUI

  • /cnb — open the main GUI Permission: cnb.use
  • /cnb reload — reload config and messages Permission: cnb.admin
  • /cnb set — open Player Settings GUI for the target player Permission: cnb.admin
CROPS (per-player crop caps + booster debug)

  • /cnb setcropcap — set a per‑player crop cap Permission: cnb. admin
  • /cnb clearcropcap — clear the per‑player crop cap (inherit or no cap) Permission: cnb. admin
  • /cnb boosterdebug <on|off|show|reset> — growth booster diagnostics (shows crop hits, eligible, age-ups) Permission: cnb.admin
SPAWNERS (debug)

  • /cnb spawnerdebug <on|off|show|reset> — spawner diagnostics for the nearest spawner (verifies true 200–800 at 1.0x, effective rate, etc.) Permission: cnb.admin
PLACEMENT LIMITS (per-player block caps)

  • /cnb setlimit — set a per‑player block placement limit override Permission: cnb. admin
  • /cnb clearlimit — clear the per‑player override (inherit server default) Permission: cnb. admin
Permissions (summary)

  • cnb.use — open the main GUI (/cnb)
  • cnb.admin — configure via GUI, run admin commands (reload, set, setlimit, clearlimit, setcropcap, clearcropcap, spawnerdebug, boosterdebug)
Notes
  • Tab-completion is available for subcommands, player names, block types, and crop keys.
Code (YAML):
# CropsAndBlocks - complete configuration file with inline docs
# Scope: all settings apply server-wide (all players, all worlds) unless stated otherwise.
# Performance: the growth booster works only in the natural ticking area (player simulation-distance).
# It never force-loads chunks and is TPS-friendly.

growth
:
  enabled
: true # Global crops control: true = crops system active; false = fully block vanilla growth for supported crops (wheat/carrots/beetroots/sugar_cane) and the booster.

  # Per-crop speed multipliers (1.0 = vanilla).
  # How it works:
  # - > 1.0: speeds up by adding smooth extra growth ONLY in the natural ticking area (no chunk loading).
  # - < 1.0 and > 0.0: slowly throttles vanilla growth probabilistically (no spikes).
  # - 0.0: effectively disables growth for that crop (recommended alternative: use crops-enabled.<crop>: false).
  crops
:
    wheat
: 1.0       # Wheat multiplier. Examples: 2.0 = ~2x faster near players; 0.5 = ~half speed; 0.0 = disabled.
    carrots
: 1.0     # Carrots multiplier. Same rules as wheat.
    beetroots
: 1.0   # Beetroots multiplier. Same rules as wheat.
    sugar_cane
: 1.0   # Sugar cane multiplier. Extra growth respects vanilla height (max 3). >1.0 grows tops if space; <1.0 throttles; 0.0 disables.

  # Hard ON/OFF per crop (independent of multipliers).
  # Use this when you want to completely forbid growth of a specific crop.
  crops-enabled
:
    wheat
: true       # true = allow wheat growth logic above; false = fully block wheat growth.
    carrots
: true     # true = allow carrots; false = block.
    beetroots
: true   # true = allow beetroots; false = block.
    sugar_cane
: true   # true = allow sugar cane; false = block.

  booster
:
    enabled
: true   # Master toggle for the booster (the extra growth part for multipliers > 1.0). If false, only throttling (<1.0) can apply via vanilla events.

    interval-ticks
: 20   # How often the booster runs. 20 = ~1s. Increase to reduce CPU, decrease to intensify updates.

    # Scan mode:
    # - PLAYER_CHUNKS: scan chunks inside each player's simulation-distance (recommended, TPS-friendly).
    # - LOADED_CHUNKS: scan all currently loaded chunks in all worlds (use only if you know why).
    mode
: PLAYER_CHUNKS

    attempts-per-chunk
: 60   # Manual sample count per chunk (performance knob). 0 = auto (based on world height and base-random-ticks-per-section).

    # For PLAYER_CHUNKS mode:
    # -1 = automatically use simulation-distance; >=0 = fixed radius in chunks (overrides auto).
    player-chunk-radius
: -1

    # Auto attempts (used when attempts-per-chunk = 0)
    base-random-ticks-per-section
: 3   # Baseline samples per 16x16x16 section (vanilla-like base). Increase for denser worlds; decrease for large heights.
    intensity
: 1.0                     # Multiplier applied to the auto calculation. 1.0 = baseline; 1.5 ~ +50% intensity; 0.7 = lighter.

    # Column scan tuning (surface-oriented targeting to find actual crops quickly).
    column-scan
:
      depth
: 16           # How far below the surface to scan (increase if farms are deeper under roofs/platforms).
      surface-offset
: 2   # How many blocks ABOVE surface to start (helps catch cane tops/roofed spots).

    # Backward-compatibility keys (kept for legacy configs; ignored in PLAYER_CHUNKS mode)
    scan-mode
: "players"         # DEPRECATED
    attempts-per-player
: 30     # DEPRECATED
    scan-radius
: 8               # DEPRECATED

spawner
:
  enabled
: true   # Global spawner control. true = allow (with rates below); false = cancel spawns from all spawners (fields left untouched).

  global-rate
: 1.0   # 1.0x = true vanilla 200–800 tick delay. >1.0 = faster cycles; <1.0 = slower. Use per-entity overrides for fine control.

  # Minimal cooldown between different ticks (per spawner). Prevents cross-tick "bursts" while allowing normal same-tick batches.
  # 0 = off; 20 = ~1s minimal spacing between ticks for a given spawner cycle.
  min-cooldown-ticks
: 20

  # Per-entity type rate overrides. If a mob is not listed, it inherits global-rate.
  # Add entries as lowercase Bukkit EntityType names (examples commented below).
  rates
:
    # zombie: 1.0      # Inherit-like override (explicit 1.0). Example: 2.0 to make zombies ~2x faster than global.
    # skeleton: 1.0
    # creeper: 1.0
    # spider: 1.0
    # blaze: 1.0
    # magma_cube: 1.0
    # iron_golem: 1.0
    # witch: 1.0

  # Per-entity enable/disable. If a key is absent, it inherits from spawner.enabled.
  # true = allow spawns (subject to rates/cooldown); false = cancel spawns for that entity type.
  enabled-types
:
    # zombie: true
    # blaze: true
    # witch: true

# Global allow/deny for placing certain block types (independent of per-player caps below).
# false = completely forbid placement; true = placement allowed (caps may still restrict per player if enabled).
blocks
:
  enabled
:
    spawner
: true       # Allow placing spawners at all (use placement-limits to cap per player if needed).
    slime_block
: true   # Allow placing slime blocks (ownership moves with pistons if limits are enabled).
    hopper
: true       # Allow placing hoppers (common to cap to reduce laggy spam).
    redstone
: true     # Allow placing redstone wire (cap if you want to limit massive contraptions).

# Per-player placement limits (caps). When enabled, each player has a maximum allowed count per type across all worlds.
# Use server defaults here and override specific players via GUI (/cnb → Player Settings → Block Limits) or commands.
placement-limits
:
  enabled
: true   # Master switch for caps. true = enforce per-player caps below; false = ignore caps (but blocks.enabled still applies).

  per-player
:
    # Keys: spawner | hopper | slime_block | redstone
    # Example defaults (choose values that fit your server size/design):
    # spawner: 10       # Each player can place up to 10 spawners total across all worlds (unless overridden).
    # hopper: 256       # Hoppers can be heavy; consider capping per player.
    # slime_block: 512  # Useful if piston/slime builds get excessive.
    # redstone: 4096    # Cap pure wire count to discourage extreme lag machines.

# Tips:
# - Start with safe defaults: growth multipliers at 1.0, booster interval 10–20, spawner global-rate 1.0, min-cooldown 20.
# - To speed up a crop: set its multiplier > 1.0 (booster handles extra growth near players only).
# - To slow a crop: set < 1.0 (probabilistic vanilla throttling). To fully ban it: set crops-enabled.<crop> = false.
# - For spawners, keep 1.0 = true 200–800 baseline; change per-entity only if needed.
# - If you want to outright forbid a block globally, set blocks.enabled.<type> = false (this bypasses per-player caps).


Resource Information
Author:
----------
Total Downloads: 8
First Release: Aug 31, 2025
Last Update: Aug 31, 2025
Category: ---------------
All-Time Rating:
1 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings