ABOUT XMAPEDIT
XMAPEDIT is an Open Source extended version of original Blood map editor with fixed bugs, lots of new features and extended limits. The Windows version is based on JonoF's BUILD port. It's compatible with vanilla Blood, supports widescreen resolutions, includes modern object types for level designers and most of the features of the DOS XMAPEDIT version.
Any suggestions and comments are welcome in Blood related Discord channel at https://discord.gg/V9fY5wE. You may also send e-mail to baitd@yandex.ru for any reason.
Requirments, Installation & Notes
No special installation required, just all XMAPEDIT files must be placed in the Blood directory. That automatically means that you should have your own fully function copy of the game version 1.10 or higher.
In order to run the program you need a computer that have at least 700Mhz x86 CPU and 64MB RAM with Windows 98 or higher operating system running on it. That's basically all the requirements, however take attention to some notes that is good to know:
- Before you read anything below, you should know that Windows Defender may mark this software as a virus program for some unknown reason. Do NOT download XMAPEDIT if you trust Windows Defender.
- To get some more FPS in 2D mode on the slow machines, you may want to set value of the "UseTranslucentEffects" option to 0 (see [General] INI section).
- If you start editing anything, make sure you have read/write access for all directories or files you are planning to use.
- Do not use long filenames (longer than 8 characters) as it just won't load or save.
- XMAPEDIT do support extended object limits (sectors, sprites, walls etc) that also extended in modern ports such as NBlood, Raze or GDX, but NOT in vanilla Blood and Fresh Supply. So, once you reach at least one of vanilla limits, the map will not work in it. Sloped or non power of two floor oriented sprites is not supported by vanilla as well.
- XMAPEDIT can correctly work in all screen resolutions (include widescreen), but i personally still recommend 1024x768 or 1280x1024 in windowed mode because it gives good picture and font size. It's up to you to decide what is best.
CHANGELOG
-
APR 20 2023
-
General:
- The editor can show Custom Dude V2 appearance and version. As always, refer to Modern Features for Mappers page to get more info.
- Fixed a bug with external models that supposed to spin.
- Added option for disabling auto-adjusting statnum for thing types (400 - 431). See more in [AutoAdjusting] section.
-
-
3D Mode:
- Key [P] and [ALT]+[P] functionality has been swapped. This means that you don't have to hold ALT for palette selection anymore, but need to do it when toggling parallax sectors.
- Added a visual object palette selection window. By default all palettes are sorted by efficiency percent relative to current tile. This window contains some options, including classic palette selection (in case you don't like the new window for some reason).
- Fixed a regression with wall masking when you was not able toggle the mask without raising or lowering the sector.
- Added experimental hover indicator for the wall you pointing in.
-
Preview mode:
- Added vanilla and modern sprite physics!
- All modern types, that was implemented for preview mode previously, now updated to the most actual game state.
- There is more than 1 message shows on the screen. Most recent message always on top.
-
The following new modern types was added:
- Slope Changer (type 504)
- Velocity Changer (type 506)
-
IF (types 501 and 502)
Note that this is partial support! "Player" and "Dude" conditions are not implemented yet, but most of others (more than 100) should work fine.
-
SEP 19 2022
-
GENERAL:
- The editor is fully compatible with Windows 98/ME/2K/XP and higher versions. You may need to adjust mouse speed settings as mouse handling has been changed.
- Changed video output method to the OpenGL. This should help some screen grabbers to capture xmapedit window for video recording (Bandicam is a fine example). If your device is not supporting OpenGL for some reason, the output method will be switched back to the classics.
- Added a new map Channel Cleaner tool. It will search and reset unlinked TX and RX channels for all objects in the map. Available in the main menu, under the Tools section.
- Added a new INI option "Gamma" to the [Screen] section.
- If both "going on" and "going off" object properties disabled, but TX ID is not zero, both of will be enabled automatically when saving the map.
- Added a helper function for Dude Spawn sprite type when editing it through the edit dialog. It allows to quickly pick enemy to spawn if you press [F10] on the data field.
- Added a item type #150 in lists. This item reveals full map outline (modern maps only).
- Various minor changes.
-
3D Mode:
- You can travel through stacks (ROR sectors) without Preview Mode enabled. Note that for gravity Z-mode you must press [A] or [Z] when in one of such sectors.
-
2D Mode:
- Added a First (F) and Auto-align (A) wall indication when pointing mouse in the sector. If you don't see it, try to zoom-out until it starts to blink.
- Various minor changes.
-
-
Jun 09 2022
-
GENERAL:
- Potential broken map CRC fix. If you got "Map does not match CRC" error when loading maps that was saved with previous (Jun 05 2022) build, download this one, load the map and save it again. The map itself is fine. Sorry.
-
-
JUN 05 2022
-
GENERAL:
- Added a GUI based Import Wizard tool that helps to load maps and graphics from another BUILD engine game. It will be automatically called when loading a BUILD engine map.
- Added config version check and some config options was deleted or replaced. Note that your settings will be reset to defaults.
- File browser supports up to 1024 files per directory.
- Fixed that sometimes the editor hangs when trying to start newboard using the menu.
- There is no more tile #2048 (the Monolith logo) in the top right corner will shown in the game for maps that saved with xmapedit.
- Map file revisions won't be incremented due autosaving.
- XMAPEDIT release package now includes additional documentation for some tools. See docs directory.
- Various minor changes.
-
ARTEDIT:
- Artedit can import the following image formats: .PNG, .BMP, .JPG, .DDS. Thanks to the Ken Silverman's KPLIB image decoding library!
-
QAVEDIT:
- Make tile movement keys work a bit slower.
-
3D Mode:
-
A way to work with parallax sectors has been re-imagined: it does not required to change properties for each sector anymore since the editor treats a group of such sectors as "Local" or "Global" sky.
The "Local" sky is the group of sectors that is not separated by a non-parallaxed sector and "Global" is all the parallxed sectors in the map. This allows to quickly apply propeties such as y-offset, shade, palette to the whole room or map depending on selected scope.
See more info in related chapter.
- You can rotate the global sky (ceiling and floor) horizontally if have more than 1 sky tiles. The more sky tiles used, the more angles available. For example, all the standard Blood skies can be rotated to 16 sides.
-
-
-
MAY 03 2022
-
GENERAL:
-
XMAPEDIT is Open Source.Visit GitHub project.
- A bit changed save changes dialog for all editors. If you got unsaved changes in artedit, a checkbox will appear that allows to save it with other changes you made. Note that it is enabled by default.
- Various minor changes.
-
-
ARTEDIT:
- Added import of .CEL and FLOORS image formats from Chasm: The Rift game.
-
TILE VIEWER:
- Added CRC32 of tile in info window available with F1.
-
-
GENERAL:
- QAVEDIT was successfully ported and updated. As a matter of fact it was built-in into xmapedit. This is the tool for editing QAV files which contains the screen animation such as weapon or interface. This version can handle up to 4096 frames and supports 3D mode editing that gives additional advantages. See for detailed description to learn how to use it in the "Tools" section.
- Added "SoundVolume" and "MusicVolume" parameters in "Sound" section of config file.
- Fixed that in some cases you can't set statnum of sprite to 0.
- Fixed that you can't overwrite existing prefab file even if confirmed.
-
2D Mode:
- Fixed that a wrong sector may be offered for editing when pressing F5 and there is wall or sprite in a highlight).
- Fixed that wrong wall may be offered when pressing keys (for example K) when there wall point and wall line in a highlight. The line is always priority now.
-
Seqedit:
- There is no more "AllowOnlySprites" option in config file since is not required anymore. If target object is not a sprite, seqedit will ask you to confirm spawning SEQ on such object. If there is no objects at all, 3D mode editing is not available.
- Readme file changes.
-
APR 03 2022
-
GENERAL:
- Added a map comment system. It allows to create a textual notes and show it directly in 2D mode of the editor. The comments may be standalone or you can bind it to any object in the map. This feature available in both edit modes. See more detailed description in the manual.
- Key [J] can be applied to white walls. The editor allows to select which exactly action you want to perform: to create outer loop (ALT+S) only, or create it and merge automatically.
- 2D mode object edit dialog (HUD) was updated and now available in 3d Mode as well. Added the ability to edit some common properties of objects. All object dialogs got mouse support (see mouse controls for details). As a matter of fact, old 3D mode info hud was removed.
- Better number editing for HUD numeric fields.
- The editor will automatically load the last map you edited if AutoLoadMap setting enabled. If no file exists, it will load or start newboard.map.
- The editor now loads maps in 2d mode by default, but saves the last mode you were in.
- Added new settings and sections in xmapedit configuration file.
- Added more prefabs in default package.
-
2D Mode:
- You can select the exact sprite you want to focus when there is more than one sprites at same X/Y coordinates. Just hover sprite, hold [ALT] and scroll [MOUSE WHEEL].
- Added 5 layout types for HUD: None, Full, Compact, Slim and Dynamic (shows compact layout when you draw sectors and full otherwise).
- Fixed that wall textures was stretched after dragging wall points. I got reverted it back to classic BUILD behavior, so editor will fix texture size for you like it did before with one important exception: walls that marked for movement (blue or green ones) will not be fixed. This should help to avoid annoying texture resizing when working with slide sectors and stuff like that.
- Added smaller grid types and greater zoom.
-
Preview Mode:
- Touch trigger flags of objects is available for testing. Note that for walls it works only when you using modern features for level designers.
- Items now picking up automatically.
- Added a log messages. You can see it in console (key [TILDE]) or in xmapedit.log file.
- You can fire a missile with key [F] (works best with mouse look). Hold [RIGHT SHIFT] to change missile type.
- You can change type of explosion created with key [E] if you hold [RIGHT SHIFT].
-
TILE VIEWER:
- Added a mouse wheel support for tile scrolling.
-
SEQEDIT:
- Fixed a crash that may occur when saving SEQ files because file is read only.
- Seqedit will start in 2D mode by default if you call it from 2D mode of xmapedit.
-
3D Mode:
- XMAPEDIT displaying non-existing (blank) tiles on sprites with "No tile" icon. This is a view effect sprite, so actual tilenums won't be replaced when you save the map. It allows to actually see such sprites even if user don't have art for it.
- Added 4 layout types for HUD (None, Full, Compact, Slim).
- You can adjust camera height for gravity mode.
- The editor skips "Locked/Step" Z-mode by default. You can change it through INI file.
- Fixed hitscan on widescreen resolutions.
- Fixed that sometimes sprite that you drag with mouse may be placed behind the wall.
- Fixed that new sprite not becomes wall oriented automatically when placing it on the wall.
- Fixed that when placing sprites on bottom swapped walls you got opposite sprite angle.
- Fixed that changing Z of ceilings or floors with mouse controls is not working.
-
-
FEB 04 2022
-
GENERAL:
- The editor now asks you if you want to enable Cryptic Passage art when you launch it first time. If you allow, it will add a line in Resources.Art section of your xmapedit.ini. (see configuring xmapedit).
- Fix flammable tree is not playing burning animation in the game.
- Fixed that imported BUILD maps may hang the editor when inserting or deleting sprites. Also fixed wrong orientation for some sprites.
-
2D Mode:
- Fix random sectors may become highlighted when deleting another highlighted sector.
- Fix grid snapping is not working when dragging many wall points.
-
-
JAN 19 2022
-
GENERAL:
- Fixed a runtime crash or freezing on specific Windows versions while creating standard colors palette.
- Fixed crash when changing screen palettes with [ALT] + [G] in 3D mode.
- Fixed that tile viewer window may not change it's size when changing resolution through options menu.
- Fixed that Ok button was not clickable with the mouse in About dialog.
-
-
JAN 14 2022
-
GENERAL:
-
I'm happy to announce that XMAPEDIT was successfully ported on modern Windows systems thanks to nuke.YKT and does not require DosBOX to work anymore!
Since this day the support of DOS version is over, however the links to download it will stand still.
- Added new tool: ARTEDIT. This is a tool for editing ART files which contains game graphics. The main advantage of this art editor against all other programs is that this tool is native and makes real-time tile editing possible. In simple terms: you can edit ART files (include importing new images in it) when you in process of creating maps or even SEQ animations. See detailed description in the Tools section.
- Key [J] (sectors joining) works in both edit modes and acts a bit differently. It's enough to press it once near another red wall (or wall line in 2d mode) and next sector will be automatically merged with current. Hold [SHIFT] for classic behavior.
- [CTRL] + [DEL] (sector deletion) works in both modes.
- Added noclip mode. You are allowed to move outside sectors and go higher or lower than highest or lowest Z point of the map. Don't complain about HOMs or black screen if you use it. [ALT] + [CAPSLOCK] toggles it on or off in both modes.
-
Added a feature that allows to quickly connect object from clipboard with another by RX/TX
channels and it works in both edit modes. Copy some object in clipboard first, then press
[Q] on next object. The destination object will receive RX ID according to TX ID of source
object.
Hold [SHIFT] to connect object from clipboard with the destination one: in that case the clipboard object will receive RX ID according to TX ID of the destination object.
If objects have no RX\TX channels, it will get some unique ones automatically. The feature is early WIP, but it does it's job. I still have some more plans on it :)
- Various minor changes.
-
-
3D Mode:
- Fixed wrong offsets of an external voxels (thanks nuke.YKT!).
- Changing palookup of an object now shows it's efficiency percent. The ones that have zero efficiency will be automatically skipped while holding SHIFT, but you still able to set it anyway through the dialog (ALT+P).
- Added the enemy icons that appear above the Dude Spawn and Custom Dude Spawn sprite markers. This way you can actually see which enemy will appear at which angle once spawner is triggered.
-
2D Mode:
- The colors of the overhead editor was a bit changed since it uses colors from the game palette closest to the standard VGA palette, not directly from VGA palette. This allows to actually show the game graphics.
- Wall and floor sprite icons now showing it's actual width.
- Player start position markers was changed to arrows with different colors and editor start arrow is now bold.
- New and larger font for object captions. Also you will always see the caption of an object you currently hovering on the top of other objects.
- You can zoom in/out with the mouse wheel.
- You don't have to hold shift anymore to highlight the points. Also try to hold [CTRL] while pressing [MIDDLE MOUSE]: If you hover sprite, it will select all the sprites of the current sector and if you hover wall points, it will select all walls of the sector.
-
Preview Mode:
- You can test&feel the strength of earthquake while in 3D mode.
- Random item generator (modern features) should now work.
- Gib walls are now affected by explosions.
- Sleeping and buried axe zombies will now morph in normal Axe Zombies once you get closer to them.
-
SEQEDIT:
- Minor fixes for loading and saving SEQ files.
-
Tile viewer:
- It now have translucent background (enabled by default), better fonts, better tile thumbnails and it shows additional info about the tiles on it. All of this are optional.
- It's possible to toggle art editing mode via pressing [SPACE].
- All hotkeys for settings been moved to a single GUI based checkbox list which available by pressing key [F12].
-
-
AUG 10 2021
-
GENERAL:
- XMAPEDIT now supports loading up to 1024 external voxel models! This allows you to load existing voxel packs or define your own models without modifying the ART, DAT and RFF files. Refer to "External models" section for detailed info.
- Fixed that Wall Crack and other thing types may not change statnum to required value when inserted via Game Objects menu.
- You cannot (re)load the map through the menu anymore if it was not saved before.
- Fixed that sometimes first wall of the first sector resets it's texture to 0 if new map was not started normally (through the menu button).
- You don't have to erase text field in the directory explorer everytime you want to type new filename. Just start typing and it will be erased automatically.
- Various minor fixes.
-
3D Mode:
- Added a feature that allows to define how many bits (tiles) required for the parallax sky to wrap around.
- Fixed that sometimes sprite could be placed directly on the wall line or behind it if grid size is too small or too big.
- Fixed wrong sector colored lighting effects bug.
- Added new mouse controls for sprites (change Z only).
-
2D Mode:
- Fixed that hints in the edit dialogs may display incorrectly.
- Wall textures should not stretch anymore when dragging wall points with the mouse.
- Sprites should not change Z when dragging it with the mouse (unless it gets fully buried in the ceiling or floor).
- The editor now shows the tracers of Path Markers with magenta color.
- Added INI message helper function to the sprite edit edit dialog.
- Added Gib selection helper function to the sprite and wall edit edit dialog.
- Added path drawing feature. Create complex paths for Path sectors or enemies with just 2 keys!
- Fixed the arrow position when starting new map.
-
SEQEDIT:
The tool has been done a complete overhaul. Be sure to re-read seqedit documentation to learn new key bindings and edit modes.
- Added 3D mode editing, so you don't have to call Preview Mode anymore. Just load the map, point on object and call Seqedit from the tools menu. You will always get in the game what do you see in the editor.
- It's allowed to move in seqedit just like in mapedit while in 3D mode.
- Added dynamic screen resolution support.
- Removed move seqedit origin function as it does not required anymore.
- Added import frames from another SEQ animation function (merge SEQs).
- Added reverse frames order function.
- Added copy/paste features that allows to copy whole frame or it's properties to another frame (see seqedit documentation for details).
- You can change surface type of the view tile directly in the editor.
-
Tile viewer:
- Removed tile sorting feature.
- Empty tiles is now marking in the tile screen.
- Larger tile number font.
- Settings such as stretching small tiles or show transprent color will now be saved in xmapedit.ini
- Added detailed tile information window which you can call via [F1] key or [MIDDLE MOUSE].
-
-
MAY 13 2021
-
GENERAL:
- Fixed that sometimes wrong walls starts panning in Blood: Fresh Supply port even if is not intended to do such. This update could also fix other similar issues with objects in FS. You have to load and save your maps with this new build.
- Fixed that you cannot save the map if you started it from scratch.
- Fixed that secrets is not count correctly if AutoCountSecrets is enabled.
-
3D MODE:
- The editor now displays "VIEW 8 FULL" sprites correctly.
- Some sprites (mostly enemy) reads it's SEQ animation info such as size, palette and picture instead of using hardcoded information, so if you edit seq file, the changes will be reflected in the editor too.
-
-
MAY 08 2021
-
GENERAL:
- Added directory explorer to Open/Save menu dialogs. It also will be automatically shown if you start XMAPEDIT with no parameters, so it allows you to select map file to load. You may control this behavior with "AutoLoadNewboard" setting in XMAPEDIT.INI.
- Fixed a bug when some object statistics was not reset when loading or starting new map.
- Fixed that useless "Normal Off" sectors was not erased automatically when saving the map.
- Improved sector copying algorithm, so there is should be a way less chance to see a broken geometry when merging the maps.
- Various minor fixes.
-
2D Mode:
- Classic BUILD menu has been replaced with the main menu from 3D mode.
- You can drag sprites through white walls without adding it in a highlight.
- Added copy/paste feature for x-properties of objects. At the moment it works pretty same as [ALT]+[ENTER] key sequence in 3D Mode. You just press [TAB] on source object, then [ENTER] on the destination object and all x-properties will be copied from object in the buffer.
- Fixed a crash that may occur when switching to 2D mode from 3D after inserting or deleting sprites.
-
Tile viewer:
- Key [Q] allows to cycle through texture types (sprite, wall, floor etc...).
-
-
APR 17 2021
-
GENERAL:
-
XMAPEDIT now stores it's files in "XMAPEDIT" folder. This means that if you want to keep your old settings, the following files must be copied in it: XMAPEDIT.INI and XMAPEDIT.FTL.
Don't copy any files if you want perform clean install.
- Added sprite prefabs feature and editor now comes with 60 ready prefabs ready to use! Refer to prefabs section in the manual to learn how to create your own and use it. There is also availabe file format description for coders.
- Introduced batch object processing (early WIP).
- You can rotate a group of highlighted sprites with keys [SEMICOLON] and [APOSTROPHE]. [SHIFT] and/or [CTRL] leads to finer step.
- Fixed that items cannot be respawned even if Optional respawn was selected in multiplayer.
- The editor can load maps from RFF archive, if file is not exists on the disk.
- Changed the way how x-objects allocates for usage. This could prevent potential issues in Fresh Supply port and increase overall editor stability.
- Autosave files now should be created in working directory always instead of current.
- Fixed a bug when there was one more than MaxSaveCopies of autosaves created.
- The crash that may occur when editing sector sound sprites now should be fixed.
- Added highlighted objects statistics in top left corner of the screen.
- Added Path marker unique IDs sequence generation. This works pretty same as RX/TX channel sequence generation and available with same key [F10].
-
-
PREVIEW MODE:
- Fixed that preview mode may not work when loading maps from sub-folders.
- Fixed that sprites intended for teams mode only still available if bloodbath mode selected.
- Fixed a bug with hitscan that could occur after previwing maps with missile generators.
- Sectors with same RX ID will not be triggered all together when triggering with mouse just one of them if TranslateObjects setting is disabled.
- Sectors in movement can also drag camera if z-mode is gravity or in 2d mode. Don't forget to check "drag" in sector editing dialog!
-
2D MODE:
- Added middle mouse highlighting feature. This allows to select object (include sectors) one by one in different screen area. Refer to mouse controls section for more info.
-
Removed:
- Set floor and ceiling palette (key P).
- Check sector pointers (key ENTER).
- Show default properties for x-objects (key LEFT ALT).
- You can see clipdist radius of Path marker when highlight it. This may be useful for patrol enemies that use markers to follow it (modern features).
- Better function for finding free RX/TX channels, free stack id and free path marker ids for edit dialog that takes in account current dialog value. Example: try press F10 on RX ID field and then TX ID field.
- There is no more required to hold [CTRL] when pressing [H] to toggle hitscan flag.
-
3D MODE:
- Added visual effects for sprites like halo for candles or flame for torches.
- Added setor's colored lights displaying, so sprites will be painted with colors you selected in sector fx dialog settings just like in game.
- You can drag and rotate many sprites while holding [LEFT MOUSE].
- You can highlight sprites with [MIDDLE MOUSE].
- It's possible to duplicate sprites using key [INSERT] just like you do it in 2D mode.
- It's allowed to insert sprites in/on other sprites now.
- You cannot select "Free/Mouselook" z-mode anymore if mouse look is actually disabled.
- Key [ALT] + [PAGE UP/DN] puts highlighted sprites on ceiling or floor keeping the shape.
- Key [SPACE] + [ESC] clears the clipboard buffer.
-
Removed:
- Mouse look modes 1 and 2 (only free look still available). I'm pretty sure no one ever used it anyway.
- Key [O] now requires to hold [CTRL] to ornament sprite on the wall.
- Key [ALT] + [PAD ARROWS] changes actual X / Y position of the sprite.
- Key [CTRL] + [SHIFT] + [PAGE UP/DN] gives perfect z-step when raising or lowering sprites.
- Added arrow that shows current sprite angle. It works only for face and non 1-sided sprites.
-
-
FEB 26 2021 Meet the largest update for XMAPEDIT since release!
-
GENERAL:
- Fixed broken links to the Discord channel of Blood community and modern features doc.
- Now you can safely edit XMAPEDIT.INI outside even if xmapedit is opened, but changes made inside the editor will not be saved.
-
The following keys are now working for both modes:
- [LEFT ALT] + [X] disables auto slopes for all walls in a highlight.
- [CTRL] + [B] toggles blocking walls to block move on and off.
- Added settings for sprite auto-adjusting to the XMAPEDIT.INI.
- Added map revisions message when loading the map.
- Fixed (hopefully) some weird vanilla bug that appears when using standard DOSBox with mouse that may cause wrong look direction when switching between modes or loading the map.
- Key [TILDE] is now [CAPS-LOCK] analogue for both modes, so in 2D it shows x-stats, and in 3D it cycles z-mode type. Done just because of standard DOSBox caps-lock bug.
- The editor now loads in graphical mode, which should give a little boost to loading time. We're opened for xmapedit logo ideas :)
- The editor now tries to detect magic sprite or map version to auto-set ShowAdvancedTypes value for you (for modern features).
- The SEQEDIT are now built-in xmapedit tool! You able open it two ways: from 3d menu, in the TOOLS list, when xmapedit is loaded or directly from command line by enterring something like "xmapedit myseq" or "xmapedit ID". Refer to the Tools section for more details.
-
PREVIEW MODE:
- Changed sector busy process indication in 2d mode: when sector goes from on to off state, it gets filled with blue color, and when it goes from off to on, it gets filled with the red. If sector have any continous motion effects active, it gets filled with dark grey color.
- Key [S] in 3d mode allows to spawn selected seqID on object you currently pointing at.
-
The following modern (and updated vanilla) types was added in preview and can be tested:
- DudeSpawn (type 18, spawn random dude feature).
- Custom Dude Spawn (type 24).
- RandomTX (type 25, also supports Event Redirection).
- SequentialTX (type 26, also supports Event Redirection).
- Teleport Target (type 8).
- Properties Changer (type 28, cstat change only).
- Resizer (type 31).
- Picture Changer (type 29).
- Sector Lighting Changer (type 34).
- Data Changer (type 35).
- SEQ Spawner (type 27).
- Effect Gen (type 38).
- Sector Wind Gen (type 39).
- Inc-Dec (type 37).
- Damager (type 36, killing only).
- EctoSkull Gen (type 704).
- SFX Gen (type 708).
- 1-Way switch (for walls).
- Added difficulty and game mode display to the preview mode icon in the top right corner.
- Flame Trap is now working.
- Missiles are now working, so missile generators like FireBall Gen or EctoSkull Gen (modern only) should be fully functional now. Also the circle around missile sprite in 2D mode displays it's clipdist.
- Preview Mode button was added in 3d menu, to the TOOLS list.
- You cannot "kill" locked enemies anymore.
-
2D MODE:
- Fixed that sometimes a crash may occur when deleting multiple sectors.
- Blocking walls is not block movement of the arrow anymore by default.
- Game objects menu which available in 3D mode with [ALT] + [S] keys are now available in 2D mode if you press [SHIFT] + [S].
- The walls you currently drawing are now painting with light grey color and info such as angle and length displaying in the top left corner.
- Sounds you currently listen in 2D Mode by pressing [F10] are now displays additional info such as volume, sample rate and looping flag.
- Added sector sound settings in 2d mode sector edit dialog. It will create new/modify existing sector sfx sprite. for you if sound values are not zero or remove all the sector sfx sprites in current sector if they are. Note that it takes in account only first found sprite, because it's a very rare case when same sector have more than one sfx sprites. Same as for data fields, you can listen defined sounds by pressing [F10].
- For now you can't insert points anymore while drawing a sector. This might be changed later.
- Pressing [G] alone will not lead to off grid anymore, so you have to press [ALT] + [G].
- Added auto-grid feature. It changes grid size for you while zooming. You may toggle it off and on by pressing [CTRL] + [G]. There is also section [AutoGrid] was added that allows to control zoom value for each of 6 possible grids. Note that auto grid is not working when grid is disabled at all.
- There was added 2 more grid sizes which is extremely tiny and probably will be rarely used. It won't appear if you pressing just [G], so you have to press [SHIFT] + [G].
- There is no more required to press [ALT] + [F] when setting first wall of sector. Just [F] is fine.
-
3D MODE:
- Added modern types list in Game objects menu.
- [SHIFT] + [TILDE] or [SHIFT] + [CAPSLOCK] toggles mouse look on and off.
- Added new INI setting for MouseLook section called "Turn2Strafe". Set 1 if you want to strafe with keyboard instead of turning. Disabled by default.
- [SHIFT] + [B] are now works (one side blocking wall).
- ZMode type now saves in XMAPEDIT.INI.
- Added "About" button in main menu where you can get xmapedit version info.
- Fixed that free z-modes may not work properly for parallaxed sectors that have absolute ceilingZ.
- Fixed that sometimes sprite could receive wrong angle if clipboard was not empty.
- The return of key [O] function in 3D Mode (never liked it!) by request.
- Added an option to the [Mouse] section that allows to define fixed size of grid for sprite dragging.
- Sprites that was highlighted in 2D mode are now also blinking in 3D mode.
-
-
JAN 23 2021
- Site update: there will be no manual in the xmapedit package anymore since you can just read all the info right here (you may also just save this whole page).
-
2D Mode:
- Captions is not displaying anymore while zooming. This leads to great performance boost, especially in complicated maps.
- The enemies and dude spawn markers now paints with light red color.
- Smaller vertex size.
-
Preview mode:
- Fix: preview speed was one tick slower than in game (if you have Speed param changed, please return it back to 4).
- Goo palette was not set when go in underwater sectors with goo markers.
- Fix: underwater palette was not reset when preview is finished.
- Fix: 2d mode palette change.
- Fix: moving through stacks is more correct now.
- Fix: the camera was teleporting with enemies even when only enemies should teleport.
- Added game difficulty menu.
- Added game mode menu.
- Correct sprite removal, so it won't trigger when deleted.
- Added episode INI option. Define your INI to see the actual INI messages or play MIDI songs.
- Gargoyle Statues, Cerberus and Beast Cultist now morphing in their next stage instead of just being removed.
- Fix: Cryptic Passage (and other custom textures) was erased when using preview mode.
- Added create standard explosion feature. Try press [E].
- SEQ animation is now working for some of sprites.
- Gib FX effects are now working.
- Proximity trigger flag now can be tested (vanilla and modern).
- Sight trigger flag now can be tested (modern only).
- You can see explosion radius in 2d mode.
- If have gravity z-mode, it will be automatically switched to mouse look when falling into underwater sectors.
- There is no more "Missing ambient sound" error.
- There is no more "Missing voxel" error.
- Earth Zombie finally always will be put on floor.
- Fixed vanilla's weird crash when flying too high in parallaxed sectors (you cannot go higher than ceilingz*4 anymore).
- Fixed that the camera starts flying instead of falling in gravity mode once map is loaded.
- Correct XMAPEDIT.INI creation at first launch.
- [CTRL] + [HOME] sequence now working in 3d and 2d modes.
- The mouse will not set statnum for your sprites automatically when you drag sprites in 3d mode.
- There was added new tool to the ESC menu in 3d mode called "Exploder Sequence". Try this out.
-
JAN 04 2021
- There was added a cool Preview Mode feature. Works in both 2D and 3D modes and allows to test trigger sequences, sector motion, sounds (include ambient ones) and ROR sectors in real time. Refer to manual for details.
- There was added a main menu when you press key [ESC].
- Added new z-mode that allows to select z direction with mouse.
- You can move through stacks.
- Added commands for sector pause/continue motion (modern only compatible).
- Added stealth dude flag (modern only compatible).
- Key [K] now working in both modes.
- Key [CTRL] + [HOME] now working in both modes.
- Key [F12] now working in both modes.
- Key [U] now working in both modes.
- Key [X] now working in both modes.
- Key [R] now working in both modes.
- Key [1] now working in both modes.
- Various minor fixes.
OCT 28 2022
APR 23 2022
XMAPEDIT MANUAL
Note: this manual designed to cover all the XMAPEDIT features relative to original MAPEDIT. If you don't know what is original map editor, you should refer to the full mapedit manual that answer all your questions and covers all aspects of level editing available here: https://docs.google.com/document/d/1cUD2COD12aklTI4VbOIVO1bEr7LgW-xgLzWg4AF4nMs/edit?usp=sharing.
Another good resources is a MAPEDIT.TXT that comes with your copy of Blood or BME's web-site: http://baitd.bloodgame.ru/bme.htm.
Brief features, updates and fixes overview
-
General
-
Updated HUD that now available in both edit modes.
So keys [F5] and [F6] keys are working in 3D Mode.
If you press [F5] on a non-sector object, it will redirect you to the sector
dialog of that object anyway. Hold [SHIFT] to get directly in the sector
lighting settings dialog or [CTRL] to get in editing of common object properties editing dialog.
Edit dialog updates:- Added a mouse controls in all dialogs. Refer to mouse controls to learn how it works.
-
Added INI message helper function that allows to visually pick the message from selected episode file. Press [F10] while on "Message" field to call it.
The file must be correct Blood's episode INI file and must contain section with map name you currently editing. Note that selected file will be automatically assigned as Preview Mode episode INI.
-
Added gib type selection helper that works for Gib object, Explode object sprites and Gib Wall types. It allows to visually select the gib type while editing intended data (1, 2 or 3) fields.
It creates list with all possible gibs and prints some info such as name and tile. To call it, just press [F10] while on one of "Data" fields.
- Added a hints hud for all types of objects and all dialog elements in the bottom of the screen (thanks Seizhak and Spill for writing all the text!). We hope it will help you to figure out the things.
- You can enter negative numbers in "Data1", "Data2" and "Data3" fields (see modern features for mappers).
- "Data" fields now have dynamic names that depends on selected Type.
- Fixed "Drop item" limit. It's also possible to call visual selection of item when pressing [F10] on it.
- "Key" field now have named values.
- Dialog area now shows properties of common objects as well without need to pressing keys. If it shows x-properties, you can hold [CTRL] to see the common ones.
- There was added [BACKSPACE] and [DELETE] keys in properties edit dialog in 2d mode that doing same thing as [SPACE].
- Key [DELETE] for number edit resets value to zero.
- The ARTEDIT and SEQEDIT are now built-in xmapedit tools!
- You can rotate a group of highlighted sprites with keys [SEMICOLON] and [APOSTROPHE]. Hold [SHIFT] for finer step and [CTRL] for perfect.
- The editor supports sprite prefabs.
- There was added a Preview Mode feature.
-
The following keys are now working in all modes:
- [CTRL] + [DEL] - sector deletion.
- [J] - sector merge.
- [K] - kinetic sprite/wall movement.
- [HOME] - toggle preview mode on and off.
- [CTRL] + [HOME] - search for object number.
- [F12] - toggle beeps on and off.
- [U] - toggle underwater sector status on and off.
- [M] - masking walls.
- [X] - auto-slopes.
- [R] - sprite orientation.
- [1] - one side flag.
- [LEFT ALT] + [X] - disable auto slopes for all walls in a highlight.
- [CTRL] + [B] - toggle blocking walls to block move on and off.
- Increased board size.
- Max sprites and x-sprites limit has been raised to 16384!
- Max sectors and x-sector limit has been raised to 4096!
- Max walls and x-walls limit has been raised from 16384!
- You can define your own RFF and ART files in the configuration file.
- The editor can load maps from RFF archive (if file is not exists in the directory).
- Voxels now displaying in the editor!
- XMAPEDIT have pretty wide range of settings that stored in XMAPEDIT.INI. Please refer to "CONFIGURING XMAPEDIT" chapter in the end of this documentation for detailed info.
- Removed various useless items from lists.
- You can load maps geometry from many other BUILD games. Currently it supports all the games wich use map version 4, 6 or 7. This includes such well known titles as: TekWar, WitchHaven (any), Reneck Rampage (any), Fate, Duke Nukem 3D (any), Powerslave (Exhumed), NAM, Legend Of The Seven Paladins and others.
- AutoAdjustSprites() now have less strict rules for painting and sizing. This means that you can paint or resize many enemies that vanilla editor is not allowing to do.
- The editor supports vanilla hidden and modern compatible types. Refer to "CONFIGURING XMAPEDIT" chapter for detailed info. If you are interested to create maps using modern features and types, please also visit http://cruo.bloodgame.ru/xxsystem for the the full documentation and map examples.
- Added obsolete x-objects detection feature. It automatically tracks x-objects with default properties and turns it in common. This means that there is no more senseless "Normal off" captions and it saves x-objects for better usage.
- XMAPEDIT can set counter of secrets in the maps for you automatically.
-
Updated HUD that now available in both edit modes.
So keys [F5] and [F6] keys are working in 3D Mode.
If you press [F5] on a non-sector object, it will redirect you to the sector
dialog of that object anyway. Hold [SHIFT] to get directly in the sector
lighting settings dialog or [CTRL] to get in editing of common object properties editing dialog.
-
3D Mode
- You can adjust camera height for Gravity z-mode while holding [ALT] and pressing [A] or [Z].
- Added a feature that allows to define how many bits (tiles) required for the parallax sky. Aim in parallax sector and repeatedly press [CTRL] + [ALT] + [P] to cycle from 1 to 32.
- There was added a main menu when you press key [ESC]. It allows to quickly load and save maps and have list of autosave copies.
- Added new z-mode that allows to select z direction with mouse.
- You can move through stacks with any z-mode when preview mode enabled.
- Fixed the panning speed. It now exactly like it should be in the game.
- Fixed a bug with hitscan on resolutions higher than 320x200! This means that sprites will be placed exactly where you pointing at.
- Fixed x-panning / x-offset direction for walls or sprites that are x-flipped.
- [CTRL] + [I] toggles showing of all invisible sprites.
- Added mouse look. See "CONFIGURING XMAPEDIT" section below for detailed information.
- There is no more 3D mode outside the sectors (hello, NEWBOARD.MAP).
- You can make any sprite floor oriented and it will be displayed just perfect!
- There was added a slopes for sprites! You can control it's slope just like you do it for sectors - by pressing [ ] ] or [ [ ] keys. However, to make it sloped, the sprite must be floor oriented first.
- Game objects menu (ALT + S) has been done a complete overhaul. Now it have all the sprites that should be in and also there was added new categories such as "Markers" that contains such objects as Dude Spawn and "Favorites".
- You can enable global floor shade for all parallaxed ceilings. Just point at any floor and press [ALT] + [L]. To disable point it at any unhighlighted ceiling.
- Key [/] is no longer resets cstat of object, it only resets panning, offset and repeats.
- Keys [PAD 7] and [PAD 9] changes repeats and panning in both X and Y directions at once. Hold [SHIFT] for finer step.
- Added a mouse controls.
- Press [U] without holding [CTRL] to toggle underwater status of the sector. Hold [CTRL] to call a dialog where you can set selected visibility for all sectors.
- Dynamic fire (tile 2342) is now working. It also playing in the tile viewer.
- Gib and Explode objects allowed to be placed under floors and ceilings.
- It's allowed to set different sky for each sector if "MultipleSky" value in XMAPEDIT.INI is set to 1.
- Added "Gradient shading" feature that works for walls and non-parallaxed sectors.
- It's possible to use more than 15 palookups. You can cycle through holding [LSHIFT] or [RSHIFT] while pressing [P].
- There is xpan and ypan status message displays for sectors when changing it.
-
2D Mode
-
Path drawing feature: it will be useful if you going to use Path Sectors
or dude patrolling in your maps.
First create Path Marker sprite using Game Object menu or sprite edit dialog and press TAB to copy it in clipboard. Then press [S] to insert new sprite which will be turned in path marker automatically.
The previous path marker will be automatically connected with the new one. Repeatedly press [S] to continue path drawing or press [TAB] on something else to stop.
- Keys [PAD MINUS] and [PAD PLUS] changes radius of Ambient Sound by 20. Hold [CTRL] to just change first radius, hold [ALT] to just change second. Also you may hold [SHIFT] for finer step.
- Added auto-grid feature. It changes grid size for you while zooming. You may toggle it off and on by pressing [CTRL] + [G]. There is also section [AutoGrid] was added that allows to control zoom value for each of 10 possible grids. Note that auto grid is not working when grid is disabled at all.
- There was added grid sizes which is extremely tiny and probably will be rarely used. It won't appear if you pressing just [G], so you have to press [SHIFT] + [G].
- Added sector sound settings in 2d mode sector edit dialog. It will create new/modify existing sector sfx sprite. for you if sound values are not zero or remove all the sector sfx sprites in current sector if they are. Note that it takes in account only first found sprite, because it's a very rare case when same sector have more than one sfx sprites. Same as for data fields, you can listen defined sounds by pressing [F10].
- Game objects menu which available in 3D mode with [ALT] + [S] keys are now available in 2D mode if you press [SHIFT] + [S].
- It's possible to listen sounds or assign new stack id for sprites by pressing [F10] on sprites without enterring the edit dialog and when there is no highlighted objects available. In case of sprites that have multiple sounds set, just press [F10] repeatedly to listen sounds one by one.
- You can see a tail of slide/slide marked markers when the angle of marker is not zero. This could be useful, because non-zero angle makes slide to rotate while moving.
- Sprites that was highlighted with [SHIFT] is no longer resets it's Z when dragged with mouse, unless it's fully stuck in ceiling or floor.
-
Copy/Paste features & fixes:
- Fixed a bug that when you copy x-sector with marker (slide, rotate etc.), the new marker appear in old sector.
- XMAPEDIT will make unique ROR markers for you when copying sectors highlighted with [RALT] or sprites highlighted with [SHIFT] if you press [F10].
-
The editor allows to set free TX/RX channels for just duplicated objects, but keeps
sequence intact. This allows to create new trigger sequences really fast when there is
just need different TX/RX ID for new objects. Just press [F10] when
have any highlighted objects.
When you highlight objects with [SHIFT], it affects only sprites, however if highlight sectors with [RALT], this will take in account sprites, walls and sectors, which means you can duplicate whole map and fully isolate it's channels from the original. RX ID of system channels (under 100) remains unchanged. - You can merge maps keeping all the properties of source intact. This includes correct appearance of sprites, markers and it's positions and all x-properties of all x-objects. To isolate RX/TX and ROR markers see the feature above.
- There was added captions for types. They usually shorter than names in type list to free screen space.
- You can see caption for Decoration when it's an XSprite.
- There was added a vanilla compatibility indicator. When one of vanilla object limits is exceed, it will indicate that map is only modern ports compatible and won't work in DOS Blood.
- You can highlight sectors with [RIGHT ALT] or walls with [SHIFT] and press [ALT] + [X] to disable auto slope for all sectors in a highlight.
- Removed BUILD's most popular sprite function. This means that if there is nothing in clipboard, a zero picture for sprite will be set.
- You can see XObject usage statistics in the status bar while holding [CAPS-LOCK].
-
Path drawing feature: it will be useful if you going to use Path Sectors
or dude patrolling in your maps.
Comment system
Overview
Comment system allows to create textual notes and show it directly in 2D mode of the editor. The comments may be standalone or you can bind it to any object in the map. It useful for author of the map to mark some areas, to have a reminder or for other users that want to use it as example.

