E[X]TENDED MAPEDIT

FOR BLOOD

We wish to thank all the beta testers that was help to find the bugs and suggesting their ideas.

Original MAPEDIT by Nick Newhard and Peter Freese.

XMAPEDIT version created by nuke.YKT and NoOne.

Always backup your maps.

BUILD MAY 13 2021 available

Download
Standalone (~649KB)
Read manual | YouTube channel

ABOUT XMAPEDIT

XMAPEDIT is an extended version of original Blood map editor with fixed bugs such as wrong hitscan on high resolutions, lots of new features and extended objects limits. It's compatible with vanilla Blood, supports modern types as well and includes all the features of PMAPEDIT. It still requires DOS or DosBox to be started.

Any suggestions and comments are welcome in Blood related Discord channel: https://discord.gg/V9fY5wE. You may also send e-mail to: baitd@yandex.ru

RECENT UPDATES

  1. MAY 13 2021

    • GENERAL:

      1. 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.
      2. Fixed that you cannot save the map if you started it from scratch.
      3. Fixed that secrets is not count correctly if AutoCountSecrets is enabled.
    • 3D MODE:

      1. The editor now displays "VIEW 8 FULL" sprites correctly.
      2. 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.
  2. MAY 08 2021

    • GENERAL:

      1. 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.
      2. Fixed a bug when some object statistics was not reset when loading or starting new map.
      3. Fixed that useless "Normal Off" sectors was not erased automatically when saving the map.
      4. Improved sector copying algorithm, so there is should be a way less chance to see a broken geometry when merging the maps.
      5. Various minor fixes.
    • 2D Mode:

      1. Classic BUILD menu has been replaced with the main menu from 3D mode.
      2. You can drag sprites through white walls without adding it in a highlight.
      3. 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.
      4. Fixed a crash that may occur when switching to 2D mode from 3D after inserting or deleting sprites.
    • Tile viewer:

      1. Key [Q] allows to cycle through texture types (sprite, wall, floor etc...).
  3. APR 17 2021

    • GENERAL:

      1. 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.

      2. 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.
      3. Introduced batch object processing (early WIP).
      4. You can rotate a group of highlighted sprites with keys [SEMICOLON] and [APOSTROPHE]. [SHIFT] and/or [CTRL] leads to finer step.
      5. Fixed that items cannot be respawned even if Optional respawn was selected in multiplayer.
      6. The editor can load maps from RFF archive, if file is not exists on the disk.
      7. Changed the way how x-objects allocates for usage. This could prevent potential issues in Fresh Supply port and increase overall editor stability.
      8. Autosave files now should be created in working directory always instead of current.
      9. Fixed a bug when there was one more than MaxSaveCopies of autosaves created.
      10. The crash that may occur when editing sector sound sprites now should be fixed.
      11. Added highlighted objects statistics in top left corner of the screen.
      12. 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:

      1. Fixed that preview mode may not work when loading maps from sub-folders.
      2. Fixed that sprites intended for teams mode only still available if bloodbath mode selected.
      3. Fixed a bug with hitscan that could occur after previwing maps with missile generators.
      4. Sectors with same RX ID will not be triggered all together when triggering with mouse just one of them if TranslateObjects setting is disabled.
      5. 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:

      1. 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.
      2. Removed:
        1. Set floor and ceiling palette (key P).
        2. Check sector pointers (key ENTER).
        3. Show default properties for x-objects (key LEFT ALT).
      3. 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).
      4. 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.
      5. There is no more required to hold [CTRL] when pressing [H] to toggle hitscan flag.
    • 3D MODE:

      1. Added visual effects for sprites like halo for candles or flame for torches.
      2. Added setor's colored lights displaying, so sprites will be painted with colors you selected in sector fx dialog settings just like in game.
      3. You can drag and rotate many sprites while holding [LEFT MOUSE].
      4. You can highlight sprites with [MIDDLE MOUSE].
      5. It's possible to duplicate sprites using key [INSERT] just like you do it in 2D mode.
      6. It's allowed to insert sprites in/on other sprites now.
      7. You cannot select "Free/Mouselook" z-mode anymore if mouse look is actually disabled.
      8. Key [ALT] + [PAGE UP/DN] puts highlighted sprites on ceiling or floor keeping the shape.
      9. Key [SPACE] + [ESC] clears the clipboard buffer.
      10. Removed:
        1. Mouse look modes 1 and 2 (only free look still available). I'm pretty sure no one ever used it anyway.
      11. Key [O] now requires to hold [CTRL] to ornament sprite on the wall.
      12. Key [ALT] + [PAD ARROWS] changes actual X / Y position of the sprite.
      13. Key [CTRL] + [SHIFT] + [PAGE UP/DN] gives perfect z-step when raising or lowering sprites.
      14. Added arrow that shows current sprite angle. It works only for face and non 1-sided sprites.
  4. FEB 26 2021

    Meet the largest update for XMAPEDIT since release!

    • GENERAL:

      1. Fixed broken links to the Discord channel of Blood community and modern features doc.
      2. Now you can safely edit XMAPEDIT.INI outside even if xmapedit is opened, but changes made inside the editor will not be saved.
      3. 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.
      4. Added settings for sprite auto-adjusting to the XMAPEDIT.INI.
      5. Added map revisions message when loading the map.
      6. 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.
      7. 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.
      8. The editor now loads in graphical mode, which should give a little boost to loading time. We're opened for xmapedit logo ideas :)
      9. The editor now tries to detect magic sprite or map version to auto-set ShowAdvancedTypes value for you (for modern features).
      10. 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:

      1. 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.
      2. Key [S] in 3d mode allows to spawn selected seqID on object you currently pointing at.
      3. The following modern (and updated vanilla) types was added in preview and can be tested:
        1. DudeSpawn (type 18, spawn random dude feature).
        2. Custom Dude Spawn (type 24).
        3. RandomTX (type 25, also supports Event Redirection).
        4. SequentialTX (type 26, also supports Event Redirection).
        5. Teleport Target (type 8).
        6. Properties Changer (type 28, cstat change only).
        7. Resizer (type 31).
        8. Picture Changer (type 29).
        9. Sector Lighting Changer (type 34).
        10. Data Changer (type 35).
        11. SEQ Spawner (type 27).
        12. Effect Gen (type 38).
        13. Sector Wind Gen (type 39).
        14. Inc-Dec (type 37).
        15. Damager (type 36, killing only).
        16. EctoSkull Gen (type 704).
        17. SFX Gen (type 708).
        18. 1-Way switch (for walls).
      4. Added difficulty and game mode display to the preview mode icon in the top right corner.
      5. Flame Trap is now working.
      6. 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.
      7. Preview Mode button was added in 3d menu, to the TOOLS list.
      8. You cannot "kill" locked enemies anymore.
    • 2D MODE:

      1. Fixed that sometimes a crash may occur when deleting multiple sectors.
      2. Blocking walls is not block movement of the arrow anymore by default.
      3. Game objects menu which available in 3D mode with [ALT] + [S] keys are now available in 2D mode if you press [SHIFT] + [S].
      4. 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.
      5. Sounds you currently listen in 2D Mode by pressing [F10] are now displays additional info such as volume, sample rate and looping flag.
      6. 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].
      7. For now you can't insert points anymore while drawing a sector. This might be changed later.
      8. Pressing [G] alone will not lead to off grid anymore, so you have to press [ALT] + [G].
      9. 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.
      10. 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].
      11. There is no more required to press [ALT] + [F] when setting first wall of sector. Just [F] is fine.
    • 3D MODE:

      1. Added modern types list in Game objects menu.
      2. [SHIFT] + [TILDE] or [SHIFT] + [CAPSLOCK] toggles mouse look on and off.
      3. Added new INI setting for MouseLook section called "Turn2Strafe". Set 1 if you want to strafe with keyboard instead of turning. Disabled by default.
      4. [SHIFT] + [B] are now works (one side blocking wall).
      5. ZMode type now saves in XMAPEDIT.INI.
      6. Added "About" button in main menu where you can get xmapedit version info.
      7. Fixed that free z-modes may not work properly for parallaxed sectors that have absolute ceilingZ.
      8. Fixed that sometimes sprite could receive wrong angle if clipboard was not empty.
      9. The return of key [O] function in 3D Mode (never liked it!) by request.
      10. Added an option to the [Mouse] section that allows to define fixed size of grid for sprite dragging.
      11. Sprites that was highlighted in 2D mode are now also blinking in 3D mode.
  5. 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.
  6. 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.

