Mods / Marximus Medieval Map

Tags: #Cosmetics #Other #QoL #Tweak
Author: MarximusMaximus
Side: Client
Created: Feb 2nd at 8:53 AM
Last modified: Jun 26th at 5:41 AM
Downloads: 1613
Follow Unfollow 80

Recommended download (for Vintage Story 1.20.12):
MarximusMedievalMap_1.5.3.zip  1-click install


Simplifies the world map, with customizable colors. Similar to the default map, but looks a bit nicer on the map for building a settlement. Also provides a happy medium between the default map and the full color map as it helps a bit with the visibility on the map of generated Points of Interest like ruins and traders.

This is a rebuild and update of the mod MedievalMap by  Rangelost, who is on indefinite break (as of some point in 2023 and currently as of 2025-02-02).

NOTE: It does NOT fix slow map loading that's introduced in 1.20, as it just uses default saving/loading of the map, so when VS itself fixes that, it will also be fixed for the mod.

WARNING: Read carefully before considering installing this mod.

This mod replaces the way world maps are drawn. It does not stylize your existing world maps entirely. Only chunks that are loaded while this mod is active will be drawn in the new style. Inversely, if you disable this mod, the chunks will not be reverted to their original version until they are loaded again.

Before using this mod, it is highly recommended that you create a backup of your maps (.../VintagestoryData/Maps/).

 

Upon running the mod, a medievalmap.json config file will be created or updated in the game's ModConfig directory. The available options are:

  • ink_colour: hex colour code for most non-natural blocks and outlines.
  • land_colour: hex colour code for land.
  • desert_colour: hex colour code for sand and gravel.
  • forest_colour: hex colour code for forest floor.
  • road_colour: hex colour code for roads and farmland.
  • plant_colour: hex colour code for most plants.
  • water_colour: hex colour code for water.
  • ice_colour: hex colour code for permanent ice, such as glaciers.
  • lava_colour: hex colour code for lava (currently unused).
  • high_colour: hex colour code to denote high altitude, such as mountains.
  • low_colour: hex colour code to denote low altitude, such as holes.
  • water_edge_colour: hex colour code for the water edges.
  • generic_shadow_colour: hex colour code for most shading.
  • plant_shadow_colour: hex colour code for plant shading.
  • generic_grid_colour: hex colour code for the grid.
  • water_grid_colour: hex colour code for the grid over water.
  • generic_grid_opacity: opacity of the grid (between 0 and 1).
  • ocean_grid_opacity: opacity of the grid over oceans (between 0 and 1).
  • ocean_texturedtrue to enable ocean texture, otherwise false.
 
 

Changes I'd like to make:

  • configurable via config lib GUI
  • ability to customize what blocks are in a category
  • ability to customize categories (e.g. add new categories and set colors for each)

 


Website: https://marximus.com

Twitch: https://twitch.tv/marximusmaximus

 

Mod Version For Game version Downloads Release date Changelog Download 1-click mod install*
1.5.3 331 Jun 26th at 5:41 AM MarximusMedievalMap_1.5.3.zip 1-click install
  • Update function signature to match latest in 1.20.12.
  • Re-organized the code to match latest in 1.20.12 to make it's run time similar to vanilla.
1.5.2 Jun 23rd at 11:40 PM 1-click install

Recompiled for 1.20.12 against .Net 7 (not .Net 8, oops).

1.5.1 Jun 23rd at 8:14 AM 1-click install

Recompiled for compatibility with 1.20.12.

1.5.0 1140 Feb 2nd at 9:21 AM MarximusMedievalMap_1.5.0.zip 1-click install

Initial release after fork and fix.


25 Comments (oldest first | newest first)

💬 metasynthie, Jun 26th at 1:12 PM

MarximusMaximus Yep that's the one! Thanks for the update, will test now.

💬 MarximusMaximus , Jun 26th at 5:42 AM

And updated!

 

Nephelangelo Sorry, the mod was bugged. It only was working in developer mode and only for me for some reason.

 

Warning & Reminder to self: Turn off developer mode if you want to see failures.

💬 MarximusMaximus , Jun 26th at 2:00 AM

metasynthie Is this the one you're using? https://mods.vintagestory.at/emtk 

 

I can't handle this error tonight, but I will tomorrow. Thank you for the extended report.

💬 Nephelangelo, Jun 26th at 12:00 AM

