Files

153 lines
5.6 KiB
Markdown
Raw Permalink Normal View History

2024-06-05 04:37:04 +02:00
# EndlessIDs <img src="EIDSico.png" align="right" width=150>
<sup>**[CurseForge](https://www.curseforge.com/minecraft/mc-mods/endlessids) | [Modrinth](https://modrinth.com/mod/endlessids)**</sup>
2022-07-03 20:15:37 +02:00
EndlessIDs is the unofficial successor of NotEnoughIDs, with more focus on compatibility, stability, and reaching
new limits.
2022-03-17 22:55:11 +01:00
2023-06-09 17:41:24 +02:00
## REQUIRED MODS
- [FalsePatternLib](https://github.com/FalsePattern/FalsePatternLib)
2024-06-05 04:37:04 +02:00
- [UniMixins](https://github.com/LegacyModdingMC/UniMixins)
2023-06-09 17:41:24 +02:00
- [ChunkAPI](https://github.com/FalsePattern/ChunkAPI)
2024-06-07 20:02:43 +02:00
## NotEnoughIDs world compatibility
2024-06-07 19:52:51 +02:00
EndlessIDs can open and upgrade worlds created with NotEnoughIDs without any problems (both the original and the Unofficial version).
If you notice any problems when opening NEID worlds with EndlessIDs, please open an issue!
## Comparison of the known limits
| | Vanilla | NotEnoughIDs | NEID Unofficial | EndlessIDs |
|-----------------|----------------------------------------------------|--------------|-----------------|------------|
| Block IDs | 4,096 | 32,000 | 65,536 | 16,777,216 |
| Block Metadata | 16 | 16 | 65,536 | 65,536 |
| Item IDs | 32,000 | 32,000 | 65,536 | 16,777,216 |
| Biome IDs | 256 | 256 | 256 | 65,536 |
| Entity IDs | 256 | 256 | 256 | 32,768 |
| Potion IDs | 32 | 32 | 32 | 65,536 |
| Enchantment IDs | 256 | 256 | 256 | 32,768 |
2024-09-21 12:54:14 +02:00
| DataWatcher IDs | 32 | 127 (Broken) | 127 | 65,536 |
2024-06-07 19:52:51 +02:00
| Dimension IDs | Theoretically unlimited, 4,294,967,295 in practice | Same | Same | Same |
## Mod compat
2022-03-22 13:22:38 +01:00
This mod also contains patches for the following mods:
2024-06-09 18:46:56 +02:00
<details>
<summary>Mod list</summary>
2022-07-13 18:46:53 +02:00
- AbyssalCraft
2022-12-27 18:15:38 +01:00
- Advanced Rocketry
2022-07-02 20:02:39 +02:00
- Alternate Terrain Generation
2022-07-11 01:04:40 +02:00
- Antique Atlas
2022-07-03 23:17:13 +02:00
- Anti ID Conflict
- ArchaicFix
2022-07-13 17:43:30 +02:00
- Atum
2022-07-03 00:36:57 +02:00
- Biomes O' Plenty
2022-07-12 19:50:52 +02:00
- Biome Wand
2022-08-25 22:21:39 +02:00
- BuildCraft
2022-07-23 21:39:29 +02:00
- ChromatiCraft
2024-08-06 23:46:32 +02:00
- Climate Control
2022-08-25 22:21:39 +02:00
- Compact Machines
2022-07-01 19:06:29 +02:00
- CoFH Lib
2022-07-14 23:42:17 +02:00
- Dark World
2023-04-02 12:50:42 +02:00
- Dimensional Doors
2022-07-01 19:06:29 +02:00
- DragonAPI
2022-07-13 15:58:56 +02:00
- Dynamic Surroundings
2022-12-27 18:15:38 +01:00
- Enderlicious
2022-07-23 20:39:21 +02:00
- Enhanced Biomes
2022-07-13 18:26:19 +02:00
- Erebus
2022-07-23 20:39:21 +02:00
- Extra Planets
2022-07-11 19:55:53 +02:00
- Extra Utilities
2022-07-13 20:47:09 +02:00
- Futurepack
2022-07-01 19:00:21 +02:00
- GalactiCraft
2022-07-23 20:39:21 +02:00
- Highlands
2022-07-03 23:18:52 +02:00
- Immersive Cavegen
2023-04-02 13:47:27 +02:00
- Industrial Revolution by Redstone Rebooted
2024-06-09 18:46:56 +02:00
- Matter Overdrive
2022-05-21 12:41:04 +02:00
- More Fun Quicksand Mod
2022-07-03 19:56:08 +02:00
- Nature's Compass
2022-07-14 23:42:17 +02:00
- Netherlicious
2022-12-27 18:15:38 +01:00
- Nomadic Tents
- Nostalgic World Generation
- Old World Gen
2022-08-25 22:21:39 +02:00
- Random Things
2023-04-02 13:08:27 +02:00
- Restructured
2022-07-03 19:39:34 +02:00
- Realistic Terrain Generation
2022-12-27 18:15:38 +01:00
- Realistic World Generation
2022-07-11 00:01:49 +02:00
- Thaumcraft
2024-06-07 15:45:17 +02:00
- The Lord of the Rings Mod: Legacy
2024-06-09 21:21:48 +02:00
- ThutCore/ThutMods
2022-07-13 20:09:55 +02:00
- Tropicraft
2022-07-10 23:07:02 +02:00
- Twilight Forest
2022-07-02 20:02:39 +02:00
- Underground Biomes Constructs
2022-12-27 18:15:38 +01:00
- Witchery
2022-05-21 12:41:04 +02:00
- WorldEdit
2022-03-22 13:22:38 +01:00
2024-06-09 18:46:56 +02:00
</details>
2022-07-03 20:01:26 +02:00
Mods not listed here may or may not work.
- For item/block IDs:
- A good rule of thumb is that the more invasive a mod is, the higher the chance
it's broken without a patch once the IDs exceed 4096 and 32000.
- For biome IDs:
- If a mod adds a custom world generator, it has a high chance of invoking an old vanilla method in the worldgen code.
To avoid world corruption and broken biomes, this method has been replaced with an instant crash that refers the
2023-03-31 18:23:41 +02:00
user to this GitHub repo.
2022-03-22 13:22:38 +01:00
2022-04-17 21:11:33 +02:00
If you find any crashes or incompatibilities, don't hesitate to open an issue.
2024-07-20 14:52:47 +02:00
## Depending On Metadata Increase In Another Mod
2024-09-21 12:46:44 +02:00
**NOTE:** This API is available as of version TODO of EndlessIDs.
2024-07-20 14:52:47 +02:00
2024-09-21 12:46:44 +02:00
EndlessIDs implements the common ID Extender API introduced in NotEnoughIDs Unofficial. See:
2024-07-20 14:52:47 +02:00
https://github.com/GTNewHorizons/NotEnoughIds/pull/17
The description below is an excerpt of NEID-U's readme concerning this API:
In order to use the metadata, you should not create a hard dependency on the `endlessids` Mod ID, but rather on the `idextender` Mod ID.
EndlessIDs bundles this "dummy" mod alongside itself.
Here is an example of how to use it, you could put this code in your Mod's pre-init for example:
```java
import idextender;
int maxMeta = 15;
if (Loader.isModLoaded("idextender")) {
maxMeta = (Integer) Class.forName("idextender.Metadata").getDeclaredMethod("maximumMetadata").invoke(null);
}
```
You can also query for the number of bits the metadata value is extended to, rather than the maximum value:
```java
import idextender;
int metadataBits = 4;
if (Loader.isModLoaded("idextender")){
metadataBits = (Integer) Class.forName("idextender.Metadata").getDeclaredMethod("metadataBits").invoke(null);
}
```
2024-09-21 12:54:14 +02:00
The `idextender.DataWatcher` class also exposes the extended DataWatcher count (used for entity data syncing over network)
in a similar fashion.
2024-09-21 12:46:44 +02:00
Note that these values CAN be identical to the vanilla values if the ID Extension mod implementing it has a config to
toggle itself, existence of the IDExtender class does not guarantee a fixed increase, and you should check that the
returned value is large enough for your needs.
2024-07-20 14:52:47 +02:00
If for some reason, you need to know what parent mod is providing the `idextender` mod, you can do the following, which will give you
back the Mod ID of the actual mod that has provided `idextender`. For example, `endlessids`:
```java
// This will give back the value "endlessids" which is EndlessIDs' Mod ID
String parentIDExtender = (String) Class.forName("idextender.IDExtender").getDeclaredMethod("parentModId").invoke(null);
```
For more information, see the NotEnoughIDs readme.