Mods / Spyglass

Tags: #Technology #Utility
Author: Fuami
Side: Both
Created: Aug 2nd 2021 at 3:37 AM
Last modified: Dec 7th 2024 at 10:32 PM
Downloads: 68707
Follow Unfollow 751

Latest release (for outdated Vintage Story v1.20.0 - v1.20.4):
spyglass_0.5.2.zip  1-click install


Adds a new tool to the game, the spyglass.

Some metal smithing, and glass smelting you can have your very own spyglass, then go exploring the wilds, or spy on your neighbors from the safety of your windmill.

As of v0.3.0 - You can now use the mouse wheel to adjust your zoom some while your are using the spyglass.

As of v0.3.1 - Config Options

As of v0.4.7 - Removed Damage from hitting, this is more consistent with other similar items in the game, added Bismuth as a valid material, its not like your going to be hitting anything with it anyway. ;)

As of v0.5.0 - new config options, including mouse wheel settings and options, preserveZoomBetweenUses and vignette options as well as french and russian localization.

As of v0.5.1 - Pt-Br Localization.

Vingnette

You can now select one of several possible vignettes via the setting "vignetteStyle" in the mod config file.

  • "edge" - This is the default and appears as a soft darkening around the border of the screen.
  • "box" - This produces a hard edge the encroaches from the edge of the screen.
  • "square" - Produces a overlay that covers all but a centered square.
  • "circle" - Produces a overlay that covers all but a centered circle.

In addition to the style, you can adjust:

  • "edgeSize" - This is the number of pixels from the edge of the screen that the vignette will extend, circle and square use this setting on the smaller axis of your screen.
  • "edgeOpacity" - How transparent the vignette is, 0.0 being invisible, and 1.0 being virtually opaque; please note that the mod will adjust this value as you scroll and the interface animates in a way that I think improves the experience over all.

Version For Game version Downloads Release date Changelog Download 1-click mod install*
v0.5.2 21808 Dec 7th 2024 at 10:32 PM Show spyglass_0.5.2.zip 1-click install
v0.5.1 18779 Feb 26th 2024 at 6:54 AM Show spyglass_0.5.1.zip 1-click install
v0.5.0 3537 Jan 10th 2024 at 5:02 AM Show spyglass_0.5.0.zip 1-click install
v0.4.7 1881 Dec 9th 2023 at 11:46 PM Show spyglass_0.4.7.zip 1-click install
v0.4.6 716 Nov 26th 2023 at 11:15 PM Show spyglass_0.4.6.zip 1-click install
v0.4.5 15330 Feb 8th 2022 at 2:58 AM Show spyglass_v0.4.5.zip 1-click install
v0.4.4 923 Jan 27th 2022 at 2:25 AM Show spyglass_v0.4.4.zip 1-click install
v0.4.3 638 Jan 21st 2022 at 3:59 AM Show spyglass_v0.4.3.zip 1-click install
v0.4.2 738 Jan 14th 2022 at 7:17 AM Show spyglass_v0.4.2.zip 1-click install
v0.4.1 440 Jan 14th 2022 at 1:41 AM Show spyglass_v0.4.1.zip 1-click install
v0.4.0 1340 Aug 12th 2021 at 4:47 AM Show spyglass_v0.4.0.zip 1-click install
v0.3.1 551 Aug 8th 2021 at 5:14 AM Show spyglass_v0.3.1.zip 1-click install
v0.3.0 525 Aug 7th 2021 at 7:15 AM Show spyglass_v0.3.0.zip 1-click install
v0.2.2 510 Aug 5th 2021 at 12:57 AM Show spyglass_v0.2.2.zip 1-click install
v0.2.1 500 Aug 3rd 2021 at 12:21 AM Show spyglass_v0.2.1.zip 1-click install
v0.2.0 491 Aug 2nd 2021 at 3:28 PM Show spyglass_v0.2.0.zip 1-click install

54 Comments (oldest first | newest first)

💬 ChimMAG, May 6th at 9:50 AM

