We use a unified class config system for some games/microgames to make constructing classes easier, understandable, and granular.
Currently, the following games/microgames use this system:
- Bomb Tag
- Capture the Gem
- Class Wars
This system is formatted in JSON.
Properties #
“summary”: Sets the class summary to be shown in /class help
.
“description”: Sets the class description to be shown in /class help
.
“tip”: Exclusive to Bomb Tag. Sets the message to be shown at the start of the game when using this class.
“special-tag-weapon”: Exclusive to Bomb Tag. Sets a weapon that can be used to tag players. Set to null
if not using this.
- “projectile-id”: Sets the projectile ID that can tag players.
- “item-id”: Sets the item ID that can tag players.
“harp-cooldown”: Settings for secondary ability. Set to null
if not using these.
“bell-cooldown”: Settings for secondary ability. Set to null
if not using these.
“whistle-cooldown”: Settings for secondary ability. Set to null
if not using these.
“name”: Sets the name of the class.
“tags”: Sets the tags used by the class. See Tags for more information.
“inventory”: Sets the inventory used by the class. Must be a global inventory.
“health-from-kills”: Sets how much HP the class gets for killing players.
“required-points”: Sets how many points from the current game/microgame are required to use this class.
“random-only”: Sets if the class can only be selected randomly (true
/false
).
“staff-only”: Sets if the class can only be used by staff (true
/false
).
“icon”: Sets the item ID to display next to the class’s name during class selection.
“buffs”: Sets the buffs used by the class.
“multiply-health-from-kills-for-allies-amount”: Sets a number of what to multiply “health-from-kills” for allies by. Does not affect the player this is set for. If multiple players use this, the higher multiplier will be used. Can be unset for no multiplier.
“multiply-health-from-kills-for-allies-radius-tiles”: Sets the radius for “multiply-health-from-kills-for-allies-amount”. Can be unset if “multiply-health-from-kills-for-allies-amount” is unset.
“abilities”: Sets what abilities the class uses. See Abilities for more information.
“ability-cooldown-seconds”: Sets the cooldown for the ability.
“only-one-ability-use-before-death”: Sets if the ability cooldown starts on death (true
/false
).
“cooldown-penalty-per-extra-players”: Sets how much the cooldown.
Tags #
“potion-sickness-on-rusher”: Makes the player always have Potion Sickness while using the first from the “MutantSwitch” action.
“is-healing-shrine”: Makes the player heal players around themself like a tiki shrine.
Abilities #
Triggers #
“ActiveUsed”/”BellUsed”/”HarpUsed”/”WhistleUsed”: Activates when the Whoopie Cushion/Bell/Harp/Golf Whistle is used.
- “ability-cooldown-seconds”: Sets how long the cooldown is.
- “only-one-ability-use-before-death”: Sets if the ability cooldown starts on death (true/false)
- “cooldown-penalty-per-extra-players”: Sets how much the cooldown is increased when multiple players on a team use this class
“PlayerHurt”: Activates when any player takes damage.
“PlayerHurtPvP”: Activates when any player takes damage from PvP.
“PlayerKilled”: Activates when any player dies.
“PlayerKilledPvP”: Activates when any player dies from PvP.
“Died”: Activates when the user dies.
“DiedPvP”: Activates when the user dies from PvP
- Use the “TargetPerpetrator” targeter type to make this target the player who killed you.
- Use the “TargetTriggerTarget” targeter type to make this target yourself.
“GotStruck”: Activates when the user takes damage in PvP.
- Use the “TargetPerpetrator” targeter type to make this target the player who damaged you.
- Use the “TargetTriggerTarget” targeter type to make this target yourself.
- “projectile-id”: Makes the trigger activate when you are struck by the set projectile. Can be unset.
“KilledPlayer”: Activates when the user kills someone in PvP.
- Use the “TargetPerpetrator” targeter type to make this target the player you killed.
- Use the “TargetTriggerTarget” targeter type to make this target yourself.
“StruckPlayer”: Activates when the user deals damage in PvP.
- Use the “TargetPerpetrator” targeter type to make this target the player you hit.
- Use the “TargetTriggerTarget” targeter type to make this target yourself.
- “projectile-id”: Make the trigger activate when you hit someone with the set projectile. Can be unset.
“IntervalElapsed”: Repeatedly activates based on a set interval.
- “interval”: Set how often this ability will activate. 60 is 1 second.
“ProjectileShot”: Activates whenever the set projectile is shot.
- “projectile-id”: Sets the projectile ID that will activate this.
“DiedByGranter”: Runs when you are killed by the player that granted you the temporary ability that this event is running from.
“KilledGranter”: Runs when you kill the player that granted you the temporary ability that this event is running from.
“StruckGranter”: Runs when you hit the player that granted you the temporary ability that this event is running from.
- Use the “TargetPerpetrator” targeter type to make this target the player you hit.
- Use the “TargetTriggerTarget” targeter type to make this target yourself.
- “projectile-id”: Make the trigger activate when you hit the granter with the set projectile. Can be unset.
“StruckByGranter”: Runs when you are hit by the player that granted you the temporary ability that this event is running from.
- Use the “TargetPerpetrator” targeter type to make this target the player you hit.
- Use the “TargetTriggerTarget” targeter type to make this target yourself.
- “projectile-id”: Makes the trigger activate when the granter hits you with the set projectile. Can be unset.
Targeter and Notifier #
These subactions are used to set targeting and show messages with the most abilities. These are set at the end of an action, after everything else.
“targeter”: #
“$type”: Sets the type of targeter to use. Targeter types:
“TargetSelf”: Makes the ability only target the user.
“TargetType”: The ability will target every player of the set types with no range limit.
- Can be set to self, enemies, or allies. Multiple of these can be used at once.
“TargetRadius”: The ability will target every player of the set types within the radius set.
- “target-types”: Set the same way as “TargetType”.
- “radius”: Set the range of the ability in tiles.
“TargetRadiusFromOriginalPosition”: The ability will target every player of the set types within the radius set.
- The center of the radius is where the ability was used instead of the user’s current position.
“TargetInsideShape”: The ability will target every player of the set types within the shape set.
- “target-types”: Set the same way as “TargetType”.
- “schematic”: Set the name of a WorldEdit schematic to use as a bounding box (Solid tiles count as collision).
- “offset”: A point with X and Y parameters to determine where the bounding box starts. (0, 0) would be the top right corner of the player’s hitbox, (-10, 0) would be 10 blocks to the left of that, etc. Positive numbers for the y value offset downwards. Example: “offset”: { “X”: -9, “Y”: -7 }.
“TargetMostRecentDeath”: Targets the player who died most recently from the types set.
- “target-types”: Set the same way as “TargetType”.
“TargetJustOne”: Targets one player using the set targeter.
- “targeter”: Set the same way as how “targeter” is normally set
“TargetClosest”: Targets one player closest to you.
- “target-types”: Set the same way as “TargetType”.
- “max-distance”: the max distance in tiles to check.
“PreviousTargets”: Targets the list of targets that was used last in previous abilities.
- This can be used to run multiple actions on a single target.
“TargetWithTag”: Targets all players who have the specified class tag.
- “targeter”: Set the same way as how “targeter” is normally set.
- “tag”: The tag to check for. Can be used with a tag that doesn’t do anything and isn’t listed in the tags section to make an ability only work on one class. Example: “tags”: [“exampletag”].
“TargetWithoutTag”: Targets all players who don’t have any of the specified class tags.
- “targeter”: Set the same way as how “targeter” is normally set.
- “tags”: A list of tags to check for. Can be used with a tag that doesn’t do anything and isn’t listed in the tags section to make a class immune to an ability. Example: “tags”: [“jacket-immune”].
“TargetAbilityGranter”: Targets the player that gave you the temporary ability being triggered.
“notifier”: #
“color”: Set the colour of the message, either as a colour name or a hex colour code.
“item-id”: The item set here will be shown on both sides of the message. Leave this unset if you do not want an item to be shown.
“self-message”: Set a message that will only be shown to the user. Can be unset.
- Use
{self}
to show the user’s name in the message. - Use
{targets}
to show the names of the targets in the message. - Use
{targetcount}
to show the number of targets in range. - Use
{repeatingtarget}
to show the target’s name in the message and have an extra message for each target.
“target-message”: Set a message that will be shown to the targets set. Can be unset.
- Use
{self}
to show the user’s name in the message. - Use
{targets}
to show the names of the targets in the message. - Use
{targetcount}
to show the number of targets in range. - Use
{repeatingtarget}
to show the target’s name in the message and have an extra message for each target.
“popup-message”: Set a combat text message that will be shown to the targets set. Can be unset. Will not show the item set by “item-id”.
- Use
{self}
to show the user’s name in the message. - Use
{targets}
to show the names of the targets in the message. - Use
{targetcount}
to show the number of targets in range. - Use
{repeatingtarget}
to show the target’s name in the message and have an extra message for each target.
“self-no-targets-message”: Set a message to be shown instead of “self-message” if nobody is in range. Can be unset.
- Use
{self}
to show the user’s name in the message. - Use
{targets}
to show the names of the targets in the message. - Use
{targetcount}
to show the number of targets in range. - Use
{repeatingtarget}
to show the target’s name in the message and have an extra message for each target.
“everyone-message”: Set a message to be shown to everyone. Can be unset.
- Use
{self}
to show the user’s name in the message. - Use
{targets}
to show the names of the targets in the message. - Use
{targetcount}
to show the number of targets in range. - Use
{repeatingtarget}
to show the target’s name in the message and have an extra message for each target.
ID Fields #
Abilities have an ID field, which can be used to reference them when giving or removing them. Multiple abilities can have the same ID.
“ability-references” is set in the class object; this is for abilities we want to reference by ID but not have on players at the start.
“GiveAbilities”: Gives the targeted player a new ability.
- “ability-id”: An ID string of a referenced ability to give to the player. All abilities with this ID will be added.
“RemoveAbilities”: Removes all abilities from the player with the specified ids.
- “ability-ids”: A list of ID strings of referenced abilities to remove from the player. All abilities with one of these IDs will be removed.
Actions #
“Buff”: Buffs targets with the buffs that are set. Targeter must be set.
- “buffer”: Set “buffs” here. Multiple buffs can be set.
- “buffs”: Set the buff id and duration here.
- “buff-id”: The buff that will be used.
- “buff-duration”: How long the buff will last, 60 is 1 second.
“UpdatePermabuffs”: Removes all buffs and changes the buffs the user has set in “buffs”. Targeter must be set.
- “add”: Set a list of permabuffs to add.
- “remove”: Set a list of permabuffs to remove
“TemporaryReforge”: Changes the set item’s prefix to the one set by this. Targeter must be set. Unless RunParallel is used, actions after this in the config won’t happen until the duration ends.
- “item-id”: The item this will change the prefix for.
- “prefix”: The prefix id that the item will be set to.
- “duration”: How long the prefix will last. Example:”00:00:05.5000000″ would make the reforge last 5.5 seconds. If using decimals, use 7 decimal places.
“ChangeMaxHealth”: Changes the target’s maximum health by the set amount. The target’s current health will be changed to the same percentage of the max HP as it was before. Targeter must be set.
- “by-amount”: Sets the amount of HP the target’s maximum health will be changed by.
- “scale-hp”:
true
/false
for if the player will have the same percentage of max HP when it is changed. The default isfalse
.
“ChangeMaxMana”: Changes the target’s maximum mana by the set amount. The target’s current mana will be changed to the same percentage of the max mana as it was before. Targeter must be set.
- “by-amount”: Sets the amount of mana the target’s maximum mana will be changed by.
“TemporaryAbility”: Gives a temporary ability to the targets it is set to affect. Targeter must be set. Can only set one ability, use this multiple times if you need to set more than one. Players can’t be given the same temporary ability multiple times at once. Unless RunParallel is used, actions after this in the config won’t happen until the duration ends.
- “ability”: Set everything for the temporary ability within this. Used the same way as setting up a normal ability.
- “triggers”: Set the trigger type for the temporary ability. Used the same way as setting up a normal ability.
- “duration”: How long the ability will last. Example:”00:00:05.5000000″ would make the ability last 5.5 seconds. If using decimals, use 7 decimal places
IncreaseCooldowns: Increases all ability cooldowns for the targeted player. Targeter must be set.
- “seconds”: The amount of time in seconds to increase the player’s cooldown.
- “seconds-per-targeted-player”: For however many players are in the targeter, increase the cooldown by this many seconds.
- “per-player-targeter”: Targeter for “seconds-per-targeted-player”. If “per-player-targeter” is zero, this is allowed to be null.
“Message”: Used for sending messages without any other action. Targeter must be set.
- “notifier”: Set the same way as the “notifier” shown above.
“SpawnProjectile”: Spawns projectiles from the targets set. Targeter must be set.
- “projectile-spawner”: Set everything about the projectile spawner.
- “$type”: Set the type of projectile spawner used. Projectile spawner types:
- “ProjectileSpawner”: Creates projectiles at the locations of the targets set.
- “projectiles”: Set projectile IDs to create.
- “FancyProjectileSpawner”: Creates projectiles from the locations of the targets set, with options for offsets from the target and velocity.
- “id”: Set the projectile id for the projectile being created.
- “x”: Set the x offset from the target. Can be unset for no offset.
- “y”: Set the y offset from the target. Can be unset for no offset. Positive numbers offset downwards.
- “speed”: Set the velocity of the projectile. Can be unset for no velocity.
- “direction”: Set the direction the projectile will be fired in (from 0 to 360, starting to the right and going counter-clockwise).
- “speed-variance”: Set how much the velocity of the projectile can vary. Speed will vary plus or minus the variance divided by 2. Can be unset, default is 0.
- “direction-variance” : Set how much the direction of the projectile can vary. Speed will vary plus or minus the variance divided by 2. Can be unset, default is 0.
- “x-variance”: Set how much the x position of the projectile can vary. Direction will vary plus or minus the variance divided by 2. Can be unset, default is 0.
- “y-variance”: Set how much the y position of the projectile can vary. Direction will vary plus or minus the variance divided by 2. Can be unset, default is 0.
- “damage”: Set how much damage the projectile will deal. Can be unset, default is 0.
- “damage-allies”: Set if the projectile can damage allies (
true
/false
). Can be unset if “damage” is not set. - “lifetime”: Set how long the projectile will last before disappearing. Example:”00:00:01″ would make the projectile disappear after 1 second. If using decimals, use 7 decimal places. Can be unset.
- “ProjectileSpawner”: Creates projectiles at the locations of the targets set.
“TemporarilyModifyTiles”: At the position of the targeted player, modify the tiles in a circle around the player for some time, and then revert it to normal.
- “radius”: the radius in tiles of the area being modified.
- “duration”: the time for the tile changes to last.
- “tile-filters”: A string with a comma-separated list of the following: “solid_tile”, “no_wall”. If any of these are set, the only tiles modified will be the ones that meet all of the conditions.
- “paint”: set the tile to this color. Takes an integer for the paint ID. If set to null, the color won’t be changed.
- “wall-paint”: set the wall to this color. Takes an integer for the paint ID. If set to null, the color won’t be changed.
- “tile”: set the tile to this type. Takes a tile ID or a tile name. If set to null, the tile won’t be changed.
- “wall”: set the wall to this type. Takes a wall ID or a wall name. If set to null, the wall won’t be changed.
“Sound”: Plays a sound at the set targets. Targeter must be set.
- “sound-player”: Set “sounds” here
- “sounds: Set the sounds that will be played. Example: “DD2_KoboldIgnite”.
“KillPlayer”: Instantly kills the set targets. Targeter must be set.
- “credit-kill-to”: Sets who this will count as a kill for. Can be set the same as “targeter”. Can be unset. Must be set after “targeter” and “notifier”.
“TemporaryItem”: Gives the targets a temporary item which will be removed when the duration ends. Targeter must be set.
- “item-id”: Set the ID of the temporary item.
- “prefix”: Set the prefix of the temporary item.
- “duration: Set how long the item will be given for. Example: “00:00:05.5000000” would make the item be given for 5.5 seconds. If using decimals, use 7 decimal places.
- “is-accessory”: Set if the item is an accessory or not (
true
/false
). Always appears in accessory slot 8 if it is an accessory.
“TemporarySItem”: Gives the targets a temporary SItem which will be removed when the duration ends. Targeter must be set.
- “item-id”: Set the ID of the temporary item.
- “prefix” Set the prefix of the temporary item.
- “count”: Sets the amount of the item given.
- “sitem-attributes”: This takes a string, similar to the input you’d have in the
/sitem
command. Example: “-dmg 100”.
- “duration: Set how long the item will be given for. Example:”00:00:05.5000000” would make the item be given for 5.5 seconds. If using decimals, use 7 decimal places.
“StartUsingHPAsMana”: Exclusive to Capture the Gem. Debuffs the user with Potion Sickness and Bleeding for 200 days. Prevents all health regeneration until death. Makes Nebula Arcanum use the amount of HP set in “hp-as-mana-cost”, found at the top of a Capture the Gem config. See Capture the Gem Actions for more information.
“Heal”: Heal the targets for the amount of HP set. Targeter must be set.
- “health”: Sets the amount of HP that will be healed. Cannot be a negative number.
“Hurt”: Damage the targets for the amount of damage set. If both “hurt” and “damage-per-max-hp” are set, the total is used. Targeter must be set.
- “damage”: Sets the amount of damage that will be dealt. Cannot be a negative number and is affected by defence. Can be unset if “damage-max-hp” is set.
- “damage-max-hp”: Deals damage as a percentage of the target’s max HP. Example: 0.5 would deal damage equal to half of the target’s max HP. Is affected by defence. Can be unset if “hurt” is set, default is 0.
- “credit-kill-to”: Sets who this will count as a kill for if this kills anyone. Can be set the same was as “targeter”. Can be unset. Must be set after “targeter” and “notifier”.
“RestoreMana”: Restore the target’s mana equal to the amount of mana set. Targeter must be set.
- “amount”: Sets the amount of mana that will be restored. Cannot be a negative number.
“Give”: Gives the set items to the targets. Targeter must be set.
- “items”: Set information about the items here. Multiple items can be set here.
- “item-id”: Sets the ID of the item given.
- “prefix”: Sets the prefix of the item given.
- “count”: Sets the amount of the item given.
“GiveSItem”: Gives the set SItem to the targets. Targeter must be set.
- “item-id”: Sets the id of the item given.
- “prefix”: Sets the prefix of the item given.
- “count”: Sets the amount of the item given.
- “sitem-attributes”: This takes a string, similar to the input you’d have in the /sitem command. Example: “-dmg 100”.
“ClearOutTerrain”: Miner’s ability from Capture the Gem.
“Swap”: Clown’s ability from Capture the Gem. Cooldown will not start unless you swap. Targeter must be set.
- “b-targeter”: Sets the targeting for who can be swapped with. Can be set the same was as “targeter”.
- “a-heal-percentage”: Sets the amount of HP the user will be healed when swapping. 1 is a full heal, 0 is no heal.
- “b-heal-percentage”: Sets the amount of HP the swapped player will be healed when swapping. 1 is a full heal, 0 is no heal.
- “a-buffer”: Sets what buffs the user will be buffed with when swapping. Buffs are set the same way as “buffer” from the Buff action. Set to null if you don’t want to apply any buffs.
- “b-buffer”: Sets what buffs the user will be buffed with when swapping. Buffs are set the same way as “buffer” from the Buff action. Set to null if you don’t want to apply any buffs.
- “b-notifier”: Sets the message to send to the swapped player. Can be set the same way as “notifier”.
“Teleport”: Teleports the user to the target player. Cooldown will not start unless you teleport. Targeter must be set.
- “destination-targeter”: Sets the targeting for who can be teleported to. Can be set the same as “targeter”.
- “source-heal-percentage”: Sets the amount of HP the user will be healed when teleporting. 1 is a full heal, 0 is no heal.
- “destination-heal-percentage”: Sets the amount of HP the target will be healed when teleporting. 1 is a full heal, 0 is no heal.
- “source-buffer”: Sets what buffs the user will be buffed with when teleporting. Buffs are set the same way as “buffer” from the Buff action. Set to null if you don’t want to apply any buffs.
- “destination-buffer”: Sets what buffs the target will be buffed with when teleporting. Buffs are set the same way as “buffer” from the Buff action. Set to null if you don’t want to apply any buffs.
- “b-notifier”: Sets the message to send to the swapped player. Can be set the same way as “notifier”.
“TeleportToRandomPosition”: Teleport to a random position within the set radius. Cannot teleport players to areas they could not normally reach.
- “radius”: Sets the range you can teleport to.
“NPC”: Summons a NPC at the targets set. Targeter must be set.
- “npc-id” Set the ID of the NPC summoned.
“SummonShrine”: Exclusive to Capture the Gem. Tiki’s ability from Capture the Gem. Additional settings for “SummonShrine” are set at the top of a Capture the Gem config. See Capture the Gem Actions for more information.
- “tiki-heal-radius-tiles”: Sets the distance players will heal allies. Can be decimals.
- “tiki-heal-speed-ticks”: Sets how often players will heal allies. 1 tick is 1/10 of a second.
“SummonTree”: Exclusive to Capture the Gem. Tree’s ability from Capture the Gem. Additional settings for “SummonTree” are set at the top of a Capture the Gem config. See Capture the Gem Actions for more information.
- “delay-milliseconds”: Sets the delay before the tree appears when the ability is used. Can use decimals.
“MutantSwitch”: Mutant’s ability from Capture the Gem.
- “items”: Set everything except “debuff-duration-milliseconds” and “potion-sickness-duration-frames” within this.
- “Rusher”: Set up everything for the first inventory form here.
- “Regen”: Set up everything for the second inventory form here. “Rusher” and “Regen” have these options:
- “max-hp”: Set the max HP for a form.
- “current-hp-multiplier”: Set the amount to multiply the user’s HP by when switching to this form.
- “weapon”: Set the weapon for this form. Has the options “item-id” and “prefix-id”.
- “helmet”: Set the helmet for this form. Has the options “item-id” and “prefix-id”. Not setting this will mean that this form has no helmet item.
- “shirt”: Set the shirt item for this form. Has the options “item-id” and “prefix-id”. Not setting this will mean that this form has no shirt item.
- “pants”: Set the pants item for this form. Has the options “item-id” and “prefix-id”. Not setting this will mean that this form has no pants item.
- “accessories”: Set the accessories for this form. Has the options “item-id” and “prefix-id”. Multiple accessories can be set.
- “vanity”: Set the vanity items for this form. Vanity items are set starting with the head vanity item. Multiple vanity items can be set.
- “debuff-duration-milliseconds”: Set how long the player will be frozen when transforming. 1000 is 1 second.
- “potion-sickness-duration-frames”: Set how long Potion Sickness will be given when changing forms. 60 is 1 second.
“SwapOnHitFromProjectile”: Makes any hits from the set projectile swap the attacker and target.
- “projectile-id”: Set the projectile ID that will swap players.
“GiveFromBag”: Gives the target a random item from the bag. Targeter must be set.
- “bag”: Set “items” and “permutation-mode” here.
- “items”: Set information about the items that can be given here. Multiple items can be set here.
- “item-id”: Sets the ID of the item given.
- “prefix”: Sets the prefix of the item given.
- “count”: Sets the amount of the item given.
- “permutation-mode”: Sets how the items in the bag are randomly given. Permutation modes: “shuffle”, “none”.
“SetInventory”: Gives the targets an inventory. HP and mana are set to what the temporary inventory has. Targeter must be set.
- “inventory”: Sets the inventory that will be set.
- “set-hp-and-mana”: Sets if the temporary ability will replace the target’s HP and mana with what the new inventory has (
true
/false
). Default istrue
.
“TemporaryInventory”: Gives the targets an inventory that lasts for the set duration. HP and mana are set to what the temporary inventory has. Targeter must be set.
- “inventory”: Sets the inventory that will be set.
- “set-hp-and-mana”: Sets if the temporary ability will replace the target’s HP and mana with what the new inventory has (
true
/false
). Default istrue
. - “duration”: How long the inventory will last for. Example: “00:00:05.5000000”.
“ClearProjectiles”: Removes all projectiles that belong to the targets. Targeter must be set.
“ReplaceProjectilesWithNpcs”: Replaces all projectiles within range with the set NPC.
- “radius-tiles”: Sets the range to replace projectiles in.
- “npc-id”: Sets the ID of the NPC that will replace the projectiles.
- “npcs-per-projectile”: Sets the number of NPCs to summon per projectile.
“MutePlayer”: Mutes the targets for the set duration. Targeter must be set.
- “duration”: How long the inventory will last for. Example: “00:00:05.5000000”
Capture the Gem Actions #
“hp-as-mana-cost”: Sets the amount of HP Nebula Arcanum will used. Set at the top of the config instead of within the action.
“tiki-heal-radius-tiles”: Sets the distance players will heal allies Can be decimals.
tiki-heal-speed-ticks”: Sets how often players will heal allies. 1 tick is 1/10 of a second.
“tiki-shrine”: Tiki shrine settings.
- “attack-radius-tiles”: Sets the distance shrines will attack enemies. Can use decimals.
- “attack-damage”: Sets the amount of damage shrines will deal.
- “attack-speed-ticks”: Sets how often shrines attack. 1 tick is 1/10 of a second.
- “self-heal-speed-ticks”: Sets how often shrines heal themselves. 1 tick is 1/10 of a second.
- “max-hp”: Sets the maximum HP shrines will have.
- “healing-rate-cap”: The heal per tick can’t go over this if it’s set, if it’s -1 the cap is infinite.
- “grouping-detection-radius-tiles”: How many tiles to count other shrines as for the grouping counter, -1 for no grouping detection.
- “grouping-threshold-count”: How many shrines have to be in the radius to consider the shrines grouped (inclusive).
- “prevent-placing-grouped”: True/false for if shrines can be placed in groups.
- “grouped-debuff-multiplier”: Set the multiplies for shrines in groups here
- “max-hp”: Multiplier for “max-hp”, can use decimals.
- “self-heal-speed”: Multiplier for “self-heal-speed-ticks”, can use decimals.
- “heal-speed”: Multiplier for “self-heal-speed-ticks”, can use decimals.
- “attack-speed”: Multiplier for “attack-speed-ticks”, can use decimals.
- “attack-damage”: Multiplier for “attack-damage, can use decimals.
- “grouped-debuff-mode”: Sets the decay mode. Decay modes: LinearMultiplier, Subtraction, Exponential, Logarithmic, LinearShrineCountMultipleSubtraction, GenesisLogarithmicSquaredFactorSubtraction.
- “hp-decay-speed-ticks”: Same as heal rate, but backwards (lowers hp of tiki per tick), -1 for no decay.
- “hp-decay-amount”: How much to lower per tick.
- “decay-oldest-after-count”: Only decay tikis after this count of other tikis were created.
“totem-limit”: Sets the totem limit.
“tree-platform-convert-radius-tiles”: Sets how close players must be to a tree for it to change into platforms. Can use decimals.
Operator Actions #
“RunParallel”: Used for running multiple actions at once. If an action with a duration is used within this, other actions within this will not need to wait for it to end before being run.
- “actions”: Set the actions that will be run by this. Used the same way as setting up actions for a normal ability.
“RunSequentially”: Used for running multiple actions at once without skipping durations. Use this if actions being run in a set order is important, RunParallel could sometimes run actions in the wrong order.
- “actions”: Set the actions that will be run by this. Used the same way as setting up actions for a normal ability.
“Repeat”: Runs an action the number of times set by this. Can only set one action, use RunParallel or RunSequentially if you need to repeat multiple at once.
- “times”: The number of times the action will be repeated
- “interval:” How long between repetitions. Example: “00:00:00.2500000” would make the interval between repetitions 0.25 seconds. If using decimals, use 7 decimal places
- “action”: Sets the action that will be repeated. Used the same way as setting up an action for a normal ability.
“RunDependingOnAmountOfTargetedPlayers”: Runs actions depending on the number of players targeted by the targeter at the top. Targeter must be set. If no action is set for 0 targets, the ability cooldown will not start unless someone is in range.
- “actions”: Set the actions that will be run by this and what amount of targets they activate at. Used mostly the same way as setting up actions for a normal ability. Set a number for how many players are required for the action to be run. Actions run by this can have different targeters than the main targeter.
{
"$type": "RunDependingOnAmountOfTargetedPlayers",
"targeter": {
"$type": "..."
},
"actions": {
"1": {
// Single action running for 1-2 targets
},
"3": {
// Single action running for 3-10 targets
},
"11": {
// Single action running for 11 or more targets
}
}
}
“RunDependingOnProjectileDistanceTraveled”: Runs actions depending on how far the projectile triggering this has traveled.
- “actions”: A dictionary with the minimum distance in tiles as the key and an action as the value. Similar to RunDependingOnAmountOfTargetedPlayers, set the actions that will be run by this and what amount of targets they activate at.
“EnforceInArena”: Prevents the action set in it from being used outside of the arena. Can only set one action, use RunParallel or RunSequentially if you need to enforce multiple at once.
“RunOnIntervalFor”: Repeatedly runs an action for a duration. Can only set one action, use RunParallel or RunSequentially if you need to repeat multiple at once.
- “duration”: How long the prefix will last. Example: “00:00:05.5000000” would make the reforge last 5.5 seconds. If using decimals, use 7 decimal places.
- “interval:” How long between repetitions. Example:”00:00:00.2500000″ would make the interval between repetitions 0.25 seconds. If using decimals, use 7 decimal places.
- “action”: Sets the action that will be repeated. Used the same way as setting up an action for a normal ability.
“RunRandom”: Runs a random action from the actions set within it.
- “actions”: Set the actions that can be randomly selected by this. Used the same way as setting up actions for a normal ability.
“RunAfter”: Runs the action set within it after the set duration. Can be used to delay an action within RunParallel. Can only set one action.
- “duration”: How long until the action is run. Example: “00:00:05.5000000” would make the action happen after 5.5 seconds. If using decimals, use 7 decimal places.
- “action”: Sets the action that will be run. Used the same way as setting up an action for a normal ability.
Example #
This example has three classes: Lord of the Fish, Ice Mario, and Party Girl.
{
"classes": [
{
"summary": "A fish disguised as a human?! Destined to rule the seven seas!",
"description": "(Active) - Summon a random fish on the closest enemy (17 range)",
"harp-cooldown": null,
"bell-cooldown": null,
"whistle-cooldown": null,
"name": "Lord of the Fish",
"tags": [],
"inventory": "tdm73--",
"health-from-kills": 164,
"required-points": 0,
"random-only": false,
"staff-only": false,
"icon": null,
"buffs": [
11,
103
],
"abilities": [
{
"triggers": [
{
"$type": "ActiveUsed",
"tooltip": "summon a random fish on the nearest enemy (17 range)"
}
],
"actions": [
{
"$type": "RunRandom",
"actions": [
{
"$type": "NPC",
"npc-id": 102,
"notifier": {
"color": "#C8967F",
"item-id": 1156,
"self-message": "You summon a fish on {targets}!",
"target-message": "The Lord of the Fish summons a minion on you!",
"self-no-targets-message": "You fail to pull a fish through the rift!"
},
"targeter": {
"$type": "TargetClosest",
"target-types": "enemies",
"max-distance": 17
}
},
{
"$type": "NPC",
"npc-id": 58,
"notifier": {
"color": "#C8967F",
"item-id": 1156,
"self-message": "You summon a fish on {targets}!",
"target-message": "The Lord of the Fish summons a minion on you!",
"self-no-targets-message": "You fail to pull a fish through the rift!"
},
"targeter": {
"$type": "TargetClosest",
"target-types": "enemies",
"max-distance": 17
}
},
{
"$type": "NPC",
"npc-id": 57,
"notifier": {
"color": "#C8967F",
"item-id": 1156,
"self-message": "You summon a fish on {targets}!",
"target-message": "The Lord of the Fish summons a minion on you!",
"self-no-targets-message": "You fail to pull a fish through the rift!"
},
"targeter": {
"$type": "TargetClosest",
"target-types": "enemies",
"max-distance": 17
}
},
{
"$type": "NPC",
"npc-id": 465,
"notifier": {
"color": "#C8967F",
"item-id": 1156,
"self-message": "You summon a fish on {targets}!",
"target-message": "The Lord of the Fish summons a minion on you!",
"self-no-targets-message": "You fail to pull a fish through the rift!"
},
"targeter": {
"$type": "TargetClosest",
"target-types": "enemies",
"max-distance": 17
}
},
{
"$type": "NPC",
"npc-id": 64,
"notifier": {
"color": "#C8967F",
"item-id": 1156,
"self-message": "You summon a fish on {targets}!",
"target-message": "The Lord of the Fish summons a minion on you!",
"self-no-targets-message": "You fail to pull a fish through the rift!"
},
"targeter": {
"$type": "TargetClosest",
"target-types": "enemies",
"max-distance": 17
}
},
{
"$type": "NPC",
"npc-id": 63,
"notifier": {
"color": "#C8967F",
"item-id": 1156,
"self-message": "You summon a fish on {targets}!",
"target-message": "The Lord of the Fish summons a minion on you!",
"self-no-targets-message": "You fail to pull a fish through the rift!"
},
"targeter": {
"$type": "TargetClosest",
"target-types": "enemies",
"max-distance": 17
}
},
{
"$type": "NPC",
"npc-id": 103,
"notifier": {
"color": "#C8967F",
"item-id": 1156,
"self-message": "You summon a fish on {targets}!",
"target-message": "The Lord of the Fish summons a minion on you!",
"self-no-targets-message": "You fail to pull a fish through the rift!"
},
"targeter": {
"$type": "TargetClosest",
"target-types": "enemies",
"max-distance": 17
}
}
]
},
{
"$type": "SpawnProjectile",
"projectile-spawner": {
"$type": "FancyProjectileSpawner",
"projectiles": [
{
"id": 409,
"x": 0.0,
"y": 0.0,
"speed": 0.0000001,
"direction": 0,
"lifetime": "00:00:00.5000000"
}
]
},
"targeter": {
"$type": "PreviousTargets"
}
}
]
}
],
"ability-cooldown-seconds": 40,
"only-one-ability-use-before-death": false,
"cooldown-penalty-per-extra-players": 0
},
{
"summary": "Mario doesnt only shoot fireballs....he shoots ice balls too!",
"description": "(Active) - Freeze enemies for 5 seconds and inflict Chilled for 30 seconds (12 range)",
"harp-cooldown": null,
"bell-cooldown": null,
"whistle-cooldown": null,
"name": "Ice Mario",
"tags": [],
"inventory": "tdm74--",
"health-from-kills": 75,
"required-points": 0,
"random-only": false,
"staff-only": false,
"icon": null,
"buffs": [
11
],
"abilities": [
{
"triggers": [
{
"$type": "ActiveUsed",
"tooltip": "freeze and chill enemies (12 range)"
}
],
"actions": [
{
"$type": "Buff",
"buffer": {
"buffs": [
{
"buff-id": 46,
"buff-duration": 1800
},
{
"buff-id": 47,
"buff-duration": 300
}
]
},
"notifier": {
"color": "#AAC8E5",
"item-id": 1264,
"self-message": "You freeze your foes!",
"target-message": "Mario freezes you!",
"popup-message": "Frozen!"
},
"targeter": {
"$type": "TargetRadius",
"target-types": "enemies",
"radius": 12
}
}
]
}
],
"ability-cooldown-seconds": 30,
"only-one-ability-use-before-death": false,
"cooldown-penalty-per-extra-players": 0
},
{
"summary": "Looks like the Party Girl is hosting a party at Class Wars!",
"description": "(Active) - Increased movement speed for 8 seconds",
"harp-cooldown": null,
"bell-cooldown": null,
"whistle-cooldown": null,
"name": "Party Girl",
"tags": [],
"inventory": "tdm75--",
"health-from-kills": 123,
"required-points": 0,
"random-only": false,
"staff-only": false,
"icon": null,
"buffs": [
11,
119
],
"abilities": [
{
"triggers": [
{
"$type": "ActiveUsed",
"tooltip": "increase your movement speed"
}
],
"actions": [
{
"$type": "Buff",
"buffer": {
"buffs": [
{
"buff-id": 3,
"buff-duration": 480
},
{
"buff-id": 146,
"buff-duration": 480
}
]
},
"notifier": {
"color": "#E17555",
"item-id": 3548,
"self-message": "You celebrate to yourself..."
},
"targeter": {
"$type": "TargetSelf"
}
},
{
"$type": "Repeat",
"times": 6,
"interval": "00:00:00.0000001",
"action": {
"$type": "SpawnProjectile",
"projectile-spawner": {
"$type": "FancyProjectileSpawner",
"projectiles": [
{
"id": 178,
"x": 0.0,
"y": 0.0,
"speed": 0.0,
"direction": 180,
"speed-variance": 6.0,
"direction-variance": 360
}
]
},
"targeter": {
"$type": "TargetSelf"
}
}
}
]
}
],
"ability-cooldown-seconds": 20,
"only-one-ability-use-before-death": false,
"cooldown-penalty-per-extra-players": 0
}
]
}