Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
2No2Name committed Jan 24, 2025
1 parent a958e5d commit 1faa526
Showing 1 changed file with 24 additions and 21 deletions.
45 changes: 24 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# Worldthreader Mod

This project is a free and open-source Minecraft mod which optimizes the processing of multiple dimensions, by ticking
dimensions in parallel. Thread safety is ensured, with fallbacks to serial execution if no other solution can be found.
After each tick the dimensions wait for each other to ensure that everything stays in sync, avoiding breaking many
advanced redstone contraptions. Mod incompatibilities are expected, please report any issues to the [worldthreader
issue tracker](https://github.com/2No2Name/worldthreader/issues).
This project is a free and open-source Minecraft mod which optimizes the processing of multiple dimensions by ticking
dimensions in parallel. Thread safety is ensured with fallbacks to serial execution if no other solution can be found.
After each tick, the dimensions wait for each other to ensure that everything stays in sync, avoiding breaking many
advanced redstone contraptions. Mod incompatibilities are expected, please report any issues to
the [worldthreader issue tracker](https://github.com/2No2Name/worldthreader/issues).

The mod works on both the **client (singleplayer) and server**, and **does not** require the mod to be installed on both
sides.

## Installation

Must be installed on the server to work in multiplayer. For usage in singleplayer worlds, the mod has to be installed on
the client.
The mod must be installed on the server to work in multiplayer. For use in singleplayer worlds, the mod must be
installed on the client.

1. Download the mod from [Modrinth](https://modrinth.com/mod/worldthreader)
or [CurseForge](https://www.curseforge.com/minecraft/mc-mods/worldthreader).
Expand All @@ -21,12 +21,15 @@ the client.

### Configuration

To use the gamerules, you need fabric-api. Without fabric-api, worldthreader will use the default settings.
To use the gamerules, you need the Fabric API. Without the Fabric API, Worldthreader will use the default settings.

- `/gamerule worldthreader_Active <true/false>` (default true) enables/disables the mod
- `/gamerule worldthreader_AdditionalEntityTickAfterTeleport <true/false>` (default false) enables/disables ticking
entities immediately after
teleporting from the main overworld to the nether or end to simulate the timings of vanilla portal use
entities immediately after teleporting from the main overworld to the nether or end to simulate the timings of vanilla
portal use
- `/gamerule worldthreader_Debug <true/false>` (default false) enables/disables debug logging and illegal world access
detection. Use this to find issues, both correctness and performance related. If nothing shows up in the logs, that
only means that no issues were found, not that none can exist.

---

Expand All @@ -36,20 +39,20 @@ To use the gamerules, you need fabric-api. Without fabric-api, worldthreader wil

Worldthreader aims to conserve vanilla-parity in most points.

Behavior that is based on the timing of entities going through portals might be delayed by a gametick when the entity is
leaving the overworld. However `/gamerule worldthreader_AdditionalEntityTickAfterTeleport` ticks entities which are not
Behavior based on the timing of entities going through portals might be delayed by a game tick when the entity is
leaving the overworld. However, `/gamerule worldthreader_AdditionalEntityTickAfterTeleport` ticks entities that are not
teleporting to the overworld once after being placed in the world. This should allow them to catch up on the tick they
missed out on. However, this happens at the end of the tick, meaning that no other mobs or pistons were able to push or
damage the entity in that tick, because it hasn't been there yet.
missed. However, this happens at the end of the tick, meaning that no other mobs or pistons were able to push or damage
the entity in that tick because it hasn't been there yet.

Interdimensional commands in command blocks or shared scoreboard accesses from different dimensions can be observed to
be in a different order, since there are no interdimensional ordering guarantees within a single gametick for
interdimensional commands. The order of commands within one dimension stays the same as vanilla.
be in a different order since there are no interdimensional ordering guarantees within a single game tick for
interdimensional commands. The order of commands within one dimension remains the same as in vanilla.

##### Can my dimensions get de-synchronized?

No. Worldthreader will always synchronize the dimensions with each other, setting the overall MSPT to the slowest
individual dimension.
No. Worldthreader will always synchronize the dimensions with each other, setting the overall MSPT to that of the
slowest individual dimension.

##### Are dimension counts above 3 supported?

Expand All @@ -61,7 +64,7 @@ Yes, but that may reduce the performance.

##### How is the compatibility with other mods?

Compatibility issues with other mods will be very common. Please report all issues you encounter to worldthreader
Compatibility issues with other mods may be very common. Please report all issues you encounter to Worldthreader
directly to avoid giving other mod authors headaches. The author of Worldthreader is willing to cooperate and suggest
changes to other mods for compatibility.

Expand All @@ -73,5 +76,5 @@ There is the DimThread mod which supports a few older versions: https://github.c

### License

Worldthreader is licensed under MIT, a free and open-source license. For more information, please read
the [license file](LICENSE).
Worldthreader is licensed under the MIT License, a free and open-source license. For more information, please read
the [license file](LICENSE).

0 comments on commit 1faa526

Please sign in to comment.