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.
: TerraMap Online
, a cross-platform Terraria map viewer web application (in development, not yet feature-complete).
Support TerraMap development:
- 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:
- 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
Use the Highlight All button to highlight all matching blocks, or chests that contain the selected item
Use Ctrl+F to use the block search window
Use the Navigate menu to jump to the Spawn, Dungeon, and NPCs
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
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
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
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
for pan and zoom functionality, with modifications made to the UI.