Not sure what I am doing wrong, but I am running this mod on 1.20.12 and not seeing any change in the map. I tried both color accurate map on and off.

💬 metasynthie, Jun 24th at 3:59 PM

I'm on Win 11 Pro and just got this exception thrown out of a client error log while Marximus Medieval Map 1.5.2 was starting up, maybe helpful? I am using a launcher (Early Load Patcher) which gives a more verbose error message. But the same error happens with vanilla client too.

Spoiler!
24.6.2025 11:56:46 [Client Error] [marximusmedievalmap] An exception was thrown when trying to run mod system "MedievalMapSystem" phase "Normal":
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> HarmonyLib.HarmonyException: Patching exception in method System.Int32[] Vintagestory.GameContent.ChunkMapLayer::GenerateChunkImage(Vintagestory.API.MathTools.FastVec2i chunkPos, Vintagestory.API.Common.IMapChunk mc, System.Boolean colorAccurate)
---> System.Exception: Cannot assign method return type System.Int32[] to __result type System.Boolean for method System.Int32[] Vintagestory.GameContent.ChunkMapLayer::GenerateChunkImage(Vintagestory.API.MathTools.FastVec2i chunkPos, Vintagestory.API.Common.IMapChunk mc, System.Boolean colorAccurate)
at HarmonyLib.MethodPatcher.EmitCallParameter(MethodInfo patch, Dictionary`2 variables, LocalBuilder runOriginalVariable, Boolean allowFirsParamPassthrough, LocalBuilder& tmpInstanceBoxingVar, LocalBuilder& tmpObjectVar, Boolean& refResultUsed, List`1 tmpBoxVars)
at HarmonyLib.MethodPatcher.<>c__DisplayClass37_0.b__0(MethodInfo fix)
at HarmonyLib.MethodPatcher.CreateReplacement(Dictionary`2& finalInstructions)
at HarmonyLib.PatchFunctions.UpdateWrapper(MethodBase original, PatchInfo patchInfo)
at HarmonyLib.PatchClassProcessor.ProcessPatchJob(Job job)
--- End of inner exception stack trace ---
at HarmonyLib.PatchClassProcessor.ReportException(Exception exception, MethodBase original)
at HarmonyLib.PatchClassProcessor.Patch()
at HarmonyLib.Harmony.b__10_0(Type type)
at HarmonyLib.CollectionExtensions.Do[T](IEnumerable`1 sequence, Action`1 action)
at HarmonyLib.Harmony.PatchAll(Assembly assembly)
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
--- End of inner exception stack trace ---
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
at System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at EMTK.EarlyLoadPatcher.TryRunModPhase(Mod mod, ModSystem system, ICoreAPI api, ModRunPhase phase, Boolean& __result) in /home/mom/Desktop/mgz/Documents/Code/git/vintagemods/Early Mod Toolkit 3/src/PatchEarlyLoad.cs:line 166
24.6.2025 11:56:46 [Client Error] Failed to start system MedievalMap.MedievalMapSystem
💬 MarximusMaximus , Jun 23rd at 11:41 PM

Tester (on Win 10) is seeing an error with v1.5.2, but I am not (on Win 11), even after both re-installing from scratch and only having this mod enabled. If anyone could confirm or deny if they are seeing an error and what the error is, that would be most helpful for tracking down what's happening.

 

wildforester recompiled for .Net 7, accidentally did .Net 8 (which is for 1.21.x).

 

Nephelangelo That would be outside of the scope of the mapping system. We're not really doing anything here but changing the color of the pixel that the mapping system is recording. I feel like that would need to be a separate mod.

💬 MarximusMaximus , Jun 23rd at 8:42 PM

eerino That is VERY neat. I wonder how hard it would be to do something similar... and/or just recompile that mod to work with latest...

💬 MarximusMaximus , Jun 23rd at 8:40 PM

Looking into the error. It was working fine for me, but that doesn't mean much, eh? >_<;;;

💬 eerino, Jun 23rd at 3:23 PM

looking forward to this being stable! I really like what you did here.

Reminds me a mod I really wish would update, Lay of the Land. It allows you to see height properly and, "emphasize cliffs, darken holes and smooth out shallow slopes."

💬 wildforester, Jun 23rd at 8:57 AM

The mod is throwing an exception with 1.5.1. I disabled all my other mods for this test after it failed the first time. Same happens after a full game restart with only this mod.

[Error] [marximusmedievalmap] An exception was thrown when trying to load assembly:
[Error] [marximusmedievalmap] Exception: Could not load file or assembly 'System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.
   at System.ModuleHandle.ResolveType(QCallModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
   at System.ModuleHandle.ResolveTypeHandle(Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
   at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
   at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(MetadataToken caCtorToken, MetadataImport& scope, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, ListBuilder`1& derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctorWithParameters, Boolean& isVarArg)
   at System.Reflection.CustomAttribute.AddCustomAttributes(ListBuilder`1& attributes, RuntimeModule decoratedModule, Int32 decoratedMetadataToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, ListBuilder`1 derivedAttributes)
   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__DisplayClass36_0.b__1(Assembly ass) in VintagestoryLib\Common\API\ModContainer.cs:line 457
   at System.Linq.Enumerable.WhereEnumerableIterator`1.ToList()
   at Vintagestory.Common.ModContainer.LoadAssembly(ModCompilationContext compilationContext, ModAssemblyLoader loader) in VintagestoryLib\Common\API\ModContainer.cs:line 454
💬 MarximusMaximus , Jun 23rd at 8:14 AM

Please try the version I just uploaded, 1.5.1.

💬 Indaryn, Jun 9th at 4:11 AM

Can confirm it's borked for 1.20.11 onwards.

💬 Prawn, May 30th at 1:29 AM

No longer works with 1.20.11 - I believe it's because they changed how the map loads for faster loading times.

edit: It still works for up to 1.20.10 for those who wish to use it!

💬 Nephelangelo, May 27th at 8:38 AM

Could you do a version of this map that disabled waypoints and instead allowed you to draw on the map yourself with charcoal? I feel like that would be far more immersive and enjoyable than the vanilla map system. 

💬 Sylvantage, May 18th at 10:21 PM

EDIT: I just reread the mod description and this is clearly in the works, oops. Sorry! Appreciate you picking up/taking over.

Is there a way to allow for more customization with specific types of blocks?
I'd like to have the desert/sand options broken down a bit more so I can identify the different types of gravel better. Right now a shale sand looks the same as granite or bauxite sand.

💬 PerkCuss, May 11th at 1:07 AM

Would it be possible to get this updated to 1.20.11? It seems to be broken in this version. It'd be greatly appreciated. Absolutely love this mod 

💬 KnapTheStones, Apr 21st at 2:43 AM

Is this client-side?

💬 DUCATISLO, Mar 25th at 7:12 PM

fells like this should been official tbh

💬 Kirn, Feb 8th at 6:24 PM

Can't modify the map setting in mp because their is no configfile that spawn in the configmod

💬 MarximusMaximus , Feb 7th at 1:37 AM

@noodlepfp I have seen something similar, but I'm not sure why. Where like, if I'm suuuuper zoomed out, chunk images get unloaded and then reloaded very slowly. This might have been an issue with the original mod or maybe an issue in base game. I need to try using not the mod and see if I still have the issue...

Updated: Tested. Slow load without this mod loaded too. Base game or another mod maybe...

💬 MarximusMaximus , Feb 7th at 1:36 AM

Underames 

Try the command /worldconfigcreate bool colorAccurateWorldmap true

Попробуйте команду /worldconfigcreate bool colorAccurateWorldmap true

💬 noodlepfp, Feb 6th at 12:31 AM

Hello! When playing, the minimap looks great! But when you unload the chunks, the world map does NOT save the chunks with the new map style, and actually deletes the chunk on the world map.

edit : not sure what was happening there. My laptop might not be strong enough to run the game properly. my desktop has no issues with the mod!

💬 MarximusMaximus , Feb 3rd at 1:37 PM

morryatay I'm not sure if that's possible. With the customizable categories I want to add, you could probably achieve that with slight color variations (as opposed to the extreme color variations of the full color map). Alternatively something like auto waypoint might help? I don't know how feasible it is to render text onto the map or automatically add waypoints.

💬 morryatay, Feb 2nd at 12:38 PM

ayy map mod is back, a neato feature that would help the paper map would be region names like limestone hills, basalt plains, limestone wastes, it's always hard to identify what rock strata are on the new map style.

💬 DracsFantastic, Feb 2nd at 11:06 AM

Cool! Thanks for sharing. Excited to try it out :) 

 (edit comment delete)