COWMODSКаталог модов

SpyCore

Organize your worlds like never before. Create, clone, and manage worlds on the fly without ever restarting your server.

Автор: SpyGamingOG7452обновлён 5 сент. 2026 г.
УправлениеХранениеГенерация мира

Описание

SpyCore

Platform Minecraft Java License Discord

SpyCore is a multi-world management plugin for Paper and Purpur (1.21+).

Traditional multi-world plugins dump every single world folder directly into your server root, which gets messy quickly on larger servers or minigame networks. SpyCore organizes worlds into categorized subfolders (called containers) using a virtual file system (VFS), while still letting you reference them with clean, simple world names in commands and APIs.

It also comes with built-in world hibernation to save RAM, fast template cloning for minigame arenas, per-world rule toggles (PVP, hunger, flight, autoheal), and target selector support (@a, @p, @s, @r, @e).


Features

  • Folder-based World Organization (VFS): Keep your worlds organized. Group minigames, arenas, or seasonal worlds into subdirectories like spycore-worlds/Bedwars/Solo1 while players and scripts simply refer to Solo1.
  • World Hibernation: Inactive worlds with zero players can automatically unload from memory to conserve RAM and CPU. Hubs and main survival worlds can be whitelisted to stay permanently loaded.
  • Fast Arena & Minigame Templating: Clone template worlds on the fly with lazy chunk generators that skip Bukkit's slow spawn chunk loading. Ideal for disposable match worlds.
  • Per-World Rule Control: Configure PVP, hunger depletion, natural regeneration, survival flight, time/weather cycles, and bed respawn behavior independently per world without needing extra rule plugins.
  • Target Selector Support: Teleport commands natively accept standard Minecraft selectors (/spy world tp @a Arena1, /spy tp @p lobby, etc.).
  • Chat & Tablist Isolation: Optionally isolate local chat, death messages, advancements, and tablist visibility to the world a player is currently in.
  • PlaceholderAPI Hook: Includes placeholders like %spycore_world_alias% and %spycore_world_name%.
  • Ecosystem Integration: Pairs directly with SpyInventories for per-world inventory grouping and SpyNetherPortals for custom portal links.

Requirements & Setup

  • Server: Paper or Purpur 1.21+ (Java 21 or newer required).
  • Setup:
    1. Download the latest spycore-1.1.1.jar from Releases.
    2. Put the .jar into your server's plugins/ directory.
    3. Restart your server. Existing worlds in the server root will be detected and registered automatically.

Quick Command Guide

All commands run under the /spy base command (requires spy.admin or specific sub-permissions).

Creating & Managing Worlds

# Create a standard survival world in the server root
/spy create world survival normal

# Create a void world inside a "Bedwars" container folder
/spy container Bedwars create world Arena1 normal --generator voidgen

# Clone an arena template into a match instance
/spy clone Arena1 Matches Match_01 voidgen

# Load an existing world from disk / unload an inactive world
/spy load survival
/spy unload Arena1

# Permanently delete a world folder from disk
/spy delete Match_01

Teleportation & Player Movement

# Teleport yourself to a world
/spy world tp survival

# Teleport another player or a target selector
/spy world tp Steve survival
/spy world tp @a Arena1

# Set the world spawn to your current coordinates
/spy world setspawn

World Rules & Hibernation

# Disable PVP and hunger in a lobby or arena
/spy world modify lobby set pvp false
/spy world modify lobby set hunger false

# Allow survival flight in a creative world
/spy world modify creative set fly true

# Prevent lobby from being unloaded by the hibernation task
/spy whitelist add lobby

For the full list of subcommands, permission nodes, generator flags, and storage file schemas, check out DOCUMENTATION.md.


Developer API

If you are developing plugins on top of SpyCore, add the dependency to your pom.xml:

<dependency>
    <groupId>com.spygamingog</groupId>
    <artifactId>spycore</artifactId>
    <version>1.1.1</version>
    <scope>provided</scope>
</dependency>

Make sure to add depend: [SpyCore] (or softdepend: [SpyCore]) in your plugin.yml.

Example Usage

import com.spygamingog.spycore.api.SpyAPI;
import org.bukkit.World;
import org.bukkit.entity.Player;

// Fetch or wake a world by alias
World world = SpyAPI.getWorld("Arena1", true);

// Create a new void world inside a container
World arena = SpyAPI.createWorld("Bedwars", "Arena_02", World.Environment.NORMAL, "voidgen");

// Safely teleport a player
SpyAPI.teleportToSafeLocation(player, world);

// Attach custom metadata tags to a world
SpyAPI.setWorldTag(arena, "game_state", "WAITING");
String state = SpyAPI.getWorldTag(arena, "game_state");

Related Plugins

  • SpyInventories: Multi-world inventory and player state separation (inventories, ender chests, health, gamemodes).
  • SpyNetherPortals: Custom Nether & End portal routing for container worlds and custom dimensions.

