Project Description
TerraMap is an interactive Terraria v1.3 world map viewer that loads quickly and lets you pan, zoom, find blocks, ores, items in chests, dungeons, NPCs, etc.

New: TerraMap Online, a cross-platform Terraria map viewer web application (in development, not yet feature-complete).

Support TerraMap development:

Donate via PayPal

TerraMap1.png
  • Easily open your Terraria world files using either a pre-populated list, or by manually browsing to the .wld file
  • Interactive, smooth pan and zoom using the mouse and/or keyboard shortcuts
    • Drag with left mouse button to pan
    • Use mouse wheel to zoom
    • Use - and + keys to zoom
  • Use the Zoom to Fit and Zoom to 100% buttons
  • Choose a block or item from the drop down list, or use the block search window
    • Use Ctrl+F to use the block search window
  • Use the FInd Next and Find Previous buttons to pan, zoom, and select blocks that match, or chests that contain the selected item
    • Use F3 to find next
    • Use Shift+F3 to find previous
  • Use the Highlight All button to highlight all matching blocks, or chests that contain the selected item
  • Right-click a chest to view a list of the items it contains
  • Right-click a sign or grave marker to view its text
  • Use the Save button, File->Save menu item, or Ctrl+S key to save a PNG image of your full world
  • Use the Refresh button to reload and view changes while you play
  • Use the Navigate menu to jump to the location of:
    • Spawn
    • Dungeon
    • NPCs (Merchant, Mechanic, Arms Dealer, etc)
  • Use the World Properties button or menu to view information, such as world size, moon phase, bosses killed, orbs broken, altars smashed, etc.
  • Command-line image creation support (great for servers)

Right-click a chest to view a list of the items it contains
TerraMap2.png

Use the Highlight All button to highlight all matching blocks, or chests that contain the selected item
TerraMap3.png

TerraMap4.png

Use Ctrl+F to use the block search window
TerraMap5.png

Use the Navigate menu to jump to the Spawn, Dungeon, and NPCs
TerraMap6.png

TerraMap is completely read-only, making it completely safe to use, with no risk of corrupting or overwriting your world files.

It uses only a single pixel and color for each block, tile, item, etc. It does not use the game's textures. For that, I highly recommend the excellent Terrafirma.

It's built using C#, WPF and MVVM, utilizing ViewModels and data binding as much as possible. It uses TPL (Task Parallel Library) to do processor-intensive work in the background, utilizing multiple parallel threads when needed to improve performance.

I experimented with several different approaches to drawing, and finally ended up using WPF's WriteableBitmap, which gave the best compromise of performance versus memory and processor usage.

I used the Terraria .wld format documentation provided by Terrafirma to read the world data, using only managed C# code. Sean definitely did a great job at reverse-engineering and documenting the format. Portions of TerraMap code were adapted from the source code for TerraFirma. I also used ILSpy to peek at some of the Terraria game code.

This was an education exercise for me. The only real improvements I made over Terrafirma are the combined block/tile/item search, allowing you to search for items in chests, the incremental search forward/backward, and UI improvements.

I also used the excellent ZoomControl from WPF Extensions for pan and zoom functionality, with modifications made to the UI.

Last edited Aug 6, 2015 at 12:31 AM by jcoon, version 13