▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/LocoPillars
LocoPillars

LocoPillars

Pillars of the Fortune. The #1 Free Pillars of fortune plugin!

Оцените первым
156
2

LocoPillars — Pillars of Fortune

The ultimate Pillars of Fortune minigame plugin for Minecraft 1.21+

Build high. Fight smart. Survive longer than everyone else.

Modrinth Modrinth Downloads MC Version License


What is LocoPillars?

LocoPillars is a feature-complete, production-ready Pillars of Fortune server plugin. Players spawn in isolated cages, get released into the arena, and compete to build the tallest pillar while fighting off every other player. Last one standing wins.

Under the hood it runs multi-instance arena management, fully scriptable LuckyBlocks, a drag-and-drop cosmetics shop, 27+ achievements, a per-player stats database, 100+ PlaceholderAPI placeholders, and an in-game map editor. All configurable without touching a single line of code.


Feature Overview

CategoryHighlights
GameplaySolo & team modes · Multi-instance arenas · Cage countdown
LuckyBlocks50 pre-designed effects · Fully scriptable via Kotlin .kts
Cosmetics64 pre-designed cosmetics · Kill / Death / Win effects · Custom cages
Achievements27+ achievements · 4 difficulty tiers · Reward system
StatisticsFull stats DB · Leaderboards · Streaks · Playtime · Multi-kills
Voting Eventsfully scriptable via modules
ChatContext-aware formats · Team chat · Social spy · Profanity filter
EditorIn-game map editor · WorldEdit/FAWE schematics · Validation
Scoreboards5 dynamic scoreboard types · Live team status · Timers
PlaceholderAPI100+ placeholders covering stats, teams, maps, achievements
DatabaseH2 (embedded) · MySQL · MariaDB · PostgreSQL · HikariCP

Gameplay

Players drop into cages at the start of each round. After the countdown, cages open and everyone scrambles to build a pillar and fight for survival. The last team (or player) alive wins.

Multi-Instance Arenas

Run multiple simultaneous games on the same server, each in its own isolated world. Set a number in config.yml and LocoPillars handles the rest.

Team Support

  • Configurable players-per-team and number of teams
  • Team-colored leather armor
  • Team chat (/teamchat)
  • Team status on scoreboard & TAB list

LuckyBlocks

LuckyBlocks are fully scriptable. Each block is its own folder containing a Settings.json for metadata and a Luckyblock.kts for the effect. The plugin ships with 50 pre-designed LuckyBlocks. Drop a new folder into plugins/LocoPillars/Luckyblocks/ and it gets picked up automatically with no restart needed.

Settings.json

{
  "id": "firework_frenzy",
  "display_name": "Firework Frenzy",
  "description": "Colorful fireworks explode in every direction!",
  "icon": {
    "material": "FIREWORK_ROCKET",
    "custom_model_data": 0
  },
  "block_type": "LUCKY_BLOCK",
  "rarity": "COMMON"
}

Rarity options: COMMON, UNCOMMON, RARE, EPIC, LEGENDARY. Chances per rarity are configured in config.yml.

Luckyblock.kts

The script receives player (who broke the block) and game (utility helper). The full Bukkit/Paper API is available.

repeat(5) {
    val offset = player.location.clone().add(
        Math.random() * 4 - 2, 0.0, Math.random() * 4 - 2
    )
    game.spawnFirework(offset)
}
game.playSound(player, org.bukkit.Sound.ENTITY_FIREWORK_ROCKET_LAUNCH, 1.0f, 1.0f)
game.sendTitle(player, "§6Firework Frenzy!", "§7Celebrate!", 5, 50, 10)

Cosmetics

Cosmetics work the same way as LuckyBlocks. Each cosmetic is a folder under plugins/LocoPillars/Cosmetics/<type>/ with a Settings.json and a Cosmetic.kts script. The plugin ships with 64 pre-designed cosmetics across four categories. Players buy and equip cosmetics through /cosmetics using in-game coins.

TypeCountTrigger
Kill effects20Triggered when the player gets a kill
Death effects20Triggered when the player is eliminated
Win effects20Triggered when the player's team wins
Cages4The skin used for the spawn cage

Settings.json

{
  "id": "firework_kill",
  "type": "KILL",
  "display_name": "§6Firework Kill",
  "lore": ["§7Launch a firework on every kill!"],
  "price": 300,
  "required_level": 3,
  "permission": "",
  "rarity": "UNCOMMON",
  "active": true,
  "icon": {
    "material": "FIREWORK_ROCKET",
    "custom_model_data": 0
  }
}

Cosmetic.kts

The script receives player (the cosmetic owner, killer for kill effects or the eliminated player for death effects) and game.

