All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Async Locator Refined

Async Locator Refined

by alvaro842 • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

This mod is a port of the original version.

I have obtained the creator’s permission to port it.

For versions 1.20.1 or earlier, download the original mod here


Modifies vanilla behaviour when locating features to run asynchronously, mitigating associated lag.

This is currently implemented for:

  • Locate structure command when executed by a user
  • Locate biome command when executed by a user (v1.5.0+)
  • Villager explorer map trade offers
  • Dolphin treasure finding
  • Exploration map in chests

This mod is only required to be installed server side! So clients only need this installed if they want it for single player.

This alone only works for vanilla (see list above). Other mods may need to implement usage of this mod themselves to make use of the async functionality.

Incompatibilities

Mods that affect vanilla's structure locating features may impact Async Locator's functionality.

Right now, the list below states other mods that I'm aware of:

Has been seen that on startup only one of either Async Locator's or Structure Essentials' locating improvements will work. No real issues otherwise, but only one of the mods are required.

Mod Integration

Other mods can also use Async Locators as a dependency to implement the asynchronous locating into their own code. To do so, please use CurseMaven or Modrinth Maven to add this mod to your build.gradle, and then make use of the AsyncLocator class and/or logic classes.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.21.8
Neoforge
2mo ago 1
1.21.8
Fabric
2mo ago 1
1.21.1
Neoforge
3mo ago 1
1.21.1
Fabric
3mo ago 1
1.21.5
Neoforge
3mo ago 1
1.21.5
Fabric
3mo ago 1
1.21.1
Neoforge
4mo ago 1
1.21.1
Fabric
4mo ago 1
1.21.4
Neoforge
5mo ago 1
1.21.4
Fabric
5mo ago 1
1.21.1
Neoforge
7mo ago 1
1.21.1
Fabric
7mo ago 1
1.21.11
Neoforge
7mo ago 1
1.21.11
Fabric
7mo ago 1
1.21.11
Neoforge
8mo ago 1
1.21.11
Fabric
8mo ago 1
1.21.4
Neoforge
10mo ago 1
1.21.4
Fabric
10mo ago 1
1.21.1
Neoforge
10mo ago 1
1.21.1
Fabric
10mo ago 1
1.21.1
Neoforge
10mo ago 1
1.21.1
Fabric
10mo ago 1
1.21.5
Neoforge
last yr. 1
1.21.5
Fabric
last yr. 1
1.21.4
Neoforge
last yr. 1
1.21.4
Fabric
last yr. 1
1.21.1
Neoforge
last yr. 1
1.21.1
Fabric
last yr. 1
1.21.1
Neoforge
last yr. 1
1.21.1
Fabric
last yr. 1
1.21.1
Neoforge
last yr. 1
1.21.1
Fabric
last yr. 1
1.21.1
Fabric
last yr. 1
1.21.1
Fabric
last yr. 1
## Release version for 1.21.8
  • This version has all the features up to 1.21.5-1.6.0 and:**

### Fixes:
  • Added a correct server lifecycle cleanup, that atomically removes all pending shared locates. Now shutdown clear PENDING_LOCATES and coalescing key contains MinecraftServer
  • Improved mixin compatibility using MixinExtras injectors
  • Optimized and resized the logo, reducing the mod JAR size by 46 KB

### Added:
  • Added /asynclocator status and reload commands with /al shortcut
  • Added validated runtime configuration reloads for Fabric and NeoForge
  • Added locate coalescing with safe cancellation

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.5-1.6.0...1.21.8-1.6.1)

</details>
## Release version for 1.21.8
  • This version has all the features up to 1.21.5-1.6.0 and:**

### Fixes:
  • Added a correct server lifecycle cleanup, that atomically removes all pending shared locates. Now shutdown clear PENDING_LOCATES and coalescing key contains MinecraftServer
  • Improved mixin compatibility using MixinExtras injectors
  • Optimized and resized the logo, reducing the mod JAR size by 46 KB

### Added:
  • Added /asynclocator status and reload commands with /al shortcut
  • Added validated runtime configuration reloads for Fabric and NeoForge
  • Added locate coalescing with safe cancellation

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.5-1.6.0...1.21.8-1.6.1)

</details>
## This version brings overall improvements to the mod.