Very interesting and useful mod. But at the same time it is a bit cheater - it allows you to do a lot of things at a great distance: for example, cut down leaves, collect resin, chop blocks and trees (by hand). But not hitting animals. And all this at a distance of a hundred blocks. And one time (though I never understood how) I, looking at the cave from top to bottom, somehow managed to carefully put this spyglass on a block in the cave and I had to climb down to get it. I realise that this is a side effect of the mod mechanics and perhaps there is nothing that can be done about it.

 

💬 prototype464, Apr 22nd at 8:14 AM

Should add a Molybdochalkos spyglass :)

💬 Thalius, Mar 13th at 3:38 AM

Fuami Might you consider adding a feature that gives the distance from your location to the target you are viewing? In meters? Would make a spyglass useful as a survey tool, especially on mapless servers.

If that is outside the scope of this mod and you don't want to get into adding that to this, I have suggestion for a mod that adds some survey/mapping tools which, on a code level, would basically be the spyglass along with a few added features and crafting material requirements. If you are at all interested, I'd be happy to share more.

💬 Fuami , Mar 4th at 7:14 AM

As of March 2025, If anyone is experencing issues on Arch or another version of linux you might try using the Flatpak version of VS instead ( related issue: https://github.com/anegostudios/VintageStory-Issues/issues/5252 )

💬 Fuami , Mar 4th at 2:53 AM

Le3Kat Thanks for sending an issue on github, I've replied there.

EmileA259 To my knowledge, though there appears to be an issue on linux ATM

Pixil_killer Its really intended as a means of magnification then some overlay assisted interface, its an interesting idea, but its not really what I was going for.

26chairs To my knoweldge, however take that with a grain of salt, I took the pathway that I thought made the most since with what I knew, and things may have also changed since I wrote that code.

Desolae I opted to use glass since its a shaped lens, while your not wholy wrong that its not impossible to have a natrually formed lens, I felt that accepting any quartz was inaccurate. But feel free to tweak the recipe in the mod file if you prefer that way.

💬 Le3Kat, Mar 2nd at 2:11 AM

Hi, when I use the spyglass it doesn't actually zoom it, it just puts the spyglass infront of my face. I'm playing on version 1.20.4 (Stable)

💬 EmileA259, Feb 23rd at 7:44 PM

does this mod work on 1.20.4

💬 Pixil_killer, Jan 28th at 4:54 AM

have you thought of adding the functionality of seeing an animals details at range with the spyglass?
it would add to the usefulness by letting you know exactly if what animal youre looking at is worth chasing/time killing or not

💬 26chairs, Jan 28th at 4:28 AM

Hi Fuami!

Sorry, not exactly a question about the mod itself, but more of a question about the code. Is handling the mouse wheel like you do on there, using a GUI event, the only way that you know of of capturing mouse wheel events? There doesn't seem to be a binding in settings for next/previous item and the mouse wheel events on ICoreClientAPI.Event aren't raised by scrolling the wheel.

💬 Desolae, Jan 25th at 2:03 AM

Considering that the spyglass's metal is available as early as copper, I wish I could use Quartz glass too (crafted from clear quartz nuggets and sticks) rather than only plain glass (smelted in a bloomery, much later in the game). That caught me off guard for sure. But great mod, fantastic way to incorperate a zoom feature in a rewarding and immersive way.

💬 prototype464, Jan 22nd at 1:38 AM

Working in 1.20.1 (vignette is set to the "circle" setting), gave myself a brass spyglass in creative mode. Untested in survival.

💬 Damglador, Jan 20th at 12:06 AM

In 1.20.1 spyglass just doesn't go into zoom on right click for me

💬 Fuami , Dec 8th 2024 at 12:11 AM

AzuliBluespots its an interesting thought, but it feels pretty anti-thetical to the intention of sneaking, And could easilly get someone killed if they forget they were holding it in their off hand when they were trying to be sneaky. 🤔

💬 AzuliBluespots, Dec 7th 2024 at 11:05 PM

Fuami
Maybe the shield? It does activate something when sneaking. Maybe that could trigger the zoom function?

💬 Fuami , Dec 7th 2024 at 10:49 PM

@Thranos New versino should fix the 1.20-rc1 issue.

@DeanBro This should be included in the version.

Chupacabra I honestly am not aware of any other items with this sort of functionality, if anyone knows of something that can be used in their off hand that might be used as a guide let me know.

@pizza2004 I believe that the spyglass fits in with a number of the other tools that never lose durability, so I doubt I'd be adding this; plus there are other clientside mods for zooming and I think such punishment would push people towards those options when they prefer the immersion of this mod.

💬 Thranos, Dec 6th 2024 at 5:01 AM

Sadly, seems nonfunctional on 1.20.

💬 Jamac, May 30th 2024 at 10:17 PM

Do you think you could add a config option to make the edge opacity stay the same when you scroll to change zoom? I set my opacity to 1 but it becomes transparent when I zoom out. Other than that, I love the mod, great work!

💬 DeanBro, May 25th 2024 at 7:41 AM

thanks

💬 Chupacabra, Apr 15th 2024 at 4:30 PM

Great mod! Is there a way to use it in you'r offhand?

💬 pizza2004, Apr 5th 2024 at 9:52 AM

I would love it if you made it so that when you actually use the spyglass it uses up the durability.  You could even add a small bit of code that make sure if someone cancels before it full zooms in that it doesn't use up the durability.  The code for the hoe in vanilla is a good example to look at for this.

That way there'd be a legitimate reason to try and make the better kinds of spyglass!  You could even adjust the durability to whatever felt most balanced.

💬 Fuami , Mar 28th 2024 at 4:45 PM

MrL972 Is there an issue your seeing? I just tried spyglass v0.5.1 out on vs 1.19.5 and everything seems fine, so I assume the same for Dot 4, minor releases have rarely broken anything important.

💬 MrL972, Mar 28th 2024 at 6:02 AM

can you update to 1.19.4 ?

💬 RomixERR, Mar 25th 2024 at 11:44 AM
Сhanged the recipe for the lens from the kingdom of memories mod. 
spyglass.json
💬 Fuami , Feb 28th 2024 at 1:43 AM

Orangutanion its made with glass? And thats usually made with clear quartz? If you don't like the recipe or something feel free to change the json.

💬 XurxoMF, Feb 26th 2024 at 1:07 PM

Thx a lot for the update, we'll try in a few hours ^^

💬 Fuami , Feb 26th 2024 at 6:59 AM

XurxoMF Please try 0.5.1 ( Intentalo con la versión 0.5.1 )

AzuliBluespots I've added the localization to the mod itself.

💬 XurxoMF, Feb 25th 2024 at 11:21 AM

Running on 64 bit Windows 10.0.19044.0 with 16332 MB RAM
Game Version: v1.19.3 (Stable)
25/02/2024 12:14:56: Critical error occurred in the following mod: spyglass@0.5.0
Loaded Mods: aculinaryartillery@1.1.2, buzzwords@1.6.0, chiseltools@1.10.4, fantasycreatures@0.7.1, floralzonescaperegion@1.0.6, floralzonescaribbeanregion@1.0.3, caninae@1.0.10, machairodontinae@1.0.2, pantherinae@1.1.1, HangingOilLamps@1.0.1, millwright@1.1.4, moreicons_cs@1.1.0, leadroof@1.3.4, primitivesurvival@3.4.7, qptech@1.14.3, rope-bridges@1.1.0, ropebucket@1.0.0, rpvoicechat@2.3.8, spyglass@0.5.0, game@1.19.3, abcsreborn@0.1.9, alchemy@1.6.25, animalcages@3.0.2, betterruins@0.3.3, helblockpick@2.2.1, butchering@1.5.2, carryon@1.7.4, chickenSit@2.0.1, commonlib@2.3.2, Crateful@1.2.8, earlychiseling@1.0.1, electricity@0.0.11, expandedfoods@1.6.8, extrainfo@1.7.0, fairplayguardian@1.1.7, farmlanddropssoil@1.4.0, flowerfarming@1.0.0, herbarium@1.1.0, hudclock@3.4.0, meteoricexpansion@1.2.5, mobsradar@2.0.0, petai@2.2.3, rivers@2.5.0, rustboundmagic@1.5.10, stonebakeoven@1.1.3, storageoptions@1.0.2, th3dungeon@0.2.1-rc.1, trailmod@1.0.7, vinconomy@0.2.3, creative@1.19.3, vsinstruments@1.2.7, vsquest@1.2.0, survival@1.19.3, vsvillage@0.9.2, woodchests@1.1.0, xlib119@0.7.4-dev.1191, apanserbjornstory@0.9.2, awearablelight@1.1.1, cats@2.0.1, em@2.5.0, extraoverlays@1.4.0, foxtaming@1.4.0, helvehammerext@1.6.0, onestick@1.0.1, playercorpse@1.9.0, rifteye@0.3.4, stonequarry@3.2.1, tpnet@1.14.2, wildcraftfruit@1.1.0, wildcraftherb@0.0.0, wildcrafttree@1.1.0, wolftaming@2.1.0, xskills119@0.7.5-dev.1191, bricklayers@2.5.0
System.NullReferenceException: Object reference not set to an instance of an object.
at spyglass.src.ClientManipulation.AttemptingToZoom() in C:\Users\Fuami\source\repos\spyglass\spyglass\src\Client\ClientManipulation.cs:line 110
at spyglass.src.ClientManipulation.getPercentZoomed() in C:\Users\Fuami\source\repos\spyglass\spyglass\src\Client\ClientManipulation.cs:line 128
at spyglass.src.ClientManipulation.GetSensitivityMultiplier() in C:\Users\Fuami\source\repos\spyglass\spyglass\src\Client\ClientManipulation.cs:line 85
at Vintagestory.Client.NoObf.ClientMain.OnMouseMove_Patch0(ClientMain this, MouseEvent args)
at Vintagestory.Client.NoObf.ClientMain.set_MouseGrabbed(Boolean value) in VintagestoryLib\Client\ClientMain.cs:line 1705
at Vintagestory.Client.GuiScreenRunningGame.handOverRenderingToRunningGame() in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 57
at Vintagestory.Client.GuiScreenRunningGame.OnEvent(String eventCode, Object arg) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 85
at GuiScreen.BubbleUpEvent(String eventCode, Object arg) in VintagestoryLib\Client\MainMenu\Screens\Special\GuiScreen.cs:line 93
at GuiScreen.BubbleUpEvent(String eventCode) in VintagestoryLib\Client\MainMenu\Screens\Special\GuiScreen.cs:line 81
at Vintagestory.Client.NoObf.ClientMain.OnOwnPlayerDataReceived() in VintagestoryLib\Client\ClientMain.cs:line 688
at Vintagestory.Client.NoObf.GeneralPacketHandler.HandlePlayerData(Packet_Server packet) in VintagestoryLib\Client\Systems\GeneralPacketHandler.cs:line 274
at Vintagestory.Client.NoObf.ClientMain.ExecuteMainThreadTasks(Single deltaTime) in VintagestoryLib\Client\ClientMain.cs:line 769
at Vintagestory.Client.GuiScreenConnectingToServer.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenConnectingToServer.cs:line 313
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 675
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 650
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 88
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 318
at Vintagestory.Client.ClientProgram.<>c__DisplayClass9_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 128
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93

Event Log entries for Vintagestory.exe, the latest 3
==================================
{ TimeGenerated = 25/02/2024 1:09:05, Site = , Source = Application Error, Message = Nombre de la aplicación con errores: Vintagestory.exe, versión: 1.19.3.0, marca de tiempo: 0x65310000
Nombre del módulo con errores: openal32.dll, versión: 1.23.0.0, marca de tiempo: 0x63dd31ad
Código de excepción: 0x40000015
Desplazamiento de errores: 0x00000000000df046
Identificador del proceso con errores: 0x37c
Hora de inicio de la aplicación con errores: 0x01da677e96a91106
Ruta de acceso de la aplicación con errores: J:\Vintagestory\Vintagestory.exe
Ruta de acceso del módulo con errores: J:\Vintagestory\Lib\openal32.dll
Identificador del informe: 1ca154d3-103d-4853-9061-3e7989d53919
Nombre completo del paquete con errores:
Identificador de aplicación relativa del paquete con errores: }
--------------
{ TimeGenerated = 25/02/2024 1:06:29, Site = , Source = Application Error, Message = Nombre de la aplicación con errores: Vintagestory.exe, versión: 1.19.3.0, marca de tiempo: 0x65310000
Nombre del módulo con errores: openal32.dll, versión: 1.23.0.0, marca de tiempo: 0x63dd31ad
Código de excepción: 0x40000015
Desplazamiento de errores: 0x00000000000df046
Identificador del proceso con errores: 0x33f4
Hora de inicio de la aplicación con errores: 0x01da677e69ec0168
Ruta de acceso de la aplicación con errores: J:\Vintagestory\Vintagestory.exe
Ruta de acceso del módulo con errores: J:\Vintagestory\Lib\openal32.dll
Identificador del informe: 60bac8fd-298a-47d4-910c-2ff7e4bbd973
Nombre completo del paquete con errores:
Identificador de aplicación relativa del paquete con errores: }
--------------
{ TimeGenerated = 25/02/2024 1:05:49, Site = , Source = Application Error, Message = Nombre de la aplicación con errores: Vintagestory.exe, versión: 1.19.3.0, marca de tiempo: 0x65310000
Nombre del módulo con errores: openal32.dll, versión: 1.23.0.0, marca de tiempo: 0x63dd31ad
Código de excepción: 0x40000015
Desplazamiento de errores: 0x00000000000df046
Identificador del proceso con errores: 0x12b4
Hora de inicio de la aplicación con errores: 0x01da677e2ab0e246
Ruta de acceso de la aplicación con errores: J:\Vintagestory\Vintagestory.exe
Ruta de acceso del módulo con errores: J:\Vintagestory\Lib\openal32.dll
Identificador del informe: a1abdeea-174e-43b7-a63b-d263a579044c
Nombre completo del paquete con errores:
Identificador de aplicación relativa del paquete con errores: }

💬 AzuliBluespots, Jan 13th 2024 at 1:53 PM

I'm surprised to see this getting an update.
Since I used it a lot, I added the pt-br translation to crowdin ✌

💬 CilyMe, Jan 11th 2024 at 6:30 PM

Thank you Fuami, I will check it out today!

Edit: Worked like a champ, I'm loving it, thanks again!

💬 Fuami , Jan 10th 2024 at 5:03 AM

CilyMe I've added new settings that should enable this, you might need to remove your existing config file for it to generate one with all the new options.

💬 Fuami , Jan 7th 2024 at 8:02 AM

CilyMe I can probobly add some new settings to make this possible, I can see the utility.

Bruco lol, nice one.

💬 CilyMe, Jan 3rd 2024 at 4:55 PM

Bruco, I don't think it's lame at all! I use it extensively and never leave home without it. I use it like you do for locating sap on trees, bees, and crops on the ground. I also use it for locating terra preta, scanning the surrounding terrain for signs of bears and wolves, peering down holes in the ground to look for entrances to ruins, and for finding ores in rock faces of distant mountains. This is easily my favorite QoL mod to date!

💬 Bruco, Jan 3rd 2024 at 2:44 AM

So, I was hoping to use this mod to help me find bees nests and sap/resin. Was wondering would it be lame like telescopes in others mods and games? I make it. I use it. First thing I see is a sap in a vinelog of a tall tree that was indistiguishable to my eye but was right under(above;D) my nose the whole time. Great work !!!

💬 CilyMe, Dec 29th 2023 at 12:42 AM

Would it be possible to add a config option to turn on the ability to have the last used zoom level preserved for the next time you use the spyglass? Sometimes I like it all the way zoomed out, but have to zoom out each time i use it. Not a deal breaker to be sure, I love the mod regardless, but it would be nice to have it at the last set zoom level on each use.

💬 Schmarotzer, Dec 14th 2023 at 4:10 AM

Hello.

Here is the russian translation of the mod.

https://pastebin.com/C7H5iZH7

💬 Tels, Dec 10th 2023 at 2:12 PM

Thank you, my favourite mod just got more awesome! 💚

💬 Fuami , Dec 9th 2023 at 11:43 PM

Tels Agreed, some how I missed this comment all this time... but no longer!

Botaxalim After considering your comment, and other similar items in the game, I think that removing DamageBy makes sense. Smacking things with laterns dosn't damage them for instance, if for no other reason then being consistent with the rest of the game.

💬 Botaxalim, Nov 27th 2023 at 4:00 PM

i make some edit for personal use, i remove the durability and parameter called DamagedBy, since i dont like idea spyglass destroyed after accidentally left clicking ground (happen when my golden spyglass broke)
its great addition for the game, you can spot more stuff while exploring

💬 RuneScholar, Nov 26th 2023 at 11:44 PM

Yeah, that’s a good start at least. I don’t even really know how VS handles its ruin loot. I’m used to mod-making other games that use the standard loot table. So I’ll look into it. But having the item I.D. is a big help.

💬 Fuami , Nov 26th 2023 at 10:37 PM

@RuneScholar I'm not familiar with loot tables, but the items themselves should be "spyglass:spyglass-copper" or "spyglass:spytube-copper" replacing copper with the various materials: copper, tinbronze, bismuthbronze, blackbronze, gold, silver, iron, meteoriciron, brass, steel.

Adding those somewhere inside of the tables might make sense?

💬 RuneScholar, Nov 26th 2023 at 5:50 PM

Hey, if I wanted to put spyglasses in the loot tables for ruins, how would I go about doing that?

💬 RuneScholar, Nov 26th 2023 at 5:49 PM

I know this reply is late, but yes it does.

Ponchoandlefty

💬 Ponchoandlefty, Oct 16th 2023 at 5:55 AM

Does this mod still work in version 1.18.15?

💬 Joram, Aug 28th 2023 at 7:19 PM

Hello !
I translated your mod in french :)