License

This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0).

Галерея

World directoriesMoving a world to a directoryTeleport between worlds

Последние версии

Все версии →
release

SpyCore 1.1.2

1.1.2
5 сент. 2026 г.89Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Скачать
Что нового
## [1.1.2] - 2026-09-06 ### Changed & Streamlined - **Modular Inventory Separation**: Removed duplicate player inventory serialization, loading, and `<group>.yml` generation from `PlayerManager` and `PlayerProfile`. `SpyCore` now strictly manages world VFS lifecycles, gamerules, and navigation profiles (`last_locations` in `profile.yml`). - **Authoritative Companion Delegation**: Dedicated multi-world inventory management and dimensional inventory sync are now cleanly delegated to `SpyInventories` (or standard vanilla single-inventory behavior if SpyInventories is not present).
release

SpyCore 1.1.1

1.1.1
4 сент. 2026 г.11Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Скачать
Что нового
## [1.1.1] - 2026-09-05 ### Fixed - **Teleport Dimension Bounce / Infinite Toggle**: Fixed bug where repeatedly executing `/spy world tp <world>` ping-ponged the player between Overworld and Nether. Teleportation now strictly validates that destination coordinates match the requested target world. - **Per-World Location Memory**: Updated `PlayerManager#trackLocation` to store last player positions keyed by specific world alias rather than world group base name, preventing linked Nether/End coordinates from overwriting Overworld locations. - **Hardcoded Gamemode Removal**: Removed hardcoded `setGameMode(SURVIVAL)` in `/spy world tp` and `/spy tp`, preserving the player's active gamemode (Creative, Spectator, Adventure) across teleports. - **Cross-Group Inventory Load Guard**: Restricted `onWorldChange` inventory reloading to actual cross-group transitions, preventing in-memory player state from being overwritten when traveling between linked dimensions in the same set.
release

SpyCore 1.1.0

1.1.0
4 сент. 2026 г.13Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, purpur, spigot
Скачать
Что нового
# Changelog - SpyCore ## [1.1.0] - 2026-09-04 ### Added - **Native Target Operators**: Expanded tab completion to suggest `@s` and `@e` for `/spy world tp`. - **Root Command Alias**: Added `/spy tp [target] <world>` directly matching `plugin.yml`'s `spy.tp` permission node. - **Automated Hibernation Scheduler**: Activated a recurring 60-second world hibernation checker in the plugin lifecycle so inactive worlds automatically unload. ### Fixed - **Player Death Inventory Loss**: Fixed critical bug in `onPlayerRespawn` where a dead player's empty inventory was saved to disk, permanently wiping saved world items. - **Target Operator Name Collision**: Resolved command ambiguity where `/spy world tp <world>` failed if an online player's name matched a world alias. - **PVP Projectile Bypass**: Fixed projectile damage (arrows, tridents, splash potions) ignoring `pvp: false` in `WorldSettingsListener`. - **Spawn Point Hijacking**: Removed erroneous check that reset world spawns whenever a player landed from altitudes Y >= 249. - **Coordinate ClassCastException**: Fixed `ClassCastException` in `PlayerProfile` when reading whole-number coordinates from YAML files. - **Metadata Path Corruption**: Replaced fragile dot replacement with structured tokens to prevent dotted world names from being mangled. - **Event Handler Registration**: Added explicit `HandlerList` declarations to `SpyWorldCreateEvent`, `SpyWorldLoadEvent`, and `SpyWorldUnloadEvent`. - **Thread-Safe Async Inventory Serialization**: Cloned `ItemStack[]` arrays synchronously on the main thread before dispatching to async file I/O. ### Changed & Performance - **Java 21/25 Build Stability**: Eliminated fragile annotation processing dependencies in favor of standard native Java getters and setters. - **Clean Packaging**: Configured `maven-shade-plugin` with clean packaging to prevent `dependency-reduced-pom.xml` clutter, and pruned unused dependencies.
release

SpyCore 1.0.9

1.0.9
20 февр. 2026 г.381Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, spigot
Скачать
Что нового
# Changelog - SpyCore ## [1.0.9] - 2026-02-20 ### Changed - **Inventory Conflict Resolution**: Disabled SpyCore's internal inventory management automatically when `SpyInventories` is detected. This prevents race conditions and data corruption during world transitions.
release

SpyCore 1.0.8