### Fixes:
  • ExplorationMapFunction.run performed the search before calling MapItem.create, meaning the original mixin never prevented the blocking operation from running on the main thread and instead started a redundant asynchronous search afterwards. The injection has now been moved to run before ServerLevel#findNearestMapStructure, cancelling the synchronous search entirely so exploration maps are now located asynchronously. This was a critical issue since first version of AsyncLocator-Refined.
  • Fixed thread safety races in structure lookups that could corrupt state or crash when locating off-thread.
  • Fixed a race where locate callbacks could run before the map item was placed, producing broken maps in chests and villager trades.
  • Eyes of Ender are now refunded if the stronghold search fails, times out (60s), or errors, like vanilla.
  • Dolphins no longer lose their treasure target when their search goal restarts, and handle failed searches like vanilla.
  • Villager trade offers now refresh correctly for the trading player once a map search completes.
  • /locate errors are now reported to the command sender instead of being swallowed, while preserving the client's language.

### Added:
  • Expanded the public API for other mods, adding configurable locate timeouts and support for biome searches using custom biome predicates.
  • Identical concurrent locate requests (same dimension, target, position, radius) now share one search instead of running duplicates.
  • Game tests for both Fabric and NeoForge, run automatically on pull requests.
  • Sources jars are now published for mod developers.
  • Added configurable limits for concurrent and queued locate searches, preventing unbounded locate work during request bursts. The default allows 2 active searches and 128 queued searches.

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.1-1.5.4...1.21.1-1.6.0)

</details>
## This version brings overall improvements to the mod.

### Fixes:
  • ExplorationMapFunction.run performed the search before calling MapItem.create, meaning the original mixin never prevented the blocking operation from running on the main thread and instead started a redundant asynchronous search afterwards. The injection has now been moved to run before ServerLevel#findNearestMapStructure, cancelling the synchronous search entirely so exploration maps are now located asynchronously. This was a critical issue since first version of AsyncLocator-Refined.
  • Fixed thread safety races in structure lookups that could corrupt state or crash when locating off-thread.
  • Fixed a race where locate callbacks could run before the map item was placed, producing broken maps in chests and villager trades.
  • Eyes of Ender are now refunded if the stronghold search fails, times out (60s), or errors, like vanilla.
  • Dolphins no longer lose their treasure target when their search goal restarts, and handle failed searches like vanilla.
  • Villager trade offers now refresh correctly for the trading player once a map search completes.
  • /locate errors are now reported to the command sender instead of being swallowed, while preserving the client's language.

### Added:
  • Expanded the public API for other mods, adding configurable locate timeouts and support for biome searches using custom biome predicates.
  • Identical concurrent locate requests (same dimension, target, position, radius) now share one search instead of running duplicates.
  • Game tests for both Fabric and NeoForge, run automatically on pull requests.
  • Sources jars are now published for mod developers.
  • Added configurable limits for concurrent and queued locate searches, preventing unbounded locate work during request bursts. The default allows 2 active searches and 128 queued searches.

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.1-1.5.4...1.21.1-1.6.0)

</details>
## This version brings overall improvements to the mod.

### Fixes:
  • ExplorationMapFunction.run performed the search before calling MapItem.create, meaning the original mixin never prevented the blocking operation from running on the main thread and instead started a redundant asynchronous search afterwards. The injection has now been moved to run before ServerLevel#findNearestMapStructure, cancelling the synchronous search entirely so exploration maps are now located asynchronously. This was a critical issue since first version of AsyncLocator-Refined.
  • Fixed thread safety races in structure lookups that could corrupt state or crash when locating off-thread.
  • Fixed a race where locate callbacks could run before the map item was placed, producing broken maps in chests and villager trades.
  • Eyes of Ender are now refunded if the stronghold search fails, times out (60s), or errors, like vanilla.
  • Dolphins no longer lose their treasure target when their search goal restarts, and handle failed searches like vanilla.
  • Villager trade offers now refresh correctly for the trading player once a map search completes.
  • /locate errors are now reported to the command sender instead of being swallowed, while preserving the client's language.

