{"id":47904136,"url":"https://github.com/kokofixcomputers/kokopixel","last_synced_at":"2026-04-04T04:41:26.447Z","repository":{"id":348595967,"uuid":"1198859979","full_name":"kokofixcomputers/kokopixel","owner":"kokofixcomputers","description":"An core library for hosting minigame servers. Includes functionality such as easy bungeecord support, party, msg, and many others. Currently under alpha development. API stable","archived":false,"fork":false,"pushed_at":"2026-04-02T01:13:53.000Z","size":269,"stargazers_count":0,"open_issues_count":6,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-02T08:51:09.173Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kokofixcomputers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"leviem1"}},"created_at":"2026-04-01T20:38:01.000Z","updated_at":"2026-04-02T01:12:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kokofixcomputers/kokopixel","commit_stats":null,"previous_names":["kokofixcomputers/kokopixel"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/kokofixcomputers/kokopixel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kokofixcomputers%2Fkokopixel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kokofixcomputers%2Fkokopixel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kokofixcomputers%2Fkokopixel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kokofixcomputers%2Fkokopixel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kokofixcomputers","download_url":"https://codeload.github.com/kokofixcomputers/kokopixel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kokofixcomputers%2Fkokopixel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31388168,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T04:26:24.776Z","status":"ssl_error","status_checked_at":"2026-04-04T04:23:34.147Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-04T04:41:25.830Z","updated_at":"2026-04-04T04:41:26.439Z","avatar_url":"https://github.com/kokofixcomputers.png","language":"Java","funding_links":["https://github.com/sponsors/leviem1"],"categories":[],"sub_categories":[],"readme":"# KokoPixel\n\nA Paper 1.21 minigames framework with BungeeCord support. Handles game lifecycle, queuing, parties, spectating, replays, and cross-server coordination so minigame plugins can focus on gameplay logic.\n\n## Features\n\n**Minigame Framework**\n- Register minigames via the `KokoPixelAPI` — get world management, queuing, teams, and stats for free\n- Dynamic world cloning per game instance, deleted on game end\n- Team support with per-team spawn points\n- Per-player and per-game statistics\n\n**Queue System**\n- Public and private (party) queues per game type\n- Cross-server queue merging — every 60s servers compare queue sizes and consolidate smaller queues into the largest one via BungeeCord routing\n- Party-aware queuing with size validation including remote party members\n\n**Party System**\n- Full cross-server party support — members can be on different servers\n- BungeeCord proxy tracks party membership and routes remote members when the leader queues or starts a replay\n- Clickable party invites with Adventure text components\n\n**Spectator System**\n- Spectator mode identical to dying in-game — invisible, flying, invulnerable\n- Cycle through players, adjust flight speed, return to lobby or requeue\n- Admin spectating via `/admingui`\n\n**Replay System**\n- Every game is recorded server-side: player positions, held items, pose, block breaks/places\n- Recordings stored to disk, auto-deleted after 6 hours (timer survives server restarts)\n- Playback uses NMS fake player packets — viewers see ghost players with correct skins and animations\n- Cross-server replay index stored on the BungeeCord proxy — new servers receive the full index on connect, no desync\n- Party leaders bring their whole party into a replay, including members on other servers\n- `/replay` — browse and watch games you participated in\n\n**Admin Panel** (`/admingui`)\n- View and spectate active games\n- Browse all replays across the entire network, watch local ones directly or route to the host server\n- Force-stop all active games\n\n**Social**\n- `/msg` and `/r` — cross-server private messaging\n- `/friend` — persistent friend list with cross-server online status and server location\n- Friend join/leave notifications\n\n**Ranks**\n- Configurable rank system with colored prefixes in chat and tab list\n\n## Requirements\n\n- Paper 1.21+ (older versions may work, however replay feature may break.)\n- BungeeCord (optional — enables cross-server features)\n- Java 21\n\n## Building\n\n```bash\n./gradlew build\n```\n\nJAR output: `build/libs/KokoPixel.jar`\n\n## Setup\n\n1. Drop `KokoPixel.jar` into your Paper server's `plugins/` folder\n2. Start the server once to generate config, then stop it\n3. Edit `plugins/KokoPixel/config.yml`:\n   ```yaml\n   server-id: \"lobby-1\"   # unique per server\n   bungee:\n     enabled: true         # if behind BungeeCord\n   ```\n4. Start the server, join, and run `/kokopixel setlobby` to set the spawn\n5. Register your minigame plugin, then:\n   ```\n   /kokopixel setworld \u003cgame\u003e       # stand in the template world\n   /kokopixel addspawn \u003cgame\u003e       # stand at each spawn point\n   ```\n6. Duplicate the server folder for each additional node, changing `server-id` each time\n\n## Commands\n\n| Command | Permission | Description |\n|---|---|---|\n| `/minigame [join\\|leave\\|list]` | `kokopixel.minigame` | Queue for games |\n| `/party \u003ccreate\\|invite\\|accept\\|...\u003e` | `kokopixel.party` | Party management |\n| `/lobby` | `kokopixel.lobby` | Return to lobby |\n| `/replay` | `kokopixel.replay` | Watch past game recordings |\n| `/msg \u003cplayer\u003e \u003cmessage\u003e` | `kokopixel.msg` | Cross-server private message |\n| `/r \u003cmessage\u003e` | `kokopixel.msg` | Reply to last message |\n| `/friend \u003cadd\\|list\\|accept\\|...\u003e` | `kokopixel.friend` | Friends list |\n| `/kokopixel` | `kokopixel.admin` | Admin setup commands |\n| `/admingui` | `kokopixel.admin` | Admin panel GUI |\n\n## API\n\nOther plugins can register minigames and interact with the framework:\n\n```java\n// Register a minigame\nKokoPixelAPI api = KokoPixelAPI.get();\n\n// Check if a player is in a game\napi.isInGame(player);\n\n// Get the game a player is in\napi.getGame(player).ifPresent(game -\u003e { ... });\n\n// Queue a player\napi.joinQueue(player, \"yourgamename\");\n\n// Spectator control\napi.enableSpectator(player);\napi.disableSpectator(player);\n```\n\nMinigame plugins extend `Minigame` and `GameInstanceImpl` to define their game logic via `onGameStart`, `onGameEnd`, `onPlayerJoin`, and `onPlayerLeave` hooks.\n\n## Project Structure\n\n```\nsrc/main/java/cc/kokodev/kokopixel/\n├── api/            KokoPixelAPI interface and provider\n├── bungee/         BungeeCord proxy plugin + Paper-side listener\n├── commands/       All player and admin commands\n├── friends/        Friend list persistence and cross-server status\n├── listeners/      Bukkit event listeners\n├── menu/           Chest GUI menus (game selector, admin panel)\n├── minigames/      Game instance, player, team implementations\n├── party/          Party system including cross-server state\n├── queue/          Queue management and cross-server merging\n├── ranks/          Rank system\n├── replay/         Recording, playback, session management\n├── spectator/      Spectator mode\n├── util/           Shared message formatting (Msg.java)\n└── world/          World cloning and cleanup\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkokofixcomputers%2Fkokopixel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkokofixcomputers%2Fkokopixel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkokofixcomputers%2Fkokopixel/lists"}