Mods / Compass — adds craftable compasses

Category: #Crafting #Utility
Author: goxmeor
Side: Both
Created: Mar 31st 2021 at 11:14 AM
Last modified: Apr 22nd 2021 at 10:25 AM
Downloads: 1477
Follow Unfollow 2

This mod adds three craftable compasses to the game:

Magnetic Compass

Crafted using 1 (fired) clay bowl, 1 magnetite nugget, and 1 stick. It always points north.

Alternate recipe: use 1 metal scrap instead of magnetite.

Origin Compass

Crafted using 1 Magnetic Compass and 2 Temporal Gears. It always points to the world's default spawn. If the default spawn has a radius, it points to the center of it. This will be the same spot for all players on the server.

Relative Compass

Crafted using 1 Origin Compass and 2 Temporal Gears. That means it'll cost 4 gears total. It remembers where it was crafted and always points to that spot.

Known Issues

Compasses don't point in the correct direction when dropped on the ground, or probably also viewed in another player's hand.

Collaboration?

I am no artist. If you would like to help improve the look of anything, please contact me on the Vintage Story Discord (my name is Gox.) Let's talk before you create a Pull Request?

Changelog

1.1.0 — flipped crafting requirements for Origin and Relative compasses. Origin now requires 2 and Relative now requires 4.

1.1.1 — fixed exploit involving handbook

1.2.0 — compasses can now be placed and the number of gears required to craft them is configurable (thanks JapanHasRice!)

Version For Game version Downloads Release date Changelog Download
v1.2.0 466 Apr 22nd 2021 at 10:25 AM Show Compass-1.2.0.zip
v1.1.1 401 Apr 4th 2021 at 10:03 AM Show Compass-1.1.1.zip
v1.1.0 188 Apr 4th 2021 at 3:13 AM Show Compass-1.1.0.zip
v1.0.2 231 Mar 31st 2021 at 1:15 PM Show Compass-1.0.2.zip
v1.0.1 191 Mar 31st 2021 at 11:17 AM Show Compass-1.0.1.zip

1 Comments (oldest first | newest first)

Vinter_Nacht, Dec 16th 2021 at 1:33 AM

1.2.0 does not appear to work. API error when attempting to place:

Running on 64 bit Windows with 16 GB RAM
Version: v1.15.7 (Stable)16/12/2021 01:23:08: Critical error occurred
System.MissingMethodException: Method not found: 'Void Vintagestory.API.Common.BlockEntity.MarkDirty(Boolean)'.
at Compass.BlockEntityCompass.OnBlockPlaced(ItemStack byItemStack)
at Vintagestory.Client.NoObf.ClientWorldMap.SpawnBlockEntity(String classname, BlockPos position, ItemStack byItemStack)
at Vintagestory.API.Common.Block.OnBlockPlaced(IWorldAccessor world, BlockPos blockPos, ItemStack byItemStack)
at Vintagestory.Common.BlockAccessorRelaxed.SetBlock(Int32 blockId, BlockPos pos, ItemStack byItemstack)
at Vintagestory.API.Common.Block.DoPlaceBlock(IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel, ItemStack byItemStack)
at Vintagestory.API.Common.Block.TryPlaceBlock(IWorldAccessor world, IPlayer byPlayer, ItemStack itemstack, BlockSelection blockSel, String& failureCode)
at Vintagestory.Client.NoObf.ClientMain.OnPlayerTryPlace(BlockSelection blockSelection, String& failureCode)
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.OnBlockBuild(BlockSelection blockSelection, Block onBlock, String& failureCode)
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.HandleMouseInteractionsBlockSelected(Single dt)
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.OnFinalizeFrame(Single dt)
at Vintagestory.Client.NoObf.ClientEventManager.TriggerRenderStage(EnumRenderStage stage, Single dt)
at Vintagestory.Client.NoObf.ClientMain.TriggerRenderStage(EnumRenderStage stage, Single dt)
at Vintagestory.Client.NoObf.ClientMain.RenderToDefaultFramebuffer(Single dt)
at _gt983m53spH3zIRFvTrVgBj5MUb._T9YfRFmW6X4ZcWzG7vSwet0Rgrs(Single )
at _2hFm1B1DwOk1Z7yF6DtBdLeBFKaA._5soGXezAcR5oyhhq2pmELCuEn2M(Single )
at _2hFm1B1DwOk1Z7yF6DtBdLeBFKaA._ZzmaNk5IGbtvQ61ssCzCszyBw2n(Single )
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(Object sender, FrameEventArgs e)
at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
at OpenTK.GameWindow.RaiseRenderFrame(Double elapsed, Double& timestamp)
at OpenTK.GameWindow.DispatchRenderFrame()
at OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second)
at _LiN8p156auXcqjjOW5aVAZ0QkUc._fwMbTl3XHB2eqbxoLfc3FpMIE00(_CFodeVozKjT5VhVV66Wv4Bd7r3c , String[] )
at _qBF2AKwdIhCkNZsjxBA24g20vlH._fwMbTl3XHB2eqbxoLfc3FpMIE00(ThreadStart )
-------------------------------

Event Log entries containing Vintagestory.exe, the latest 3
==================================
{ TimeGenerated = 16/12/2021 01:23:09, Site = , Source = .NET Runtime, Message = Application: Vintagestory.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: exception code c0020001, exception address 00007FFF14904F69
Stack:
}
--------------
{ TimeGenerated = 16/12/2021 01:21:34, Site = , Source = .NET Runtime, Message = Application: Vintagestory.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: exception code c0020001, exception address 00007FFF14904F69
Stack:
}
--------------
{ TimeGenerated = 15/12/2021 03:27:24, Site = , Source = .NET Runtime, Message = Application: Vintagestory.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: exception code c0020001, exception address 00007FFF14904F69
Stack:
}

delete edit