THE 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.

  1. About XMAPEDIT
  2. Installation & Notes
  3. Brief features, updates and fixes overview
    1. General
    2. 3D Mode
    3. 2D Mode
  4. The preview mode
  5. Mouse controls
  6. Tile viewer
  7. Batch object processing
  8. The tools
    1. Exploder sequence
    2. Gradient shading
    3. Seqedit
  9. Configuring XMAPEDIT
    1. Screen
    2. Sound
    3. PreviewMode
    4. Mouse
    5. MouseLook
    6. TileViewer
    7. AutoSave
    8. Compatibility
    9. General
    10. AutoGrid
    11. AutoAdjusting
    12. 3DInfo
    13. Rotation
    14. RESOURCES.ART
    15. RESOURCES.RFF
    16. BUILD.LevelImport

Installation & Notes

No special installation required, just all XMAPEDIT files must be placed in the Blood directory. You may have need to configure DOSBox to run it by just changing exe name in the conf file in case if using standalone package. That's basically all the requirements, however take attention to some notes that is good to know:

  1. XMAPEDIT requires at least 32mb memory set in your DOSBox configuration file.. Be sure to use higher values if you got "Out of memory" error (especially when previewing the map).
    [dosbox]
    memsize=32
    
  2. There was added new key sequences in the editor that may conflict with DOSBox key mapper, so you may have to change it by pressing [CTRL] + [F1] or by opening mapper file in any text editor.
  3. XMAPEDIT do support extended object limits (sectors, sprites, walls etc) that also extended in modern ports such as NBlood or GDX, but not in vanilla Blood. 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.

    ATTENTION TO FRESH SUPPLY PORT USERS:

    You should stick with vanilla limits (common and xobjects) if you want maps working properly. The reason is Fresh Supply limitations and there is nothing can be done on FS scripts or XMAPEDIT side.
  4. The editor will work with standard DOSBox 0.74 release just fine, however my personal recommendation is a DOSBox ECE (Enhanced Community Edition) available on https://dosboxece.yesterplay.net. It gives smooth experience and fixes some issues with keyboard such as weird Caps-Lock behavior.
  5. Since XMAPEDIT can correctly work in all 4:3 screen resolutions up to 1280x1024, i personally still recommend 640x400 with fixed size windowed mode in DOSBox because it gives great performance, good picture and perfect font size in 3D mode. It's up to you to decide what is best. Here is some configuration info of my DosBox for 1080p and higher resolution users:
    [sdl]
    #  this makes window big enough to work with
    windowresolution=1280x1024
    output=openglnb
    
    [dosbox]
    # set this if you have screen blinking
    machine=vesa_nolfb
    
    [render]
    scaler=none
    # this should make dosbox window to fit 4:3 screens
    aspect=true
    
    [cpu]
    core=dynamic
    cycles=max
    
    [speaker]
    # set this if you wish to hear the beeps
    pcspeaker=true
    