### Added:
  • Expanded the public API for other mods, adding configurable locate timeouts and support for biome searches using custom biome predicates.
  • Identical concurrent locate requests (same dimension, target, position, radius) now share one search instead of running duplicates.
  • Game tests for both Fabric and NeoForge, run automatically on pull requests.
  • Sources jars are now published for mod developers.
  • Added configurable limits for concurrent and queued locate searches, preventing unbounded locate work during request bursts. The default allows 2 active searches and 128 queued searches.

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.5-1.5.0...1.21.5-1.6.0)

</details>
## This version brings overall improvements to the mod.

### Fixes:
  • ExplorationMapFunction.run performed the search before calling MapItem.create, meaning the original mixin never prevented the blocking operation from running on the main thread and instead started a redundant asynchronous search afterwards. The injection has now been moved to run before ServerLevel#findNearestMapStructure, cancelling the synchronous search entirely so exploration maps are now located asynchronously. This was a critical issue since first version of AsyncLocator-Refined.
  • Fixed thread safety races in structure lookups that could corrupt state or crash when locating off-thread.
  • Fixed a race where locate callbacks could run before the map item was placed, producing broken maps in chests and villager trades.
  • Eyes of Ender are now refunded if the stronghold search fails, times out (60s), or errors, like vanilla.
  • Dolphins no longer lose their treasure target when their search goal restarts, and handle failed searches like vanilla.
  • Villager trade offers now refresh correctly for the trading player once a map search completes.
  • /locate errors are now reported to the command sender instead of being swallowed, while preserving the client's language.

### Added:
  • Expanded the public API for other mods, adding configurable locate timeouts and support for biome searches using custom biome predicates.
  • Identical concurrent locate requests (same dimension, target, position, radius) now share one search instead of running duplicates.
  • Game tests for both Fabric and NeoForge, run automatically on pull requests.
  • Sources jars are now published for mod developers.
  • Added configurable limits for concurrent and queued locate searches, preventing unbounded locate work during request bursts. The default allows 2 active searches and 128 queued searches.

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.5-1.5.0...1.21.5-1.6.0)

</details>


### Fixed a bug causing incompatibility with some mods

  • Fixed exploration maps getting stuck with mods that virtualize per-player inventories. Maps are now updated via players' containers as the default option.
  • This issue was reported due to an incompatibility with Lootr. [See Issue #5](https://github.com/Alvaro842DEV/AsyncLocator-Refined/issues/5)
  • This fix is a improvement over the same fix of the 1.21.1, because it now stores the UUID, update all types of containers and improves performance on large servers by not having to count the inventories of all connected players

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.1-1.5.3...1.21.1-1.5.4)

</details>
### Fixed a bug causing incompatibility with some mods

  • Fixed exploration maps getting stuck with mods that virtualize per-player inventories. Maps are now updated via players' containers as the default option.
  • This issue was reported due to an incompatibility with Lootr. [See Issue #5](https://github.com/Alvaro842DEV/AsyncLocator-Refined/issues/5)
  • This fix is a improvement over the same fix of the 1.21.1, because it now stores the UUID, update all types of containers and improves performance on large servers by not having to count the inventories of all connected players

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.1-1.5.3...1.21.1-1.5.4)

</details>
### Fixed a bug causing incompatibility with some mods

  • Fixed exploration maps getting stuck with mods that virtualize per-player inventories. Maps are now updated via players' containers as the default option.
  • This issue was reported due to an incompatibility with Lootr. [See Issue #5](https://github.com/Alvaro842DEV/AsyncLocator-Refined/issues/5)
  • This fix is a improvement over the same fix of the 1.21.1, because it now stores the UUID, update all types of containers and improves performance on large servers by not having to count the inventories of all connected players

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.4-1.5.2-Hotfix...1.21.4-1.5.3)

</details>
### Fixed a bug causing incompatibility with some mods

  • Fixed exploration maps getting stuck with mods that virtualize per-player inventories. Maps are now updated via players' containers as the default option.
  • This issue was reported due to an incompatibility with Lootr. [See Issue #5](https://github.com/Alvaro842DEV/AsyncLocator-Refined/issues/5)
  • This fix is a improvement over the same fix of the 1.21.1, because it now stores the UUID, update all types of containers and improves performance on large servers by not having to count the inventories of all connected players

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.4-1.5.2-Hotfix...1.21.4-1.5.3)

</details>
### Fixed a bug causing incompatibility with some mods


<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.1-1.5.2-Hotfix...1.21.1-1.5.3)

