|Added CM_MERGE_CONVEX_HULL (ctrl+M) command which makes a convex hull out of 2 selected brushes.
Added CM_COLLAPSE_FACE (ctrl+shift+F) command which collapses the selected face to a point.
vertex_select_mode when enabled will now always use mode 2, and removed vertex_drag_sensitivity.
Fixed a map loading bug that could cause group info to be lost, or cause mirrors to crash.
Changed select_delta default value to 5 to make it easier to select vertices.
Download the new version here
|BSP .97q5 - 10/8/2021
|Added a feature for grouping brushes and entities into "prefab" objects. Prefabs will always select as a single object and can be moved, flipped or rotated. The contained brushes and entities can't be edited or textured while part of a prefab.
Use Ctrl+L (CM_MAKE_PREFAB) to make the selection into a prefab, or use Ctrl+U (CM_REVERT_PREFAB) to revert a selected prefab back to normal editable brushes.
Prefabs save and load with .map files.
Set selected outline color of prefabs with the setting color_prefab_selection.
Fixed bug with Q1 wads not loading in 97q4.
Removed nothresholdundo setting which was for reducing memory usage.
Entity grid theme colors will update without restarting.
Theme colors apply to the entity window buttons and grid borders.
Made the group window border size thinner.
When pasting entities, targetname renumbering will apply to and be unique across usages of target, targetname, pathtarget and killtarget keys.
When pasting an entity, if the target key is set, it will always be kept and be given a new id. It will no longer be cleared when there is no matching targetname within the same set of copied entities.
Pasting entities will preserve mirror overrides.
The texture window "Animate Sky" menu is hidden in Q2 mode.
Fixed texture window "Animate" menu to toggle correctly.
The preferences dialog will remember the last view shown when opened again.
Entity editor will allow free text editing of choice/flags type keys.
The worldspawn "sky" key will show a dropdown of known skybox names (configured by gl_skybox_path).
Fixed CM_LIST_SKYBOX to support paths separated by semicolons.
Added Window->Theme menu and some theme configs. Saved themes will appear in the menu (limited to 16 entries).
Loading a theme will save the theme filename to bsp.ini as "theme_file" and load it when BSP starts.
Download the new version here
|BSP .97q4 - 9/18/2021
|Fixed mirroring not rotating locked brush textures correctly.
Fixed bug with team textures disappearing in the texture view if scrolled too far.
Sunlight will also cast from sky brushes instead of only from empty space.
Entities with pathtarget or killtarget will draw a line to the target entity.
Reduced some GL z-fighting when transparent brushes overlap solids.
Fixed some rendering lag when moving the mouse.
Fixed some rendering lag when animated water textures were visible in the texture window.
Textures should load faster when creating or opening a map.
Negative entity angles will stay unchanged when mirrored.
Pasting brushes with Ctrl+V will paste at the center of the XY views.
Fixed a crash that could happen when opening certain maps when lighting was disabled.
Fit the texture window scrollbar to the scrollable area.
Surface window SX/SY +/- buttons won't skip over zero.
Color settings can be set to system color names (e.g. COLOR_BTNFACE). See https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getsyscolor for a list of names.
Color settings will keep the original string value instead of converting to hex.
Entity view and settings grid are dark by default.
Fixed the UI painting glitches with window borders.
Removed caption_percent setting and replaced it with caption_height.
Removed main window frame borders for more space.
Added settings to customize the UI colors (color_theme_*). May need to restart for some changes to take effect.
Added setting theme_toolbars. Set to 0 to use default colors for toolbars, 1 to apply color to only the group toolbar, or 2 to apply color to all toolbars.
Added command Brush menu -> Convert to team textures (CM_CONVERT_TEAM) which will convert non-team textures on the selected brushes to team textures if the texture names matches a team texture name on the first team.
Download the new version here
|BSP .97q2 - 9/21/2020
|Fixed a crash after using the "Move Brushes into Entity" or "Revert to World" commands.
Download the new version here
|BSP .97q - 9/5/2020
|Fixed some floating precision / rounding bugs that could cause compiled maps to have leaks or invisible brushes.
Q2: load jpg/png/tga textures from the texture_path or alt_texture_path without needing .wal files.
Q2: "Load textures" dialog will show texture dirs from the alt_texture_path.
Surface window "save to .wal" will create a .wal file if it does not exist.
Arrow keys on the surface window will nudge the texture position.
Fixed a crash when opening a .map file containing locked groups and mirroring.
Download the new version here
|BSP .97m - 3D clipper - 4/25/2020
| Added 3D clipper mode to set clip points in the 3D view (command: CM_MODE3D_SET_CLIP_POINT). Enable the mode with Shift+V or from the toolbar button next to the select and paint modes. To set a clipper in the 3D view, select a brush and left click to set a point on the plane of the current face. Select a different face with right click (lift texture) or select in the XY view. Pressing escape will clear the clippers, or leave the 3D clipper mode if there are no clippers and go back to the default mode.
2-point clipper won't change orientation when switching between XY views.
Extrude face will now use floating precision.
Download the new version here
|BSP .97k - Texture alignment view - 4/18/2020
Added texture alignment system to the surface window. The texture alignment view shows the current brush face on top of the current texture configuration, and provides a resizable texture rectangle. Dragging the ST corner of the rectangle moves the texture with snap, and dragging inside moves without snap. Dragging the ends of the S and T edges will rotate the texture. Dragging the corner opposite to ST or any of the edges will scale/resize the texture. With edge snap mode, snapping occurs on the points of the brush face and at quarter divides on each edge. With grid snap mode, snap occurs at the same positioning as the XY grid. Ctrl+mousewheel will change the grid size. Mousewheel will zoom. Middle button to pan.
Added new system for defining exports to replace the .bat file system. The new system will be used if the game directory includes a file named exporter.cfg. This file defines all of the exporter scripts in one place (see the included exporter for quake for syntax and examples). This script generates the batch commands so no external .bat files are needed, though it can still run other .bat files, programs, or batch commands like cd copy mkdir etc. When the file is modified, the BSP menu will be updated with the changes.
When the surface window is "keep on top", toggling the window (z) will hide it if it is not focused instead of setting focus to it.
Fixed a crash that can happen when selecting multiple entities of different types.
Fixed a crash with tab complete in the console when the window was resized too wide.
Fixed some textures becoming distorted after turning off highres textures.
Q2: Removed the green "detail" dot on brushes to improve perf.
Q2: Flags/contents/value will now always be saved in the .map. Previously, flags were saved only when different from the .wal, and on map load would load missing flags from the .wal.
Fixed missing names in texture unload dialog.
Download the new version here
|BSP .97i - Shadows, sunlight and mirror editing - 4/1/2020
Added "mirror" editing mode to automatically flip or rotate all of the brushes in groups with mirroring enabled while you edit. Mirroring works with lighting and shadows, texture locking, team textures and map save/load. Mirroring currently has one mode (flip x, flip y, or rotate 180) and can be enabled per group. Mirroring is configured through the right-click context menu on the group window.
Added the option "Enable mirroring for new groups" which will enable mirroring when a new group is created.
Added the command "Stop mirroring and keep mirror brushes" which will commit the mirror brushes into the world and make them editable.
The "Configure mirroring" option shows a configuration dialog which lets you choose the mirroring mode or disable all mirroring, and also lets you set the "team texture" team for the mirrored side.
Mirrored entities have a "Mirror override" section in the entity window which allows you to override certain settings on the mirror. Mirror values that are not overriden will say "<synchronized>" indicating the value is synced with and the same as the source entity. A value can be synchronized with the "Synchronize mirror value" context menu.
Mirrored entities will mirror the entity "angle" key.
Added shadow rendering to vertex lighting. Enable with gl_shadows 1. Shadows may render slowly, and take increasingly longer to render when maps get larger. Brushes nearest the camera are rendered first. Subdividing will give better quality, but will slow it down more. While rendering, 1 cpu core will run at 100%, so if you need to stop it you can turn off shadows. Added command CM_TOGGLE_SHADOWS.
Added sunlight rendering. Set gl_sunlight 1 to enable. Vertex lighting and shadows must also be enabled. Added command CM_TOGGLE_SUNLIGHT.
Set gl_sunlight_color to set the color of the sunlight.
Set gl_sunlight_yaw and gl_sunlight_pitch to control sunlight angle.
Set gl_use_worldspawn_sunlight 1 to override the sunlight yaw and pitch with values from worldspawn. Looks for "yaw pitch" value from keys: _sun_angle, _sun_mangle, or _sunlight_mangle.
gl_ambient_color will also affect vertex lighting.
Added setting gl_debug_lines to show face triangles. Useful when configuring subdividing. Added command CM_TOGGLE_DEBUG_LINES.
Split up the "Display" menu into new menus for "Rendering" and "Camera". Display holds things related to labeling, Camera is all camera related commands, and Rendering is all commands related to the rendering in the 3D view. Moved monster and surface window toggles to Window menu.
Vertex lighting now also works for flat shaded mode.
Added context menu item to the entities window to clear a property value.
Added an offset to the center camera command (alt+c) to make it less likely that the camera will be put inside the selected brush.
Clipper points in 3D show the clipper number.
In 3D, while actively moving using the keyboard, using shift to speed up keyboard movement won't trigger the panning or strafing modes.
Fixed a bug in 3d window mouse handling that made edge knob dragging not work.
3d view mouse pan and strafe modes will move smoothly now.
Added support for loading .skm models, set "enable_skm_models" to 1.
Camera position, yaw and pitch is displayed on the status bar.
Fixed md2 texture loading in the case when the texture filename inside the md2 is not a pcx.
Added setting "pb_tga_fix" to fix .tga loading for PB2 which fixes some .tga files from being loaded upside down.
Added support for locking groups. A locked group cannot be edited or selected, but is still displayed in the XY and 3d views. Brush outlines in the XY views are dimmed.
Added option "Edit selected group only" on the group menu. When enabled, only the current/selected group will be editable, and all other groups will lock.
Rotating a single entity with the mouse will set the "angle" key on the entity.
Can rotate a selection of entities with the mouse now. This will change the positions of the entities, but not modify the entity angles (angle updated only with a single selection).
For certain shapes of brushes, dragging an edge or vertex or shearing over the opposite side of the brush will invert the brush and keep it editable instead of it disappearing. For example, make a triangle shaped brush and drag one corner over the opposite side.
Reorganized the group window context menu.
Added new command "Clear Regions and Select" command (CM_NOREGION_AND_SELECT) (Ctrl+R). Same as CM_NOREGION (alt+R), except the unhidden brushes are selected. Useful for selecting multiple brushes (especially obscured ones) if you hide ones you want (H key) and then unhide with Ctrl+R.
The first entry in "favorite_classes" will be the default entity to make (instead of worldspawn which can't be made).
Improved property grid editing in the entities window.
Updated the settings dialog.
GL textures are now always in 32bit format. Removed -texalpha and -colorbits app arguments.
Fixed console to allow assigning empty values to string settings.
Updated the entities window. Added two buttons to change views: Properties and Class List. Properties shows the original entity editor. The "Class List" view shows the list of entities and replaces the entity dropdown list. Highlighting an entry in the class list updates the label next to the Make button, and Make will create the entity as before.
Added settings to control subdividing to improve the quality of vertex lighting. Subdividing happens in the background so it may use more cpu but shouldn't slow down editing. Enable subdividing with gl_subdivide. Set the maximum number of subdivides with gl_subdivide_max_depth (default 4). Set gl_subdivide_size (default 64) to stop subdividing when triangle edges reach the specified size.
Added "Favorities" to the entity class list to keep common entities near the top of the list. The list is configured in game.cfg with the favorite_classes setting, each class separated by a semicolon. Eg: favorite_classes "light;info_player_deathmatch"
Added game setting pb_show_flag_color for PB2 to show correct flag colors based on flag and worldspawn settings. When enabled, this overrides the FGD configuration for flags.
In the XY views, when the camera is off screen, an indicator will be drawn on the edge of the view pointing toward the camera.
Q2 detail brushes will no longer render as transparent.
Group window title will say when group mode is disabled.
Fixed and enabled vertex dragging. A vertex can be dragged if it touches one or more 3-point face. Works best when all faces touching the vertex have 3 points, because faces with 4 or more points will be kept in place so some distortion will occur.
Vertex dragging works with multiple brushes selected.
Improved edge dragging to prevent brush distortion in some cases.
Fixed crash when cloning brush entities (eg func_door) with vertex lighting enabled.
Escape key will close the help window if it has focus.
The worldspawn "sky" key when not blank will override the gl_skybox_name setting (gl_skybox_path must also be set).
gl_skybox_path now supports multiple paths separated by semicolon.
Moved gl_skybox, gl_skybox_name and gl_skybox_path to the game config section.
FGD class names are now treated case insensitive.
Updated FGD parsing to support basic expressions for "studio" model loading (can load pb2ents_b41_tb.fgd). Another example, with a proper fgd, func_models will display their model in the 3d view.
Fixed bug: Models will render with the correct skin instead of whichever skin loaded first.
Q1 game.cfg pak_file setting now supports directories.
Escape key will stop brush/face painting modes and go back to the selection mode.
Split CM_DESELECT_ALL into a new command CM_ESCAPE. Escape key runs CM_ESCAPE, and Edit->Select->Deselect All runs CM_DESELECT_ALL.
Download the new version here
|BSP .97h - 2/16/2020
Added vertex lighting. Uses _color from entity. Lights cast from entities with names starting with "light". Lights also cast from brush surfaces with the
"light" flag set, and use the texture value for the light intensity. Setting: gl_vertex_lighting Command to toggle: CM_VERTEX_LIGHTING . Setting to adjust
light amount: gl_lightscale . Recommended to disable gl_shading (menu: Display->"GL shading") to make the lighting less dark. Also try adjusting
gl_brightness and gl_ambient_color.
Added face value painting mode for Q2 for phong and surface lights. Left clicking faces in the 3D view sets the texture "value" from the surface window. When in this mode, green faces match the current value, red values have a different but non-zero value, and regular color faces have a zero value.
The "GL Shading" command should now toggle correctly.
Turning off "Solid models" will render entities as wireframe boxes again.
Anti-aliasing will now apply to wireframe entities, the world axes and the world grid.
Fixed loading .pts and .lin leak files, which sometimes crashed and only displayed correctly in the top XY view and 3D view.
Reverted change that broke edge snapping: Fixed bug where dragging an edge could sometimes cause the brush to become infinitely tall.
Added 3d panning mode. Configure NAVIGATE_PAN in bspmou3d.cfg.
Fixed crash when loading certain kinds of jpg files.
Fixed cursor flickering on Windows 10.
Improved jagged brush edges in GL with outlines turned off.
Removed gl_full_res_texture setting, now always on. (could disable to reduce memory usage).
(Q2) Added setting replace_wal_images which when on will try to load jpg/png/tga images matching the wal filename in the same texture dir. Defaults to
on. The setting alt_texture_path lets you specify a semicolon-separated list of paths to include, where the path points to the base texture dir.
Fixed a display issue where transparent brushes become solid after being opened in a .map.
Download the new version here
|BSP .97g - 3/28/2019
| Bsp.exe is now 64-bit.
Added "team texturing" feature. Define teams (e.g. red and blue), and then define textures for each team using the texture window. Selected brushes with team textures can then be retextured to another team with one click. Reassigning a team texture in the texture window will also update the texture on all brushes using that texture. Teams are defined via the Texture->Initialize team texture menu. Team textures are shown in the texture window and can be controlled with context menus. Right click the "Team textures" area in the texture window to add a new texture. Select a regular texture, and Ctrl+Click a team texture slot to assign it. Teams will also appear in the Group window, where the right-click menu contains the re-texture feature. Team texture info is saved in the .map file, though BSP-specific.
Flipping brushes with the Mirror X/Y/Z commands now mirrors textures on locked brushes.
Moving the mouse over the Flip and Rotate toolbar buttons will render a preview of the transform operation.
Fixed bug where the entity window was temporarily showing keys from the previous map's entities after opening another map.
Fixed bug where new brushes were created with detail content flag set after removing detail from another brush.
Fixed bug where locked brushes with non power of 2 sized textures were getting shifted incorrectly during translation.
Enabled tabbing and shift-tabbing through surface window edit boxes.
Fixed surface window +/- buttons losing some clicks, and added a small delay before repeating.
Fixed the default height of the surface window when in Q2 mode.
Selecting a brush in 3D when there is no other selection will no longer update the properties in the surface window. The surface window will now update only when a texture is lifted (eg right click).
Clicking group checkboxes to toggle visibility won't select the group.
Fixed bug: Lifting textures in the 3D view (right click) will highlight the current face in the XY views.
Flip/Rotate/Scale commands can be undone.
Light entities and entities defined by the .fgd with a _color key will draw using the _color value in the 3d view. Can disable with gl_entity_use_color_key=0.
Clicking and dragging on a brush in the 3D view will select multiple brushes, instead of selecting only the clicked brush.
Lifting a texture (right-click 3D) won't clear the undo state.
Lifting a texture with multiple brushes selected will update the current face on the clicked brush.
Locked selected brushes will draw with the blue lock color in the 3D view.
Made the status bar 2 pixels shorter, and made the left window edge thinner by 1 pixel.
Fixed the Raise/Lower bottoms commands in the XY views.
Fixed incorrect names showing in the spawnflags dropdown in the entity window.
Fixed FGD to inherit flags/choices values.
Fixed bug where dragging an edge could sometimes cause the brush to become infinitely tall.
|BSP .97f - 2/17/2019
| Added game.cfg option "use_floating_point_precision" to enable loading and saving floating point plane values. Enabled by default. Surface/texture values will support floating point values, and mouse-based brush rotations will be smooth and not deform.
While creating brushes with mouse dragging, the brushes will be outlined in the current group color in the XY views.
Fixed crash when dragging multiple brush faces.
Fixed XY title bars not updating zoom/scale values.
Fixed flip/rotate commands not working when entities were also selected.
Flip/Scale/Rotate/Subtract/Clip Current Face commands will be grayed out when there is no selection.
Carve/Split/Flip Clipper options will be grayed out when there is no clipper.
Fixed FGD parser to accept long descriptions on choices (currently ignored).
The FGD parser will not report an error for unspecified default choices when the default is blank or not specified.
Fixed crash when clicking after the last group in the group window.
Fixed missing scrollbar on the Load Texture dialog.
Always show options under the File menu to load .pts leak files since some Q2 compilers still generate them.
|BSP .97c - 8/20/2018
| Added a vertex subtraction tool which subtracts vertices from the world that are contained within the selected brushes.
Turned on "Snap Back" by default.
Shearing (Alt+Shift+Left mouse) will pick the single nearest face to shear instead of becoming a vertex drag if used on a brush corner.
Removed popup when moving the selection into a hidden group. The selection will move to the hidden group and become hidden.
Fixed spacing issue with lights generated by Make Lights.
Fixed popup loop which happened when adding a brush to a hidden group and canceling.
Small rendering perf improvements.
Fixed problem with "rotate brush" dialog not showing (ctrl+R).
Download the new version here
|BSP .97b - Update - 5/18/2018
| Fixed rendering bug where some frames were skipped when first moving the camera.
Mirror commands are fixed.
Fixed a crash that could happen when selecting an entity key with multiple entities selected.
Updated the Hexen2 game.cfg, also added a hexen2.fgd.
Download the new version here
|BSP .97a Released - 2018 - 5/13/2018
Updated rendering engine which makes camera movement smoother and supports simultaneous movement keys and mouse look. Hold shift to move at double speed. This change also replaces "run mode" and is always enabled.
Added "fps" setting to control render rate for both software and GL render modes, default 60.
Changed default keys: WADS to move, keys Q E turn left and right, keys R F move up and down. Load .wad is now Ctrl+W. Surface window toggle is now Z. Extrude is now Ctrl+F. Copy is Ctrl+C. Split clipper is the X key.
Added "gl_anti_alias" option to render anti-aliased lines in GL mode.
Improved the look of brush outlines in the GL mode 3D window (even with anti-alias disabled).
Entity names can now be shown in the GL mode 3D window.
Redesigned entity window with an inline property editor.
Support for loading .fgd entity files.
The entity editor now updates all entities in the selection. When multiple entities are selected, only common keys will be shown.
Added an automatic window layout mode. Layout updates on resize unless using a saved slot. Can switch between automatic layout mode and saved window slots.
Updated Quake1 export scripts to target ericw's compiling tools (https://ericwa.github.io/ericw-tools). Download and extract in the BSP quake1\bats\bin directory.
Added a new toolbar to group the commands specific to the 3D window. Includes buttons to switch to brush and face texturing modes. Added "SameLine" option in bspbars.cfg to keep the third toolbar on the second row.
Added a new color to differentiate entity connection lines going to or from the selected entity.
Fixed cases where entity connection lines were not drawing with their regular color in the 3d window.
Entity connection lines will show if either end of entity is off the screen.
Entity connection lines will redraw while moving entities.
Fixed bug where entities disappeared if moved after an undo.
Added "isolate selection" command to make a region containing only the selected brushes (keyboard 'I').
Added "hide selection" command to hide selected brushes from the current region (keyboard 'H').
Added toolbar buttons: toggle regions, hide selection, isolate selection, reset the region.
Removed the toolbar buttons for creating a region shaped by the selected brush, though the functionality is still available in the Group->Region menu.
When regions are enabled, the XY view grid will now draw beyond the region boundary.
Fixed "look at selection" not working after deselecting an entity.
Fixed some cases where making certain types of changes would not ask to save the map before exporting.
Loading a .wad will add it to the "wad" key instead of showing a reminder.
Unloading a wad or texture directory will unload only from the current map instead of all maps.
Surface window will toggle correctly with the Z key. Previously, if the window was behind others, it needed 2 keypresses to bring to front.
Added option to choose skin number in models.ini. Added yellow and red armor to Quake1 models.ini.
Added option to Export menu to enable saving automatically before exporting.
Reorganized the Window menu, removed the default window arrangement options (tile, cascade).
Setting steps_per_turn can be updated without restarting the editor.
Editing of entity classname and origin keys is prevented in the editor. Edit and reload the .map if a workaround is needed.
Fixed issue with obscured text in the 3D window angle controls.
Exporting a map that is being saved for the first time will use the correct filename instead of "default".
Unselected brushes beyond +/-8192 will be visible in side XY views.
Fixed crashes that could occur after loading or saving prefab .mrg files.
Grid lines and grid dots have separate color settings now.
Attempting to add a brush to a hidden group will ask to show the group and stop, instead of asking to show the group after adding a hidden brush.
New groups will have a default random color and not prompt with the color dialog. Color can still be chosen later.
New groups will have a default name in the prompt so they can be created quicker.
Group visibility in the group list will toggle with 1 click on the checkbox.
Group window will always show text drawn in the group color instead of switching the color to black or white.
Groups can be moved to the top of the list.
Improved performance when showing the dot grid in XY views.
Fixed a bug where using add/remove detail may have crashed if used in non-Quake2 modes. The detail commands are functional in Quake2 mode only.
High-res textures will rebind after changing gl_highres_path.
The new game_exe setting configures the game to launch when exporting. This is the second parameter passed to the export .bat files.
The map_export_path setting configures where to copy compiled maps to run. This is the third parameter passed to the export .bat files.
Added an export button to the main toolbar. This runs the first exporter shown in the Export menu.
Fixed some error popups that could get hidden behind the main window and steal input.
Fixed undo to work after applying face/brush texture using the mouse in the 3D window.
Reordered and renamed some items in the 'Make' list. Default option makes a Room.
The Make option "Extrude faces" will use the original texture of each face.
The command "Extrude face" (Ctrl+F) will texture each face of the new brush based on the edges and faces of the source brush.
Sky textures are animated in the texture window again.
When opening a Quake2 .map, the texture directories will be loaded based on textures used in the map file. When creating a new map, if default_wad is set in the game.cfg, the texture directory matching the wad filename will be loaded (eg, specifying "pball.wad" will load the "pball" texture directory. It will not actually try to load pball.wad, just use its name). Otherwise, press 'L' to load a Q2 texture directory.
On startup, the "Choose Game" dialog will highlight the last game used from the previous editing session.
Fixed flickering window titles.
If window borders look distorted in Win8/Win10, try running BSP in Windows 7 compatibility mode. Right-click bsp.exe, choose Properties, go to the Compatibility tab, and choose Windows 7 in the dropdown.
Renamed "Move selection to XY" to "Move Selected Brushes to XY center" and moved it to the edit menu.
Moved the recent files list into the main File menu.
Fixed a bug in the recent file list where it sometimes opened the wrong map.
Fixed a bug with exit not saving some maps if multiple maps were open.
Added experimental .svg exporter which saves a top-down vector image of the map, and another for exporting a wireframe of the 3D view. Run with "cm_export_svg" or "cm_export_svg3d" from the console window.
Added experimental .bsp file loader. Loads the entities into the map. In GL mode, the .bsp wireframe will be drawn in the 3D view (it does not add editable brushes or load textures). Can also load a .bsp by dragging the file onto the main window, or load a .bsp into the current map with CM_BSP_LOAD. The command CM_BSP_UNLOAD will hide the 3D wireframe but the entities will stay in the map.
"Texture search" dialog supports finding multiple textures separated by semicolon.
The selection tool in XY views (shift click and drag) now selects the brushes exactly touching the selection rectangle, instead of selecting based on the rectangular bounds of each brush. This fixes the problem where brushes with diagonal sides could be selected when selecting empty space.
Revert entities to world will work for all selected entities instead of requiring a single selection.
Revert entities will only revert the selected brushes, instead of reverting the entire entity.
Added "Move Brushes into Entity" command in the Edit menu. This will move selected brushes into the selected entity. The selection must contain at least one world brush to move, and contain one non-world entity as the target.
Brush subtraction is limited to worldspawn brushes as a workaround to some bugs.
Fixed issues with XY outline color changing inconsistently after selecting entities. The expected behavior is that when a non-world brush or entity is selected, other brushes will dim to the "color_otherbrush" gray color.
Removed "show_hits" and CM_TOGGLE_HITS since it is not implemented. To cycle hit brushes, hold shift and hold the left mouse button over a stack of brushes in the XY view.
Cycling hit brushes with the mouse will redraw all XY views.
Tooltips show the keyboard shortcut.
Selected entity names are drawn with the selection color.
Quake1 pak_file option in game.cfg supports multiple pak files separated by semicolons. Required .pak files must be specified in game.cfg to be able to load models specified in .fgd files.
Updated the Hexen2 game config and added it back to the default list of game modes.
|BSP .96d Released... - 10/10/2007
.EXE Only release, so copy over a BSP .96 install.
BSP can load "highres" textures now. This works by finding tga,jpg, or png images in the configured highres
directory that match the .wal texture name. Yes, wals (texture directories and .wads) are still needed to
determine the name of the highres texture.
The highres texture path accepts a semicolon-separated list of paths. if the path is set to "A:\;B:\;C:\", for
the texture "tex", BSP will first search for "A:\tex.jpg", "A:\tex.tga", "A:\tex.png". If not found, it will
search in directory "B:\tex...", then "C:\tex...". If not found, it will just use the wal texture.
All highres textures in the highres texture directories are loaded into memory at once. If you do not have
enough memory (video or system), BSP will crash or stop responding! If you have a low memory system, create
a highres directory that has only the textures you need for your map. Loading all textures from the Quake1
Retexture Project on my system bumps BSP memory usage close to 400mb.
Next, if you are loading a lot of highres textures, don't panic, it may take some time. Watch the load
progress on the status bar at the bottom left.
If BSP renders really slow with highres textures, make sure "gl_texturemode" is set to "GL_NEAREST_MIPMAP_NEAREST"
To use skyboxes, put your skybox textures in a directory. Set "gl_skybox_path" to that directory. Set "gl_skybox_name" to the name of the skybox BEFORE the up/bk/lf/rt/dn/ft in the filename (and underscores can be ignored). For example, if one of your skybox textures is "purple_chaos_bk.png", set the name to just "purple_chaos". Then set "gl_skybox" to 1.
The Squirrel scripting engine was added (try typing "print(2+2)" in the console, it cannot do much more than this, anyways). If you mistype something in the console and see a funny error message, this is why. The only functions implemented into it are "set" and "cmd". In the console: 'set("gl_highres",1)' is equivalent to 'gl_highres 1', and 'cmd("cm_filenew")' is equivalent to 'cm_filenew'. Sorry it is not more exciting than that.
There is a debug command named "cm_hack". It will combine the XY and 3D views into one window. It is buggy and incomplete.
Download the new version here
Added new support for loading jpg,tga,png image formats.
Added "gl_skybox" setting, set to 1 to enable skyboxes. "gl_skybox_path" sets location of skybox images. "gl_skybox_name"
sets filename of skybox to load. Name matches to 6 images ending with up,dn,ft,bk,lf and rt before the file extension.
Added command "CM_LIST_SKYBOX" to display a list of skyboxes in the configured directory.
Added "gl_enable_stencil" setting. Required for skyboxes, but can be disabled if necessary.
Added high-res texture support in GL mode. High-res textures are loaded from a specified directory and match the original
.wal texture name. Added two settings to the "Game" group so textures can be configured per game: "gl_highres" to
enable/disable high res textures, and "gl_highres_path" to set a semicolon-separated list of paths to search for textures.
Using high-res textures will increase your memory usage and may slow down rendering a bit. :)
Entities can be rendered translucent with "gl_trans_ents" setting.
Improved handling of leak files. GL mode will render .pts and .lin with thick lines.
Fixed crash on Win98 when opening help file.
"Replace texture" will update 3d view.
Added command "CM_SHOW_PALETTE" to display the current palette.
Added drag and drop capability - open maps and images (jpg,tga,png) by dragging files onto the main window.
Removed "BSPBuild" support (sorry if you used it, I had plans to replace this that went unfinished)
|Tip to enable vertex dragging - 7/18/2007
| In the newest release, one rather important feature was left disabled in the included Bsp.cfg.
The setting "vertex_select_mode" should be set to option "2" instead the default
of "0" so vertex dragging can be enabled.
Also, I forgot to add an option to the menu to show the new preferences dialog with all settings visible.
To get around this, the main preferences dialog can be accessed by opening the Color dialog and choosing "All" from
the Group dropdown list. The command to show the new preferences dialog is CM_BSPSETTINGS.
|BSP .96c update for Windows 98 users - 7/14/2007
| This update fixes the issue of "Save" and "Open" dialogs not showing
under Windows 98. It is necessary to download only if you plan to
run BSP on Windows 98. This is an executable update and must be copied
over a BSP .96b install. Download the update here.
|BSP .96b Released! - 7/10/2007
Lots of fun new features, get it before Quake goes out of style!
EDIT: A quick adjustment was made to the version number in the .exe (forgot to change 'a' to 'b'). And just a
reminder that the help file has been updated and that there is an HTML version of the documentation
available on the website.
Download the new version here
Changes and New Features for BSP .96b
Zooming in XY with mousewheel will center zoom on the mouse cursor.
Added console window. Features history buffer, custom font and fore/back color, tab completion for commands and settings.
Reformatted settings: Bsp.ini moved to Bsp.cfg, and Game.ini moved to Game.cfg. Game.cfg can specify any option available in
Bsp.cfg to further customize individual game configs.
Added commands CM_WRITECFG to save settings from all groups except "Game" to bsp.cfg, and CM_WRITEGAMECFG writes the "Game"
group settings to the current game.cfg file. Note that these will drop any settings from the excluded groups.
Relative paths allowed in settings. Partial paths are relative to main BSP dir. Allows "." and ".." dir names.
Toolbar bitmaps now stored in "Bsp\Settings\gfx\toolbar" dir. Bitmap filename pairs to command name.
Added config file "menu.cfg" to allow customized menus.
Keyboard shortcuts update on menu names.
Renamed a lot of commands and settings, and organized them into groups.
Added config file "cmdstr.cfg". Each line defines the menu text and description for a command.
Color values can be stored as "255 255 255" (old way), "200" (palette index), or "129AEF" (6 digit hex number).
Added version and border to splash screen.
Added setting "extrude_depth", set to 0 to use gridsize or any other value to use that depth when extruding.
Fixed bug in script parser where block comments "/**/" were prematurely ended by a single slash.
Timer-refresh shows redraw in GL mode, fixed start and stop points.
Exporters are listed alphabetically, CM_EXPORTER0 will point to the first exporter in the list.
Added "gl_brightness" setting. Set 0 to disable, or value 1 or greater to increase GL brightness.
Added "gl_selection_wiremode" setting. Value 0 shows regular outline, 1 draws entire wireframe, 2 draws hidden lines with
the brush outline color.
Improved rendering of outlines in GL mode.
Fixed bug: MD2/Q2 model textures show in software mode.
Improved scrollbar behavior on the texture window.
Pak texture loader will no longer load .wal files from the root "textures/" directory (region.wal in particular).
Fixed bug in software renderer where drag-shifting textures on outlined faces would be offset by 1 pixel.
Added option "gl_texturemode", set to GL_LINEAR or GL_NEAREST for smooth or sharp pixel edges on textures, respectively.
Log file "bsp.log" created on startup. Logs fatal errors and messages written before interface is initialized.
Fixed "look at selection" software mode drawing problem.
Fixed bug that caused Merge Brushes to merge no more than one brush at a time.
Added option "entity_inline_help" to show the help inline on the entity window.
Fixed the Make list.
BSP.exe now has version info.
Fixed to run under Win98.
|Development update - 7/6/2007
| Just an update that BSP development is still underway and a new version will be completed soon.
Here are some screenshots of new features to come.
Show wireframe through selected objects.
New preferences interface.
BSP console window, allows changing settings and executing commands. Features tab complete and a
history buffer. Error and diagnostic messages are printed here, too.
|BSP .95e Released! - 1/7/2007
|This release fixes some bugs and adds a few minor features.
This is an .exe-only release, so copy it over an existing install of .95c.
Download the new version here!
Changes and New Features for BSP .95e
Fixed "blank render" issue with OpenGL.
Improved map loading code - QuArK maps should load now.
Fixed entity outline color in software renderer.
Added face count to map info.
Fixed mirror, flip and rotate causing brushes to misalign from grid.
Surface window: Set Flags and Set Contents buttons will update textures in 3D view.
Added texture search.
Set option "zero_crosshair=2" in bsp.ini to make XY crosshair span to world edges.
XY coordinates will draw when grid is hidden.
Added bsp.ini option "full_res_texture". set to 1 for full sized textures in gl, or 0 to limit size and conserve memory.
+Det and -Det buttons now update 3D view.
XY views: Green dot on detail brushes draws in the correct place again.
Customize main title with "apptitle" setting in game.ini.
"Save As" gives warning if map name contains spaces. Disable message with "no_warn_spaces=1" in bsp.ini.
Added 2 new buttons to mouse configs for mice with more than 3 buttons. Button names "X1" and "X2".
Added option for Merge Brushes to compare contents and flags.
"Sphere" option removed from Make list.
|The correct axis... - 10/14/2006
| For those who use WQBSP165 to build their Quake 1 maps, you must specify the
command line option. Without it, textures in your compiled level may not appear correctly, especially on
brush faces angled at 45 degrees.
i.e., WQBSP165's default behavior is to compensate for a bug in WC.
Supports "-alternateaxis" which allows you to choose between
which axis to use in natural texture mapping. Default will look
as it does in Worldcraft.
|BSP .95c Released! - 10/7/2006
|This release fixes a lot of bugs and adds some new features, especially
shading and translucency to GL, models rendered in GL, and configurable
keyboard layout. Some important bug fixes include the handling
of surface flags in the surface window and clipper drawing in XY views.
And finally, included is a new (and unfinished) help file in .chm format.
Download the new version here!
Changes and New Features for BSP .95c
Texture shifting in 3D window is completely fixed.
New handling for window positions. Windows can only be saved as shown, hidden or minimized. Z-order is saved.
Fixed camera locking bugs. Handling of 0/1 flag for "lock_cameras" in bsp.ini has changed, so change 0 to 1, or 1 to 0 in old configs to retain the same behavior!
Added offset to camera when locked. See options "lock_camera_ofs_x/y/z".
Camera angle drawn in Front and Right views.
Added shading, fog, translucency to GL. See new gl_* settings in bsp.ini.
Added command CM_KBSETTINGS to show keyboard configuration dialog, and added menu option to File->Preferences.
Cleaner drawing outlines in GL mode.
Added extrude face command. Creates new brush from selected face. Command name "CM_EXTRUDE_FACE".
Added option "outline_use_group" to bsp.ini. Set to 1 for brush outlines to use group color in GL mode.
Added option "look_at_sel" and command "CM_LOOK_AT_SEL". Camera will look at selection for strafe, move up/down and camera drags. Camera will stay fixed on selection when selection is dragged.
Fixed bug: "right" XY view won't make invalid wedge brushes...
Q1 and Q2 models will render in GL mode.
Model outlines rendered with entity color. Disable model bounding box with "gl_no_model_bbox" option.
Added toolbar to group window. Show/hide with "group_toolbar". Configure buttons in groupbar.ini.
Added option "flymode" to move camera up/down based on pitch in forward/back navigations.
Added option "flats_like_texture" to color flats with color like texture.
Added recent files list. Recent files are tracked per game type. "num_recent" in bsp.ini sets number to show.
Added "Show Key Mappings" to Help menu, and removed "Help Window" option.
Current face will stay selected after brush manipulations.
Current face edges in XY won't be obscured by other selected brushes.
New snap option: Set "snap_back" to 1 and dragging edges will snap back to grid rather than just moving by grid size. Menu Brush->Snap Back.
Improved vertex dragging: when dragging a vertex in old versions, one face would sometimes get "stuck" and the vertex would stay aligned to one face rather than move freely.
Fixed mouselook: now takes into account mouse delta. Changed defaults for mlook_vert_step/mlook_horiz_step.
Fixed memory leak during brush rotations.
Fixed bug: Certain menu/toolbar items (regions, copy brush) wouldn't enable after a selection change.
Added option "clippers_stay", clippers will remain visible after carve and split when set.
Added new command "CM_CLIP_CUR_FACE" and menu "Clip->Create from Current Face" to show 3 clippers defining selected face.
Drag clip points when adding to create next clip point where the mouse is released.
Added option "track_clippers" to control clipper drawing in XY. Set 0=update after, 1=update current XY, 2=update all XY.
Added option "clipper_autoflip". When set, adding clip points automatically leaves the portion of the selection containing the center point (cuts off smaller piece). Added menu item "Clip->Auto Flip"
Added option "clipper_mode". Set to 0 for normal 3 point mode, set to 1 for axial 2 point mode. Added items to "Clip" menu.
Fixed bug: clippers will always snap to grid.
Fixed bug: clippers draw in GL mode again, clip points are connected too.
Changed default clipper shortcuts: "C" will carve, and "/" will flip clippers.
"Mode" command in 3D window will change action of left-mouse only instead of applying to all mouse buttons.
Increased max token length to reduce occurance of map loading error "Token too large on line xx".
Fixed bug: remaining portion of brush during clip operation is shown again.
Changed default settings in bspmouse.ini. Now prioritizes selecting clip points first, next camera, then brush points.
Entities won't show a selected face anymore.
Fixed bug: selection rectangle won't flicker.
Edge knobs and selection lines draw in GL 3D again.
Fixed angle drawn on pitch control in GL 3D.
Fixed bug with finding exe directory on startup.
Fixed bug: exit from menu or toolbar won't crash.
Changing entities from entity window will redraw 3D view
Fixed bug in CM_JUMP (alt+j) command that prevented it from jumping.
Added more error handling to wad loader, (blood2.wad won't crash anymore)
Set 3D window background color in GL mode.
Brush center knobs won't "shift" in XY.
GL mode is default. Change with "gl_mode_default" option.
Fixed bug: origin brushes incorrectly shifted all other brush textures.
Fixed bug: Offset copy/move will handle zero values correctly.
Minimized windows should restore properly when switching window configurations.
Added "Select One" mode to 3D window and "SELECTONE" command to Bspmous3d.ini. Selects a single brush at a time.
Added "Strafe Camera" mode to 3D window and "NAVIGATE_STRAFE" to Bspmouse3d.ini. Mouse navigate with strafe.
Added command and toolbar button "CM_JUMP_SEL_XY" to move selection to center of XY windows.
Fixed bug with surface flags update in surface window.
Fixed hang if bsppos.ini was missing.
Added "Goto group in XY" option to group window menu.
Truncated trailing zeroes in surface window and in saved .maps.
ALT key is configurable in bspmouse.ini and bspmous3d.ini.
Fixed bug: models will load from file now, must be in equivelent path/subdir of game's .pak file.
Fixed bug: .lin leak files will render correctly.
Fixed bug in software renderer: textures were incorrectly offset by 1 pixel.
GL: Got rid of "use_mipmaps" options. Always using mipmaps now. Updated texture settings dialog.
Added command "CM_NOOP". Can be used to disable default key mappings.
New brush center calc.
CLIPPLANEDRAG will redraw in XY windows correctly.
Added alternate snap method "Snap Planes". Added menu Brush->Snap Planes and command "CM_SNAP_PLANES". Snaps all plane points to grid.
S,T,R texture values displayed as integers.
|Extrude face command - 8/21/2006
Use "extrude face" to quickly create complex architecture
|New features - 8/8/2006
If you are a BSP user, you should stop by #level_design on irc.enterthegame.com. Myself and other mappers hang
out there, so you can get questions answered or just talk to other BSP users. I will also give out
top-secret latest builds to those who want it...
Here are some screenshots showing off recently added features.
Drag multiple brush edges at once
Brush edges can be drawn with group color
|OpenGL Transparency - 7/20/2006
|Live from QExpo - 7/19/2006
| Check out my BSP Quake Editor booth
at QExpo. See the small bit of new content there... :)
|In the works - 7/13/2006
| Here is an update on some features I have been working on that you can expect to see in a near-future release. Notable items include
a dialog to configure BSP's keyboard and enhancements to the OpenGL renderer. In the renderer, I have
added shading and fog, and have optimized a lot of the rendering routines. Here are some screenshots.
|BSP .94b Released! - 7/2/2006
BSP lives again! It has been 8 years since a release and at last a new version is finally here.
Thanks Yahn for all of your hard work up to .93b, and also for passing along the source code.
Get the new version from the downloads page.
What's new? The code base has been ported from Borland's Win3.1/Win95 OWL framework to pure Win32 API. The source
now builds on a modern compiler with new optimizations that give a noticeable increase in performance.
I have fixed numerous bugs, memory leaks, and buffer overflows. I've added many
features that I've always wanted in BSP, such as cleaner 3D rendering, mouselook, handling
of the mousewheel and drag-navigation in 2D windows. Remaining work includes multi-level undo,
fixing texture manipulation, OpenGL enhancements, UI makeover, configurable keyboard layout, and lots more.
I hope you enjoy it!
Changes and New Features for BSP .94b
Added "Auto" render quality option that uses the 3D window size rather than a fixed size. Option in menu
Display->Render->Quality->Auto, or set render_auto=1 in bsp.ini to enable by default.
Right-click and drag for XY windows when xy_drag_move=1 in bsp.ini.
Mousewheel scrolls texture window, or zooms on selected texture with CTRL.
Mousewheel zooms XY windows, or changes grid size with CTRL.
Mousewheel moves forward/backwards in 3D view, or up/down with CTRL.
Added mouse look to 3D view (command name MLOOK). Configure in bspmou3d.ini
Set keys: INS: strafe left. PGUP: strafe right. HOME: move up. END: move down.
Added bsp.ini option cloneDeltaDisable. Set to 1 and CTRL+Space won't offset cloned brushes.
Configurable brush rotation step size. Set bsp.ini option xy_rotate_step to change the default step size. Added toolbar
commands for bspbars.ini named CM_ROT1, CM_ROT5, CM_ROT10, CM_ROT15, CM_ROT30 and CM_ROT45.
Added option new_brush_depth to bsp.ini to set a fixed depth for new brushes. Set to 0 to use the old automatic sizing, or
to any other number to always use that depth. Added menu item Edit->Set Brush Depth.
Added grid to 3D window. Set "show_3d_grid" to 1 in bsp.ini to enable by default, and set color with "color_3dgrid"
option. Added toolbar button "CM_GRID3D".
Cameras, eye, and origin no longer hide when editing brushes.
Changed default camera placement on new maps.
Disabled CAMERADIRECTION command for XY views because it doesn't work and breaks camera.
Larger minimum size for cameras in XY views (when zoomed out).
Double-click when selecting a brush in XY views to deselect all other brushes.
Fixed bug where brushes rotated in the opposite direction in Front view.
Removed flicker in texture window.
Fixed bug in surface window where clicking any of the flags or contents buttons would crash if not in Q2 mode.
Fixed grid drawing at the incorrect offset sometimes, grid always intersects brushes instead of drawing offset by 1px.
Toggle grid dots/lines from main Grid menu.
Hardcoded maximum editable bounds to +/-32765.
Fixed bug where brushes sometimes couldn't be selected or moved when outside world_minmax range.
Clippers are projected correctly in 3D view.
Fixed clipper code: animated points redraw properly in when dragged in XY, points are never hidden behind brushes in 3D
Coordinate numbers no longer overlap on grid.
world_minmax bounds drawn in XY view with region color (magenta), also disabled the warning for going outside the range.
Added default scale value 75% to scale menus.
"use_crosshair" option now applies to 3D window too.
Added bsp.ini option "default_gamedir". Set to a game subdir and bypass startup game dialog. The -game arg overrides.
Surface window will now keep the current brush face selected after hitting apply brush or apply face.
Surface window is now saved in window arrangements. Note: This makes bsppos.ini incompatible with earlier versions of
BSP, it can be reverted by removing the SURFACE entries.
Partially fixed texture shifting in 3D view. Vertical faces should shift in the correct direction unless they are rotated.
Top and bottom faces on brushes will still move in the wrong direction from most angles (need to take into account the camera angle)...
XY windows use software rendering in GL mode.
Yaw/angle control in 3D view is updated in real-time.
Added pitch and FOV control to 3D view. Swap yaw/pitch/fov by right clicking control. Added control selection to 3D
right-click menu. Added option to bsp.ini to disable 3D window angle control. Set "no_angle_control" to 1...
Fixed bug where opening .map files containing info_player_start would invert camera movement.
Got rid of "hitByRay: negative t" error msg. Fixed code so it shouldn't happen, but won't exit if it does.
Fixed bug where grouped brushes would go unseen during rotation, and probably other operations too.
Groups window will use white text when on dark backgrounds
Fixed bug in group window, "make X only visible" now applies to selected group instead of always "None"
Added translucency to software renderer. Set bsp.ini "render_trans" to one of three modes: 0=disabled, 1=scanline, 2=dot.
Scanline should be a little faster than dot mode. Added options to Display menu.
Moved Display->Render submenu items to main Display menu.
Creating a region saves the brush it destroys for undo. Undo won't remove the region, and the undone brush needs to be
deselected before it can be used (more work is needed here)
Opening a new map wouldn't update the caption in the 3d window right away...
BSP will warn you if you try to open the same map multiple times.
Made toolbar buttons for CM_SETCOLORS and CM_SETDIRECTORIES
Fixed bug where colors would get messed up after changing color settings.
Added "smallmajor" option to bsp.ini, set to 1 to use small major grid dots.
Sped up rendering during camera navigations by not re-rendering each XY view.
Help window starts scrolled to the top.
Changed grid coordinate font to "Small Fonts".
Removed "faster_textures" option from ini. Always on now.
Removed File->Preferences->Mouse dialog, just right-click XY or 3D window title bars to set.
Allow entity values up to 1024 chars.
Added "Hide All Groups" menu item to groups window.
Skips textures named CONCHARS when loading wads
Textures in texture window are selected on mousedown instead of mouseup
Save confirmation from clicking "X" close box now gives "Cancel" option.
Reimplemented texture windows "Copy 3D window area to clipboard" and "Paste from clipboard". Copy exports in 24bit color. Paste handles more bitmap formats. Still may be some bugs to work out...
Fixed "List used textures" crash, also no longer tries to save texture list to disk.
Mousing over menu items with submenus shows no tip instead of wrong tip on statusbar.
Fixed bug where some textures would show up blank in texture window
Surface, texture windows can be made "always on top"
New flat toolbars, cleaner status bar, and new Open and Save dialogs.
GL: fixed drawing of selected face outline.
Improved "choose game" dialog.