Brief features, updates and fixes overview

  • General

    1. You can rotate a group of highlighted sprites with keys [SEMICOLON] and [APOSTROPHE]. Hold [SHIFT] for finer step and [CTRL] for perfect.
    2. The editor supports sprite prefabs.
    3. The SEQEDIT are now built-in xmapedit tool!
    4. There was added a Preview Mode feature.
    5. The following keys are now working in all modes:
      1. [K] - kinetic sprite/wall movement.
      2. [HOME] - toggle preview mode on and off.
      3. [CTRL] + [HOME] - search for object number.
      4. [F12] - toggle beeps on and off.
      5. [U] - toggle underwater sector status on and off.
      6. [M] - masking walls.
      7. [X] - auto-slopes.
      8. [R] - sprite orientation.
      9. [1] - one side flag.
      10. [LEFT ALT] + [X] - disable auto slopes for all walls in a highlight.
      11. [CTRL] + [B] - toggle blocking walls to block move on and off.
    6. Increased board size (PMAPEDIT like).
    7. Max sprites has been raised from 4096 to 16384!
    8. Max x-sprites has been raised from 2048 to 16384!
    9. Max sectors has been raised from 1024 to 4096!
    10. Max x-sectors has been raised from 512 to 4096!
    11. Max walls has been raised from 8192 to 16384!
    12. Max x-walls has been raised from 512 to 16384!
    13. You can define your own RFF files in XMAPEDIT.INI.
    14. You can define your own ART files in XMAPEDIT.INI.
    15. The editor can load maps from RFF archive, if file is not exists on the disk.
    16. Voxels now displaying in the editor!
    17. 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.
    18. The editor now uses DOS/32 Advanced DOS Extender. It produces smaller EXE file size and unbinds it from DOS4GW. Should also give a little perfomance boost in theory.
    19. Video settings now stored in XMAPEDIT.INI instead of BLOOD.CFG.
    20. Fixed input lag when pressing keys and Beeps are on.
    21. Removed various worthless things from lists.
    22. 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.
    23. 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.
    24. There was removed sprite detail feature.
    25. The editor supports vanilla hidden and modern compatible types. Refer to "CONFIGURING XMAPEDIT" chapter for detailed info. If you are interesting to create maps using modern features and types, please also visit http://cruo.bloodgame.ru/xxsystem for the the full documentation and map examples.
    26. 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.
    27. XMAPEDIT can set counter of secrets in the maps for you automatically. Refer to "CONFIGURING XMAPEDIT" chapter for detailed info.
  • 3D Mode

    1. 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.
    2. Added new z-mode that allows to select z direction with mouse.
    3. You can move through stacks with any z-mode.
    4. Fixed the panning speed. It now exactly like it should be in the game.
    5. Fixed a bug with hitscan on resolutions higher than 320x200! This means that sprites will be placed exactly where you pointing at.
    6. Faster falling in gravity z-mode (fps independent).
    7. Faster raise/lower in free z-mode (fps independent).
    8. Fixed x-panning / x-offset direction for walls or sprites that are x-flipped.
    9. [CTRL] + [I] toggles showing of all invisible sprites.
    10. Added mouse look wich supports up to 3 modes. See "CONFIGURING XMAPEDIT" section below for detailed information.
    11. There is no more 3D mode outside the sectors (hello, NEWBOARD.MAP).
    12. You can make any sprite floor oriented and it will be displayed just perfect!
    13. 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.
    14. [F5] and [F6] keys are working in 3D Mode. It allows you to be redirected in 2d mode to edit object properties and then automatically return back to 3D when finishing editing. If you press [F5] on a non-sector object, it will redirect you to the sector dialog of that object anyway. As a small bonus, you can press [CTRL] + [F5] to get directly in the sector lighting settings dialog.
    15. 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".
    16. You can enable global floor shade for all parallaxed ceilings. Just point at any floor and press [ALT] + [L]. To disable it point at any unhighlighted ceiling.
    17. Added HUD that displays some information about objects you currently pointing at. Currently it shows tile information, some basic information about objects such as wall ange and sector visibility, object type and information triggers such as rx, tx channels, data and flags. Refer to "CONFIGURING XMAPEDIT" chapter to learn how to configure it best for you.
    18. Key [/] is no longer resets cstat of object, it only resets panning, offset and repeats.
    19. Keys [PAD 7] and [PAD 9] changes repeats and panning in both X and Y directions at once. Hold [SHIFT] for finer step.
    20. Added a mouse controls.
    21. 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.
    22. [CTRL] + [O] while pointing at wall or sector allows to toggle textures alignment of all walls of that sector.
    23. [SHIFT] + [G] changes grid size.
    24. [CTRL] + [SHIFT] + [G] toggles grid lock on and off.
    25. Dynamic fire (tile 2342) is now working. It also playing in tile viewer.
    26. Gib and Explode objects allowed to be placed under floors and ceilings.
    27. It's allowed to set different sky for each sector if "MultipleSky" value in XMAPEDIT.INI is set to 1.
    28. Added "Gradient shading" feature that works for walls and non-parallaxed sectors.
    29. It's possible to use more than 15 palookups.
    30. You can cycle through palookups holding [LSHIFT] or [RSHIFT] while pressing [P].
    31. System messages now uses better font.
    32. There is xpan and ypan status message displays for sectors when changing it.
    33. There is no more auto-save message in 3d mode. It now shows a diskette picture with number of current auto-save file in top right corner.
    34. Added a system message to indicate which object was just copied in the clipboard.
  • 2D Mode

    1. 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.
    2. 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.
    3. 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].
    4. 2D mode gets huge perfomance boost on complicated maps where is a lot of captions to print. They won't show anymore while zooming.
    5. 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].
    6. Game objects menu which available in 3D mode with [ALT] + [S] keys are now available in 2D mode if you press [SHIFT] + [S].
    7. 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 sound one by one.
    8. Added a new indicator. It shows a small cross in the middle of the wall when you move mouse to it.
    9. 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. The tail painted with the brown color.
    10. Some sprite types now have different icons.
    11. Sprites that was highlighted with [SHIFT] is no longer resets it's Z when dragged with mouse, unless fully buried in ceiling or floor.
    12. Copy/Paste features & fixes:
      1. Fixed a bug that when you copy x-sector with marker (slide, rotate etc.), the new marker appear in old sector.
      2. XMAPEDIT will make unique ROR markers for you when copying sectors highlighted with [RALT] or sprites highlighted with [SHIFT] if you press [F10].
      3. The editor allows to set free TX/RX channels for just duplicated objects, but keep 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 itself, 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.
      4. 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.
    13. There was added captions for types. They usually shorter than names in type list to free screen space (PMAPEDIT like).
    14. You can see caption for Decoration when it's an XSprite (PMAPEDIT like).
    15. There was added a vanilla compatibility indicator. When one of vanilla objects is exceed, it will indicate that map is only modern ports compatible and won't work in DOS Blood.
    16. You can see additional sector and wall info in the status bar.
    17. 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.
    18. Pressing [ALT] is no more required to edit object properties. This means that you can now just press [F5] or [F6] in both 2D and 3D modes. You can also press [CTRL] + [F5] on sector to get directly in it's FX editing dialog.
    19. Edit dialog updates:
      1. 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.
      2. You can enter negative numbers in "Data1", "Data2" and "Data3" fields (see modern features for mappers).
      3. "Data" fields now have dynamic names that depends on selected Type.
      4. Fixed "Drop item" limit. It's also possible to call visual selection of item when pressing [F10] on it.
      5. "Key" field now have named values.
      6. Dialog area now shows properties of common objects as well without need to pressing keys. Note that if it shows x-properties, you can press [CTRL] to see the common ones and if it shows common when you need x-properties, you can press [ALT] to see it.
      7. There was added [BACKSPACE] and [DELETE] keys in properties edit dialog in 2d mode that doing same thing as [SPACE].
      8. Key [DELETE] for number edit resets value to zero.
      9. Added "hi-tag" field to sprite editing dialog. It mostly useful for modern types.
      10. Removed BUILD's most popular sprite function. This means that if there is nothing in clipboard, a zero picture for sprite will be set.
      11. You can see XObject usage statistics in the status bar while holding [TILDE].

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 and user is allowed to create up to 512 prefab files. 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:

  1. 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.
  2. Open Game Objects menu and hit "Save" button.
  3. Type filename that cannot be longer than 8 characters and must contain only latin letters and digits.

    WARNING

    Don't use filenames longer than 8 characters since they won't appear in prefab selection menu anyway.
  4. 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.

