# Endless City v2.0.0 - Primary
**NOTE: YOU CANNOT UPDATE FROM v1.0.0!!!**
### <a name=additions></a>Additions
- Stone and tuff layers below the dirt
- Revamped deepslate region (did exist in 1.0, but wasn't accessible), including new features
- Strongholds and trial chambers generate
- Copper ore blobs and ore veins (thereby also adding access to granite)
### <a name=changes></a>Changes
- All structures and road tiles are now fully data-driven format, including weighted randomisation, allowing for easy expansion by users.
- Tutorial file included in the datapack bundle.
- Tiles have 6 variants - __empty__, __dead-end__, __straight__, __corner__, __t-junction__, and __cross__.
- All tiles must be the same size.
- Tile road and terrain blocks should be included in their relevant tags if new tiles are added.
- Road marker entities must still be used to dictate how and where buildings spawn. (Helper datapack to be released soon)
- Buildings have 6 categories - __small__, __medium__, __long__, __large__, __side decor__ and __arch decor__. However, there is no technical constraint on any of these categories - each one simply links to different road marker entities. If the roads are overriden and markers placed differently, these categories can be utilised differently, at user discretion.
- There is however a defined decay order through the building (not decoration) categories, used to place smaller structures where larger ones cannot fit. This order is __long__ > __large__ > __medium__ > __small__.
- Post-processors on the structures are also data-driven, allowing for post-generation block replacement.
- `replace_random`: replaces the given block using a randomly selected block from the provided `blocks` list.
- `replace_random_rotated`: replaces the given block using a randomly selected block from the provided `blocks` list, and gives it one of 4 blockstates defined in the second list (`data`).
- NOTE - see [Known Issue #2](#known_issues)
- Gold buildings provide a random wood log, as well as the chance for skeleton or wither skeleton skulls via a vault rather than as placed blocks to improve the multiplayer experience.
- The keys for these vaults can be found in the stone buildings.
### <a name=updates></a>Updates
- Updated to 1.21 & 1.21.1
### <a name=fixes></a>Fixes
- Tried to fix [Known Issue #1](#known_issues) as best as possible.
### <a name=known_issues></a>Known Issues
1. Rarely, at world creation, generating the city can fail. Just re-try, it works 99% of the time. This issue is seemingly seed-dependent, so if it happens make sure to just generate a completely new world.
2. `replace_random_rotated` post-processors do not support blocks with extra blockstate data provided (unless it is provided as part of the `data` list). For instance, you couldn't have the entry `minecraft:beehive[honey_level=5]` in the `blocks` list, and then also provide the rotations in the `data` list, as the two would conflict.
### <a name=modules></a>Supported Modules
- No modules are supported yet. Minor versions will be released as we release official modules, and as community made modules are added to official support.
### <a name=versions></a>Other Versions
This pack is INCOMPATIBLE with other versions.
- [Lite](https://modrinth.com/project/endless-city-lite)
- [Legacy](https://modrinth.com/datapack/endless-city-legacy)
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }