Mods / Translocator Engineering - Redux

Category: #Technology
Author: SpearAndFang
Side: Both
Created: May 19th 2022 at 4:20 AM
Last modified: Nov 10th 2023 at 4:28 PM
Downloads: 26103
Follow Unfollow 289

Latest file for Various v1.19.x: 1-click install

I reached out to Goxmeor a while back and he graciously agreed to let me revive this mod for 1.16 and beyond. Thanks Gox!

This mod enables the deconstruction, construction, and linking of Static Translocators.

To get started, you will need 3 steel ingots, 2 gold ingots, and 1 rough diamond.  To craft new Translocators with this mod, you will need to use the crowbar to destroy Translocators you find in the world, since it is not possible to craft or otherwise find some of the components.

All translocation is always two-way. 

The Crowbar

The crowbar can be smithed on an anvil, using a single steel ingot. Only steel is strong enough to make an effective crowbar. With the crowbar in hand, hold left click to pry a Static Translocatior apart.


Breaking Apart Translocators

Crowbars are not an exact science. Not all components are recovered when breaking apart a Translocator:

Quantity   Description Recovery Quantity/Chance
1   Gate Array 80%
1   Particulation Component 80%
1   Power Core always
1   Glass Slab always
4   Metal Parts 2-4
1   Coalescence Crystal 5-6 shards recovered, 6 shards are required to make a complete crystal


If you previously repaired the Translocator, you will also get back the 2 Metal Parts and any Temporal Gears you added. (However, if a Translocator was repaired with Temporal Gears by a non-Clockmaker before this mod was added, 1 fewer gears will be returned.)

If you crafted the Translocator, you will get back the extra 2 Metal Parts and 2 Temporal Gears you used in crafting it.

Using The Linker

The Linker can be used to connect two Translocators. Crafted Translocators can be linked immediately. Found Translocators will nee to be repaired first, before they can be linked.

There's no point in building and placing newly crafted Translocators without a Linker, because they won't go anywhere. Only the Translocators found in ruined structures are pre-linked to other Translocators.

The Linker crafting recipe includes a Gate Array (among other things, check the Handbook,) so at least one Translocator must be sacrified to craft it.

To use the Linker, right click on a Translocator, then right click it on a second Translocator. Both Translocators will become linked. If either Translocator was previously linked to another Translocator, those other Translocator(s) will become unlinked. An unlinked Translocator is still repaired, but requires linking before it can be used. All Translocation is two-way: there are never one-way Translocators.

The maximum distance a link can be made between two Translocators with the Linker is 8000 blocks. The lights on the front of the Linker provide a rough indicator of distance. As you travel away from the first Translocator you've synchronized the linker to, the lights will start to go out (1 light will go out for every 1000 blocks.) If you are holding a Linker which is synchronized to a Translocator which is farther away than 8000 blocks, all lights will go out and the panel will flicker, indicating that you are out of range.

After synchronizing your Linker to a Translocator, you can reset it by holding Sneak (shift) and right clicking.

New Translocators

Craft them and place them wherever you like. The recipe is in the handbook.

Crafted Translocators are fully repaired and ready to be linked: you will not need to add additional Metal Parts or additional Temporal Gears. They won't do anything until they are linked with the Linker.


Mod Configuration

"MaximumLinkRange": 8000
"AlwaysDropAllCrystalShards": false,
"RecoveryChanceGateArray": 0.8  (as in, 80%)
"RecoveryChanceParticulationComponent": 0.8  (as in, 80%)

Delete existing %AppData%\VintagestoryData\ModConfig\TranslocatorEngineeringMod.json if neccessary to recreate it.

Special Thanks

Thanks to CaptainOats for contributing artwork!
Thanks to Peter Wedder and Billy Galbreath for the code contributions!
Japanese translation courtesy of Macoto Hino!
Ukrainian translation courtesy of CakesTwix!
Italian translation courtesy of Yota!
German translation courtesy of NiclAss!
Spanish translation courtesy of Nahuel-Campos!

Version For Game version Downloads Release date Changelog Download 1-click mod install*
v1.4.9 3501 Nov 10th 2023 at 4:28 PM Show Install now
v1.4.8 173 Nov 5th 2023 at 8:50 PM Show Install now
v1.4.7 5781 Sep 16th 2023 at 5:33 AM Show Install now
v1.4.6 1835 Aug 13th 2023 at 10:37 PM Show Install now
v1.4.5 1695 Jul 21st 2023 at 4:26 PM Show Install now
v1.4.4 332 Jul 18th 2023 at 3:44 PM Show Install now
v1.4.3 843 Jul 8th 2023 at 8:11 PM Show Install now
v1.4.2 1386 Jun 6th 2023 at 3:55 AM Show Install now
v1.4.1 2648 Apr 8th 2023 at 3:18 PM Show Install now
v1.4.0 594 Feb 25th 2023 at 9:51 PM Show Install now
v1.3.0 4121 Oct 23rd 2022 at 2:40 PM Show Install now
v1.2.0 1826 Jul 19th 2022 at 3:49 AM Show Install now
v1.1.0 280 Jul 2nd 2022 at 4:34 AM Show Install now
v1.0.0 1088 May 19th 2022 at 4:21 AM Show Install now

38 Comments (oldest first | newest first)

💬 Hypnotique, Feb 15th at 2:37 PM

Great! Thanks! can't wait to give it a go!

💬 Hypnotique, Feb 15th at 2:36 PM
💬 SpearAndFangAuthor, Feb 14th at 6:38 PM

Yes it's been working great for me and no issues reported.

💬 Hypnotique, Feb 14th at 5:49 PM

Hey! Is this mod working for the most recent update? We are in 1.19.3.... TIA

💬 SpearAndFangAuthor, Dec 28th 2023 at 5:42 PM

You are using the wrong version of the mod - for your game version you need mod version 1.4.7.

💬 jibbjabb, Dec 28th 2023 at 3:25 PM

Running on 64 bit Windows with 8132 MB RAM
Game Version: v1.18.15 (Stable)
28.12.2023 16:23:59: Critical error occurred in the following mod: translocatorengineeringredux@1.4.9
Loaded Mods: autopanning@1.0.1, Autorotor@1.1.2, betterruins@0.2.4, buzzwords@1.5.0, hqzlights@1.1.1, evaporite@1.0.0, gwb@1.0.1, mobsradar@1.0.3, nailsmold@1.0.1, natshumanskin@1.0.0, TA_plainsandvalleys@1.0.5, roas@1.0.0, Swordz@1.1.4, temporal_gears_stack@1.0.0, translocatorengineeringredux@1.4.9, game@1.18.15, alloycalculator@1.0.0, animalcages@2.2.0, egocaribautomapmarkers@2.6.0, blocksoverlay@2.4.0, commonlib@2.2.0, composter@1.1.0, electricity@0.0.10, grassiergrass@1.0.0, keg@1.0.1, kilnspreading@1.0.0, moreanimals@1.3.1, tarmor@0.1.2, tstools@1.3.6, useplanksinpitkiln@1.1.1, vtpp@1.1.0, creative@1.18.15, survival@1.18.15, xlib@0.7.4, buzzybees@1.0.1, helvehammerext@1.5.2, xskills@0.7.5
System.TypeLoadException: Could not load type 'Vintagestory.API.Client.MultiTextureMeshRef' from assembly 'VintagestoryAPI, Version=, Culture=neutral, PublicKeyToken=null'.
at TranslocatorEngineering.ModSystem.ItemLinker.OnLoadedClientSide(ICoreClientAPI capi)
at TranslocatorEngineering.ModSystem.ItemLinker.OnLoaded(ICoreAPI api) in C:\net7repos\translocatorengineering\translocatorengineering\ModSystem\ItemLinker.cs:line 190
at Vintagestory.API.Common.CollectibleObject.OnLoadedNative(ICoreAPI api) in VintagestoryApi\Common\Collectible\Collectible.cs:line 246
at Vintagestory.Client.NoObf.ClientSystemStartup.OnAllAssetsLoaded_Items(Int32 i) in VintagestoryLib\Client\Systems\Startup.cs:line 949
at Vintagestory.Client.NoObf.ClientSystemStartup.<>c__DisplayClass55_0.<OnAllAssetsLoaded_Items>b__0() in VintagestoryLib\Client\Systems\Startup.cs:line 954
at Vintagestory.Client.NoObf.ClientMain.ExecuteMainThreadTasks(Single deltaTime) in VintagestoryLib\Client\ClientMain.cs:line 757
at Vintagestory.Client.GuiScreenConnectingToServer.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenConnectingToServer.cs:line 322
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 668
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 643
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 77
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 313
at Vintagestory.Client.ClientProgram.<>c__DisplayClass9_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 129
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93

Event Log entries containing Vintagestory.exe, the latest 3
{ TimeGenerated = 28.12.2023 16:20:47, Site = , Source = Application Error, Message = Nazwa aplikacji powodującej błąd: Vintagestory.exe, wersja:, sygnatura czasowa: 0x64e841c5
Nazwa modułu powodującego błąd: openal32.dll, wersja:, sygnatura czasowa: 0x63dd31ad
Kod wyjątku: 0x40000015
Przesunięcie błędu: 0x00000000000df046
Identyfikator procesu powodującego błąd: 0x11934
Godzina uruchomienia aplikacji powodującej błąd: 0x01da39a0d32bd2c7
Ścieżka aplikacji powodującej błąd: G:\VINTAGE STORY\Vintagestory.exe
Ścieżka modułu powodującego błąd: G:\VINTAGE STORY\Lib\openal32.dll
Identyfikator raportu: 664eda4f-4bfd-4d3f-8b87-b0908212635f
Pełna nazwa pakietu powodującego błąd:
Identyfikator aplikacji względem pakietu powodującego błąd: }
{ TimeGenerated = 27.12.2023 00:06:18, Site = , Source = Application Error, Message = Nazwa aplikacji powodującej błąd: Vintagestory.exe, wersja:, sygnatura czasowa: 0x64e841c5
Nazwa modułu powodującego błąd: openal32.dll, wersja:, sygnatura czasowa: 0x63dd31ad
Kod wyjątku: 0x40000015
Przesunięcie błędu: 0x00000000000df046
Identyfikator procesu powodującego błąd: 0xc1c4
Godzina uruchomienia aplikacji powodującej błąd: 0x01da382e7e000d90
Ścieżka aplikacji powodującej błąd: G:\VINTAGE STORY\Vintagestory.exe
Ścieżka modułu powodującego błąd: G:\VINTAGE STORY\Lib\openal32.dll
Identyfikator raportu: 4f4bb155-abc1-4a2b-a214-b162ee2f844e
Pełna nazwa pakietu powodującego błąd:
Identyfikator aplikacji względem pakietu powodującego błąd: }
{ TimeGenerated = 25.12.2023 16:54:58, Site = , Source = Application Error, Message = Nazwa aplikacji powodującej błąd: Vintagestory.exe, wersja:, sygnatura czasowa: 0x64e841c5
Nazwa modułu powodującego błąd: openal32.dll, wersja:, sygnatura czasowa: 0x63dd31ad
Kod wyjątku: 0x40000015
Przesunięcie błędu: 0x00000000000df046
Identyfikator procesu powodującego błąd: 0xd13c
Godzina uruchomienia aplikacji powodującej błąd: 0x01da373c115de653
Ścieżka aplikacji powodującej błąd: G:\VINTAGE STORY\Vintagestory.exe
Ścieżka modułu powodującego błąd: G:\VINTAGE STORY\Lib\openal32.dll
Identyfikator raportu: 4d47a8a2-a05c-4b35-a54d-7196ed1da18a
Pełna nazwa pakietu powodującego błąd:
Identyfikator aplikacji względem pakietu powodującego błąd: }

💬 SpearAndFangAuthor, Dec 8th 2023 at 3:14 PM

I do not know why 80% was chosen. But you can increase those to 100% by editing the modconfig. i.e.

"RecoveryChanceGateArray": 1.0, 
"RecoveryChanceParticulationComponent": 1.0

See the ModConfig section above for a bit more info

💬 Yelb, Dec 8th 2023 at 10:33 AM

Hello, why 80% and 100% ? This way we have some useless parts with nothing to do with, right ? Or what did i miss ? Do all 100% would be good enough, as you have to find the device first and have the right tools.

💬 LeSpatiocorne, Dec 3rd 2023 at 11:48 AM

It would be nice to have a way to recycle the parts that drop with 100% rate, 'cause in this state we can only get more and more part of these things without getting any usage of them due to the lack of other parts.

💬 McTaco, Nov 10th 2023 at 9:20 PM

makes moving really nice

💬 SpearAndFangAuthor, Nov 9th 2023 at 2:00 AM

Produce your halite, trader, lest I remove head from neck...

...with my crowbar!

💬 l33tmaan, Nov 9th 2023 at 12:00 AM

Obligatory "make the crowbar deal damage" comment. 🤓

💬 SpearAndFangAuthor, Oct 6th 2023 at 1:31 AM

I really like the idea of having an additional use for the crowbar. I'll definitely give some consideration to this.  If nothing else, giving it the ability to quickly and easily remove clutter. Thanks.

💬 wildejackson, Oct 1st 2023 at 1:58 PM

I have a really good suggestion I have no idea how viable it is without resorting to using a DLL but if it is possible I would love for the crowbar to ensure a 100% pickup rate on the junk item blocks in ruins (like collapsed crates, barricades, ruined chandelier etc) Thanks for the mod BTW

💬 SpearAndFangAuthor, Sep 16th 2023 at 3:11 AM

I see that and it's much appreciated. You, sir, are a scholar and a gentleman!

💬 BillyGalbreath, Sep 16th 2023 at 12:33 AM


I sent you a PR that fixes the issue with client linkers not using the distance from the server in a multiplayer environment.

💬 CanaDan, Aug 16th 2023 at 3:24 AM

SpearAndFang ok cool!

also a couple of cool ideas that may be worth exploring if they are easy enough.

the first is tool tips for either location or translocatior names. you might be able to add it to the metadata or something? im pretty sure that translocators can show their teleportation coordinates when you repare a translocator, so it may be relativly easy. for renaming, the player could right click with crowbar or something. idk im sure youll come up with a cool implimentation.

the second is a personal translocator; a small handheld item that costs a temporal gear to use, but it can be linked to a specific translocator. this is obviously a very large idea in comparison to the previous one, so totally understandable if you dont have time for it, or just arnt inturested. you are one person after all, and your time is limited.

the third and last idea is to be able to manipulate translocators to drop you off at specified locations instead of to another translocator. this would be an unstable ejection so the player may fall from the sky, appear underground, or otherwise possibly die. low chance, but still a possiblity. idk, this functionalility seems like a good wayto prevent abuse, but up to you. the intended use for this would be a quick and dirty, one way teleport, to any location on the map as long as it was in the general direction of the taget translocator.

💬 SpearAndFangAuthor, Aug 15th 2023 at 2:38 PM

ok. I've added it to the to-do list for the next release.

💬 CanaDan, Aug 14th 2023 at 5:56 PM

would be great to have a modifyable value for the coalescence crystal as well.


💬 SpearAndFangAuthor, Aug 13th 2023 at 10:05 PM

Sure. I've made those changes for the newly released release.

💬 Meowsers, Aug 13th 2023 at 3:33 PM

Is there a config to change the drop chance of the Gate Array and Particulation Component? It'd be a nice feature to have

💬 SpearAndFangAuthor, Jul 29th 2023 at 3:12 AM


💬 IAmJade, Jul 28th 2023 at 10:40 PM

How is distance calculated? Manhattan?

💬 SpearAndFangAuthor, Jul 8th 2023 at 8:12 PM

New version up!  Had a pull request, decided to do a little more...

NEW: Crowbar now ground storable AND tool rackable
NEW: Link range configurable via modconfig file - thanks Peter Wedder (brndd) for the pull request!

ModConfig setting: "MaximumLinkRange": 8000
Delete existing %AppData%\VintagestoryData\ModConfig\TranslocatorEngineeringMod.json if neccessary to recreate it.

💬 Buggi, May 18th 2023 at 3:22 AM

Oh, interesting, that's why its not crashing on my win10 machine but is on the server. The server I use isn't technically mine, so not sure if the server owner would be open to installing base OS stuff on it.

💬 SpearAndFangAuthor, May 16th 2023 at 10:02 PM

@Buggi that *looks* like an issue with the .NET / Mono version on your server (I build with Net Standard 2.0, not Net Framework).

On Windows, update to NET Framework 4.8 or similar (it's part of the standard Win10 updates for example). On linux, update Mono.

Worst case scenario is follow the source link above, download the source, and rebuild with Net Framework. ugh.

💬 Buggi, May 16th 2023 at 8:45 PM

Crash trying to use the mod on a dedicated server:
16.5.2023 13:43:35 [Error] [translocatorengineeringredux] An exception was thrown when trying to load assembly:
System.IO.FileNotFoundException: Could not load file or assembly 'netstandard, Version=, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The system cannot find the file specified.
File name: 'netstandard, Version=, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType)
at System.Attribute.GetCustomAttributes(Assembly element, Type attributeType, Boolean inherit)
at System.Attribute.GetCustomAttribute(Assembly element, Type attributeType, Boolean inherit)
at System.Reflection.CustomAttributeExtensions.GetCustomAttribute[T](Assembly element)
at Vintagestory.Common.ModContainer.<>c__DisplayClass33_0.<LoadAssembly>b__1(Assembly ass) in C:\Users\Tyron\Documents\vintagestory\game\VintagestoryLib\Common\API\ModContainer.cs:line 360
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Vintagestory.Common.ModContainer.LoadAssembly(ModCompilationContext compilationContext, ModAssemblyLoader loader) in C:\Users\Tyron\Documents\vintagestory\game\VintagestoryLib\Common\API\ModContainer.cs:line 357

💬 SpearAndFangAuthor, Mar 10th 2023 at 2:54 PM

you have a version mismatch there I'm afraid. v1.4.0 is for the Vintage Story 1.18 pre-releases only.  You need to use v1.3.0 with your game version "Game Version: v1.17.11 (Stable)"

💬 sogesan, Mar 10th 2023 at 12:25 AM

this bad boy crashes the game if we type trough in handbook. 


Running on 64 bit Windows with 32 GB RAM Game Version: v1.17.11 (Stable) 3/8/2023 6:20:56 PM: Critical error occurred Loaded Mods: craftablesticks@1.0.0, potatoes@1.0.8, ragnamans-seeds-from-crops-recipes@1.0.0, sortablestorage@1.6.0, stackables@2.0.5, translocatorengineeringredux@1.4.0, game@1.17.11, wildcraft@1.5.1, carryon@0.10.3, cuniculture@1.0.1, petai@1.5.5, creative@1.17.11, survival@1.17.11, VsTrashcan@1.0.1, woodbarrels@1.0.4, woodchests@1.0.4, workbenchexpansion@1.5.1, metalrecovery@0.1.18-rc.2, treetapping@1.0.0, wolftaming@1.5.4 System.MissingFieldException: Field not found: 'Vintagestory.API.Common.Entities.Entity.Pos'. at TranslocatorEngineering.ModSystem.ItemLinker.OnBeforeRender(ICoreClientAPI capi, ItemStack itemstack, EnumItemRenderTarget target, ItemRenderInfo& renderinfo) at Vintagestory.Client.NoObf.InventoryItemRenderer.GetItemStackRenderInfo(ClientMain game, ItemSlot inSlot, EnumItemRenderTarget target, Single dt) in VintagestoryLib\Client\Render\InventoryItemRenderer.cs:line 389 at Vintagestory.Client.NoObf.InventoryItemRenderer.RenderItemstackToGui(ItemSlot inSlot, Double posX, Double posY, Double posZ, Single size, Int32 color, Single dt, Boolean shading, Boolean origRotate, Boolean showStackSize) in VintagestoryLib\Client\Render\InventoryItemRenderer.cs:line 197 at Vintagestory.Client.NoObf.RenderAPIGame.RenderItemstackToGui(ItemSlot inSlot, Double posX, Double posY, Double posZ, Single size, Int32 color, Boolean shading, Boolean rotate, Boolean showStacksize) in VintagestoryLib\Client\API\RenderAPIGame.cs:line 285 at Vintagestory.GameContent.GuiHandbookItemStackPage.RenderTo(ICoreClientAPI capi, Double x, Double y) in VSSurvivalMod\Systems\Handbook\Gui\GuiHandbookItemStackPage.cs:line 91 at Vintagestory.GameContent.GuiElementFlatList.RenderInteractiveElements(Single deltaTime) in VSSurvivalMod\Systems\Handbook\Gui\GuiElementFlatList.cs:line 154

💬 SpearAndFangAuthor, Feb 25th 2023 at 9:52 PM

new release for 1.18.  For the brave and the bold. 

💬 SpearAndFangAuthor, Nov 6th 2022 at 3:55 PM

This: It becomes inactive and needs to be linked with the linker (or broken down)

💬 Tels, Nov 6th 2022 at 9:56 AM

Wonderful mod, having fun with it! 💯 Even Bricklayers will get compatibility for it :) Thank you!

One question: If you break apart an active translocator from a working (repaired vanilla) pair, what happens to the other end? Does it become just inactive again and needs to be linked with the linker (or broken down), or will it be in the unrepaired state and when you repair it, link to a random new TL?

💬 SpearAndFangAuthor, Jul 20th 2022 at 9:11 PM

Craluminum Maybe?  No?  I'm not interested in upgrading this mod - I'm only keeping it up-to-date for people who are looking for this functionality.

💬 DanaCraluminum, Jul 20th 2022 at 4:49 PM

Can crowbar be stored against wall like every vanilla tool since v1.17.0-pre.4 update?

💬 SpearAndFangAuthor, Jul 15th 2022 at 2:24 PM

FYI: I tested this mod with v1.17.0-pre.4 and it's still working.  Use v1.2.0 for v1.17.0-pre.5

💬 OmegaHaxors, Jul 15th 2022 at 11:05 AM

Clockmakers being able to set up their own teleporters would have been an amazing use of the class. This is the next best thing.

💬 SpearAndFangAuthor, Jul 2nd 2022 at 4:35 AM

Updated for 1.17.x

💬 ThePionier, May 19th 2022 at 5:16 PM


Thank you!

(edit comment delete)