At the momemnt of writing this text, comments for each map stored in separated file that automatically saves in same directory where the map is going to be saved. It always has same name as the map file, but different extension (.MCT) since it allows to avoid losing all the info if saving with classic MAPEDIT, older versions of XMAPEDIT or other editors. It is a plain text file format with INI stucture, so you can always edit it in notepad.
For advanced security, a MapCRC parameter added. By default XMAPEDIT compares this value with actual map file CRC to make sure comments got bound with correct objects. This check can be disabled in configuration file (see [Comments] section).
How to use
To create a new comment, press [ALT]+[W] anywhere in the map, so an editing form appear. Type the text that cannot be longer than 128 characters. Now you can just press "Confirm" to save changes and comment will be created with default settings. For advanced customization see the description below:
- Font button allows to select a different font, however you must note that non-default fonts have fixed size and won't be scaled to the current zoom. Also the color of colored fonts cannot be overriden via Foreground property.
- Foreground changes the color of the text (if monochrome font selected) and/or tracer, while "Background" alters the background of the text. Select "None" if you want it to be transparent.
- With tracer: When checked it means that arrow will be added to the comment, so you can drag it anywhere you want. If disabled and you can't uncheck it, it means that comment is NOT standalone, and arrow will change it's position automatically depending on object's average point.
- Thick: Check it to make tracer arrow bold.
- Standalone comment: Uncheck it if you want to bind the comment to an object. If you can't, it means that there is no any objects near the place you gonna create the comment and it will be created as standalone.
- Delete unbinds and deletes existing comment from the map.
In 2D edit mode you may hold [MIDDLE MOUSE] to drag the text or the tracer anywhere you want. To edit existing comment, you must press [ALT]+[W] when it's text or object which is commented under mouse cursor. Press it on the end of the tracer (if available) to make object bind menu appear that allows you to select actions such as bind comment to object, unbind it or remove the tracer.
Prefabs
Overview
Prefab is a text file with INI structure that contains information about sprites that should be automatically created once user inserting it in a map. Single file can contain information about 512 sprites. File format description available in this file. Basically, it keeps (almost) all necessary properties of common sprites such as geometry, coordinates and appearance.