game.spawnFirework(player.location.add(0.0, 0.5, 0.0))
game.spawnParticles(player.location.add(0.0, 1.0, 0.0), org.bukkit.Particle.FIREWORK, 20, 0.5, 0.5, 0.5, 0.1)

Voting Events

Voting events are mid-game modifiers that players vote on during a game. This system uses the same module-based approach as LuckyBlocks and Cosmetics. Drop a folder into plugins/LocoPillars/modules/voting/ and it becomes available in-game without a restart.

Each voting event consists of two files:

settings.json

{
  "id": "no_fall_mode",
  "display_name": "No Fall Mode",
  "description": "Fall damage is completely disabled for everyone in this round.",
  "icon": {
    "material": "FEATHER",
    "custom_model_data": 0
  },
  "active": true,
  "vote_weight": 1,
  "duration": -1,
  "announce": {
    "title": "§6§lNo Fall Mode!",
    "subtitle": "§7Fall damage is disabled!",
    "chat": "§6[Event] §eNo Fall Mode is now active!"
  }
}

script.kts

The script receives game and players. Use game.registerEventListener to hook into Bukkit events. The listener is automatically cleaned up when the game ends.

game.sendTitle("§6§lNo Fall Mode!", "§7Fall damage is disabled!", 10, 60, 10)
game.broadcast("§6[Event] §eNo Fall Mode is now active!")

game.getPlayers().forEach { player ->
    player.playSound(player.location, org.bukkit.Sound.ENTITY_PLAYER_LEVELUP, 1.0f, 1.2f)
}

game.registerEventListener<org.bukkit.event.entity.EntityDamageEvent> { event ->
    val entity = event.entity
    if (entity is org.bukkit.entity.Player &&
        game.isPlayerInGame(entity) &&
        event.cause == org.bukkit.event.entity.EntityDamageEvent.DamageCause.FALL
    ) {
        event.isCancelled = true
    }
}

Achievements

27+ built-in achievements across 4 difficulty tiers, each with configurable XP and coin rewards. Add your own by dropping a .yml file in plugins/LocoPillars/Achievements/.

DifficultyExamples
Easyfirst_win · builder_basics · explorer
Normalwarrior · demolisher · team_player
Hardchampion · survivor · multi_killer
Extremelegendary · perfect_game · comeback_king

Commands

Player Commands

CommandAliasesDescription
/pillars join <type|random>/pof, /gamesJoin a game or a random available game
/pillars leaveLeave your current game
/pillars listList available game types
/pillars statusView current game status
/pillars statsView server-wide statistics
/pillars helpShow help overview
/spawn/hub, /lobbyTeleport to the lobby
/stats/mystatsView personal statistics
/achievements/achOpen achievements overview
/cosmetics/cosmBrowse and equip cosmetics
/luckyblocks/luckybOpen the LuckyBlocks menu
/teamchat/tcToggle team chat mode
/hideme/hmHide yourself from other players
/hideothers/hoHide all other players from your view
/showothers <player>/soShow a specific player while hideothers is on

Admin Commands

CommandAliasesDescription
/editor toggle/admineditEnter / exit admin editor mode
/editor create <name>Create a new arena map
/editor edit <name>Edit an existing arena
/editor delete <name>Delete an arena
/editor listList all arenas
/editor saveSave current editor session
/editor cancelCancel without saving
/editor spawnManage spawn / cage positions
/editor validateValidate arena configuration
/editor settingsOpen editor settings GUI
/editor hotbarOpen the editor hotbar tool manager
/editor filesManage arena schematic files
/editor doctorRun auto-diagnostics on arena
/editor setupQuick-setup wizard
/editor resizeResize a schematic
/editor infoShow arena info
/setspawnSet the lobby spawn point
/vanish [player]/vToggle vanish for yourself or another player
/chatadmin reload/ca reloadReload chat configuration
/chatadmin announce <msg>/ca announceSend a server announcement
/chatadmin mute <player>/ca muteMute a player
/chatadmin unmute <player>/ca unmuteUnmute a player
/chatadmin clear/ca clearClear chat for all players
/chatadmin stats/ca statsView chat statistics
/chatadmin cooldown <player> <s>Set a player chat cooldown
/socialspy/spy, /ssToggle social spy
/cosmetics give <player> <id>Give a cosmetic to a player
/cosmetics coins <player> <amount>Modify a player coin balance
/cosmetics reloadReload cosmetics configuration
/luckyblocks getluckyblockGive yourself a LuckyBlock item
/memory check|clear|status/memView / manage plugin memory usage
/tab reloadReload TAB plugin config