</details>
### Fixed a bug causing incompatibility with some mods


<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.1-1.5.2-Hotfix...1.21.1-1.5.3)

</details>


### Minor fix and improvements

  • Fixed a bug where, when the server had the mod installed, it 
  • would block clients from joining unless they had the mod too, even though the mod is server-side only
  • Added Spotless to enforce a code format
  • Improved build times by applying Gradle parameters

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.11-1.5.2...1.21.11-1.5.3)

</details>
### Minor fix and improvements

  • Fixed a bug where, when the server had the mod installed, it 
  • would block clients from joining unless they had the mod too, even though the mod is server-side only
  • Added Spotless to enforce a code format
  • Improved build times by applying Gradle parameters


<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.11-1.5.2...1.21.11-1.5.3)

</details>
### First beta for 1.21.11

  • This is a port of the latest 1.21.5 version to 1.21.11. It's experimental and I haven't tested it thoroughly, but the features seem to work both in vanilla and with mods

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.5-1.5.0...1.21.11-1.5.2)

</details>

### First beta for 1.21.11

  • This is a port of the latest 1.21.5 version to 1.21.11. It's experimental and I haven't tested it thoroughly, but the features seem to work both in vanilla and with mods

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.5-1.5.0...1.21.11-1.5.2)

</details>

### Hotfix for 1.21.4

  • Fixed a bug where, when the server had the mod installed, it
would block clients from joining unless they had the mod too, even though the
mod is server-side only

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.4-1.5.0...1.21.4-1.5.2-Hotfix)

</details>

### Hotfix for 1.21.4

  • Fixed a bug where, when the server had the mod installed, it
would block clients from joining unless they had the mod too, even though the
mod is server-side only

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.4-1.5.0...1.21.4-1.5.2-Hotfix)

</details>
### Hotfix for 1.21.1

  • Fixed a bug where, when the server had the mod installed, it
would block clients from joining unless they had the mod too, even though the
mod is server-side only

<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.1-1.5.1...1.21.1-1.5.2-Hotfix)

</details>
### Hotfix for 1.21.1

  • Fixed a bug where, when the server had the mod installed, it
would block clients from joining unless they had the mod too, even though the
mod is server-side only


<details>
<summary>All Changes</summary>

[Full Changelog](https://github.com/Alvaro842DEV/AsyncLocator-Refined/compare/1.21.1-1.5.1...1.21.1-1.5.2-Hotfix)

</details>


## This is one of the biggest updates
> Probably the last update to 1.21.1

  • Virtual threads are now used, which are much more efficient and managed by the JVM
  • Added a consistent format to all code
  • Some improvements ported from the 1.21.5

<details>
<summary>All Changes</summary>


</details>

## This is one of the biggest updates
> Probably the last update to 1.21.1

  • Virtual threads are now used, which are much more efficient and managed by the JVM
  • Added a consistent format to all code
  • Some improvements ported from the 1.21.5

<details>
<summary>All Changes</summary>


</details>

## Support for 1.21.5

  • Contains all the features **up to 1.21.4-1.5.0**
  • Updated some methods that have changed since 1.21.4
  • Minor improvements

<details>
<summary>All Changes</summary>


</details>

## Support for 1.21.5

  • Contains all the features **up to 1.21.4-1.5.0**
  • Updated some methods that have changed since 1.21.4
  • Minor improvements

<details>
<summary>All Changes</summary>


</details>
## Support for 1.21.4

  • Contains all the features **up to 1.21.1-1.5.0**
  • Updated some methods that have changed since 1.21.1

<details>
<summary>All Changes</summary>


</details>

## Support for 1.21.4

  • Contains all the features **up to 1.21.1-1.5.0**
  • Updated some methods that have changed since 1.21.1

<details>
<summary>All Changes</summary>


</details>


  • The command **/locate biome** is asynchronous!
  • Support locating strongholds from mods that replace the vanilla stronghold


<details>
<summary>All Changes</summary>


</details>
  • The command **/locate biome** is asynchronous!
  • Support locating strongholds from mods that replace the vanilla stronghold


<details>
<summary>All Changes</summary>


</details>



<details>
<summary>All Changes</summary>

</details>


<details>
<summary>All Changes</summary>

</details>


Async Locator Refined Icon
Download Async Locator Refined
Select game version
Select platform