Another good thing that it also keeps properties of xsprites, which is allows to save whole trigger sequence and make it unique once inserted in a map. The following image shows a piano trigger sequence from E1M1 map with newly defined RX/TX channel IDs:

Creation and usage
All prefab files stored in "XMAPEDIT\PREFABS" directory and have "PFB" extension, but since is a text file, it can be opened in any text editor. To insert a prefab, you just call Game Objects menu with [ALT] + [S] in 3D Mode or [SHIFT] + [S] in 2D Mode and hit "Ins" button under Prefabs tab, to delete prefab file, press "Del".
To create a new prefab, you need to go through following steps:
- Highlight at least 1 sprite (but not more than 512) with [SHIFT] or [MIDDLE MOUSE]. Don't be afraid if you accidently highlight wall points since they will be just skipped.
- Open Game Objects menu and hit "Save" button.
- Type filename that cannot be longer than 8 characters and must contain only latin letters and digits.
-
Finally, you have to define prefab face side which will be used when you inserting it on walls. This required to determine the side prefab should be turned to user.
You just pick one of 4 possible sides by pressing arrow buttons or press "None" which leads to prefab that only can be attached on sprites, floors or ceilings.
External models
Overview
XMAPEDIT can load up to 4096 external models without modifying original game files. This allows level designers to place sprites with correct angles without guessing what user will see when playing the map with various voxel packs installed. One of voxel packs that already support xmapedit available on https://github.com/fgsfds/Blood-Voxel-Pack.
The model file must be correct standard BUILD .KVX voxel saved with all 5 mips and colors converted into Blood palette. The path to the file must be shorter than 144 characters. Only face sprites supported at the moment, so voxel won't show if sprite is wall or floor oriented.

