|
“ |
|
„ |
| — Dinnerbone on the advancements system[1] |
The popup that appears when an advancement is completed.
The popup that appears when a goal advancement is completed.
The popup that appears when special challenge advancements are completed.
Advancements are an upcoming feature set to replace achievements.
Obtaining
Advancements are completed much in the same fashion that achievements are. They can be completed in any game mode, and are obtained and saved per world. Advancements can also be granted (and revoked) using the /advancement command.
Although advancements guide players logically through the game, they are independent of each other; an advancement can be completed without having completed the advancements "before" it.
When an advancement is obtained, a sliding toast notification displays in the top right corner. The color of the header text in the notification depends on the advancement; normal advancements have yellow header text, while special "challenge" advancements have pink header text. When a final "goal" advancement is completed, the header text will display Goal Reached! instead of the typical Advancement Made! text.
Interface
The advancements interface. One advancement ("Isn't It Iron Pick") is selected.
The button to access the Advancements screen is found on the pause menu screen.
The advancement system involves several trees composed of advancements, beginning with a root advancement, and ending with goal or challenge advancements. By clicking and dragging, you can view different branches of an advancement tree. Each tree is categorized into different tabs (which are, themselves, advancements). There are currently four tabs in vanilla Minecraft (although more may possibly be added[2][3]):
- Minecraft: The heart and story of the game.
- Adventure: Adventure, exploration, and combat.
- Nether: Bring summer clothes.
- The End: Or the beginning?
Each tab has a different background with a repeating texture.
Advancement icons display a header name and description when hovered over. They only appear in a tree when the advancement before it is completed, although, as stated before, advancements can be completed in any order. The icon frames of goal advancements are more rounded, while challenge advancements have a sharper appearance. Advancement icons begin as light-gray but turn dark-golden when completed.
Extra advancements and tabs can be added and customized with the use of JSON files, as detailed below.
List of advancements
- Minecraft - The heart and story of the game
- Stone Age - Mine stone with your new pickaxe
- Getting an Upgrade - Construct a better pickaxe
- Acquire Hardware - Smelt an iron ingot
- Suit Up - Protect yourself with a piece of iron armor
- Hot Stuff - Fill a bucket with lava
- Isn't It Iron Pick - Upgrade your pickaxe
- Not Today, Thank You - Deflect an arrow with a shield
- Ice Bucket Challenge - Form and mine a block of Obsidian
- Diamonds! - Acquire diamonds
- We Need to Go Deeper - Build, light and enter a Nether Portal
- Cover Me With Diamonds - Diamond armor saves lives
- Enchanter - Enchant an item at an Enchanting Table
- Zombie Doctor - Weaken and then cure a zombie villager
- Eye Spy - Follow an Ender Eye
- The End? - Enter the End Portal
- Nether - Bring summer clothes
- A Terrible Fortress - Break your way into a Nether Fortress
- Return to Sender - Destroy a Ghast with a fireball
- Into Fire - Relieve a Blaze of its rod
- Spooky Scary Skeleton - Obtain a wither skeleton's skull
- Local Brewery - Brew a potion
- Withering Heights - Summon the Wither
- Bring Home the Beacon - Construct and place a Beacon
- Beaconator - Bring a beacon to full power
- The End - Or the beginning?
- Free the End - Good luck
- The Next Generation - Hold the Dragon Egg
- Remote Getaway - Escape the island
- The End... Again... - Respawn the ender dragon
- You Need a Mint - Collect dragon's breath in a glass bottle
- The City at the End of the Game - Go on in, what could happen?
- Sky's the Limit - Find an Elytra
- Great View From Up Here - Levitate for at least 30 seconds
- Adventure - Adventure, exploration, and combat
- Monster Hunter - Kill any hostile monster
- What a Deal! - Successfully trade with a Villager
- Sweet dreams - Change your respawn point
- Take Aim - Shoot something with a bow and arrow
- Monsters Hunted - Kill one of every hostile monster
- Adventuring Time - Discover every biome
- Sniper duel - Kill a skeleton with an arrow from more than 50 meters
JSON Format
The advancements in the 'data/advancements' folder of a Minecraft world store the advancement data for that world as separate JSON files:
One of these JSON files is structured according to the following format: For story advancements:
- The root tag.
- display: The optional display data.
- icon: An item or block id to represent the icon in the advancements window.
- title: The title for this story advancement.
- title: A JSON text component (containing text and formatting like used in /tellraw and various other commands)
- frame: The optional type of frame for the icon.
challengefor a tile with a more fancy spiked border as it is used for the kill all mobs advancement,goalfor a tile with a rounded border as it is used for the full beacon advancement,taskfor a normal tile (default). - background: The optional directory for the background to use in this advancement tab (only for the root advancement).
- description: The description of the advancement
- parent: The optional parent advancement directory of this advancement (does not apply for the root advancement).
- criteria: The required criteria that have to be met.
- <criteriaName>: A name given to the criteria (can be any string, must be unique).
- trigger: The trigger for this advancement; specifies what the game should check for the advancement.
- conditions: All the conditions that need to be met when the trigger gets activated.
- <criteriaName>: A name given to the criteria (can be any string, must be unique).
- requirements: An optional list of requirements (all the <criteriaName>). If all criteria are required, this may be omitted. With multiple criteria: requirements contains a list of lists with criteria (all criteria need to be mentioned). If all the criteria within any of the lists is met, it will complete the advancement. (basically AND grouping and OR grouping the criteria)
- rewards: An optional collection of the rewards provided when this advancement is obtained.
- recipes: A list of crafting recipes (strings).
- loot: A list of loot tables (strings).
- experience: An amount of experience.
- commands: A list of commands (strings). These are run in order by the player, with full privileges.
- display: The optional display data.
Triggers
| Trigger Name | Triggered when: | Available Conditions |
|---|---|---|
| minecraft:bred_animals | Player breeds 2 animals | "parent", "partner", "child" |
| minecraft:brewed_potion | Player brews a potion | "potion" |
| minecraft:construct_beacon | Player changes the structure of a beacon. (When the beacon updates itself) | "level" |
| minecraft:cured_zombie_villager | Player cures a zombie villager | "zombie", "villager" |
| minecraft:enchanted_item | Player enchants an item through an enchanting table (does not get triggered through an anvil, or through commands) | "item", "levels" |
| minecraft:enter_block | Player enters a block (such as a portal) player needs to be standing in the same block space as the block | "block", "state" |
| minecraft:entity_killed_player | Entity kills a player | "entity" |
| minecraft:impossible | Only using commands | |
| minecraft:inventory_changed | Any changes happen to the player's inventory. | "items", "slots" |
| minecraft:item_durability_changed | Any item being damaged in any form. | "item", "durability", "delta" |
| minecraft:location | Checks every 20 ticks (1 second) where the player is | "position", "biome", "feature" |
| minecraft:player_damaged | Player receives damage | "damage" |
| minecraft:player_hurt_entity | Player hurts an entity (including itself) | "damage" |
| minecraft:player_killed_entity | Player kills an entity | "entity" |
| minecraft:recipe_unlocked | Player unlocks a recipe (using a knowledge book for example) | "recipe" |
| minecraft:slept_in_bed | Player enters a bed | "location" |
| minecraft:summoned_entity | Player summons an entity through for example wither skulls (needs to yet be tested thoroughly, e.g. will it work when spawning from dispenser, using spawn eggs, with pumpkins, ender dragon, etc.) | "entity" |
| minecraft:used_ender_eye | Player uses an ender eye (in a world where strongholds generate) | "distance" |
| minecraft:villager_trade | Player trades with a villager | "villager", "item" |
Conditions
Available conditions are listed below:
- conditions:
- biome: The biome the player is currently in.
- block: A block ID.
- child:
- type: An entity ID.
- damage:
- blocked: Checks if the damage was successfully blocked.
- bypasses_armor: Checks if the damage bypasses the armor of a player.
- bypasses_invulnerability: Checks if the damage bypasses the invulnerability status of a player.
- bypasses_magic: Checks if the damage is caused by starvation.
- dealt: Checks the amount of incoming damage against the player before damage reduction.
- dealt
- min: Minimum value.
- max: Maximum value.
- is_explosion: Checks if the damage originates from an explosion.
- is_fire: Checks if the damage originates from fire.
- is_magic: Checks if the damage originates from magic.
- is_projectile: Checks if the damage originates from a projectile.
- source_entity: Checks the entity that dealt damage.
- type: An entity ID.
- taken: Checks the amount of incoming damage against the player after damage reduction.
- taken
- min: Minimum value.
- max: Maximum value.
- distance: The distance to an origin.
- distance
- min: Minimum value.
- max: Maximum value.
- entity:
- type: An entity ID.
- distance: (same as above, trigger dependant)
- feature: Name of a structure (see /locate command)
- item: An item.
- count: Amount of the item.
- data: Data of the item.
- enchantments: List of enchantments.
- An enchantment
- enchantment: An enchantment ID.
- levels: The level of the enchantment.
- levels
- min: Minimum value.
- max: Maximum value.
- An enchantment
- item: An item ID.
- potion: A brewed potion ID.
- items: A list of items.
-
- count: Amount of the item.
- data: Data of the item.
- enchantments: List of enchantments.
- An enchantment
- enchantment: An enchantment ID.
- levels: The level of the enchantment.
- levels
- min: Minimum value.
- max: Maximum value.
- An enchantment
- item: An item ID.
- potion: A brewed potion ID.
-
- level: The tier of beacon.
- level
- min: Minimum value.
- max: Maximum value.
- levels: The levels spent on an enchantment.
- levels
- min: Minimum value.
- max: Maximum value.
- parent: A parent.
- type: An entity ID.
- partner: A partner (the entity the parent above was bred with, useful for checking horses + donkey = mule breeding)
- type: An entity ID.
- position
- x: The x position.
- x
- min: Minimum value.
- max: Maximum value.
- y: The y position.
- y
- min: Minimum value.
- max: Maximum value.
- z: The z position.
- z
- min: Minimum value.
- max: Maximum value.
- potion: A brewed potion ID.
- recipe: A recipe.
- state: The blockstates of a block.
- <state_name>: A single blockstate, with the key name being the state name and the value being the required value of that state.
- slots
- empty: The amount of slots empty in the inventory.
- empty
- min: Minimum value.
- max: Maximum value.
- full: The amount of slots completely filled (stacksize) in the inventory.
- full
- min: Minimum value.
- max: Maximum value.
- occupied: The amount of slots occupied in the inventory.
- occupied
- min: Minimum value.
- max: Maximum value.
- villager: information stored about the villager upon conversion from a zombie.
- distance
- zombie: information stored about the zombie upon conversion to a villager.
- distance
History
| upcoming | |||||
|---|---|---|---|---|---|
1.12{{Extension DPL}}<ul><li>[[Ankle Monitor|Ankle Monitor]]<br/>{{Joke feature}}
{{Item
| title = Ankle Monitor
| image = Ankle Monitor.png
| renewable = No
| stackable = Yes (64)
}}
The '''Ankle monitor''' was a joke foot item.
== Usage ==
Ankle monitors were equipped in the boots slot. In survival mode, when equipped, it could not be taken off. However, players in Creative mode are unaffected.
When equipped, the player would be afflicted with {{EffectLink|Slowness}} I.
During the night, being a certain number of blocks from the world spawn, above a certain minimum,{{checkthecode|how much?}} would prompt the following message in chat: "CURFEW WARNING! You are violating your house arrest! Get back by [distance] meters!"
If in [[the Nether]] or [[the End]], a different set of messages would be cycled through which can be seen in the section below.
=== Nether and End messages ===
* CURFEW WARNING! You are violating your house arrest! Uuuh... where are you anyway?
* CURFEW WARNING! Hello, are you there?
* CURFEW WARNING! I'm sure you have important things to do, but you need to go back!
* CURFEW WARNING! We're lonely back home!
* CURFEW WARNING! By "we" I mean I. I'm lonely.
* CURFEW WARNING! Ok enough games... GET BACK RIGHT NOW!
* CURFEW WARNING! LAST WARNING!
* CURFEW WARNING! LASTEST WARNING (really now)
* CURFEW WARNING! ...
* CURFEW WARNING! So... Where are you?
* CURFEW WARNING! Having a good day?
* CURFEW WARNING! Did you see that monster over there?
* CURFEW WARNING! Give it a whack, if you would be so kind.
* CURFEW WARNING! Teheee...
* CURFEW WARNING! Ok, enough of this!
* CURFEW WARNING! Last straw!
* CURFEW WARNING! Now you die.
* CURFEW WARNING! Boom!
* CURFEW WARNING! Hehe, fun right?
* CURFEW WARNING! Ok, you will not hear anything more from me now!
* CURFEW WARNING! You'll be as lonely as I am.
* CURFEW WARNING! How does that feel?
* CURFEW WARNING! I know, I'll wipe my memory. That way, I can start over!
* CURFEW WARNING! *bzzzzttt*
== Sounds ==
{{Sound table
|sound=Robot1arm1.ogg
|sound2=Robot1arm2.ogg
|sound3=Robot1arm3.ogg
|sound4=Robot1arm4.ogg
|source=dependent
|subtitle=''None''
|description=When a notification is displayed
|id=item.ankle_monitor.warning
|translationkey=''None''
|volume=1.0
|pitch=1.0
|distance=16
|foot=1}}
== Data values ==
=== ID ===
{{ID table
|shownumericids=y
|showforms=y
|generatetranslationkeys=java
|displayname=Ankle Monitor
|spritetype=item
|nameid=ankle_monitor
|id=501
|form=item
|translationkey=item.ankleMonitor.name
|foot=1}}
== History ==
{{History|java}}
{{History||1.RV-Pre1|[[File:Ankle_Monitor_(item).png|32px]] [[File:Ankle Monitor.png|32px]] Added ankle monitors.}}
{{History||1.11|snap=16w39a|The inability to remove ankle monitors was somewhat implemented into the canonical game through the addition of [[Curse of Binding]].<ref>{{ytl|Vm6oplvyyh0|t=3m31s}}</ref>}}
{{History|foot}}
== Issues ==
Ankle monitors are an unsupported [[item]] due to being an [[Wikipedia:April Fools' Day|April Fools']] joke, and therefore such issues relating to them will not be fixed.
== Gallery ==
<gallery>
TechGear.png|A [[player]] wearing the gear featured in this [[wikipedia:April Fools' Day|April Fools']] joke version.
</gallery>
==References==
{{Reflist}}
{{Items}}
{{Jokes}}
[[Category:Non-renewable resources]]
[[Category:Joke items]]
[[es:Ankle monitor]]</li><li>[[Copper Ingot|Copper Ingot]]<br/>{{About|the ingot|the ore|Copper Ore|the mineral block|Block of Copper}}
{{Item
| image = Copper Ingot.png
| renewable = Yes
| stackable = Yes (64)
}}
'''Copper ingots''' are [[metal]] ingots obtained from smelting [[raw copper]] or killing [[drowned]].
== Obtaining ==
=== Crafting ===
{{Crafting
|Block of Copper;Waxed Block of Copper|Output=Copper Ingot,9
|type=Miscellaneous
}}
=== Smelting ===
Copper ingots can be obtained by smelting [[raw copper]] in a [[furnace]] or [[blast furnace]], as well as the ore itself if mined using [[Silk Touch]].
{{Smelting
|head=1
|Raw Copper
|Copper Ingot
|0.7
}}
{{Smelting
|foot=1
|Copper Ore; Deepslate Copper Ore
|Copper Ingot
|0.7
}}
=== Mob loot ===
==== Drowned ====
When killed by a [[player]] or a tamed [[wolf]], a [[drowned]] has a 11% ({{frac|11|100}}) chance of dropping a copper ingot. With the [[Looting]] enchantment, the chance can be increased to 13% ({{frac|13|100}}) with Looting I, 15% ({{frac|3|20}}) with Looting II, and 17% ({{frac|17|100}}) with Looting III.
== Usage ==
=== Crafting ingredient ===
{{crafting usage}}
=== Smithing ingredient ===
{{Smithing
|head=1
|ingredients=Any Armor Trim +<br/>Any Armor Piece + <br/>Copper Ingot
|Any Armor Trim Smithing Template
|Netherite Chestplate
|Copper Ingot
|Copper Trim Netherite Chestplate
|showdescription=1
|description = All armor types can be used in this recipe,<br/>a netherite chestplate is shown as an example.<br/>
|tail=1
}}
;Trim color palette
The following color palette is shown on the designs on trimmed armor:
*{{TrimPalette|copper ingot}}
== Data values ==
=== ID ===
{{edition|java}}:
{{ID table
|edition=java
|showforms=y
|generatetranslationkeys=y
|displayname=Copper Ingot
|spritetype=item
|nameid=copper_ingot
|form=item
|foot=1}}
{{edition|bedrock}}:
{{ID table
|edition=bedrock
|shownumericids=y
|showforms=y
|notshowbeitemforms=y
|generatetranslationkeys=y
|displayname=Copper Ingot
|spritetype=item
|nameid=copper_ingot
|form=item
|id=504
|foot=1}}
== History ==
{{History|java}}
{{History||1.17|snap=20w45a|[[File:Copper Ingot JE1.png|32px]] Added copper ingots.}}
{{History|||snap=20w46a|[[File:Copper Ingot JE2 BE1.png|32px]] The texture of copper ingots has been changed.|Crafting copper ingots from and into copper blocks now outputs/requires only 4 ingots.}}
{{History|||snap=21w05a|[[Drowned]] can now drop copper ingots when killed instead of [[gold ingots]], making copper ingots renewable.}}
{{History|||snap=21w10a|Copper ingots can now be smelted from [[deepslate copper ore]].}}
{{History|||snap=21w14a|Copper ingots can now be smelted from [[raw copper]].}}
{{History|||snap=21w17a|The amount of copper ingots required to make a [[block of copper]] has been changed back to 9.}}
{{History||1.17.1|snap=Pre-release 1|Increased the chance of [[drowned]] dropping a copper ingot from 5% to 11% and the increase of this chance for each level of [[Looting]] enchantment from 1% to 2% to match {{el|be}}.}}
{{History||1.20<br>(Experimental)|link=1.19.4|snap=23w04a|Copper ingots can now be used as an armor trim material.}}
{{History|||snap=1.19.4 Pre-release 1|Copper ingots can now be used to craft [[brush]]es.}}
{{History|bedrock}}
{{History||Caves & Cliffs (experimental)|link=Bedrock Edition 1.17.0|snap=beta 1.16.210.57|[[File:Copper Ingot JE2 BE1.png|32px]] Added copper ingots.}}
{{History||1.17.0|snap=beta 1.17.0.50|Copper ingots can now be used to craft [[spyglass|spyglasses]].}}
{{History|||snap=beta 1.17.0.52|Copper ingots are now available without enabling [[experimental gameplay]].}}
{{History|||snap=beta 1.17.0.54|The amount of copper ingots required to make a [[block of copper]] has been changed to 9.}}
{{History||Vanilla Experiments (experimental)|link=1.18.30|snap=beta 1.18.30.26|Copper ingots can now be used to craft copper horns.}}
{{History||1.19.0|snap=beta 1.19.0.24|Copper ingots can no longer be used to craft copper horns, as copper horns have been removed.}}
{{History||1.20.0<br>(Experimental)|link=Bedrock Edition 1.19.80|snap=beta 1.19.80.20|Copper ingots can now be used to craft [[brush]]es.}}
{{History|||snap=beta 1.19.80.21|Copper ingots can now be used as an armor trim material.}}
{{History|foot}}
== Issues ==
{{Issue list}}
== External Links ==
*[https://www.minecraft.net/en-us/article/taking-inventory--copper-ingot Taking Inventory:Copper Ingot] – Minecraft.net on December 22, 2022
{{Items}}
[[Category:Renewable resources]]
[[de:Kupferbarren]]
[[es:Lingote de cobre]]
[[fr:Lingot de cuivre]]
[[it:Lingotto di rame]]
[[ja:Copper Ingot]]
[[ko:구리괴]]
[[pl:Sztabka miedzi]]
[[pt:Barra de cobre]]
[[ru:Медный слиток]]
[[uk:Мідний злиток]]
[[zh:铜锭]]</li></ul> | February 16, 2017 | Dinnerbone tweets that he had spent an entire day designing "a new thing" with Darngeek. | |||
| February 20, 2017 | The design on "this thing" is now done and can begin to be implemented; he later hints at the feature's name.[4] | ||||
| February 22, 2017 | He states that he is "advancing" on the feature; "So. Many. Json. Files." he adds. | ||||
Later that day he states that the project is growing bigger, and that he may need a command "even more complicated than /scoreboard" | |||||
| March 06, 2017 | The backend of the mysterious feature is finished, but the UI needs work, he tweets. | ||||
| "I made a tabthulhu today," he later adds,[5] indicating this feature may use a large number of tabs. | |||||
| March 13, 2017 | He again references the name of the feature in a tweet, stating that he is almost done with "this new feature advancement". | ||||
| March 14, 2017 | He tweets that the UI is now working, and that the project took many days and a few research papers to accomplish. | ||||
| March 22, 2017 | The feature now "awards players with things", he states while making another reference to the feature name. | ||||
| March 23, 2017 | Dinnerbone states that the feature requires around 500 JSON files. | ||||
| He later tweets a teaser of what the feature holds,[6] though it is hidden behind an encrypted .zip file disguised as a .png image, which he clarifies in later tweets.[7][8][9] This .zip file contains custom recipe JSON files. | |||||
| He posts another encrypted .zip file soon afterwards, containing a few more recipes.[10] | |||||
| March 24, 2017 | "A deafening metallic condor keeps distracting me", Dinnerbone states. Users quickly pinpointed this bizarre message to this Gfycat URL officially showcasing advancements for the first time. | ||||
| He reveals that the UI can have several tabs with advancement trees that are themselves advancements.[11] He clarifies that that's what he meant by "tabthulhu."[12] | |||||
| All of the UI is data-driven, including positioning and layout, with no hardcoded data or positions.[13] | |||||
| 17w13a | Advancements added. | ||||
| 17w14a | Added new advancements, including a new "adventure" tab. | ||||
| Added new notifications for when players advance, which have a sliding effect, and come in two colors: yellow for normal advancements, and pink for special challenges. | |||||
| 17w15a | Added the description of an advancement & changed the title of some advancements. | ||||
| 17w16b | Added trigger minecraft:item_durability_changed. | ||||
| 17w17a | Added new advancements and two new tabs: "The End" and "Nether" | ||||
Added trigger levitation. | |||||
Added feature condition to the location trigger. | |||||
| Advancements can now execute commands when achieved. | |||||
| Advancement icons now allow data values. | |||||
Added five modifiers to the /advancement grant and /advancement revoke commands: "everything", "from", "until", "through", and "only". | |||||
| 17w17b | The default advancements now all receive their titles and descriptions from the localization files. | ||||
| Added a new number display to track progress while completing certain advancements | |||||
Added the changed_dimension trigger, which takes two optional conditions: to and from, both being strings that accept "overworld", "the_nether", or "the_end". | |||||
The "location" shared object has a new dimension string (same values as above). | |||||
Issues
Issues relating to "Advancement" are maintained on the bug tracker. Report issues there.
Gallery
References
- ↑ https://www.reddit.com/r/Minecraft/comments/64pk6r/dinnerbone_working_on_giving_advancements/dg4uiou?context=1
- ↑ "The tabs are alternate trees that are themselves advancements too. We support a lot, but we'll use 4/5 in vanilla. http://media.dinnerbone.com/uploads/2017-03/screenshots/24_09-23-41_rYLfqg0Q52.png" – @Dinnerbone (Nathan Adams) on X, March 24, 2017
- ↑ "4 or 5 tabs. Probably: "mine & craft", "nether", "end", "combat", "engineering" or some variant of." – @Dinnerbone (Nathan Adams) on X, March 27, 2017
- ↑ "Getting this implemented in a nice way would be a real advancement for the game." – @Dinnerbone (Nathan Adams) on X, February 20, 2017
- ↑ "I made a tabthulhu at work today. This is an interesting project!" – @Dinnerbone (Nathan Adams) on X, March 6, 2017
- ↑ "This is a super big spoiler of what I'm working on. Totally unfinished and may change a lot, but gives you an idea. http://media.dinnerbone.com/uploads/2017-03/screenshots/23_15-00-52_ttcfj9tDnV.png" – @Dinnerbone (Nathan Adams) on X, March 23, 2017
- ↑ "(No I'm not adding emoji.)" – @Dinnerbone (Nathan Adams) on X, March 23, 2017
- ↑ "(P.s. there was more to that picture than meets the eye. May need a bit of trickery.)" – @Dinnerbone (Nathan Adams) on X, March 23, 2017
- ↑ "Did the filesize seem a bit big?" – @Dinnerbone (Nathan Adams) on X, March 23, 2017
- ↑ "Okay so I think my webserver proxy messed that up. Technology is difficult. Here's a more fun image, in a zip: http:// media.dinnerbone.com/uploads/2017-0 3/screenshots/23_15-00-52_ttcfj9tDnV.zip" – @Dinnerbone (Nathan Adams) on X, March 23, 2017
- ↑ "The tabs are alternate trees that are themselves advancements too. We support a lot, but we'll use 4/5 in vanilla. http://media.dinnerbone.com/uploads/2017-03/screenshots/24_09-23-41_rYLfqg0Q52.png" – @Dinnerbone (Nathan Adams) on X, March 24, 2017
- ↑ "(Thus "tabthulu" tweets from a few weeks back. :D)" – @Dinnerbone (Nathan Adams) on X, March 24, 2017
- ↑ "Also worth noting: all of that UI is data driven. Positioning and layout included. No hardcoded data in UI, no hardcoded positions in data." – @Dinnerbone (Nathan Adams) on X, March 24, 2017