1.0.8
20 февр. 2026 г.16Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, spigot
Скачать
Что нового
# Changelog - SpyCore ## [1.0.8] - 2026-02-14 ### Added - **PlaceholderAPI Expansion**: Integrated internal PAPI expansion for core features. - **World Alias Placeholders**: Added `%spycore_world_alias%` to show clean world names (aliases) instead of nested paths. - **World Ignoring System**: Added `ignored-worlds` and `ignored-suffixes` to `config.yml`. This allows the VFS and hibernation systems to bypass specific worlds (e.g., lobby, hub) or worlds matching certain patterns. - **Improved Hibernation Logic**: Enhanced the auto-sleep cycle to strictly respect the new ignore lists, preventing accidental hibernation of critical infrastructure worlds. - **Enhanced VFS Cleaning**: Automated removal of `uid.dat` during world cloning/importing to resolve UUID conflict errors permanently. ### Fixed - **Redundant Expansion Cleanup**: Removed redundant expansion code that caused circular dependencies and build failures. ### Changed - Refactored internal world loading sequence for better stability under high concurrency. - Optimized metadata storage to reduce memory footprint on long-running instances.
release

SpyCore 1.0.7

1.0.7
11 февр. 2026 г.41Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, spigot
Скачать
Что нового
# Changelog - SpyCore All notable changes to the SpyCore project will be documented in this file. ## [1.0.7] - 2026-02-12 ### Added - **Advanced World Management**: Implemented "Read-Only" style template cloning for temporary match worlds. - **No-Save Flag**: Temporary worlds now default to `AutoSave=false` and `KeepSpawnInMemory=false` to reduce Disk I/O and memory usage. - **Auto-Cleanup**: Enhanced shutdown sequence to automatically unload and delete temporary match worlds (`temp_match_` container). - **VFS Error Resilience**: Added disk-based fallback for worlds missing from configuration, resolving "VFS: World load failed" errors. - **World Aliasing**: Added support for world aliases to maintain consistent references across different match instances.
release

SpyCore 1.0.6

1.0.6
10 февр. 2026 г.22Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, spigot
Скачать
Что нового
# Changelog - SpyCore All notable changes to the SpyCore project will be documented in this file. ## [1.0.6] - 2026-02-11 ### Fixed - Resolved syntax errors in `SpyCommand.java` regarding duplicate `case "load"` statements. - Fixed a type mismatch where `List<String>` was incorrectly being converted to `boolean` in the command handler. - Verified and added missing imports in `SpyCommand.java` for improved stability. - Optimized tab completion logic for `/spy load` and `/spy world tp` commands. ### Changed - Improved argument length validation in `onTabComplete` to prevent potential NullPointerExceptions. - Refactored `SpyCommand` to strictly follow Bukkit `CommandExecutor` and `TabCompleter` contracts.
release

SpyCore 1.0.5

1.0.5
5 февр. 2026 г.27Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, spigot
Скачать
Что нового
# Changelog ### Added ## [1.0.5] - 2026-02-06 ### Added - **Full Isolation**: Extended isolation to include Advancements, Death messages, Join/Quit messages. These are now only visible to players within the same set of linked worlds. - **Command Enhancement**: Improved `/spy world tp` tab completion to be context-aware (only showing relevant files/folders). - **Safety**: Added checks to prevent creating/cloning worlds if a folder with the same name already exists physically, even if not registered. - **Player Reach**: Implemented forced reach distance attributes (Entity: 3.0, Block: 4.5) on player join to ensure consistent PvP/Interaction behavior across versions.
release

SpyCore 1.0.4

1.0.4
4 февр. 2026 г.18Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, spigot
Скачать
Что нового
# Changelog A Major Update! ### Added ## [1.0.4] - 2026-02-04 ### Added - **Hibernation System**: Added a robust hibernation system to optimize server resources by unloading unused worlds. - **Hibernation Whitelist**: Introduced a whitelist configuration to prevent critical worlds from entering sleep mode. - **World Creation**: Added support for seeds in `/spy create` (supports numeric seed or 'random' keyword). - **Global Uniqueness**: Enforced strict global name uniqueness for worlds to prevent conflicts across containers. - **Command Validation**: Hardened `/spy world tp` to strictly validate container paths and prevent loading containers as worlds. ### Changed - **Default Configuration**: Hibernation is now **disabled by default** to ensure stability and prevent unexpected world unloading on new installations. - **World Management**: Standardized world alias mapping and improved path resolution for nested world containers. - **Respawn Logic**: Improved respawn handling to better support plugins with custom game logic (like SpyHunts) by respecting their event priorities. - **Chat & Tab Isolation**: Enhanced isolation logic to ensure players in different game instances (sets of worlds) cannot see each other's chat or tab list entries. ### Fixed - **Thread Safety**: Resolved a critical deadlock issue in `runSync` by ensuring strict main-thread execution for synchronous tasks.
release

SpyCore 1.0.3

1.0.3
27 янв. 2026 г.37Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, paper, spigot
Скачать
Что нового
# Changelog ## [1.0.3] - 2026-01-27 ### Added - Enhanced spawn safety checks in `WorldManager`. - Excluded harmful blocks from safe spawn locations: - Lava and Water - Powder Snow - Magma Blocks - Pointed Dripstone - Cactus and Sweet Berry Bushes - Fire and Soul Fire - Wither Roses