Commands

Every command Apoli and Origins add, what it does, and who is allowed to run it.

Apoli and Origins add a handful of commands for granting powers, poking at resources, disguising entities, managing skill trees and summoning clones. They are meant for pack authors and server admins — everything they do can also be done from JSON.

The commands

CommandAliasWhat it does
/apoli:power/powerGrant, revoke, inspect and suppress powers.
/apoli:resource/resourceRead and write apoli:resource and apoli:cooldown values.
/apoli:skill_tree/skillsBuy and refund skills, hand out points, grant and revoke trees.
/apoli:disguise/disguiseMake an entity render as another entity or player.
/apoli:cloneSummon, list and remove player clones.
/originSet, query and reroll a player’s origin. Origins only.

Apoli also adds entity selector options so @a[origin=…] and @e[power=…] work anywhere a selector is accepted.

Namespaced names and aliases

Every command is registered under its full apoli: name, with a short alias pointing at the same tree. /power grant @s example:flight and /apoli:power grant @s example:flight are the same command. Use the namespaced form in functions if another mod might claim the short name.

/apoli:clone has no short alias on purpose — /clone is a vanilla command.

Permissions

Each command needs permission level 2 (the same as /give) by default. If fabric-permissions-api is installed, Apoli checks a permission node first and only falls back to the level when the node is undefined:

NodeCommand
apoli.command.power/apoli:power
apoli.command.resource/apoli:resource
apoli.command.skill_tree/apoli:skill_tree
apoli.command.disguise/apoli:disguise
apoli.command.clone/apoli:clone
origins.command.origin.set/origin set
origins.command.origin.gui/origin gui
origins.command.origin.random/origin random

/origin has and /origin get are readable by anyone.

Return values

Every command returns a count so it composes with /execute store:

execute store result score @s power_count run power has @s
execute if entity @a[origin=example:phoenix] run say someone is a phoenix