https://pastebin.com/5vw9FT8B

💬 pabadger, Apr 20th 2023 at 4:42 PM

Seems to work in 1.18.

💬 Tels, Jan 16th 2023 at 10:12 PM

It would be really nice to be able to make a "bismuth" spyglass for the pretty green colors :)

💬 Yuhri, Sep 17th 2022 at 6:54 AM

Hey! the drifters in my server (1.17.2 and 1.17.3) seem to stop moving. The console says ''[server error] Task with code drifterwander (also drifterseekentity and drifterfleeentity) for entity game:drifter(any kind) does not exist. ignoring. Upon removing spyglass, all drifters start moving again.

💬 Tels, Jan 13th 2022 at 12:15 AM

Thank you! :)

💬 Fuami , Jan 13th 2022 at 12:03 AM

Existing versions should work for 1.16 if you have issues let me know.

💬 Tels, Jan 12th 2022 at 3:01 PM

Could you please update the mod for 1.16? It's such a fun mod :) Thank you!

💬 Tels, Aug 12th 2021 at 7:35 AM

Yeah for steampunk brass spyglass \o/

💬 Xorberax, Aug 3rd 2021 at 4:25 AM

You read my mind! I was looking for a spyglass mod yesterday, and boom, now it exists!

💬 Fuami , Aug 2nd 2021 at 3:28 PM

Whoops, Sort of forgot to upload the file :D

💬 Tels, Aug 2nd 2021 at 11:11 AM

Very nice, that is something I always wished for! :)

There are no downloadable files here, tho?

 (edit comment delete)