{"id":19745850,"url":"https://github.com/bentoboxworld/level","last_synced_at":"2026-05-13T04:01:42.838Z","repository":{"id":27877444,"uuid":"107805810","full_name":"BentoBoxWorld/Level","owner":"BentoBoxWorld","description":"Add on for BentoBox to calculate island levels for BSkyBlock and AcidIsland. Please read the Wiki!","archived":false,"fork":false,"pushed_at":"2024-11-09T19:12:42.000Z","size":876,"stargazers_count":25,"open_issues_count":43,"forks_count":32,"subscribers_count":6,"default_branch":"develop","last_synced_at":"2024-11-09T20:19:12.424Z","etag":null,"topics":["acidisland","addon","bentobox","bentobox-addon","bskyblock","island-level"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BentoBoxWorld.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["tastybento","BONNe"],"custom":["https://www.paypal.me/BentoBoxWorld"]}},"created_at":"2017-10-21T18:33:08.000Z","updated_at":"2024-11-09T19:12:46.000Z","dependencies_parsed_at":"2024-01-02T03:29:23.985Z","dependency_job_id":"56d68157-5dba-4aea-9f1e-d4f83a109fef","html_url":"https://github.com/BentoBoxWorld/Level","commit_stats":null,"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BentoBoxWorld%2FLevel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BentoBoxWorld%2FLevel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BentoBoxWorld%2FLevel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BentoBoxWorld%2FLevel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BentoBoxWorld","download_url":"https://codeload.github.com/BentoBoxWorld/Level/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224202847,"owners_count":17272807,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["acidisland","addon","bentobox","bentobox-addon","bskyblock","island-level"],"created_at":"2024-11-12T02:11:41.928Z","updated_at":"2026-04-12T02:06:41.944Z","avatar_url":"https://github.com/BentoBoxWorld.png","language":"Java","funding_links":["https://github.com/sponsors/tastybento","https://github.com/sponsors/BONNe","https://www.paypal.me/BentoBoxWorld"],"categories":[],"sub_categories":[],"readme":"# 🌟 Level Add-on for BentoBox\n[![Build Status](https://ci.codemc.org/buildStatus/icon?job=BentoBoxWorld/Level)](https://ci.codemc.org/job/BentoBoxWorld/job/Level/)[\n![Bugs](https://sonarcloud.io/api/project_badges/measure?project=BentoBoxWorld_Level\u0026metric=bugs)](https://sonarcloud.io/dashboard?id=BentoBoxWorld_Level)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=BentoBoxWorld_Level\u0026metric=reliability_rating)](https://sonarcloud.io/dashboard?id=BentoBoxWorld_Level)\n[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=BentoBoxWorld_Level\u0026metric=ncloc)](https://sonarcloud.io/dashboard?id=BentoBoxWorld_Level)\n\n## 🔍 What is Level?\n\n**Level** is the ultimate competition booster for your BentoBox server! Designed for game modes like **BSkyBlock**, **AcidIsland**, and more, this powerful add-on turns your island into a battleground of **block-by-block domination**.\n\nEvery block you place counts toward your **island level**—and every block you lose could cost you your spot in the rankings. Whether you're aiming for the top ten or just flexing your creative builds, **Level** adds stakes, strategy, and excitement to your sky-high journey.\n\n📘 [Full Documentation](https://docs.bentobox.world/en/latest/addons/Level/)  \n📦 [Official Downloads](https://download.bentobox.world)\n\n---\n\n## 🚀 Getting Started\n\nReady to level up? Here's how to launch **Level** on your server:\n\n1. Drop the **Level** add-on `.jar` into your BentoBox `addons` folder.\n2. Restart your server and let the magic happen.\n3. A new `Level` data folder and `config.yml` will be created.\n4. Open `config.yml` and customize block values, settings, and behavior to suit your game mode.\n5. Restart your server again to apply changes.\n\nNow you’re all set—go build something worth leveling for! 🏗️\n\n---\n\n## 🔄 Upgrading\n\nWhen updating, always read the **release notes**!  \nSome updates might require a fresh `config.yml`, so make backups and review changes carefully.\n\n---\n\n## 🛡️ Permissions\n\n**Level** integrates directly with your permissions plugin, giving players the tools to compete while letting admins keep control.\n\nDefault permissions for **BSkyBlock**, **AcidIsland**, and **CaveBlock**:\n\n```\npermissions:    \n  bskyblock.intopten:             # Show up in top 10\n    default: true\n  bskyblock.island.level:         # Use /is level\n    default: true\n  bskyblock.island.top:           # Use /is top\n    default: true\n  bskyblock.island.value:         # Use /is value\n    default: true\n  bskyblock.admin.level:          # Admin access to /is level\n    default: true\n  bskyblock.admin.topten:         # Admin access to /is topten\n    default: true\n```\n\n⚠️ Players need `intopten` to appear in the leaderboard!\n\n---\n\n## ⚙️ Configuration: Make It Yours\n\nThe `config.yml` file gives you total control over how leveling works. Here's a breakdown of what you can tweak:\n\n### 🎮 Game Mode Hook\nTell Level which BentoBox game modes it should connect to.\n\n### ⚙️ General Settings\n- **Underwater Block Multiplier** – Give bonus points for blocks below sea level.\n- **Level Cost** – Set how many points are needed to gain 1 island level.\n- **Level Wait** – Add a cooldown between level scans.\n- **Death Penalty** – Punish deaths with level loss.\n- **Sum Team Deaths** – Choose whether to track team deaths or just the leader's.\n- **Reset on Island Reset / Team Join** – Wipe the death count when teams change or islands are reset.\n\n### 📐 Level Calculation Formula\n\nThe `level-calc` setting in `config.yml` controls how island levels are computed. It supports the following variables:\n\n| Variable | Description |\n|---|---|\n| `blocks` | The total block value points for the island, minus any death penalty |\n| `level_cost` | The value of one island level (see `levelcost` setting) |\n| `island_members` | The number of members currently on the island team |\n\nThe formula can use `+`, `-`, `*`, `/`, `^`, `sqrt`, `sin`, `cos`, `tan`, and `log` (natural log). The result is rounded to the nearest whole number.\n\n**Default formula:** `blocks / level_cost`\n\n**Handicap (fairness) example:** To divide the island level equally per member so solo islands remain competitive with larger teams, use:\n\n```yaml\nlevel-calc: \"blocks / level_cost / island_members\"\n```\n\nWith this formula and the default `level_cost` of `100`, a block worth 100 points would contribute the following to the **island level**:\n- **0.25 levels** per block on an island with 4 members (100 / 100 / 4 = 0.25)\n- **0.33 levels** per block on an island with 3 members (100 / 100 / 3 ≈ 0.33)\n- **1 level** per block on a solo island (100 / 100 / 1 = 1)\n\nThis makes competition fairer between solo players and large teams.\n\n### 🚫 Block Limits\nCap the number of specific blocks that count toward level (e.g., only 200 DIAMOND_BLOCKs count).\n\nFormat:\n```\nDIAMOND_BLOCK: 200\n```\n\n### 💎 Block Values\nAssign point values to blocks to reward rare or hard-to-get materials.\n\nFormat:\n```\nSTONE: 1\nDIAMOND_BLOCK: 100\n```\n\nBlocks not listed are worth **0**. `AIR` is always ignored.\n\n### 🌍 World-Specific Values\nCustomize block values for individual worlds or game modes.\n\nExample:\n```yaml\nworlds:\n  AcidIsland_world:\n    SAND: 0\n    SANDSTONE: 0\n    ICE: 0\n```\n\nIn this setup, **AcidIsland** disables points for sand-based blocks while using default values for everything else.\n\n---\n\n## 🏁 Final Words\n\n**Level** isn’t just a numbers game—it’s a **challenge**, a **competition**, and a **celebration** of creativity.  \nWhether you're climbing the ranks or just making your mark, Level brings out the best in your builds.\n\n💡 Need help or want to contribute? Join the community at [bentobox.world](https://bentobox.world) and show us what your island is made of!\n\nNow go get that top spot. 🌌  \n— The BentoBox Team\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbentoboxworld%2Flevel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbentoboxworld%2Flevel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbentoboxworld%2Flevel/lists"}