Usage
To define a new external model, it must be added into XMAPEDIT database first. You must open "MODELS.INI" (filename can be changed in xmapedit.ini) file usually stored in XMAPEDIT directory with any plain text editor (if you don't have such file, just create the new one).
Each line in this file is the tile number and path to the KVX file separated with "=" (equal) sign.
Now you just need to define your voxel by writing something like that:
[Default]
Tile300 = FOLDER\FOLDER2\MYMODEL1.KVX
Tile2048 = FOLDER\FOLDER2\MYMODEL2.KVX
In the example above "MYMODEL1.KVX" file will be assigned to tile #300 and "MYMODEL2.KVX" to the tile #2048. That's it!
To force voxel spin flag (weapons like), you may just add "*" (star) sign before the KVX file path:
[Default]
Tile300 = *FOLDER\FOLDER2\MYMODEL1.KVX
Options
XMAPEDIT configuration file provides some additional settings: Please, refer to "ShowExternalModels" description in the [General] section and "ExternalModels" in [RESOURCES.ART].
The Preview Mode
Overview
This feature can be activated any time, works in both 2D and 3D modes and allows to test trigger sequences, sector motion, sounds (include ambient ones), ROR sectors, SEQ animation of some sprites, FX effects of gib objects and even INI messages in real time.
Basically, it allows to play the map directly in the editor to see how it will look in the game. When preview mode enabled, you cannot edit anything, however, when testing is finished, it restores all objects to the editor's state.
Controls
To enable preview mode, press key [HOME], to disable press [ESC] or [HOME] again. If you wish to change difficulty and game mode settings, hold [SHIFT] while pressing [HOME].
-
3D MODE ONLY:
[LEFT MOUSE] Send CMD 2: State to object / kill enemy / pickup item / destroy the thing. [RIGHT MOUSE] Send CMD 0: Off to object. [MIDDLE MOUSE] Send CMD 1: On to object. [LEFT ENTER] Change Z-Mode (CAPS-LOCK duplicate). [S] Spawn an SEQ animation ID on the object you currently pointing. The seq file must be in the resource archive. -
2D MODE ONLY:
[LEFT MOUSE] Send CMD 2: State to object / kill enemy / pickup item / destroy the thing. [RCTRL] + [LEFT MOUSE] Send CMD 0: Off to object. [RSHIFT] + [LEFT MOUSE] Send CMD 1: On to object. -
BOTH:
[E] Create an standard explosion. It could be useful for testing gib object FX effects. [RSHIFT] + [E] Change explosion type. [F] Fire a missile. [RSHIFT] + [F] Change missile type.
Mouse controls allows to trigger objects by commands depending on mouse button you clicked. The default commands can be changed in XMAPEDIT.INI as well as some other settings. Refer to "CONFIGURING XMAPEDIT" chapter for more info. There is also supported trigger flags such as Enter, Exit, Sight (modern features only) and Proximity.
Mouse controls
-
HUD Edit dialogs
Move mouse or hold [Q] and scroll [MOUSE WHEEL] to focus on property you want to edit.
Press [LEFT MOUSE] to toggle checkbox state.
Press [RIGHT MOUSE] to reset value of an item to 0.
Press [MIDDLE MOUSE] to call a helper function if available.
Scroll [MOUSE WHEEL] to change the value of property by 1. Hold [ALT] for greater step or [CTRL] to set min or max value accordingly.
-
Tile viewer
Press [LEFT MOUSE] to select a tile.
Press [MIDDLE MOUSE] to open detailed info window.
Move mouse to the first row and hold [RIGHT MOUSE] to scroll the tiles up.
Move mouse to the last row and hold [RIGHT MOUSE] to scroll the tiles down.
Scroll [MOUSE WHEEL] to scroll tiles up or down.
-
Sprites (3D Mode)
Hold just [LEFT MOUSE] to drag the sprite(s) you currently pointing at by XYZ axis. If sprite was placed on a wall, you may also hold [RIGHT MOUSE] to align it according to that wall angle. It doesn't work for group of sprites thought.
Press and hold [RIGHT MOUSE] first, then hold also [LEFT MOUSE] to drag sprites only by Z axis.
Press [RIGHT MOUSE] repeatedly when aiming in floors or ceilings to just rotate sprite in CCW order, holding [SHIFT] leads to rotate the opposite way. Grid size and grid lock affects x/y dragging.
-
Sprites (2D Mode)
If there is more than one sprite at same XY coordinates and you want to focus on specific, you may hold [ALT] and repeatedly scroll [MOUSE WHEEL] until you meet the one that you needed.
-
Walls and sectors (3D Mode)
Hold [LEFT MOUSE] to raise the sector or [RIGHT MOUSE] to lower it. Hold [SHIFT] for finer step or [CTRL] to set Z of sector to the closest neighbor sector(s). -
Highlighting objects
-
2D Mode
Press [MIDDLE MOUSE] without [LEFT SHIFT] to highlight or unhighlight wall point or sprite. Note that all sprites and wall points with same coordinates will be automatically added or removed from a highlight. Holding [LEFT SHIFT] leads to sectors highlighting that allows to select sectors from different areas of the map:
-
3D Mode
Press [MIDDLE MOUSE] to highlight an wall or sector for gradient shading (see TOOLS). Press again on it to unhighlight. Usually, highlighted objects displays as pink colored, however sometimes it might display as normal (for instance, after you applied the gradient shading). To show previously highlighted objects, continue holding [RIGHT MOUSE] and press [CTRL]. To reset highlight, just press [ESC].
Pressing mouse on a sprite will add or remove it from standard highlight.
-
Tile viewer updates
- Added translucent background (enabled by default).
-
Added a GUI dialog which you can call by pressing key [F12].
- Stretch tiles (stretch tiles to the thumbnail size).
- Show transparent color.
- Play animation (some animations may bounce).
- Translucent background.
- Always show misc tile info (such as view type or animation frames).
- Transparent color is no longer showing by default. You can control it by pressing [T].
- Added palswaps support. Press [P] to enter PLU id, [RSHIFT] + [P] cycles PLUs to the left, [LSHIFT] + [P] to the right.
- Key [Q] allows to cycle through texture types (sprite, wall, floor etc...).
-
Added "Favorite tiles" feature that allows to save selected tile in XMAPEDIT.FTL and use it in other maps instead of searching for it every time you start a new board. Also it allows to bind a type which is useful for sprites.
Press [F] to add current tile to the favorites or remove it from the list. When adding a tile, it will also ask to define a type for sprites. You can enter name, caption or id. If you don't want to define anything, just leave it empty and it will be automatically defined as decoration.
If tile added in favorites, tile viewer prints "FAV" sign in the bottom right corner of the tile.
Sky editing
Xmapedit offers you to work with parallax sectors under the new perspective: the Local and Global sky.
The Local sky is the group of sectors that is not separated by a non-parallaxed sector and Global is all the parallxed sectors in the map. This allows to quickly apply propeties such as y-offset, shade, palette to the whole room or map depending on selected scope.
- [PAD8] or [PAD2]: Offset local sky Y position. Hold [ALT] for global scope.
- [PAD4] or [PAD5]: Rotate global sky by 1 tile. The smore sky tiles used, the more angles available.
- [PAD0], [PAD-] or [PAD+]: Change local sky shade. Hold [ALT] for global scope.
- [PAD5]: Reset sky x-panning and y-panning. Hold [ALT] for global scope.
- [L]: Toggle the local forced floor shade bit. Hold [ALT] for global scope.
- [ALT+P]: Change the local sky palette.
Batch object processing
The following new actions (apart from vanilla's ones) available for batch processing at the moment:
- Sprite deletion: Hold [SHIFT] to delete just one sprite.
- Sprite shading: Hold [SHIFT] to shade just one sprite.
- Sprite palette set: With key [ALT] + [P] only.
More actions are planned for next updates.
The tools
-
Import wizard
This tool designed to help importing maps and graphics from another games. At this moment it support BUILD Engine maps with version from 4 to 9, so basically all Build engine games supported. Note that Blood maps is allowed as well!
The wizard will be called automatically when you trying to load non Blood map. It also available from the main menu, under the tools section.
The first window requires that the map file is selected before you proceed. See the checkboxes for more options:
- Erase object info: this option erases all the information from the sectors, walls and sprites leaving only geometry, appearance properties and sprite decorations. You probably want this option enabled if you import non-Blood map.
- Reset palookups: resets palette ID in all objects to zero. Useful for non-Blood maps.
- Delete sprites: deletes all the sprites in the whole map.
- Import graphics: make it enabled if you want to grab the graphics used in this map, otherwise the next 2 window will be skipped.
The second window related to art importing and it's required if you select the art files and palette for import. Note that you can select all files in the folder if not sure what exactly art files are used in the map you select before.
For most of BUILD engine games the ART files and palette (usually called PALETTE.DAT) are stored in GRP files (that may have different extension such as STUFF.DAT in Exhumed). You can always use "kextract" or something similar utilities to unpack the archive to get such files. There is plenty of them over the Web.
The third window related to art importing as well and allows to fine control the process:
- Define starting tile: select a destination tile to where all the new graphics will be imported. You may select empty tile.
- Keep original tile numbers: import new art keeping the original tile numbers. If this option enabled, starting tile option will be ignored. Note that is not always possible to keep numbers since source numbers may be higher than current MaxTiles limit or attempt to overwrite game reserved tile may occur. In this case the import process will end with error (with no graphics imported).
- Import animation frames: import basic tile and all the animation frames.
- Import view frames: import basic tile and frames of 5full or 8full view types. For Blood maps only.
- Use Tile Roadmap method: find free (blank and non-game reserved) tiles automatically. It also searches free range of such tiles for animated graphics.
- Change object tilenums to new: if this option disabled - just the map graphics will be grabbed, hovewer object tilenums remains old. Ignored if "Keep original tile numbers" enabled.
- Do not import duplicates: compares the existing tiles.
Press "Import" in the window 4 and wait for a few seconds and so we got the final result:
Now just don't forget to save all the changes (including the ART)!
-
Exploder sequence
A tool that helps to create delayed sequence of explosions using Hidden Exploder sprite type. To call it, press [ESC] while in 3D mode, then select "Exploder sequence" from the tools tab of the menu.
Enter how many exploders you want to be created in AMOUNT field, then RX ID that should be assigned for each of it (XMAPEDIT can offer you closest free RX channel automatically by default).
The delay setup fields allows you customize the WaitTime value. STEP tells to increment waitTime for each exploder by this value, but total time cannot be greater than MAX or less than MIN.
-
Gradient shading
A tool that works for walls and non-parallaxed sectors. To use it, you must first highlight at least 2 objects in 3D mode (see mouse controls), then press [G] while pointing at one of highlighted objects. A dialog window that contains the following options will appear:
BASE SHADE = a start shade level that will be set for first highlighted wall. SHADE STEP = each next object will have "shade = prevShade + this value". MAX SHADE = final shade level cannot be greater than this value. OBJECT STEP = how many objects should have same shade. It's recommended to always select object with direction from left to right, because currently shading comes in order objects was selected. When you go in 2D Mode, highlighting will be reset.
If BASE SHADE greater than MAX SHADE, it will lead to brighting instead of shading. The max game's shade range is from -127 to 63.
SHADE DIRECTION
---> = shade comes from first to last object. <--> = shade comes from middle to first and last objets. -><- = shade comes from first and last objects to middle. <-- = shade comes from last to first object. To quickly toggle between shade directions without showing the dialog, you may hold [CTRL] while pressing [G]. You may also change shade relatively for highlighted objects with [PAD PLUS] and [PAD MINUS] keys.
-
ARTEDIT
[More info]A tool for editing ART files which contains game graphics. The main advantage of this art editor against all other programs is that this tool is native and makes real-time tile editing possible. In simple terms: you can edit ART files when you in process of creating maps or even SEQ animations (see SEQEDIT tool).
Key features
- Two modes are included: batch and single tile editing.
- Importing new images (PCX and TGA formats support included). The colors of the images will be automatically converted to the closest game colors, include alpha channel of 32bit TGA image that will automatically converted in transparent color.
- Importing ART files from another games with automatic color conversion as well.
- Export tiles in another single ART file or 32bit TGA images with transparency.
- Paint tiles with palookups and palettes or using GUI based color editor which allows to export tile colors as palookup file and use it lately in the game.
- Tile four-side rotating and flipping.
- Change tile animation type, frames and speed.
- Change tile view type and define RFF voxel id.
- Change tile surface type, shade and offsets.
- Erase or copy tiles.
How to use
Easy. The following ways enables art editing mode:
- Press [SPACE] while in tile viewer selecting picnum for an object (wall, sprite etc..).
- Press [ESC] to open main menu, then select ARTEDIT from the tools tab.
- Launch art editor from command prompt. Example: "xmapedit tiles001" opens tiles001.art for editing.
The detailed description of keybindings and usage available in this file. Be sure to save it if you plan to use this tool.
-
Qavedit
[More info]A tool for editing QAV files which contains the screen animation such as weapon or interface. This version can handle up to 4096 frames and each of it may contain up to 8 layers that have it's own properties (tile number,zoom, palette and so on).
Loading any map and then starting qavedit allows to edit animation directly in 3D Mode. It gives additional advantages such as reflecting shade or palookup that affects the whole animation appearance.
How to use
The following ways available to start:
- Select QAV in the "Tools" section of the main menu.
- Xmapedit is smart enough, so you can open QAV files directly from Windows explorer.
- Launch xmapedit using command prompt. Example: "xmapedit bunfuse" opens bunfuse.qav for editing. You may also type qav file rffID, for example "xmapedit 21" will open bunfuse.qav for editing too.
The control keys and interface described in this file. Be sure to save it if you plan to use this tool.
-
Seqedit
[More info]A tool for editing animation. Generally used for enemy sprites and gib effects. It has been updated and now built-in to XMAPEDIT. You able open it two ways: from 3d menu, in the TOOLS list, when xmapedit is loaded or directly from command line by enterring something like "xmapedit myseq" or "xmapedit seqID".
If you load the map, SEQEDIT will start in 3D edit mode that reflects changes made in animation exactly same as game does, so you always know what result you will get. Note that animation could be spawned on any object (include walls and sectors), so be sure to first point on normal sprite if you plan your animation used on sprites.
The control keys as well as updates described pretty well in this file. Be sure to save it if you plan to use this tool.
Configuring XMAPEDIT
All settings of the editor stored in XMAPEDIT\XMAPEDIT.INI file. It will be automatically created once you launch the program for the first time. It allows to change many aspects of the editor.
-
[Screen]
Setup resolution and fullscreen mode.
Width screen width in pixels (from 640 to 1920) Height screen height in pixels (from 480 to 1080) FullScreen toggles full screen mode on and off. Gamma controls how brighten is screen (from 0 to 15). -
[Sound]
Setup sound volume.
SoundVolume sound volume (from 0 to 255). MusicVolume music volume in preview mode (from 0 to 255). -
[PreviewMode]
This section allows to change some options related to Preview Mode feature.
TriggerFlagsRequired if enabled, there will be required if object have any of trigger flags to be able triggered by mouse commands. Set it to 0 if you want any objects to be triggered. TranslateObjects if enabled, it will transalate common objects you pointing to x-objects. Example: you pointing at decoration that in z-motion sector and it triggers the z-motion sector instead of trying to trigger the decoration. Disabled by default. Mouse1Command specify a command number for left button. From 0 to 255. Mouse2Command specify a command number for right button. From 0 to 255. Mouse3Command specify a command number for middle button. From 0 to 255. EpisodeIni EpisodeIni filename. Generally useful to see the actual INI messages. Obviously, the mapname you editing should be described in that file. Default is BLOOD.INI. ForcePlayerStartPosition when enabled, moves you to the player 1 sprite start position once preview mode active. If no sprite found, it moves you to the editor's start position. Disabled by default. ExplosionType Type explosion type (0-8). Default is 1. MissileType Type missile type (0-17). Default is 5. TriggerStartChannel triggers start RX ID objects once preview mode active. Enabled by default. EnableSound do sound initialization once preview mode gets enabled for the first time. Enabled by default. EnableMusic toggles playing MIDI songs on and off. The song and map must be defined in EpisodeIni file. Disabled by default. Speed determines how fast is event processing. 4 is normal, the greater value leads to less speed. -
[Mouse]
Various mouse settings.
SpeedX set horizontal mouse sensitivity. SpeedY set vertical mouse sensitivity. Controls specify what exactly controls is allowed: - 0 = disabled (highlighting with middle button still available).
- 1 = allow only drag sprite with left mouse.
- 2 = allow only raise or lower sector with left and right mouse.
- 3 = all functions available.
FixedGridSize this is fixed grid size for sprite dragging in 3D Mode. 0 = use grid size you currently have in 2d mode. Default is 5. -
[MouseLook]
Select mouse looking mode and setup it's properties.
Mode toggles mouse look on and off Direction specify direction mouse look is allowed to work: - 1 = just vertical.
- 2 = just horizontal.
- 3 = both directions.
Invert specify direction that will be inverted: - 0 = none.
- 1 = just vertical.
- 2 = just horizontal.
- 3 = both directions.
Turn2Strafe toggles strafing instead of turning with arrow keys on and off. MaxSlope specify max slope for mouse look. From 32 to 400, default is 240. -
[TileViewer]
This section related to tile viewer that you call when pressing [V] in 3D mode.
BackgroundColor controls how dark background color is. From 0 to 13. TilesPerRow allows to specify how many tiles you will see in single row in a range from 3 to 14. ShowAnimation toggles playing tile animation on and off. ShowTransparentColor toggles showing transparent (pink) color. StretchTiles toggles stretching small tiles to the thumbnail size on and off. AlwaysShowTileInfo toggles showing info such as view or surface type on thumbnail on and off. TranslucentBackground toggles using translucency for background on and off. -
[AutoSave]
Setup map autosaving properties.
FileName specify a map filename (max 8 symbols). SaveInterval in seconds (30 is default). MaxSaveCopies how many copies allowed to save during session. When counter reaches max, it will start overwrite old copies. -
[Compatibility]
The name explain itself.
IndicateCompat Set to 1 to show vanilla compatibility status in top right corner in 2D Mode. SaveAsModernMap Set to 1 to make the editor save your maps with version 7.1 which treated by port(s) as modern map and force it activate all the features. For detailed info, please visit http://cruo.bloodgame.ru/xxsystem. MaxTiles specify the max tiles standard you able to use. - 0 = 9216 or higher (default).
- 1 = 4095 (Blood v1.0).
- 2 = 6143 (Blood 1.10 or higher).
-
[General]
This section controls various aspects of the editor.
HighlightThreshold proximity threshold (in pixels) for highlighting vertices. EyeHeight camera height in 3D Mode. Beep toggles pc speaker beeps on and off. ShowExternalModels controls when external voxel models should be shown: - 0 = don't show at all.
- 1 = show always.
- 2 = show only when Preview Mode is active. (can save performance)
SkipZStepMode Set to 1 to Locked/Step Zmode in 3D edit mode. ShowAdvancedTypes controls which types are available in the editor: - 0 = only vanilla classic types.
- 1 = + hidden vanilla compatible types.
- 2 = + modern only compatible types.
AutoLoadMap toggles auto-loading of the map you edited last time. If disabled - a dialog will be shown that allows to select map for loading. Disabled by default. MultipleSky if enabled, it allows to have different sky tiles on each sector. ShowAmbientRadius controls how exactly sound circles should be shown: - 0 = don't show ambient circles in at all.
- 1 = show only first radius (the yellow one).
- 2 = show only second radius (the brown one).
- 3 = show both always.
- 4 = show both only when highlighted.
UseCaptions captions is a shorter versions of type names. This setting toggles it on and off in 2D Mode. UseTranslucentEffects toggles various translucent effects in 2d mode which may seriously increase FPS on slow machines. Enabled by default. CaptionStyle controls how exactly captions over objects in 2d edit mode must be shown: - 0 = disabled.
- 1 = standard style (default).
- 2 = classic BUILD style (lotag/hitag).
FirstTile2Color does nothing, but replaces tile#0 with specified color in a range from 1 to 254. AutoCountSecrets clears all user secret counters and sets the new one automatically. It creates a green sprite in first wall of first sector coordinates. The sprite is invisible in 3d Mode. -
[HUD]
A section that allows to setup some properties of the main xmapedit hud.
Layout3D select hud layout in 3D edit mode: - 0 = always disabled
- 1 = always full
- 2 = always compact
- 3 = always slim
Layout2D select hud layout in 2D edit mode: - 0 = always disabled
- 1 = always full
- 2 = always compact
- 3 = always slim
- 4 = dynamic (compact when drawing sectors, full otherwise)
TileShowShade toggle reflecting current object shade on tile inside the box on and off. TileSizeOutside specify size of the tilebox when it outside the main hud (compact, slim layouts) from 100 to 1023. -
[Comments]
A section related to map comment system.
Enabled toggle using comment system on and off. If disabled you won't be able to see and create comments. CompareCRC toggle comparing map file CRC to make sure that comments bound with correct objects. -
[AutoGrid]
A section that allows to control zoom for autogrid step.
Enabled toggles autogrid feature on and off. Saves automatically. ZoomForGrid1 specify a zoom for grid size 1. Default is 200. ZoomForGrid2 specify a zoom for grid size 2. Default is 400. ZoomForGrid3 specify a zoom for grid size 3. Default is 800. ZoomForGrid4 specify a zoom for grid size 4. Default is 1600. ZoomForGrid5 specify a zoom for grid size 5. Default is 3200. ZoomForGrid6 specify a zoom for grid size 6. Default is 6400. -
[AutoAdjusting]
A section that controls sprite auto-adjusting settings.
Enabled toggles sprite auto-adjusting on and off. Enabled by default. If you disable it, you will have to set everything manually, include statnum and sprite type. This may lead to unpredictable behavior, so be carefully. SetPicnum auto-set picture for a given sprite type. Enabled by default. SetSize auto-set xrepeat and yrepeat for a given sprite type. Enabled by default. SetPalette auto-set palette for a given sprite type. Enabled by default. SetHitscan auto-set hitscan bit for a given sprite type. Enabled by default. SetStatnum auto-set statnum for a given sprite type. Enabled by default. Changing statnum to the wrong number may lead to unpredictable behavior in the game. SetStatnumForThings When disabled, sprites that have statnum changed manually to a non-system reserved will be skipped, otherwise it gets a proper statnum. If you really want to change it, use higher numbers like 1023 and count down. Enabled by default (always set proper statnum). -
[Rotation]
This section related to object rotation configuration.
ChangeMarkersAngle specify which exactly markers allowed to change their angles when sprites gets rotated: - 0 = none.
- 1 = path markers only (default).
- 2 = door markers only.
- 3 = both.
-
[RESOURCES.ART]
A section that allows to override default ART files and define your own instead.
"%ART_FILE_INDEX% = %PATH%\FILENAME.EXT" (no quotes, max path length is 256).
The following example loads Cryptic Passage ART file instead of TILES015.ART: "15=CPART15.AR_".
ExternalModels specify path to INI file with external models defined. Voxels specify path to VOXEL.DAT file. Surfaces specify path to SURFACE.DAT file. Shades specify path to SHADE.DAT file (if any presented). -
[RESOURCES.RFF]
Same as ART, but allows to override resource archives (max path length is 256).
Blood specify path to BLOOD.RFF file. Sounds specify path to SOUNDS.RFF file.