Neo Scavenger Map Editor

14 posts / 0 new
Last post
Neo Scavenger Map Editor

First topic post to the forum, and I believe this is the right spot to put it, but feel free to move it or whatever should be done.

Been playing Neo Scavenger a lot recently, and even more recently I discovered one could mod it. So, exploring the text files, I came across the maps.txt. Naturally, I thought it would be cool to make my own maps for the game. Unfortunately, after doing a bit of research on how the conversion from hex to text actually works (there was a thread on this forum that was very helpful iirc, but I can't find it again), I was really put off by how actual placement and design would work. Being a bad programmer, I decided to take it upon myself to create a map editing program for everyone, inspired by this picture:
And, now we have it, in an (almost) standalone executable!

Spoiler: Highlight to view

You can download it here.

The defaultmap files are to test that your program is working properly. Both should correspond with the above image.

You can also customize how the program reads and writes text and images, and add new hexes! See the last section of the README.txt.

The entire program was written in Python, and compiled using Pyinstaller. Runs only on windows for the moment. Compatible with TXT, PNG and GIF files.

Instructions of use (also found in the README.txt):

Spoiler: Highlight to view
Welcome to the (un)official Neo Scavenger Map Editor!

Feel free to distribute this in any way, shape, or form!

Simply move all contents of the folder to the desired location. However, only basecolors.txt and neomap.exe are required for the program to run!

basecolors-additional.txt contains a full palette of colours for most hextypes, so feel free to use that! Credit to Asthepanda2iscool2 for compiling it.

NOTE: Should the program find a color it has not stored in its color values, it will use the last color stored in basecolors.txt.


Q: How do I use my text files in the actual game, or import files from the actual game?

A: In order to import maps, go to the Neo Scavenger folder, then the data folder. Open the maps.xml folder, and go down the second/last section of the table, under:
<table name="maps">
<column name="id">2</column>
<column name="strName">MapMiniMichigan.png</column>
<column name="strDef">

Copy and paste all the information after that, and before the closing </column>. Paste all the numbers and commas into another text file. Congratulations, now the program can read it!

In order to take an output of a text file, simply copy and paste the contents of the created text file into that section of the maps.xml file.


Q: How do I add my own colors?

A: To add your own colors, simply create a new text file, and then add lines using the template:
<color id>|<hex id>|<RGB value>|<info>|

<color id> is your color's hexidecimal value, such as #FF000 or #0000FF (red and blue respectively). Make sure to include the #!
<hex id> is the corresponding Neo Scavenger hex type to the color you want used to represent it, such as 0 for ocean or 4 for forest. This can be found in the Neo Scavenger data folder in hextypes.xml. Only tested from 0-99.
<RGB value> is the corresponding RGB value of the color you chose, such as 255,0,0 for red or 0,0,255 for blue. Make sure to follow this up with a | symbol, otherwise the program can't read it!
<info> represents the identifier in the color selection that this item represents, such as "Red (Placeholder)" or "Blue (Ocean)".

Place a - symbol at the start of the line in order to make the program skip over it, for whatever reason.
Feel free to place any comments with any characters on the line after the closing | symbol, as the program move onto the next line after that!

You can then open your custom color palette through the "Open Color Data" button.

Example colors:
#0000FF|0|0,0,255|Blue (Ocean)| #this is blue for ocean ¯\_(.-.)_/¯
#FF000|99|255,0,0|Red (Placeholder)| #this is red for the developer needs a placeholder value (/oOo)/


Q: How do I add my own quest locations?

A: To add your own quest locations, simply create a new text file, and then add lines using the template:
<x>|<y>|<hex id>|

<x> is the corresponding x-coordinate on the map to the quest location.
<y> is the corresponding y-coordinate on the map to the quest location.
<hex id> is the corresponding Neo Scavenger hex type to the color you want used to represent it, such as 0 for ocean or 4 for forest. This can be found in the Neo Scavenger data folder in hextypes.xml. Only tested from 0-99.

Again, place a - symbol at the start of the line in order to make the program skip over it, for whatever reason.
Feel free to place any comments with any characters on the line after the closing | symbol, as the program move onto the next line after that!

You can then open your custom quest locations through the "Open Quest Data" button.

Example quest locations:

33|105|28| #Swamp
34|62|32| #idk what this is again


Q: Why does it say "Error, cannot load default color values!"?

A: Check to see if basecolors.txt is present in the same folder as the executable, and is named exactly that. Otherise, again, tell me about it at, and be sure to include system specs/info.


Q: Why does it say "<literally any other error>"/Why doesn't it work?

A: As above, see, then post your problem and system information.


Feel free to ask questions and suggest improvements!

Version History

Spoiler: Highlight to view
-Initial program released.

-Added save file naming and selection.

-Added optionally immutable quest hexes.
-Added the selection of different color palettes.
-Added the selection of different quest hexes.
-Added auto shortening of large palettes
-Updated to more OOP format.

-Added coordinate display.
-Updated basequests.txt.
-Intrinsically implemented favicon.ico.

-Fixed fill bug in regards to quest locations.
-Changed fill tool to fill in similar hex number, not color.

-Fixed bug that placed hex when a file was loaded/saved.
-Updated UI.

Considering that you probably know the editor better than I (you made it, of course) could you make an all city hex map for me?
I play around with the editor myself, just to be safe (and see if I can learn the program).
Also, I'm using the HexSheetSummerDay image to decode which hexes have which value. It corresponds nicely with what you have in place. 0 being ocean (and first on the image). So I've decided to make a cheat sheet:

Spoiler: Highlight to view
0 Ocean
1 Shallows (unused hextype?)
2 Beach (unused hextype)
3 Field
4 Forest
5 Hill
6 Mountain (unused hextype)
7 Suburban hex
8 Cryo
9 City hex 1
10 Forest shack
11 City hex 2

That's as far as I'v gotten. I assume I should include the beyond-sight hexes as well (the hex line bellow with shaded hexes). I'll add more later, then I can send you an updated basecolors :).

Looking at the code you made, no... I don't included previously visited unseen hexes. That makes this much easier!

This is the basecolors file that I compiled:

Spoiler: Highlight to view
#FF0000|0|255,0,0|Red (Ocean)|
#00FFFF|3|0,255,255|Cyan (Field)|
#0000FF|4|0,0,255|Blue (Forest)|
#000080|5|0,0,128|DarkBlue (Hill)|
#ADD8E6|7|173,216,230|LightBlue (SubUrban)|
#A020F0|8|160,32,240|Purple (Cryo)|
#FFFF00|9|255,255,0|Yellow (City_1)|
#00FF00|10|0,255,0|Lime (Shack)|
#FF00FF|11|255,0,255|Magenta (City_2)|
#FFFFFF|13|255,255,255|White (Slums)|
#C0C0C0|14|192,192,192|Silver (Market)|
#808080|15|128,128,128|Grey (Ruins)|
#000000|25|0,0,0|Black (Hill_Stream)|
#FFA500|26|255,162,0|Orange (Marshland)|
#A52A2A|27|165,42,42|Brown (Lake)|
#800000|28|128,0,0|Maroon (Black_Swamp)|
#008000|29|0,128,0|Green (Zom_Zom's)|
#808000|30|128,128,0|Olive (Mysterious_Forest)|
#FF4500|31|255,69,0|RedOrange (Isotope_Mine)|
#FF1493|32|255,20,147|DeepPink (Theme_Park)|
#D2691E|33|210,105,30|Chocolate (Tribe)|
#F4A460|34|244,164,96|SandyBrown (Asylume)|
#437C17|35|67,124,23|Seaweed (Grayling)|

Think it'll work? Should I change some of these around?

Last edit, I swear. I just play tested, and it works. So bravo! This is also proof that the basecolors that I made works. :) Wonder what will happen when I bump into a quest location though... Well, I have a map, so no worries for directions. :)