Admin Editor (/editor)

LocoPillars ships with a full in-game map editor, no external tools needed.

  1. Run /editor setup for the guided quick-setup wizard.
  2. Use /editor create <name> to start a new arena.
  3. Place cage spawn points with the hotbar tools (/editor hotbar).
  4. Import WorldEdit / FAWE schematics and attach them to the arena.
  5. Run /editor validate to catch configuration errors.
  6. Save with /editor save and the arena is immediately available in-game.

Supports multiple schematics per arena, schematic resizing, and live hotbar-based spawn-point editing, all without leaving the game.


Scoreboards

Five dynamic scoreboard layouts, each showing context-relevant information:

ScoreboardShown WhenKey Info
LobbyPlayer is in the lobbyRank · Coins · Level · XP · Achievements · Online count
Game LobbyWaiting for a game to startGame name · Map · Player count · Min players
CageCountdown before game startsStart countdown · Game info
Active GameDuring a live gameLive timer · Item drop timer · Team status
SpectateSpectating a gameLive timer · Item timer · All team statuses

PlaceholderAPI

Requires PlaceholderAPI. All placeholders use the %locopillars_ prefix.

Player Statistics
PlaceholderReturns
%locopillars_db_player_name%Player name
%locopillars_db_display_name%Display name
%locopillars_db_games_played%Total games played
%locopillars_db_games_won%Total wins
%locopillars_db_games_lost%Total losses
%locopillars_db_games_quit%Total quits
%locopillars_db_total_kills%Total kills
%locopillars_db_total_deaths%Total deaths
%locopillars_db_total_assists%Total assists
%locopillars_db_best_killstreak%Best kill streak
%locopillars_db_current_killstreak%Current kill streak
%locopillars_db_double_kills%Double kills
%locopillars_db_triple_kills%Triple kills
%locopillars_db_quad_kills%Quad kills
%locopillars_db_current_win_streak%Current win streak
%locopillars_db_best_win_streak%Best win streak
%locopillars_db_current_loss_streak%Current loss streak
%locopillars_db_worst_loss_streak%Worst loss streak
%locopillars_db_damage_dealt%Total damage dealt
%locopillars_db_damage_taken%Total damage taken
%locopillars_db_fall_damage_taken%Total fall damage taken
%locopillars_db_pillars_destroyed%Pillars destroyed
%locopillars_db_blocks_broken%Blocks broken
%locopillars_db_blocks_placed%Blocks placed
%locopillars_db_total_distance_moved%Total blocks walked
%locopillars_db_total_playtime%Total playtime in seconds
%locopillars_db_level%Player level
%locopillars_db_experience%Player XP
%locopillars_db_coins%Cosmetic coins
%locopillars_db_global_rank%Global leaderboard rank
%locopillars_db_perfect_games%Perfect games (no deaths)
%locopillars_db_comeback_wins%Comeback victories
Active Game
PlaceholderReturns
%locopillars_game_name%Name of the current game
%locopillars_game_state%State: WAITING / STARTING / ACTIVE / ENDED / RESETTING
%locopillars_game_map%Map file name
%locopillars_game_map_name%Map display name
%locopillars_game_world%World name of the game instance
%locopillars_game_players_in_game%Current player count
%locopillars_game_players_max%Maximum players
%locopillars_game_players_min%Minimum players to start
%locopillars_game_timer%Game timer in seconds
%locopillars_game_timer_string%Game timer as MM:SS
%locopillars_game_lobby_timer%Lobby countdown in seconds
%locopillars_game_items_timer%Seconds until next item drop
%locopillars_active_games%Total active games on the server
Teams
PlaceholderReturns
%locopillars_team_name%The player's team name
%locopillars_team_color%The player's team color
%locopillars_team_size%The player's team size
%locopillars_teams_total%Total number of teams in the game
%locopillars_teams_names%All team names, comma-separated
%locopillars_teams_colors%All team colors, comma-separated
%locopillars_teams_sizes%All team sizes, comma-separated

Replace team1 with team1, team2, team3, etc.:

PlaceholderReturns
%locopillars_game_team_team1_displayname%Team display name
%locopillars_game_team_team1_status_symbol%Status: alive / eliminated / warning / empty
%locopillars_game_team_team1_players_alive%Players still alive in the team
%locopillars_game_team_team1_players_total%Total team players
%locopillars_game_team_team1_players_dead%Eliminated team players
Maps & Server

Replace <mapname> with the map's folder name (e.g. arena1):

