
Effective Nov. 2022, Geolosys will no longer receive updates
Old versions will continue to work exactly as they do now, but Geolosys has become a chore to maintain.
Want to take it over? Reach out to me on Twitter or My Mods' Discord Server. See Full Tweet
Overview
Geolosys is a mod-compatibility-first Ore Generation overhaul mod that integrates Geological Systems into Minecraft. Geolosys is highly configurable via Datapacks and comes with a pre-defined set of default resources to work with a large majority of tech mods!
Learning More
For starters, the in-game field manual can teach players all they'll need to know about generation, Pluton types, resources and more. On top of that, the wiki is full of even more information for mod developers, as well as our incredible community over on Discord!
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 2d ago | 1 | ||||
| 11d ago | 1 | ||||
| 14d ago | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 | ||||
| last yr. | 1 |
## 8.0.1
### Fixed
- Broken tags across the board
### Changed
- Small Internal Refactors
- Updated Creative Tab Ordering
- Updated Nether Ore Textures
## 8.0.0
It's finally here! After way too long, I finally got around to getting the 1.21.1 port said and done. With it are a few
changes and known limitations that feel worth bringing up :)
The changes it took to get here were also really big, so I may have forgotten something. Apologies in advance if I did -
I'm only human (no really, AI had nothing to do with my code)
### Added:
- New
geolosys:ignored_by_propickBlock Tag - Blocks in this tag are entirely ignored by the Prospector's Pick. By default this tag is ignored, but if you want
- New
geolosys:plant_placeableBlock Tag - Defines what blocks a given plant block (just Rhododendron in Geolosys) can be placed
- New
default_deposit_matchersBlock Tag - This replaces the old
DEFAULT_REPLACEMENT_MATSconfig option, but is a valid tag - This is used when
replacerTagisn't defined for a given deposit (see changes below for more onreplacerTag)
### Removed:
- Patchouli support and optional dependency
- With the rise of KubeJS, pack makers are more and more frequently making modifications to the default deposit-set,
for it entirely.
- This, of course, means that the
Field Manualhas been removed - Other mod compatability
- Again, with datapacks or KubeJS, you can add Certus/Black quartz drops to Quartz, Yellorium drops to Autunite, and
could use on their own :)
### Changed:
- The Deposit format has changed a _teeny_ bit**
- One new, **required** field has been added:
averageSamplesPerChunk - This controls how many samples will try to be placed in a given chunk for a deposit
- The math behind how this is used is:
python
range = averageSamplesPerChunk / 2
min = averageSamplesPerChunk - range
max = averageSamplesPerChunk + range
samples_to_place = random(min, max)
`
- One new, optional field has been added:
replacerTagThis is a string field which points to a tag you define. As such, it should start with #, for example #geolosys:autunite_ore_can_replace
- If you'll recall, your deposit ore blocks look something like
"default": [{chance, block}...], "minecraft:deepslate": [{chance, block}...]
This tag is now used to check if an ore block can be placed - if block to be replaced (target) has the
replacerTag block tag, then the ore can replace this target. Of course, if you specify a key (like
"minecraft:deepslate" in the example above) then the ore can replace _that_ target too.
- This is mostly just another option for you to be able to further customize how ores generate.
- The Prospector's Pick now has a fixed 250 durability (same as Iron Tools)
- This is due to the nature of the new NeoForge config loading order
- There are ways around this using just datapacks - you can set the result for the Prospector's Pick recipe to yield
a geolosys:prospectors_pick with the component Unbreakable: 1
### Known Bugs:
- The in-game NeoForge config is not set up
- This will be set up in a future release, but I figured _no_ in-game config was better than one with broken text
and missing Internationalization.
### API Changes:
- The static
GeolosysAPI.plutonRegistry instance has been renamed GeolosysAPI.DEPOSIT_REGISTRYIDeposit is gone - it has been replaced with an abstract parent Deposit classYou'll need to initialize the superclass in your constructor. In exchange, you get a _ton_ of methods pre-implemented for you, like onGenerationComplete, canPlaceInBiome, getOre and more!
Deposit::afterGen has been renamed Deposit::onGenerationCompleteCommonDepositData` has been added to help with serializing and deserializing common attributes across all deposits, like Y Min and Max, Ore and Sample Blocks, Generation Weight, etc.## 8.0.0
It's finally here! After way too long, I finally got around to getting the 1.21.1 port said and done. With it are a few
changes and known limitations that feel worth bringing up :)
The changes it took to get here were also really big, so I may have forgotten something. Apologies in advance if I did -
I'm only human (no really, AI had nothing to do with my code)
### Added:
- New
geolosys:ignored_by_propickBlock Tag - Blocks in this tag are entirely ignored by the Prospector's Pick. By default this tag is ignored, but if you want
- New
geolosys:plant_placeableBlock Tag - Defines what blocks a given plant block (just Rhododendron in Geolosys) can be placed
- New
default_deposit_matchersBlock Tag - This replaces the old
DEFAULT_REPLACEMENT_MATSconfig option, but is a valid tag - This is used when
replacerTagisn't defined for a given deposit (see changes below for more onreplacerTag)
### Removed:
- Patchouli support and optional dependency
- With the rise of KubeJS, pack makers are more and more frequently making modifications to the default deposit-set,
for it entirely.
- This, of course, means that the
Field Manualhas been removed - Other mod compatability
- Again, with datapacks or KubeJS, you can add Certus/Black quartz drops to Quartz, Yellorium drops to Autunite, and
could use on their own :)
### Changed:
- The Deposit format has changed a _teeny_ bit**
- One new, **required** field has been added:
averageSamplesPerChunk - This controls how many samples will try to be placed in a given chunk for a deposit
- The math behind how this is used is:
python
range = averageSamplesPerChunk / 2
min = averageSamplesPerChunk - range
max = averageSamplesPerChunk + range
samples_to_place = random(min, max)
`
- One new, optional field has been added:
replacerTagThis is a string field which points to a tag you define. As such, it should start with #, for example #geolosys:autunite_ore_can_replace
- If you'll recall, your deposit ore blocks look something like
"default": [{chance, block}...], "minecraft:deepslate": [{chance, block}...]
This tag is now used to check if an ore block can be placed - if block to be replaced (target) has the
replacerTag block tag, then the ore can replace this target. Of course, if you specify a key (like
"minecraft:deepslate" in the example above) then the ore can replace _that_ target too.
- This is mostly just another option for you to be able to further customize how ores generate.
- The Prospector's Pick now has a fixed 250 durability (same as Iron Tools)
- This is due to the nature of the new NeoForge config loading order
- There are ways around this using just datapacks - you can set the result for the Prospector's Pick recipe to yield
a geolosys:prospectors_pick with the component Unbreakable: 1
### Known Bugs:
- The in-game NeoForge config is not set up
- This will be set up in a future release, but I figured _no_ in-game config was better than one with broken text
and missing Internationalization.
### API Changes:
- The static
GeolosysAPI.plutonRegistry instance has been renamed GeolosysAPI.DEPOSIT_REGISTRYIDeposit is gone - it has been replaced with an abstract parent Deposit classYou'll need to initialize the superclass in your constructor. In exchange, you get a _ton_ of methods pre-implemented for you, like onGenerationComplete, canPlaceInBiome, getOre and more!
Deposit::afterGen has been renamed Deposit::onGenerationCompleteCommonDepositData` has been added to help with serializing and deserializing common attributes across all deposits, like Y Min and Max, Ore and Sample Blocks, Generation Weight, etc.## 7.0.11
### Fixed:
- Patchouli incompatibility
## 7.0.10
- Port of 7.0.10 from 1.19.2**
## 7.0.14
### Added:
- The ability for
samplesfield to be entirely absent from your deposit
## 7.0.13
### Fixed:
- Recipe registration for the Field Manual always occurring, even if Patchouli isn't installed
## 7.0.12
### Fixed:
- Being unable to set the
samplesarray to empty - This fix now permits you to use an empty array when you don't want any samples
- Coal Items not being smeltable
- Incompatibility with C2ME due to writing to stale chunks
## 7.0.11
### Fixed:
- Patchouli incompatibility
## 7.0.10
- Port of 7.0.10 from 1.19.2**
## 7.0.13
### Fixed:
- Recipe registration for the Field Manual always occurring, even if Patchouli isn't installed
## 7.0.12
### Fixed:
- Being unable to set the
samplesarray to empty - This fix now permits you to use an empty array when you don't want any samples
- Coal Items not being smeltable
- Incompatibility with C2ME due to writing to stale chunks
## 7.0.11
### Fixed:
- Patchouli incompatibility
## 7.0.10
- Port of 7.0.10 from 1.19.2**
## 7.0.12
### Fixed:
- Being unable to set the
samplesarray to empty - This fix now permits you to use an empty array when you don't want any samples
- Coal Items not being smeltable
- Incompatibility with C2ME due to writing to stale chunks
## 7.0.11
### Fixed:
- Patchouli incompatibility
## 7.0.10
- Port of 7.0.10 from 1.19.2**
## 7.0.11
### Fixed:
- Patchouli incompatibility
## 7.0.10
- Port of 7.0.10 from 1.19.2**
## 7.0.10
- Port of 7.0.10 from 1.19.2**