Rar! Rar rar rar! Thanks for reading :)

Probably gonna steal that basecolors.txt However, doesn't seem that readable (at least to me who needs every color to perfectly represent each hex XD) so might adjust a few of them. Thanks for compiling it!

Glad the program was helpful! Any complaints or features you would want added? Going to add the ability to choose save file location and name shortly, btw.

EDIT: Nvm, far too many for you to properly choose from. Will simply upload this in addition to the original basecolors. Thank you!

Maybe make it so quest related hex locations can't be changed, since those location are hard coded into the game.

Rar! Rar rar rar! Thanks for reading :)

Probably need your additional file for that, as the base one probably won't be able to differentiate them enough.

Or...I could make it so that it tries to place the quest locations, it will default to the unknown color if no corresponding color is find.

Since it's possible to actually change those locations, albeit hard, I'm going to add an option to keep quest locations. Should be done in a few days, combined with the feature of opening a different text file of colors.

Major update! You can now load different files for your color palettes, you can select the option of leaving quest locations immutable and defaulted, you can load different quest locations files, and the option menu shrinks if you choose a big option!

This version might be a unstable, as I've completely revised how the program stores and loads colors, hexes, coordinates etc. There might be something I forgot to check. Be sure to tell me if you encounter a problem!

Planned next feature: Display coordinates when hovering over a hex/pixel for ease of editing.

Minor update! We now have coordinates of a given tile when you mouse/paint over it! This corresponds only to the map represented in the game and in this program, and not the actual placement of hex inside the text file. Also added Saginaw Mental Institute to the basequests.txt, which was missing for some reason.