The Preview Mode

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.

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

  1. Tile viewer

    Press [LEFT MOUSE] to select a tile.
    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.
  2. Sprites (3D Mode)

    Hold [LEFT MOUSE] to drag the sprite(s) you currently pointing at. 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 [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.

  3. 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).
  4. 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 process:

    • 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

  1. Transparent color is no longer showing by default. You can control it by pressing [T].
  2. Added palswaps support. Press [P] to enter PLU id, [RSHIFT] + [P] cycles PLUs to the left, [LSHIFT] + [P] to the right.
  3. 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.

  4. It can play animated tiles. Note that some animations might bouncing. To toggle animation on and off, press [CTRL] + [A]. If you wish to hide all the animation frames, except the first one, press just [A].
  5. Added auto tile sorting:
    • when selecting textures for walls and sectors, it shows power-of-two sized tiles with no transparent pixels first.
    • when selecting pictures for face and wall sprites, shows tiles with transparent pixels first.
    • when selecting pictures for masked walls and floor sprites: shows power-of-two sized tiles with transparent pixels.

    To manually toggle sort order, press key [S] while in tile viewer. You must be in all tiles mode.

  6. [CTRL] + [G] makes you to go to the selected tile index (not tile number).
  7. [CTRL] + [S] toggles stretching small tiles to the full thumbnail size.
  8. Key [Q] allows to cycle through texture types (sprite, wall, floor etc...).