PlaceholderReturns
%locopillars_map_<mapname>_players_in_lobby%Players in lobby for this map
%locopillars_map_<mapname>_players_playing%Players currently in a game on this map
%locopillars_map_<mapname>_players_total%Total players (lobby + in-game) for this map
%locopillars_map_<mapname>_games_active%Active game instances on this map
%locopillars_map_<mapname>_games_waiting%Waiting game instances
%locopillars_map_<mapname>_games_starting%Starting game instances
%locopillars_map_<mapname>_games_total%Total instances for this map
%locopillars_online_players%Total online players
%locopillars_player_name%Shorthand for the player's name
Achievements
PlaceholderReturns
%locopillars_achievement_total_count%Total achievements available
%locopillars_achievement_total_completed_amount%Achievements unlocked by this player
%locopillars_achievement_total_completed_percent%Completion percentage

Replace <id> with the achievement ID (e.g. first_win):

PlaceholderReturns
%locopillars_achievement_<id>_completed%1 if unlocked, 0 if not
%locopillars_achievement_<id>_progress%Raw progress value
%locopillars_achievement_<id>_percent%Progress as a percentage
%locopillars_achievement_<id>_name%Achievement name
%locopillars_achievement_<id>_description%Achievement description
%locopillars_achievement_<id>_difficulty%EASY / NORMAL / HARD / EXTREME
%locopillars_achievement_<id>_category%Achievement category
%locopillars_achievement_<id>_type%Achievement type
%locopillars_achievement_<category>_category_status%Percentage of a category completed
%locopillars_achievement_<difficulty>_difficulty_status%Percentage of a difficulty tier completed

Requirements & Dependencies

DependencyTypeNotes
PaperServer1.21+
WorldEdit or FastAsyncWorldEditRequiredAuto-detected at startup
PlaceholderAPIRequired2.11+
TABOptional5.2+, enhanced player list
ProtocolLibOptional5.4+, tab visibility management
VaultOptional1.7+, economy reward integration
ItemsAdderOptional3.6+, custom cosmetic item textures

Permissions

Players (default: true)

PermissionDescription
locopillars.pillars.*All /pillars subcommands
locoPillars.playJoin and play games
locopillars.spawnTeleport to lobby
locopillars.chat.useSend chat messages
locopillars.chat.teamchatUse team chat
locopillars.hidemeHide yourself from others
locopillars.hideothersHide other players
locopillars.showothersShow a specific player
locopillars.achievements.useUse achievement commands
locopillars.luckyblocks.menuOpen the LuckyBlocks menu

Staff (default: op)

PermissionDescription
locopillars.adminAll administrative access
locopillars.editorUse /editor and all map tools
locopillars.setspawnSet the lobby spawn location
locopillars.spawn.othersTeleport other players to spawn
locopillars.vanishToggle vanish mode
locopillars.memory.useMemory management commands
locopillars.chat.adminAll chat administration
locopillars.chat.socialspyView all player chat
locopillars.chat.bypass-cooldownSkip chat cooldown
locopillars.chat.bypass-filterSkip profanity filter
locopillars.achievements.adminAdminister achievements
locopillars.luckyblocks.getluckyblockGet a LuckyBlock via command
locopillars.notify.updateReceive in-game update notifications
locopillars.tabReload TAB configuration

Database

Set in config.yml, no code changes needed.

BackendNotes
H2Default, embedded, zero setup
MySQLRecommended for production / network servers
MariaDBFully supported
PostgreSQLFully supported

All backends use HikariCP connection pooling.


Configuration

plugins/LocoPillars/
├── config.yml              Main settings (database, arenas, chat, scoreboard, TAB)
├── language.yml            All player-facing messages
├── items.yml               GUI item definitions
├── Games/
│   └── <GameType>.yml      Per-game-type config (timers, build limits, rewards, teams)
├── Achievements/
│   └── <id>.yml            One file per achievement
├── Cosmetics/
│   ├── cages/<name>/       Settings.json
│   ├── kill/<name>/        Settings.json + Cosmetic.kts
│   ├── death/<name>/       Settings.json + Cosmetic.kts
│   └── win/<name>/         Settings.json + Cosmetic.kts
├── Luckyblocks/
│   └── <name>/             Settings.json + Luckyblock.kts
└── modules/
    └── voting/
        └── <name>/         settings.json + script.kts

Automatic Update Checker

LocoPillars checks Modrinth on startup for new releases. Staff with the locopillars.notify.update permission receive an in-game notification when an update is available. Can be disabled in config.yml.


Made by kloppie74

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

26.1.x1.21.x

Платформы

Поддерживаемые окружения

Сервер

Зависимости

Ссылки

Создатели

Детали

Лицензия:
Опубликован:1 месяц назад
Обновлён:1 месяц назад
Главная