In order to find out where a hex is located inside the text file, you can do a conversion from the x and y coordinates given:

For X: Divide x by 2. This becomes your new x. (if there is a remainder, save it for later)
For Y: Add the x to y, along with any remainder from the x calculation. This becomes your new y.

This is, of course, ignoring commas.

I might even add a converter between text and picture coordinates later.

Another minor update: Removed the need for favicon.ico, which is now built in!

Huzza! I actually have no idea what favicon.ico did, but yay!
What did it do?

Rar! Rar rar rar! Thanks for reading :)

Just gave the icon for the program, both in the taskbar and the window.

Didn't know how to combine it with the .exe, but did some bootleg conversion and now the program won't throw a fit if it can't find it.

Fixed a fill glitch which would fill in the clicked block if fill was selected, even if it was a quest location.

Made it so that even if the program reads different hex types as the same color, the fill tool only extends to the same hex type.

Update! Made the UI look less default and Windows 95, and fixed a small bug.

No update this time, sadly, but it seems like it's functioning. No other bugs detected, and I don't have any reason to update anymore (no other planned features), unless of course someone wants a new feature or something. Will still provide support though!

I hope Dova is still around, Ive been trying for the past few hours to make a map that is representative of my home state (NC) but have been running into a ton of bugs. My colors work, and the map itself works but the fact that I completely remade the map and am trying to adjust where Detroit is located (I'm trying to move it to where Raleigh is located) im running into issues. Does anyone know how to adjust where event triggers are located on the map? If I can find a way to move the triggers somewhere I might be able to make the map of my dreams a reality :)

EDIT: Here is the pallet if anyone was wondering
#4a5aef|1|74,90,239|LightBlue (Shallow_Ocean)|
#918a00|2|145,138,0|DarkYellow (Sand)|
#3aff7f|3|58,255,127|LightGreen (Plains)|
#00aa3b|4|0,170,59|KindaDarkGreen (Forest)|
-xxxxxxx|5|x,x,xxx|x (Hill)|
-xxxxxxx|6|x,x,xxx|x (Mountain)|
#ffffff|8|255,255,255|White (Cryo Facility)|
#ff0000|10|255,0,0|Red (House_in_the_Woods)|
#ffb2cf|13|255, 178, 207|LightPink (Slums)|
#ff7aac|14|255,122,172|Pink (Junk_Market)|
#d8d8d8|11|216,216,216|VeryLightGray (Urban_Ruins)|
#d1d1d1|7|209,209,209|LightGray (House/Trailer_Ruins)|
#919191|9|145,145,145|Gray (Skyscraper_Ruins)|
#666666|15|102,102,102|DarkGray (City_Ruins)|
#f699ff|16|246,153,255|LightPurple (Megacity_Gates)|
#9800a0|12|152,0,160|RoyalPurple (Walls_N)|
#9800a0|17|152,0,160|RoyalPurple (Walls_SE)|
#9800a0|18|152,0,160|RoyalPurple (Walls_NE/N)|
#9800a0|19|152,0,160|RoyalPurple (Walls_NE)|
#f200ff|20|242,0,255|Purple (MegaCity)|
#00b5b2|25|0,181,178|KindaDarkCyan (Hill_with_Water)|
#aafffd|26|170,255,253|VeryLightCyan (Marshland)|
#00fffa|27|0,255,250|Cyan (Plains_with_Water)|
#000000|28|0,0,0|Black (Swamp)|
#750000|29|117,0,0|DarkRed (Zom_Zom's)|
-xxxxxxx|22|x,x,xxx|x (Clearbone_Hill)|
-xxxxxxx|30|x,x,xxx|x (Mysterious_Forest)|
-xxxxxxx|31|x,x,xxx|x (Isotope_Mine)|
-xxxxxxx|32|x,x,xxx|x (Theme_Park)|
-xxxxxxx|33|x,x,xxx|x (Tribe)|
-xxxxxxx|34|x,x,xxx|x (Asylum)|
-xxxxxxx|35|x,x,xxx|x (Grayling)|
#ff0000|99|255,0,0|Red (Placeholder)|

Alright I guess I should go a little deeper into what I've been trying to do. I have been trying to clear the encountertriggers in the NEO folder, and that works fine. There is no cryo wake up, dogman fight, etc you just spawn in. I think this might have broken the tileset because when you spawn in, it spawns you in the right place but there is no cryo facility there (i guess it makes sense because the event of re-entering the facility was removed) but I made sure that entering detroit was still an event. This however did not fix the problem, and the detroit gates hex was not there either.

Also, does the hexID in the NEO folder not match with the IDs on the color pallet? In the hex info in the NEO folder DeepOcean is labeled as 1, but in the color pallet for your examples its labeled as 1.