Tags
Creators
Details
2.0.0_rc3+1.19.4
Compatibility
Required content
Changes
- Specific Fabric API modules and YetAnotherConfigLib (YACL) are no longer bundled (jar-in-jar) with SleepWarp
- Fabric API is now a required dependency for both client and dedicated server.
- ModMenu and YACL are optional dependencies on the client to access the configuration screen.
- Improved world simulation performance
- Removed config options:
performance_mode- Performance mode and the
TickMonitorclass have been removed
- Performance mode and the
tick_entities- This would end up ticking everything, including the items on the ground and the player
- Replaced by
tick_animalsandtick_monsters
tick_mob_spawn- Too much processing time for no real gameplay benefit
tick_spawners- The code behind this actually was ticking something that wasn't spawner blocks
- I also decided it was silly to tick spawners while you're sleeping
- Added config options:
tick_monsterstick_animalsmonster_tick_multiplier- Not implemented
animal_tick_multiplier- Not implemented
- Action bar messages were tweaked
- Made improvements to the client settings screen by separating the options in each category into labeled groups, swap boolean toggle buttons out for tick boxes, and spruced up option tooltips.
I was still not happy with the overall performance when all world simulation features were enabled. Time, weather, and additional world ticks were done synchronously and sequentially right at the end of the world tick, meaning at default settings the world would be ticked 60 times over before the next world tick would begin.
My solution is to tick time and weather synchronously before world ticking, and if there still time before dawn, then the various portions of the world will be ticked on one of three single-thread executors; monsters and animals will be ticked on one, random block ticks on another, and everything else will be ran on the third. This setup allows time to advance at a steady rate while the additional world ticks are processed sequentially and asynchronously on other threads.
Optional dependencies
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:OPvzuqtZ:J8LFQcv1"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:OPvzuqtZ:J8LFQcv1"
}

