diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ecf7901..a089256 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,6 +43,10 @@ jobs: run: cp Brilliance/scoreboards.json src/main/resources/assets/agronet/scoreboards.json - name: build + env: + ORG_GRADLE_PROJECT_scoreboards_json: brilliance-configs/scoreboards.json + ORG_GRADLE_PROJECT_cards_json: brilliance-configs/Cards.json + ORG_GRADLE_PROJECT_artifacts_json: brilliance-configs/Artifacts.json run: ./gradlew build - name: capture build artifacts diff --git a/build.gradle b/build.gradle index 41a6830..fd8f306 100644 --- a/build.gradle +++ b/build.gradle @@ -65,12 +65,30 @@ dependencies { include(modImplementation('me.lucko:fabric-permissions-api:0.2-SNAPSHOT')) } +def brillianceDataDir = "data/brilliance-data" +def scoreboardsJsonPath = property('scoreboards_json') +def cardsJsonPath = property('cards_json') +def artifactsJsonPath = property('artifacts_json') + processResources { inputs.property "version", project.version filesMatching("fabric.mod.json") { expand "version": project.version } + + // Place json files in resources/brilliance-data/ + from(scoreboardsJsonPath) { + into(brillianceDataDir) + } + from(cardsJsonPath) { + rename { "cards.json" } + into(brillianceDataDir) + } + from(artifactsJsonPath) { + rename { "artifacts.json" } + into(brillianceDataDir) + } } tasks.withType(JavaCompile).configureEach { diff --git a/gradle.properties b/gradle.properties index 676a208..853fb8f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,3 +13,8 @@ maven_group=org.trackedout archives_base_name=agronet # Dependencies fabric_version=0.91.0+1.20.1 + +# You can overwrite this with ORG_GRADLE_PROJECT_cards_json="" +scoreboards_json=../Brilliance/JSON/scoreboards.json +cards_json=../Brilliance/JSON/items_json/Cards.json +artifacts_json=../Brilliance/JSON/items_json/Artifacts.json diff --git a/src/main/kotlin/org/trackedout/RunContext.kt b/src/main/kotlin/org/trackedout/RunContext.kt index 0da1e5a..65020b9 100644 --- a/src/main/kotlin/org/trackedout/RunContext.kt +++ b/src/main/kotlin/org/trackedout/RunContext.kt @@ -1,6 +1,7 @@ package org.trackedout import com.google.common.collect.Maps +import org.trackedout.data.BrillianceCard import java.util.UUID import java.util.concurrent.ConcurrentMap @@ -9,6 +10,8 @@ data object RunContext { var runId = UUID.randomUUID().toString() var initialized = false + var brillianceCards = mapOf() + private val playerContextMap: ConcurrentMap = Maps.newConcurrentMap() fun addPlayerContext(playerName: String, context: PlayerContext) { diff --git a/src/main/kotlin/org/trackedout/actions/AddDeckToPlayerInventoryAction.kt b/src/main/kotlin/org/trackedout/actions/AddDeckToPlayerInventoryAction.kt index 1e7753c..7fb96c2 100644 --- a/src/main/kotlin/org/trackedout/actions/AddDeckToPlayerInventoryAction.kt +++ b/src/main/kotlin/org/trackedout/actions/AddDeckToPlayerInventoryAction.kt @@ -23,6 +23,8 @@ import org.trackedout.fullRunType import org.trackedout.runType import org.trackedout.sendMessage import org.trackedout.shortDeckId +import kotlin.math.max +import kotlin.math.min class AddDeckToPlayerInventoryAction( private val eventsApi: EventsApiWithContext, @@ -79,14 +81,54 @@ class AddDeckToPlayerInventoryAction( val cardCount = cards .filter { Cards.findCard(it.name!!) != null } .groupingBy { it.name!! }.eachCount() - var cardIndex = 0 player.debug("Your shulker should contain ${cards.size} cards:") - cardCount.forEach { (cardName, count) -> - player.debug("- ${count}x $cardName") - logger.info("$playerName's shulker should contain ${count}x $cardName") + var cardIndex = 0 + var totalCards = 0 + var sentTruncationWarning = false + val modificationLog = mutableMapOf() + cardCount.forEach { (cardName, countInDeck) -> + player.debug("- ${countInDeck}x $cardName") val card = Cards.findCard(cardName)!! + val maxCopies = RunContext.brillianceCards[card.key]?.maxCopies + var count = min(countInDeck, maxCopies ?: countInDeck) + logger.info("$playerName's shulker should contain ${count}x $cardName (deck has $countInDeck, max copies is $maxCopies, deck contains $totalCards cards)") + + if (countInDeck > (maxCopies ?: 0)) { + // If the player has more copies of a card than they should, log the new count that we're giving them + modificationLog["new-card-count-${cardName.replace("_", "-")}"] = "$count" + logger.warn("$playerName has too many copies of $cardName in their deck, truncating to $count") + player.sendMessage("You have too many copies of $cardName in your deck, truncating to $count", Formatting.RED) + } + + // If the new cards would take the total over 40, truncate the count to only fill up to 40 + if (totalCards + count > 40) { + count = max(0, 40 - totalCards) + modificationLog["new-card-count-${cardName.replace("_", "-")}"] = "$count" + if (!sentTruncationWarning) { + logger.warn("$playerName has too many cards in their deck, truncating to 40") + player.sendMessage("You have too many cards in your deck, truncating to 40", Formatting.RED) + sentTruncationWarning = true + } + logger.info("Deck limit exceeded. New count for $cardName is $count") + } + + if (count <= 0) { + eventsApi.eventsPost( + Event( + name = "card-skipped-on-join-${cardName.replace("_", "-")}", + player = playerName, + x = 0.0, + y = 0.0, + z = 0.0, + count = count, + ) + ) + return@forEach + } + val cardData = createCard(cardIndex++, card, count) + totalCards += count shulkerItems.add(cardData) eventsApi.eventsPost( @@ -101,6 +143,20 @@ class AddDeckToPlayerInventoryAction( ) } + if (modificationLog.isNotEmpty()) { + eventsApi.eventsPost( + Event( + name = "deck-modified-on-join", + player = playerName, + x = 0.0, + y = 0.0, + z = 0.0, + count = 1, + metadata = modificationLog + ) + ) + } + cards .filter { Cards.findCard(it.name!!) == null } .forEach { item -> diff --git a/src/main/kotlin/org/trackedout/data/BrillianceCard.kt b/src/main/kotlin/org/trackedout/data/BrillianceCard.kt new file mode 100644 index 0000000..01248ce --- /dev/null +++ b/src/main/kotlin/org/trackedout/data/BrillianceCard.kt @@ -0,0 +1,66 @@ +package org.trackedout.data + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +/* + Example: + { + "shorthand": "MOC", + "id": "minecraft:iron_nugget", + "maxCopies": 5, + "tag": { + "NameFormat": { + "color": "gray", + "OriginalName": "'{\"color\":\"gray\",\"text\":\"✲ Moment of Clarity ✲\"}'", + "ModifiedName": "'{\"color\":\"gray\",\"text\":\"✲ Moment of Clarity ✲\"}'" + }, + "CustomRoleplayData": "1b", + "CustomModelData": 106, + "display": { + "Name": "'{\"color\":\"gray\",\"text\":\"✲ Moment of Clarity ✲\"}'" + }, + "tracked": "0b" + } + } + */ + +@Serializable +data class BrillianceCard( + val shorthand: String, + val id: String, + val tag: Tag, + val maxCopies: Int? = null, +) + +@Serializable +data class Tag( + @SerialName("NameFormat") + val nameFormat: NameFormat? = null, + + @SerialName("CustomRoleplayData") + val customRoleplayData: String? = null, + + @SerialName("CustomModelData") + val customModelData: Long? = null, + + val display: Display, + val tracked: String? = null, +) + +@Serializable +data class Display( + @SerialName("Name") + val name: String? = null, +) + +@Serializable +data class NameFormat( + val color: String? = null, + + @SerialName("OriginalName") + val originalName: String? = null, + + @SerialName("ModifiedName") + val modifiedName: String? = null, +) diff --git a/src/main/kotlin/org/trackedout/data/BrillianceScoreboards.kt b/src/main/kotlin/org/trackedout/data/BrillianceScoreboards.kt index 1d404ca..58da60b 100644 --- a/src/main/kotlin/org/trackedout/data/BrillianceScoreboards.kt +++ b/src/main/kotlin/org/trackedout/data/BrillianceScoreboards.kt @@ -8,4 +8,5 @@ data class BrillianceScoreboardDescription( val target: String, val category: String, val description: String, + val values: Map? = mapOf(), ) diff --git a/src/main/kotlin/org/trackedout/listeners/AgroNetPlayerConnectionListener.kt b/src/main/kotlin/org/trackedout/listeners/AgroNetPlayerConnectionListener.kt index 5ef9c41..f65de82 100644 --- a/src/main/kotlin/org/trackedout/listeners/AgroNetPlayerConnectionListener.kt +++ b/src/main/kotlin/org/trackedout/listeners/AgroNetPlayerConnectionListener.kt @@ -20,12 +20,15 @@ import org.trackedout.client.apis.ScoreApi import org.trackedout.client.apis.TasksApi import org.trackedout.client.models.Score import org.trackedout.client.models.Task +import org.trackedout.data.BrillianceCard import org.trackedout.data.BrillianceScoreboardDescription import org.trackedout.fullRunType import org.trackedout.runType import org.trackedout.sendMessage import java.nio.charset.StandardCharsets +val json = Json { ignoreUnknownKeys = true } + class AgroNetPlayerConnectionListener( private val scoreApi: ScoreApi, private val claimApi: ClaimApi, @@ -40,27 +43,35 @@ class AgroNetPlayerConnectionListener( return Identifier("agronet", "scoreboard") } - // Use scoreboards.json (authored in Brilliance) to determine which objectives to store + // Use data from Brilliance to determine which objectives to store, and Card limits override fun reload(resourceManager: ResourceManager) { - val resourceId = Identifier("agronet", "scoreboards.json") + parseBrillianceData>(resourceManager, "scoreboards.json") { map -> + objectivesToStore = map.filter { it.value.category == "totals" }.keys.toList() + println("Updated objectives to store to: $objectivesToStore") + } + + parseBrillianceData>(resourceManager, "cards.json") { map -> + RunContext.brillianceCards = map + println("Card data from Brilliance: ${RunContext.brillianceCards}") + } + } + + private inline fun parseBrillianceData(resourceManager: ResourceManager, fileName: String, unit: (T) -> Unit) { + val resourceId = Identifier("brilliance-data", fileName) try { // Obtain the resource as an InputStream val resource = resourceManager.getResource(resourceId).orElseThrow { - throw IllegalStateException("Resource not found: $resourceId") + throw IllegalStateException("Resource $fileName not found: $resourceId") } // Read and parse the JSON file using Gson resource.inputStream.use { inputStream -> val jsonData = inputStream.bufferedReader(StandardCharsets.UTF_8).use { it.readText() } - val scoreboardDescriptionMap: Map = Json.decodeFromString(jsonData) - - objectivesToStore = scoreboardDescriptionMap.filter { it.value.category == "totals" }.keys.toList() - - println("Updated objectives to store to: $objectivesToStore") + unit(json.decodeFromString(jsonData)) } } catch (e: Exception) { - println("Failed to load JSON: ${e.message}") + println("Failed to load $fileName: ${e.message}") } } diff --git a/src/main/resources/data/agronet/scoreboards.json b/src/main/resources/data/agronet/scoreboards.json deleted file mode 100644 index 1d3be2e..0000000 --- a/src/main/resources/data/agronet/scoreboards.json +++ /dev/null @@ -1,3146 +0,0 @@ -{ - "do2.tests.all_markers_alive": { - "auto": 1, - "target": "$dungeon", - "category": "tests", - "description": "Used to temporarily test if all teleport markers entities exist." - }, - "do2.tests.all_killers_alive": { - "auto": 1, - "target": "$dungeon", - "category": "tests", - "description": "Used to temporarily test if all other killers exist." - }, - "do2.tests.all_ravagers_alive": { - "auto": 1, - "target": "$dungeon", - "category": "tests", - "description": "Used to temporarily test if all ravagers exist." - }, - "do2.tests.all_wardens_alive": { - "auto": 1, - "target": "$dungeon", - "category": "tests", - "description": "Used to temporarily test if all wardens exist." - }, - "do2.tests.all_lodestone_spots": { - "auto": 1, - "target": "$dungeon", - "category": "tests", - "description": "Used to temporarily test if all lodestones exist." - }, - "do2.tests.all_minecart_spots": { - "auto": 1, - "target": "$dungeon", - "category": "tests", - "description": "Used to temporarily test if all minecarts exist." - }, - "do2.tests.all_filters": { - "auto": 1, - "target": "$dungeon", - "category": "tests", - "description": "Used to temporarily test if all compass filters exist." - }, - "do2.tests.doesTangoCamExist": { - "auto": 1, - "target": "$dungeon", - "category": "tests", - "description": "Used to temporarily test if TangoCam exists." - }, - "do2.run.threecoursemeal": { - "auto": 1, - "target": "runners", - "category": "current", - "description": "Used to track how many UNIQUE foods the player has eaten this run." - }, - "do2.runs": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The total amount of runs the target has." - }, - "do2.wins": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The total amount of wins the target has." - }, - "do2.losses": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The total amount of losses the target has." - }, - "do2.lifetime.pickedup.crowns": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The total amount of Crowns the target has picked up." - }, - "do2.lifetime.escaped.crowns": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The total amount of Crowns the target has escaped with." - }, - "do2.lifetime.spent.crowns": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The total amount of Crowns the target has spent." - }, - "do2.lifetime.pickedup.coins": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The total amount of Coins the target has picked up." - }, - "do2.lifetime.coinsconverted": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The total amount of Coins the target has Converted." - }, - "do2.lifetime.pickedup.embers": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The total amount of Frost Embers the target has picked up." - }, - "do2.lifetime.escaped.embers": { - "auto": 0, - "target": "both", - "category": "totals", - "description": "The total amount of Frost Embers the target has escaped with." - }, - "do2.lifetime.spent.embers": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The total amount of Frost Embers the target has spent." - }, - "do2.lifetime.escaped.tomes": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The total amount of Tomes the target has escaped with." - }, - "do2.lifetime.spent.tomes": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The total amount of Tomes the target has spent or submitted." - }, - "do2.highest_win_streak": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The highest win streak the target has." - }, - "do2.win_streak": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The current win streak the target has." - }, - "do2.highest_loss_streak": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The highest loss streak the target has." - }, - "do2.loss_streak": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The current loss streak the target has." - }, - "do2.depth_charge_success": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "The total amount of Depth Charge Successes." - }, - "do2.run.active": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "Whether the dungeon is currently active or loading." - }, - "do2.run.timeWithNoPlayers": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "Amount of time the dungeon hasn't had active players." - }, - "do2.run.ticks": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "Counting until 20th tick to add a second." - }, - "do2.run.seconds": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "How long the run has been running for." - }, - "do2.run.difficulty": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "The difficulty the run is playing on." - }, - "do2.run.deepest_floor": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "The deepest floor the artifact was submitted on." - }, - "do2.run.has_won": { - "auto": 1, - "target": "runners", - "category": "current", - "description": "Whether the runner has won or not." - }, - "do2.run.has_died": { - "auto": 1, - "target": "runners", - "category": "current", - "description": "Whether the runner has died or not." - }, - "do2.run.player_deaths": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "How many players have died this run." - }, - "do2.run.players": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "How many players are playing this run." - }, - "do2.agronet.card_available": { - "auto": 1, - "target": "$dungeon", - "category": "agronet", - "description": "Used to tell agronet what card was available." - }, - "do2.agronet.card_played": { - "auto": 1, - "target": "$dungeon", - "category": "agronet", - "description": "Used to tell agronet what card was played." - }, - "do2.agronet.card_bought": { - "auto": 1, - "target": "$dungeon", - "category": "agronet", - "description": "Used to tell agronet what card was bought." - }, - "do2.config.endermiteCount": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "How many endermites can exist in Level 2." - }, - "do2.config.maxClankTreasure": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether treasure can drop after max clank is reached." - }, - "do2.config.nightTimeChance": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "The chance for the dungeon to set the time to night." - }, - "do2.config.useDaylightCycle": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether the doDaylightCycle gamerule is true" - }, - "do2.config.useWeatherCycle": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether the doWeatherCycle gamerule is true" - }, - "do2.config.vexTracking": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether vex tracks players at ALL times." - }, - "do2.config.eggRewards": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "What rewards finding easter eggs give you." - }, - "do2.config.batDistraction": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether bats are allowed in L3 and L4." - }, - "do2.config.tickRate": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "How many minecraft ticks, before the majority of the datapack runs." - }, - "do2.config.ticksPerSecond": { - "auto": 0, - "target": "$dungeon", - "category": "config", - "description": "How many ticks the server runs per second." - }, - "do2.config.fastReset": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether to quickly reset the dungeon upon game ending." - }, - "do2.config.amountOfBats": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "How many bats allowed on L3 or L4 at a time." - }, - "do2.config.amountOfFish": { - "auto": 0, - "target": "$dungeon", - "category": "config", - "description": "The amount of fish allowed to exist." - }, - "do2.config.forceGamemode": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether to try to force player's gamemode upon game start/stop." - }, - "do2.config.forceFood": { - "auto": 0, - "target": "$dungeon", - "category": "config", - "description": "Whether to force the player's food at saturation level to be a certain value." - }, - "do2.config.targetFoodLevel": { - "auto": 0, - "target": "$dungeon", - "category": "config", - "description": "How many food bars the player's food should be." - }, - "do2.config.targetSaturationLevel": { - "auto": 0, - "target": "$dungeon", - "category": "config", - "description": "How many saturation levels the player's saturation should be." - }, - "do2.config.useWorldCycle": { - "auto": 0, - "target": "$dungeon", - "category": "config", - "description": "Used to control whether daylight and weather cycles are enabled." - }, - "do2.config.dungeonDifficulty": { - "auto": 0, - "target": "players", - "category": "config", - "description": "Used to remember what difficulty the player last played at." - }, - "do2.config.bc.snowHazard": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether to use a new hazard in the hidden L1 shortcut." - }, - "do2.config.bc.l2ShipTreasureLine": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether treasure can drop on L2's ship when player is on L2." - }, - "do2.config.bc.balancedTnTDiveLoot": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether to balance the TnT dive loot more." - }, - "do2.config.bc.lessLootMaxClank": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether to have Max Clank have a 50% chance to stop loot." - }, - "do2.config.bc.suitUpRes": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether the card Suit Up grants resistance." - }, - "do2.config.bc.staircaseEmbers": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether embers should drop on each staircase." - }, - "do2.config.fr.teleportKillers": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether the killers should be spread out for each run." - }, - "do2.config.fr.refillBerries": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether to refill all berry bushes each run." - }, - "do2.config.fr.resetComposters": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether to empty out all composters each run." - }, - "do2.config.fr.cakeGauntlet": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether to set the cake in the death gauntlet to full each run." - }, - "do2.config.refillDungeonType": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "The type decides how should the dungeon be refilled." - }, - "do2.config.mc.levelEditing": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "What level the interface is displaying to be edited." - }, - "do2.config.mc.level1Zones": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether zones should be used on L1." - }, - "do2.config.mc.level2Zones": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether zones should be used on L2." - }, - "do2.config.mc.level4Zones": { - "auto": 2, - "target": "$dungeon", - "category": "config", - "description": "Whether zones should be used on L4." - }, - "do2.eggs.total": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many eggs the players have found." - }, - "do2.eggs.bdubs": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Bdub's egg." - }, - "do2.eggs.grian": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Grian's egg." - }, - "do2.eggs.cub": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Cub's egg." - }, - "do2.eggs.docm": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Docm's egg." - }, - "do2.eggs.gold": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found the Golden egg." - }, - "do2.eggs.jevin": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Jevin's egg." - }, - "do2.eggs.zedaph": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Zed's egg." - }, - "do2.eggs.beef": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Beef's egg." - }, - "do2.eggs.xisuma": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Xisuma's egg." - }, - "do2.eggs.xb": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found XB's egg." - }, - "do2.eggs.hypno": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Hypno's egg." - }, - "do2.eggs.joe": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Joe's egg." - }, - "do2.eggs.cleo": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Cleo's egg." - }, - "do2.eggs.iskall": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Iskall's egg." - }, - "do2.eggs.pearl": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Pearl's egg." - }, - "do2.eggs.scar": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Scar's egg." - }, - "do2.eggs.wels": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Wels' egg." - }, - "do2.eggs.stress": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Stress's egg." - }, - "do2.eggs.impulse": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found Impulse's egg." - }, - "do2.eggs.false": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "Whether the player has found False's egg." - }, - "do2.run.items.embers": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many Frost Embers collected this run." - }, - "do2.run.items.coins": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many Coins collected this run." - }, - "do2.run.items.crowns": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many Crowns collected this run." - }, - "do2.run.items.kits": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many Rusty Repair Kits collected this run." - }, - "do2.run.items.pumpkins": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many Pumpkins collected this run." - }, - "do2.run.items.bone_meals": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many Bone Meals collected this run." - }, - "do2.run.items.glow_berries": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many Glow Berries collected this run." - }, - "do2.run.items.sweet_berries": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many Sweet Berries collected this run." - }, - "do2.run.items.pork_chops": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many cooked porkchops collected this run." - }, - "do2.run.items.key_2": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many L2 Keys collected this run." - }, - "do2.run.items.key_3": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many L3 Keys collected this run." - }, - "do2.run.items.key_4": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many L4 Keys collected this run." - }, - "do2.run.items.bombs": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many Bombs collected this run." - }, - "do2.logs.pickups": { - "auto": 2, - "target": "players", - "category": "config", - "description": "How strongly players want the logs relating to; Pickups" - }, - "do2.logs.evokers": { - "auto": 2, - "target": "players", - "category": "config", - "description": "How strongly players want the logs relating to; Evokers" - }, - "do2.logs.gamestate": { - "auto": 2, - "target": "players", - "category": "config", - "description": "How strongly players want the logs relating to; Gamestate" - }, - "do2.logs.datapack_setup": { - "auto": 2, - "target": "players", - "category": "config", - "description": "How strongly players want the logs relating to; Datapack Setup" - }, - "do2.logs.dropper_room": { - "auto": 2, - "target": "players", - "category": "config", - "description": "How strongly players want the logs relating to; Dropper Room" - }, - "do2.logs.cards": { - "auto": 2, - "target": "players", - "category": "config", - "description": "How strongly players want the logs relating to; Cards" - }, - "do2.logs.clank": { - "auto": 2, - "target": "players", - "category": "config", - "description": "How strongly players want the logs relating to; Clank" - }, - "do2.logs.hazard": { - "auto": 2, - "target": "players", - "category": "config", - "description": "How strongly players want the logs relating to; Hazard" - }, - "do2.logs.embers": { - "auto": 2, - "target": "players", - "category": "config", - "description": "How strongly players want the logs relating to; Embers" - }, - "do2.logs.treasure": { - "auto": 2, - "target": "players", - "category": "config", - "description": "How strongly players want the logs relating to; Treasure" - }, - "do2.logs.player_actions": { - "auto": 2, - "target": "players", - "category": "config", - "description": "How strongly players want the logs relating to; Player Actions" - }, - "do2.logs.dungeon_setup": { - "auto": 2, - "target": "players", - "category": "config", - "description": "How strongly players want the logs relating to; Dungeon Setup" - }, - "do2.logs.spam": { - "auto": 2, - "target": "players", - "category": "config", - "description": "How strongly players want the logs relating to; Spam" - }, - "do2.run.systems.clank.generated": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "How much clank was generated this run." - }, - "do2.run.systems.clank.blocked": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "How much clank was blocked this run." - }, - "do2.run.systems.hazard.generated": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "How much hazard was generated this run." - }, - "do2.run.systems.hazard.blocked": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "How much hazard was blocked this run." - }, - "do2.run.systems.embers.released": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "How much embers was released this run." - }, - "do2.run.systems.maxclank.released": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "How much clank surpassed max clank this run." - }, - "do2.run.systems.treasure.released": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "How much treasure was released this run." - }, - "do2.run.systems.hazard.activated": { - "auto": 1, - "target": "$dungeon", - "category": "current", - "description": "How much hazard was activated this run." - }, - "do2.systems.clank.generated": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How much clank was generated in total." - }, - "do2.systems.clank.blocked": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How much clank was blocked in total." - }, - "do2.systems.hazard.generated": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How much hazard was generated in total." - }, - "do2.systems.hazard.blocked": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How much hazard was blocked in total." - }, - "do2.systems.embers.released": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many embers was released to the dungeon in total." - }, - "do2.systems.maxclank.released": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many clank surpassed maxclank in total." - }, - "do2.systems.treasure.released": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many treasure was released to the dungeon in total." - }, - "do2.systems.hazard.activated": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many hazard was activated in total." - }, - "do2.utility.deathCount": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Checking who has died." - }, - "do2.utility.randomNum": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Score used to generated random numbers" - }, - "do2.utility.currentTick": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Score used to count ticks." - }, - "do2.utility.checkTick": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Score used to check tick count." - }, - "do2.utility.advancementOrdering": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Score used to denote when ordering advancements." - }, - "do2.utility.reachedBottomDepthCharge": { - "auto": 1, - "target": "runners", - "category": "utility", - "description": "Score used to denote what level of the TnT depth charge player has reached." - }, - "do2.utility.dungeonRepair": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Score used to denote when attempting todo a Dungeon Repair." - }, - "do2.utility.currentFishCount": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Used to count how many tropical fish exist." - }, - "do2.utility.fishVariant": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Used to count what variant of fish to spawn." - }, - "do2.utility.gui": { - "auto": 1, - "target": "GUI", - "category": "utility", - "description": "score used for ALL of the GUI's operations." - }, - "do2.utility.shulkerPlayers": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Used to count how many players with the tag do2.received_shulker" - }, - "do2.utility.trackLeaves": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Used to detect when a player rejoins." - }, - "do2.utility.oldGamemode": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Used to store player's gamemode before game forced their gamemode" - }, - "do2.utility.old_position.x": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Used to store player's old X location before teleporting them." - }, - "do2.utility.old_position.y": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Used to store player's old Y location before teleporting them." - }, - "do2.utility.old_position.z": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Used to store player's old Z location before teleporting them." - }, - "do2.utility.old_position.temp": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Used to modify player's old location before teleporting them." - }, - "do2.utility.floorEmbers": { - "auto": 1, - "target": "both", - "category": "utility", - "description": "Used to count how many embers were from the floor." - }, - "do2.utility.totalCrowns": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Used to count crowns converted from coins." - }, - "do2.utility.coinsPerCrown": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Used to store how many coins are converted per crown." - }, - "do2.utility.shouldForceFood": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Used to check whether player can have their food forced." - }, - "do2.utility.playersFood": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Player's food level" - }, - "do2.utility.playersSaturation": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Player's saturation level" - }, - "do2.run.artifactValue": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Value of artifact submitted." - }, - "do2.utility.statsScreen": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "What screen the statistics room is displaying." - }, - "do2.utility.onServer": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Whether Brilliance can detect Agronet." - }, - "do2.utility.embersToGive": { - "auto": 1, - "target": "runners", - "category": "utility", - "description": "How many tracked Frost Embers need to be given back." - }, - "do2.utility.coinsToGive": { - "auto": 1, - "target": "runners", - "category": "utility", - "description": "How many tracked Coins need to be given back." - }, - "do2.utility.crownsToGive": { - "auto": 1, - "target": "runners", - "category": "utility", - "description": "How many tracked Crowns need to be given back." - }, - "do2.utility.kitsToGive": { - "auto": 1, - "target": "runners", - "category": "utility", - "description": "How many tracked Rusty Repair Kits need to be given back." - }, - "do2.utility.pumpkinsToGive": { - "auto": 1, - "target": "runners", - "category": "utility", - "description": "How many tracked Pumpkins need to be given back." - }, - "do2.utility.berriesToGive": { - "auto": 1, - "target": "runners", - "category": "utility", - "description": "How many tracked Sweet Berries need to be given back." - }, - "do2.utility.bombsToGive": { - "auto": 1, - "target": "runners", - "category": "utility", - "description": "How many tracked Bombs need to be given back." - }, - "do2.utility.bonemealsToGive": { - "auto": 1, - "target": "runners", - "category": "utility", - "description": "How many tracked Bone Meals need to be given back." - }, - "do2.utility.glowberriesToGive": { - "auto": 1, - "target": "runners", - "category": "utility", - "description": "How many tracked Glow Berries need to be given back." - }, - "do2.utility.chopsToGive": { - "auto": 1, - "target": "runners", - "category": "utility", - "description": "How many tracked Cooked Porkchops need to be given back." - }, - "do2.utility.key_2ToGive": { - "auto": 1, - "target": "runners", - "category": "utility", - "description": "How many tracked L2 Keys need to be given back." - }, - "do2.utility.key_3ToGive": { - "auto": 1, - "target": "runners", - "category": "utility", - "description": "How many tracked L3 Keys need to be given back." - }, - "do2.utility.key_4ToGive": { - "auto": 1, - "target": "runners", - "category": "utility", - "description": "How many tracked L4 Keys need to be given back." - }, - "do2.run.convertedArtifake": { - "auto": 1, - "target": "shulker", - "category": "current", - "description": "Whether the artifact has been converted into an artifake this run." - }, - "do2.run.foundArtifact": { - "auto": 1, - "target": "runners", - "category": "current", - "description": "Whether the artifact has been found this run." - }, - "do2.artifacts.HAY": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many HAY artifacts found." - }, - "do2.artifacts.ASV": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many ASV artifacts found." - }, - "do2.artifacts.MGW": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many MGW artifacts found." - }, - "do2.artifacts.SHD": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many SHD artifacts found." - }, - "do2.artifacts.PPS": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many PPS artifacts found." - }, - "do2.artifacts.JSS": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many JSS artifacts found." - }, - "do2.artifacts.THL": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many THL artifacts found." - }, - "do2.artifacts.DLP": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many DLP artifacts found." - }, - "do2.artifacts.PCL": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many PCL artifacts found." - }, - "do2.artifacts.HGT": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many HGT artifacts found." - }, - "do2.artifacts.CUS": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many CUS artifacts found." - }, - "do2.artifacts.BAP": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many BAP artifacts found." - }, - "do2.artifacts.HYB": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many HYB artifacts found." - }, - "do2.artifacts.WGG": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many WGG artifacts found." - }, - "do2.artifacts.KNH": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many KNH artifacts found." - }, - "do2.artifacts.BED": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many BED artifacts found." - }, - "do2.artifacts.HST": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many HST artifacts found." - }, - "do2.artifacts.GGS": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many GGS artifacts found." - }, - "do2.artifacts.GDE": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many GDE artifacts found." - }, - "do2.artifacts.PWS": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many PWS artifacts found." - }, - "do2.artifacts.OFP": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many OFP artifacts found." - }, - "do2.artifacts.GGR": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many GGR artifacts found." - }, - "do2.artifacts.CF1": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many CF1 artifacts found." - }, - "do2.artifacts.SPS": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many SPS artifacts found." - }, - "do2.artifacts.TSL": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many TSL artifacts found." - }, - "do2.artifacts.SKA": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many SKA artifacts found." - }, - "do2.artifacts.MDM": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many MDM artifacts found." - }, - "do2.artifacts.MKY": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many MKY artifacts found." - }, - "do2.artifakes.HAY": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many HAY artifacts have been converted." - }, - "do2.artifakes.ASV": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many ASV artifacts have been converted." - }, - "do2.artifakes.MGW": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many MGW artifacts have been converted." - }, - "do2.artifakes.SHD": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many SHD artifacts have been converted." - }, - "do2.artifakes.PPS": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many PPS artifacts have been converted." - }, - "do2.artifakes.JSS": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many JSS artifacts have been converted." - }, - "do2.artifakes.THL": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many THL artifacts have been converted." - }, - "do2.artifakes.DLP": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many DLP artifacts have been converted." - }, - "do2.artifakes.PCL": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many PCL artifacts have been converted." - }, - "do2.artifakes.HGT": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many HGT artifacts have been converted." - }, - "do2.artifakes.CUS": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many CUS artifacts have been converted." - }, - "do2.artifakes.BAP": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many BAP artifacts have been converted." - }, - "do2.artifakes.HYB": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many HYB artifacts have been converted." - }, - "do2.artifakes.WGG": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many WGG artifacts have been converted." - }, - "do2.artifakes.KNH": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many KNH artifacts have been converted." - }, - "do2.artifakes.BED": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many BED artifacts have been converted." - }, - "do2.artifakes.HST": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many HST artifacts have been converted." - }, - "do2.artifakes.GGS": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many GGS artifacts have been converted." - }, - "do2.artifakes.GDE": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many GDE artifacts have been converted." - }, - "do2.artifakes.PWS": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many PWS artifacts have been converted." - }, - "do2.artifakes.OFP": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many OFP artifacts have been converted." - }, - "do2.artifakes.GGR": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many GGR artifacts have been converted." - }, - "do2.artifakes.CF1": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many CF1 artifacts have been converted." - }, - "do2.artifakes.SPS": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many SPS artifacts have been converted." - }, - "do2.artifakes.TSL": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many TSL artifacts have been converted." - }, - "do2.artifakes.SKA": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many SKA artifacts have been converted." - }, - "do2.artifakes.MDM": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many MDM artifacts have been converted." - }, - "do2.artifakes.MKY": { - "auto": 1, - "target": "players", - "category": "totals", - "description": "How many MKY artifacts have been converted." - }, - "do2.run.cards.available.EVA": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card evasion was available to purchase this run." - }, - "do2.run.cards.available.TRL": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card tread lightly was available to purchase this run." - }, - "do2.run.cards.available.LAS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card loot and scoot was available to purchase this run." - }, - "do2.run.cards.available.FRF": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card frost focus was available to purchase this run." - }, - "do2.run.cards.available.SEW": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card second wind was available to purchase this run." - }, - "do2.run.cards.available.BES": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card beast sense was available to purchase this run." - }, - "do2.run.cards.available.BST": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card bounding strides was available to purchase this run." - }, - "do2.run.cards.available.REC": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card reckless charge was available to purchase this run." - }, - "do2.run.cards.available.SPT": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card sprint was available to purchase this run." - }, - "do2.run.cards.available.NIL": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card nimble looting was available to purchase this run." - }, - "do2.run.cards.available.SAG": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card smash and grab was available to purchase this run." - }, - "do2.run.cards.available.QUI": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card quick step was available to purchase this run." - }, - "do2.run.cards.available.SUU": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card suit up was available to purchase this run." - }, - "do2.run.cards.available.ADR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card adrenaline rush was available to purchase this run." - }, - "do2.run.cards.available.EES": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card eerie silence was available to purchase this run." - }, - "do2.run.cards.available.DUR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card dungeon repairs was available to purchase this run." - }, - "do2.run.cards.available.SWA": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card swagger was available to purchase this run." - }, - "do2.run.cards.available.CHS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card chill step was available to purchase this run." - }, - "do2.run.cards.available.SPR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card speed runner was available to purchase this run." - }, - "do2.run.cards.available.EOP": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card eyes on the prize was available to purchase this run." - }, - "do2.run.cards.available.PIB": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card pirate's booty was available to purchase this run." - }, - "do2.run.cards.available.COS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card cold snap was available to purchase this run." - }, - "do2.run.cards.available.SIR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card silent runner was available to purchase this run." - }, - "do2.run.cards.available.FBS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card fuzzy bunny slippers was available to purchase this run." - }, - "do2.run.cards.available.DEF": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card deepfrost was available to purchase this run." - }, - "do2.run.cards.available.BRI": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card brilliance was available to purchase this run." - }, - "do2.run.cards.bought.1TM": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the 'buy 1 tome' was purchased this run." - }, - "do2.run.cards.bought.3TM": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the 'buy 3 tomes' was purchased this run." - }, - "do2.run.cards.bought.5TM": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the 'buy 5 tome' was purchased this run." - }, - "do2.run.cards.bought.MOC": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card moment of clarity was purchased this run." - }, - "do2.run.cards.bought.SNE": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card sneak was purchased this run." - }, - "do2.run.cards.bought.STA": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card stability was purchased this run." - }, - "do2.run.cards.bought.TRH": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card treasure hunter was purchased this run." - }, - "do2.run.cards.bought.EMS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card ember seeker was purchased this run." - }, - "do2.run.cards.bought.EVA": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card evasion was purchased this run." - }, - "do2.run.cards.bought.TRL": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card tread lightly was purchased this run." - }, - "do2.run.cards.bought.LAS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card loot and scoot was purchased this run." - }, - "do2.run.cards.bought.FRF": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card frost focus was purchased this run." - }, - "do2.run.cards.bought.SEW": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card second wind was purchased this run." - }, - "do2.run.cards.bought.BES": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card beast sense was purchased this run." - }, - "do2.run.cards.bought.BST": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card bounding strides was purchased this run." - }, - "do2.run.cards.bought.REC": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card reckless charge was purchased this run." - }, - "do2.run.cards.bought.SPT": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card sprint was purchased this run." - }, - "do2.run.cards.bought.NIL": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card nimble looting was purchased this run." - }, - "do2.run.cards.bought.SAG": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card smash and grab was purchased this run." - }, - "do2.run.cards.bought.QUI": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card quick step was purchased this run." - }, - "do2.run.cards.bought.SUU": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card suit up was purchased this run." - }, - "do2.run.cards.bought.ADR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card adrenaline rush was purchased this run." - }, - "do2.run.cards.bought.EES": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card eerie silence was purchased this run." - }, - "do2.run.cards.bought.DUR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card dungeon repairs was purchased this run." - }, - "do2.run.cards.bought.SWA": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card swagger was purchased this run." - }, - "do2.run.cards.bought.CHS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card chill step was purchased this run." - }, - "do2.run.cards.bought.SPR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card speed runner was purchased this run." - }, - "do2.run.cards.bought.EOP": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card eyes on the prize was purchased this run." - }, - "do2.run.cards.bought.PIB": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card pirates booty was purchased this run." - }, - "do2.run.cards.bought.COS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card cold snap was purchased this run." - }, - "do2.run.cards.bought.SIR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card silent runner was purchased this run." - }, - "do2.run.cards.bought.FBS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card fuzzy bunny slippers was purchased this run." - }, - "do2.run.cards.bought.DEF": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card deepfrost was purchased this run." - }, - "do2.run.cards.bought.BRI": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card brilliance was purchased this run." - }, - "do2.run.cards.bought.P2W": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card pay to win was purchased this run." - }, - "do2.run.cards.bought.TAA": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card tactical approach was purchased this run." - }, - "do2.run.cards.bought.PCP": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card pork chop power was purchased this run." - }, - "do2.run.cards.bought.STU": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card stumble was purchased this run." - }, - "do2.run.cards.bought.DUL": { - "auto": 1, - "target": "both", - "category": "current", - "description": "Whether the card dungeon lackey was purchased this run." - }, - "do2.cards.bought.1TM": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many times the 'buy 1 tome' was purchased in total." - }, - "do2.cards.bought.3TM": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many times the 'buy 3 tomes' was purchased in total." - }, - "do2.cards.bought.5TM": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many times the 'buy 5 tomes' was purchased in total." - }, - "do2.cards.bought.MOC": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card moment of clarity has been purchased in total." - }, - "do2.cards.bought.SNE": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card sneak has been purchased in total." - }, - "do2.cards.bought.STA": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card stability has been purchased in total." - }, - "do2.cards.bought.TRH": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card treasure hunter has been purchased in total." - }, - "do2.cards.bought.EMS": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card ember seeker has been purchased in total." - }, - "do2.cards.bought.EVA": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card evasion has been purchased in total." - }, - "do2.cards.bought.TRL": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card tread lightly has been purchased in total." - }, - "do2.cards.bought.LAS": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card loot and scoot has been purchased in total." - }, - "do2.cards.bought.FRF": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card frost focus has been purchased in total." - }, - "do2.cards.bought.SEW": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card second wind has been purchased in total." - }, - "do2.cards.bought.BES": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card beast sense has been purchased in total." - }, - "do2.cards.bought.BST": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card bounding strides has been purchased in total." - }, - "do2.cards.bought.REC": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card reckless charge has been purchased in total." - }, - "do2.cards.bought.SPT": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card sprint has been purchased in total." - }, - "do2.cards.bought.NIL": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card nimble looting has been purchased in total." - }, - "do2.cards.bought.SAG": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card smash and grab has been purchased in total." - }, - "do2.cards.bought.QUI": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card quick step has been purchased in total." - }, - "do2.cards.bought.SUU": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card suit up has been purchased in total." - }, - "do2.cards.bought.ADR": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card adrenaline rush has been purchased in total." - }, - "do2.cards.bought.EES": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card eerie silence has been purchased in total." - }, - "do2.cards.bought.DUR": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card dungeon repairs has been purchased in total." - }, - "do2.cards.bought.SWA": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card swagger has been purchased in total." - }, - "do2.cards.bought.CHS": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card chill step has been purchased in total." - }, - "do2.cards.bought.SPR": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card speed runner has been purchased in total." - }, - "do2.cards.bought.EOP": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card eyes on the prize has been purchased in total." - }, - "do2.cards.bought.PIB": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card pirates booty has been purchased in total." - }, - "do2.cards.bought.COS": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card cold snap has been purchased in total." - }, - "do2.cards.bought.SIR": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card silent runner has been purchased in total." - }, - "do2.cards.bought.FBS": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card fuzzy bunny slippers has been purchased in total." - }, - "do2.cards.bought.DEF": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card deepfrost has been purchased in total." - }, - "do2.cards.bought.BRI": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card brilliance has been purchased in total." - }, - "do2.cards.bought.P2W": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card pay to win has been purchased in total." - }, - "do2.cards.bought.TAA": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card tactical approach has been purchased in total." - }, - "do2.cards.bought.PCP": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card pork chop power has been purchased in total." - }, - "do2.cards.bought.STU": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card stumble has been purchased in total." - }, - "do2.cards.bought.DUL": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card dungeon lackey has been purchased in total." - }, - "do2.run.cards.played.MOC": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card moment of clarity have been played this run." - }, - "do2.run.cards.played.SNE": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card sneak have been played this run." - }, - "do2.run.cards.played.STA": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card stability have been played this run." - }, - "do2.run.cards.played.TRH": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card treasure hunter have been played this run." - }, - "do2.run.cards.played.EMS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card ember seeker have been played this run." - }, - "do2.run.cards.played.EVA": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card evasion have been played this run." - }, - "do2.run.cards.played.TRL": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card tread lightly have been played this run." - }, - "do2.run.cards.played.LAS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card loot and scoot have been played this run." - }, - "do2.run.cards.played.FRF": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card frost focus have been played this run." - }, - "do2.run.cards.played.SEW": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card second wind have been played this run." - }, - "do2.run.cards.played.BES": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card beast sense have been played this run." - }, - "do2.run.cards.played.BST": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card bounding strides have been played this run." - }, - "do2.run.cards.played.REC": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card reckless charge have been played this run." - }, - "do2.run.cards.played.SPT": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card sprint have been played this run." - }, - "do2.run.cards.played.NIL": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card nimble looting have been played this run." - }, - "do2.run.cards.played.SAG": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card smash and grab have been played this run." - }, - "do2.run.cards.played.QUI": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card quick step have been played this run." - }, - "do2.run.cards.played.SUU": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card suit up have been played this run." - }, - "do2.run.cards.played.ADR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card adrenaline rush have been played this run." - }, - "do2.run.cards.played.EES": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card eerie silence have been played this run." - }, - "do2.run.cards.played.DUR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card dungeon repairs have been played this run." - }, - "do2.run.cards.played.SWA": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card swagger have been played this run." - }, - "do2.run.cards.played.CHS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card chill step have been played this run." - }, - "do2.run.cards.played.SPR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card speed runner have been played this run." - }, - "do2.run.cards.played.EOP": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card eyes on the prize have been played this run." - }, - "do2.run.cards.played.PIB": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card pirates booty have been played this run." - }, - "do2.run.cards.played.COS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card cold snap have been played this run." - }, - "do2.run.cards.played.SIR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card silent runner have been played this run." - }, - "do2.run.cards.played.FBS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card fuzzy bunny slippers have been played this run." - }, - "do2.run.cards.played.DEF": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card deepfrost have been played this run." - }, - "do2.run.cards.played.BRI": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card brilliance have been played this run." - }, - "do2.run.cards.played.P2W": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card pay to win have been played this run." - }, - "do2.run.cards.played.TAA": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card tactical approach have been played this run." - }, - "do2.run.cards.played.PCP": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card pork chop power have been played this run." - }, - "do2.run.cards.played.STU": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card stumble have been played this run." - }, - "do2.run.cards.played.DUL": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card dungeon lackey have been played this run." - }, - "do2.run.cards.deck.total": { - "auto": 1, - "target": "shulker", - "category": "current", - "description": "How many cards are in the deck this run." - }, - "do2.run.cards.deck.commons": { - "auto": 1, - "target": "shulker", - "category": "current", - "description": "How many common cards are in the deck this run." - }, - "do2.run.cards.deck.uncommons": { - "auto": 1, - "target": "shulker", - "category": "current", - "description": "How many uncommon cards are in the deck this run." - }, - "do2.run.cards.deck.rares": { - "auto": 1, - "target": "shulker", - "category": "current", - "description": "How many rare cards are in the deck this run." - }, - "do2.run.cards.deck.legendaries": { - "auto": 1, - "target": "shulker", - "category": "current", - "description": "How many legendary cards are in the deck this run." - }, - "do2.run.cards.deck.ethereals": { - "auto": 1, - "target": "shulker", - "category": "current", - "description": "How many ethereal cards are in the deck this run." - }, - "do2.run.cards.deck.permanents": { - "auto": 1, - "target": "shulker", - "category": "current", - "description": "How many permanents cards are in the deck this run." - }, - "do2.run.cards.deck.MOC": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card moment of clarity was in the deck this run." - }, - "do2.run.cards.deck.SNE": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card sneak was in the deck this run." - }, - "do2.run.cards.deck.STA": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card stability was in the deck this run." - }, - "do2.run.cards.deck.TRH": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card treasure hunter was in the deck this run." - }, - "do2.run.cards.deck.EMS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card ember seeker was in the deck this run." - }, - "do2.run.cards.deck.EVA": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card evasion was in the deck this run." - }, - "do2.run.cards.deck.TRL": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card tread lightly was in the deck this run." - }, - "do2.run.cards.deck.LAS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card loot and scoot was in the deck this run." - }, - "do2.run.cards.deck.FRF": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card frost focus was in the deck this run." - }, - "do2.run.cards.deck.SEW": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card second wind was in the deck this run." - }, - "do2.run.cards.deck.BES": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card beast sense was in the deck this run." - }, - "do2.run.cards.deck.BST": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card bounding strides was in the deck this run." - }, - "do2.run.cards.deck.REC": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card reckless charge was in the deck this run." - }, - "do2.run.cards.deck.SPT": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card sprint was in the deck this run." - }, - "do2.run.cards.deck.NIL": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card nimble looting was in the deck this run." - }, - "do2.run.cards.deck.SAG": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card smash and grab was in the deck this run." - }, - "do2.run.cards.deck.QUI": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card quick step was in the deck this run." - }, - "do2.run.cards.deck.SUU": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card suit up was in the deck this run." - }, - "do2.run.cards.deck.ADR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card adrenaline rush was in the deck this run." - }, - "do2.run.cards.deck.EES": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card eerie silence was in the deck this run." - }, - "do2.run.cards.deck.DUR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card dungeon repairs was in the deck this run." - }, - "do2.run.cards.deck.SWA": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card swagger was in the deck this run." - }, - "do2.run.cards.deck.CHS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card chill step was in the deck this run." - }, - "do2.run.cards.deck.SPR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card speed runner was in the deck this run." - }, - "do2.run.cards.deck.EOP": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card eyes on the prize was in the deck this run." - }, - "do2.run.cards.deck.PIB": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card pirates booty was in the deck this run." - }, - "do2.run.cards.deck.COS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card cold snap was in the deck this run." - }, - "do2.run.cards.deck.SIR": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card silent runner was in the deck this run." - }, - "do2.run.cards.deck.FBS": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card fuzzy bunny slippers was in the deck this run." - }, - "do2.run.cards.deck.DEF": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card deepfrost was in the deck this run." - }, - "do2.run.cards.deck.BRI": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card brilliance was in the deck this run." - }, - "do2.run.cards.deck.P2W": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card pay to win was in the deck this run." - }, - "do2.run.cards.deck.TAA": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card tactical approach was in the deck this run." - }, - "do2.run.cards.deck.PCP": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card pork chop power was in the deck this run." - }, - "do2.run.cards.deck.DUL": { - "auto": 1, - "target": "both", - "category": "current", - "description": "How many of the card dungeon lackey was in the deck this run." - }, - "do2.trigger.logs": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Detection used to check players running /trigger. Used to display log options." - }, - "do2.trigger.version": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Detection used to check players running /trigger. Used to display Brilliance Version." - }, - "do2.trigger.map": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Detection used to check players running /trigger. Gives you the MC filled map of the game stats." - }, - "do2.trigger.playsound": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Detection used to check players running /trigger. Lets you customize the SOUND settings." - }, - "do2.trigger.gui": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Detection used to check players running /trigger. Lets you customize the GUI settings." - }, - "do2.tendriltravels": { - "auto": 0, - "target": "unknown", - "category": "unknown", - "description": "unknown" - }, - "do2.cards.available.EVA": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card evasion was available to purchase in total." - }, - "do2.cards.available.TRL": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card tread lightly was available to purchase in total." - }, - "do2.cards.available.LAS": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card loot and scoot was available to purchase in total." - }, - "do2.cards.available.FRF": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card frost focus was available to purchase in total." - }, - "do2.cards.available.SEW": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card second wind was available to purchase in total." - }, - "do2.cards.available.BES": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card beast sense was available to purchase in total." - }, - "do2.cards.available.BST": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card bounding strides was available to purchase in total." - }, - "do2.cards.available.REC": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card reckless charge was available to purchase in total." - }, - "do2.cards.available.SPT": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card sprint was available to purchase in total." - }, - "do2.cards.available.NIL": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card nimble looting was available to purchase in total." - }, - "do2.cards.available.SAG": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card smash and grab was available to purchase in total." - }, - "do2.cards.available.QUI": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card quick step was available to purchase in total." - }, - "do2.cards.available.SUU": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card suit up was available to purchase in total." - }, - "do2.cards.available.ADR": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card adrenaline rush was available to purchase in total." - }, - "do2.cards.available.EES": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card eerie silence was available to purchase in total." - }, - "do2.cards.available.DUR": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card dungeon repairs was available to purchase in total." - }, - "do2.cards.available.SWA": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card swagger was available to purchase in total." - }, - "do2.cards.available.CHS": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card chill step was available to purchase in total." - }, - "do2.cards.available.SPR": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card speed runner was available to purchase in total." - }, - "do2.cards.available.EOP": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card eyes on the prize was available to purchase in total." - }, - "do2.cards.available.PIB": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card pirates booty was available to purchase in total." - }, - "do2.cards.available.COS": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card cold snap was available to purchase in total." - }, - "do2.cards.available.SIR": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card silent runner was available to purchase in total." - }, - "do2.cards.available.FBS": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card fuzzy bunny slippers was available to purchase in total." - }, - "do2.cards.available.DEF": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card deepfrost was available to purchase in total." - }, - "do2.cards.available.BRI": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card brilliance was available to purchase in total." - }, - "do2.cards.played.MOC": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card moment of clarity has been played in total." - }, - "do2.cards.played.SNE": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card sneak has been played in total." - }, - "do2.cards.played.STA": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card stability has been played in total." - }, - "do2.cards.played.TRH": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card treasure hunter has been played in total." - }, - "do2.cards.played.EMS": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card ember seeker has been played in total." - }, - "do2.cards.played.EVA": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card evasion has been played in total." - }, - "do2.cards.played.TRL": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card tread lightly has been played in total." - }, - "do2.cards.played.LAS": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card loot and scoot has been played in total." - }, - "do2.cards.played.FRF": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card frost focus has been played in total." - }, - "do2.cards.played.SEW": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card second wind has been played in total." - }, - "do2.cards.played.BES": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card beast sense has been played in total." - }, - "do2.cards.played.BST": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card bounding strides has been played in total." - }, - "do2.cards.played.REC": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card reckless charge has been played in total." - }, - "do2.cards.played.SPT": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card sprint has been played in total." - }, - "do2.cards.played.NIL": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card nimble looting has been played in total." - }, - "do2.cards.played.SAG": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card smash and grab has been played in total." - }, - "do2.cards.played.QUI": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card quick step has been played in total." - }, - "do2.cards.played.SUU": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card suit up has been played in total." - }, - "do2.cards.played.ADR": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card adrenaline rush has been played in total." - }, - "do2.cards.played.EES": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card eerie silence has been played in total." - }, - "do2.cards.played.DUR": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card dungeon repairs has been played in total." - }, - "do2.cards.played.SWA": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card swagger has been played in total." - }, - "do2.cards.played.CHS": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card chill step has been played in total." - }, - "do2.cards.played.SPR": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card speed runner has been played in total." - }, - "do2.cards.played.EOP": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card eyes on the prize has been played in total." - }, - "do2.cards.played.PIB": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card pirates booty has been played in total." - }, - "do2.cards.played.COS": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card cold snap has been played in total." - }, - "do2.cards.played.SIR": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card silent runner has been played in total." - }, - "do2.cards.played.FBS": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card fuzzy bunny slippers has been played in total." - }, - "do2.cards.played.DEF": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card deepfrost has been played in total." - }, - "do2.cards.played.BRI": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card brilliance has been played in total." - }, - "do2.cards.played.P2W": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card pay to win has been played in total." - }, - "do2.cards.played.TAA": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card tactical approach has been played in total." - }, - "do2.cards.played.PCP": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card pork chop power has been played in total." - }, - "do2.cards.played.STU": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card stumble has been played in total." - }, - "do2.cards.played.DUL": { - "auto": 1, - "target": "both", - "category": "totals", - "description": "How many times the card dungeon lackey has been played in total." - }, - "do2.cards.price.EVA": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card evasion costs to purchase." - }, - "do2.cards.price.TRL": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card tread lightly costs to purchase." - }, - "do2.cards.price.LAS": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card loot and scoot costs to purchase." - }, - "do2.cards.price.FRF": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card frost focus costs to purchase." - }, - "do2.cards.price.SEW": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card second wind costs to purchase." - }, - "do2.cards.price.BES": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card beast sense costs to purchase." - }, - "do2.cards.price.BST": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card bounding strides costs to purchase." - }, - "do2.cards.price.REC": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card reckless charge costs to purchase." - }, - "do2.cards.price.SPT": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card sprint costs to purchase." - }, - "do2.cards.price.NIL": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card nimble looting costs to purchase." - }, - "do2.cards.price.SAG": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card smash and grab costs to purchase." - }, - "do2.cards.price.QUI": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card quick step costs to purchase." - }, - "do2.cards.price.SUU": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card suit up costs to purchase." - }, - "do2.cards.price.ADR": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card adrenaline rush costs to purchase." - }, - "do2.cards.price.EES": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card eerie silence costs to purchase." - }, - "do2.cards.price.DUR": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card dungeon repairs costs to purchase." - }, - "do2.cards.price.SWA": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card swagger costs to purchase." - }, - "do2.cards.price.CHS": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card chill step costs to purchase." - }, - "do2.cards.price.SPR": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card speed runner costs to purchase." - }, - "do2.cards.price.EOP": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card eyes on the prize costs to purchase." - }, - "do2.cards.price.PIB": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card Pirates booty costs to purchase." - }, - "do2.cards.price.COS": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card cold snap costs to purchase." - }, - "do2.cards.price.SIR": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card silent runner costs to purchase." - }, - "do2.cards.price.FBS": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card fuzzy bunny slippers costs to purchase." - }, - "do2.cards.price.DEF": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card deepfrost costs to purchase." - }, - "do2.cards.price.BRI": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the card brilliance costs to purchase." - }, - "do2.cards.price.1TM": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the 1 Tome costs to purchase." - }, - "do2.cards.price.3TM": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the 3 Tomes costs to purchase." - }, - "do2.cards.price.5TM": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "How much the 5 Tomes costs to purchase." - }, - "do2.utility.priceChecker": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Used to count how much a card costs dynamically." - }, - "do2.utility.voiceChat": { - "auto": 0, - "target": "players", - "category": "utility", - "description": "Used to check if Voice Chat mod is installed on the player." - }, - "do2.tests.playerInLocation": { - "auto": 1, - "target": "players", - "category": "utility", - "description": "Used to ensure player stays in lobby at while game isn't in progress" - }, - "do2.config.mc.levelZoneMobCount": { - "auto": 1, - "target": "$dungeon", - "category": "config", - "description": "Used to control how many mobs are in each zone." - }, - "do2.utility.playerCount": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Used to count how many players are on the server at a time." - }, - "do2.utility.randomNumberRange": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Used to determine the high value of a random number." - }, - "do2.utility.receivedJackpot": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Used to check whether a jackpot was won from the crown shops." - }, - "do2.utility.mobCountCounterTest": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Used to help count how many mobs are meant to be in each zone." - }, - "do2.utility.mobCountCounterTotal": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Used to store the count how many mobs are meant to be in each zone." - }, - "do2.utility.mobGeneration": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Used to check whether the amount of mobs generate match the mobs needed." - }, - "do2.utility.mobNamesCount": { - "auto": 1, - "target": "$dungeon", - "category": "utility", - "description": "Used to count how many names are inside a list of names." - } -}