Batch object processing

The following new actions (apart from vanilla's ones) available for batch processing at the moment:

  1. Sprite deletion. Hold [SHIFT] to delete just one sprite.
  2. Sprite shading. Hold [SHIFT] to shade just one sprite.
  3. Sprite palette set. With key [ALT] + [P] only.

More actions are planned for next updates.

The tools

XMAPEDIT have some tools built-in to simplify routine operations for the level designer.

  • 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.

    Exploder sequence tool

    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:

    Gradient shading tool
    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.

  • Seqedit

    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".

    Seqedit tool

    There is no extesion required, but if 2 or more files with *same names* and *different extensions* is found (ex. TEST.MAP and TEST.SEQ), the XMAPEDIT will offer you an "Open with" dialog where you can select the tool to open file with. It also smart enough to load SEQs directly from the resource archive by it's ID or filename (if SEQ is not found on the disk).

    If you load the map, you can preview loaded SEQ using Preview Mode by pressing [F5]. 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. You will return back to seqedit after preview is finished.

    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.

BRIEF SECTIONS OVERVIEW

  • [Screen]

    Overrides Blood's configuration file screen resolution settings. Remove the whole section if you wish to use Blood's resolution.

  • [Sound]

    Intended to change various sound options.

    InitAtStartup If disabled, the whole sound system will be initialized just once you actually listen the sounds (for example, with F10 key press).
  • [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.
    TriggerStartChannel triggers start RX ID objects once preview mode active. Disabled 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]

    The name speaks for itself.

    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. 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.
    AutoSortTiles toggles tile auto-sorting on and off.
    TilesPerRow allows to specify how many tiles you will see in single row in a range from 3 to 10.
  • [AutoSave]

    The name explain itself.

    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 toggles showing vanilla compatibility status in top right corner in 2D Mode on and off.
    SaveAsModernMap this makes 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.
    MaxSaveCopies how many copies allowed to save during session. When counter reaches max, it will start overwrite old copies.
  • [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.
    ShowAdvancedTypes controls which types are available in the editor:
    • 0 = only vanilla classic types.
    • 1 = + hidden vanilla compatible types.
    • 2 = + modern only compatible types.
    ShowOpenWithDialog toggles showing dialog with a tool selection when 2 or more files with same name but different exension is found on and off. Enabled by default.
    AutoLoadNewboard toggles auto-loading NEWBOARD.MAP file on and off. If disabled - a dialog will be shown that allows to select map for loading. Disabled by default.
    MultipleSky toggles pallax sectors auto-adjusting on and off. 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.
    FirstTile2Color does nothing, but replaces tile#0 with specified color in a range from 1 to 254.
    AutoCountSecrets clears all user secret counters and set it's own automatically. It creates a green sprite in first wall of first sector coordinates. The sprite is invisible in 3d Mode.
  • [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.
  • [3DInfo]

    This section related to HUD in 3D mode that displays some info about objects you pointing at.

    ShowBasic toggles showing some basic info about objects such as it's type, angle and other flags.
    ShowAdvanced toggles showing info about triggers (rx, tx, command, trigger flags etc).
    ShowTilePreview toggles showing tile preview window.
    ShowTileInfo toggles showing info about tile such as shade and size.
    TilePreviewShowPals 0 = show normal tile, 1 = show painted tile.
    TilePreviewSize the size of tile preview window size in pixels (32 - 128).
  • [Rotation]

    This section related to object rotation configuration.

    ChangeMarkersAngle specify which exactly markers allowed to change their angles when sprites get 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_".

    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.
  • [BUILD.LevelImport]

    This section related to importing maps from other BUILD games.

    EraseSprites deletes all sprites.
    ErasePalettes resets palettes of all objects to zero.
    EraseTypes resets types of all objects to zero.
    WallPicToTilenum specify a tile number for all walls (0 = original).
    WallOverPicToTilenum specify a tile number for mask of all walls (0 = original).
    SpritePicToTilenum specify a tile number for all sprites (0 = original).
    FloorPicToTilenum specify a tile number for all floors (0 = original).
    CeilPicToTilenum specify a tile number for all ceilings (0 = original).
    ParallaxToTilenum specify a tile number for all parallaxed sectors (0 = original).