Supported Plugins
EcoMinions works with island and land plugins, so island owners decide who can place, use and pick up minions on their island. It also integrates with a few other plugins. Install the supported plugin alongside EcoMinions and it works straight away. SuperiorSkyblock2 and Lands need a few setup steps for their menus and defaults, see below.
Island and land plugins
EcoMinions adds three privileges to each plugin below, so owners set them in the plugin's own menu.
| Plugin | Where owners set ranks |
|---|---|
| SuperiorSkyblock2 | /is permissions |
| BentoBox | The island settings panel |
| IridiumSkyblock | The island permissions menu |
| Lands | The land's role menu |
A Lands land counts as an island everywhere on this page.
Privileges
| Privilege | What it allows | Default |
|---|---|---|
| Place | Placing a minion on the island | Members and up |
| Use | Opening a minion's menu, which covers collecting, fuelling and upgrading, and the shift-right-click click_minion trigger | Members and up |
| Pick up | Picking up a minion the player did not place | Island owner only, except on lands created after install, see Lands setup |
Each plugin registers them under its own names:
| Plugin | Place | Use | Pick up |
|---|---|---|---|
| SuperiorSkyblock2 | ECOMINIONS_PLACE | ECOMINIONS_USE | ECOMINIONS_PICKUP |
| BentoBox | ECOMINIONS_PLACE | ECOMINIONS_USE | ECOMINIONS_PICKUP |
| IridiumSkyblock | ecominionsPlace | ecominionsUse | ecominionsPickup |
| Lands | ecominions_place | ecominions_use | ecominions_pickup |
Owners can change these defaults in the menus above, except for Lands, see Lands setup. Placing also still has to pass your antigrief plugins.
Rules
A player can always open and pick up their own minions, even after leaving or being kicked from the island.
Outside any island, only the minion's owner and players with
ecominions.admincan use or pick it up.ecominions.adminskips every island check and both limits.Picking up someone else's minion does not change its owner. The item keeps the original owner, the minion stays in that owner's
per-playercount, and placing it again keeps that owner.Island privileges are on by default. Set
islands.privileges: falsein Plugin Config to turn them off. With no island plugin installed, nothing changes.
SuperiorSkyblock2 setup
SuperiorSkyblock2 only shows privileges that are listed in its menus/permissions.yml. Add an entry for each of ECOMINIONS_PLACE, ECOMINIONS_USE and ECOMINIONS_PICKUP to that file for them to appear in /is permissions. While island privileges are on, islands where a privilege is not set yet get the defaults above, with place and use written to the member role.
Lands setup
Lands has no way for a plugin to set per-role defaults. The first time Lands sees a new role flag, it adds the flag to the default: lists of the tenant, admin and member roles in plugins/Lands/roles.yml. So on lands created after EcoMinions is installed, members and tenants get ecominions_place, ecominions_use and ecominions_pickup, which includes picking up other players' minions.
To keep pickup owner only, or to limit tenants, remove
ecominions_pickupand any other EcoMinions flag you do not want from those roles'default:lists inroles.yml. This only affects lands created after the change.Lands that already exist when EcoMinions is first installed get place and use for the owner and members, and pickup for the owner only.
The EcoMinions flags are not in the role menu display list by default, so land owners cannot toggle them in game. To let them, add the flags to the "Which flags should be displayed in the role settings menu?" section of
roles.yml.
Island limit
limits.per-island caps how many minions an island can hold, counting every minion on it whoever placed it. It is off by default, with a cap of 10.
Give the island owner
ecominions.island-limit.<number>to raise that island's cap, e.g.ecominions.island-limit.20. See Commands and Permissions.With both limits on, a minion must fit under both. Turn off
limits.per-playerfor an island-only cap.The cap is read from the owner's permissions while they are online. When the owner is offline, the island uses the last cap EcoMinions worked out while they were online, or the default if there is none yet. An offline owner never means no cap.
Working while members are online
By default a minion works only while its owner is online. Set islands.active-while-member-online: true and a minion on an island works while its owner or any island member is online. See Plugin Config.
Other plugins
| Plugin | Support |
|---|---|
| EcoShop | Minions use EcoShop sell prices for items with no price of their own, see sell-pricing in Plugin Config |
| EcoItems | Fishing minions use EcoItems fishing loot while the owner is online, slayers apply EcoItems mob loot, and mining uses EcoItems block drops. EcoItems items also work as item lookups in minion configs. |
| PlaceholderAPI | Minion counts and limits as placeholders, see PlaceholderAPI |
| ModelEngine | Custom minion models and animations, see model in Configuring a Minion |
| BetterModel | Custom minion models and animations, see model in Configuring a Minion |
For developers
To add your own island plugin, implement IslandProvider and MinionIsland, then register the provider. Providers are asked in the order they were registered, and the first one that returns an island wins.
class MyIslandProvider : IslandProvider {
override val id = "MyIslands"
override fun islandAt(location: Location): MinionIsland? =
MyIslandsApi.getIslandAt(location)?.let { MyMinionIsland(it) }
override fun islandsOf(uuid: UUID): Collection<MinionIsland> =
MyIslandsApi.getIslandsOf(uuid).map { MyMinionIsland(it) }
}
class MyMinionIsland(private val island: MyIsland) : MinionIsland {
override val provider = "MyIslands"
override val id = island.id
override val owner: UUID? = island.ownerId
override fun isAllowed(player: Player, privilege: IslandPrivilege) =
island.hasRank(player.uniqueId, privilege.name)
override fun isMember(uuid: UUID) = island.hasMember(uuid)
override fun members() = island.memberIds
}
EcoMinionsApi.instance.islands().register(MyIslandProvider())
Where to go next
Config: the island and limit keys are in Plugin Config.
Permissions:
ecominions.island-limit.<number>andecominions.adminare in Commands and Permissions.Placeholders: see PlaceholderAPI.