Skip to content

Releases: wootguy/bspguy

bspguy v5

02 Apr 23:31

Choose a tag to compare

This update improves compatibility, speed, and ease of use. The x86 version works with Windows XP / OpenGL 2.1, and the editor is no longer hardcoded for use with Sven Co-op. All GoldSrc maps should work with a single configuration.

QoL features were added for ripenters and porters. New visuals preview how entities will look in-game. Tools with vague names like "Clean" or "Optimize" have tooltips explaining what they do.

Much of this will look familiar to you if you've been using newbspguy. I've finally caught up with features asked for years ago. A lot of the work for this release went into new tools nobody asked for, but some of them will be useful for map merging.

Major New Features

  • Entity multiselection and editing.
  • Undo/Redo feature finished.
  • Entities and textures can be rotated with the Transformation/Face Editor widgets.
  • FGD selector and keyvalue grouping for reduced clutter when using many FGDs.
  • System requirement lowered from OpenGL 3.0 to OpenGL 2.1.
  • Map rendering is about twice as fast (even with the legacy renderer selected).
  • MDL and SPR rendering - responds to body/vp_type/sequence/rendermode/renderamt/rendercolor keys.
  • Directional vectors and orientations for most entities, using built-in logic and FGD hints to match the game.
  • More tools for map merging, splitting and porting:
    • Model deduplication.
    • Delete BSP data inside of a bounding box you define, or use the world boundaries as a cutting plane.
    • Automatic face subdividing/scaling to fix bad surface extents.
    • Automatic texture downscaling for invalid sizes, bad extents, and AllocBlock reduction.

Other New Features / Fixes / Changes

Other new features
  • Legacy renderer option for graphics drivers that lie about the features they support.
  • Asset Paths (add your game/mod directory names here. These used to be hardcoded for Sven Co-op).
  • View menu added for easier access to rendering flags.
  • Unicode font (off by default because it slows startup time).
  • Widget layout can be saved and restored manually or automatically for a window size.
  • Engine selector for map limits and lightmap rendering.
  • Confirmation dialog for closing the BSP without saving changes.
  • Bottom status bar with editable camera origin/angles and selection info.
  • Tooltips explaining most of the GUI.
  • Tooltip descriptions for entity keys/flags loaded from FGDs.
  • FGD parser is whitespace agnostic and can handle J.A.C.K FGDs.
  • FGD file picker.
  • FGD @include and @mapsize commands.
  • Entity connections use target/name keys from loaded FGDs in addition to the hardcoded Sven Co-op keys.
  • Standard file menu options (Open, Save, Save as, Save a copy as).
  • Open a BSP by dragging it onto the window.
  • 3D editor launches by default when double-clicking the program.
  • Simple Merge tool (use the command-line for more control).
  • Import/Export .ent files.
  • Export embedded texture to a WAD file.
  • Entity hiding.
  • Map boundary rendering with map size selector (customizable via FGD).
  • Tool to remove unused WADs and strip their folder paths in the worldspawn wad keyvalue.
  • Tool to move BSP model origins to (0,0,0) if used in an entity that can't handle origins (e.g. func_water).
    • This is done automatically when moving or merging maps.
  • missing/hidden entities are highlighted in the Entity Report.
  • More file validation checks. Validate opens the Messages widget if it's not open already.
  • BSP File path is displayed in the window title.
  • FPS is reduced when the window is not focused to Reduce CPU/GPU usage.
  • Map merging handles lightstyles and a new lightstyles limit is tracked in the GUI.
  • CLI command "renametex" to change textures (the same can be done in the GUI with "Select all of this texture" then typing a new name).
  • Texture axes shown for selected faces.
  • Warning shown for entities with an "angle" key.
  • Welcome popup for first time launch.
  • Entity Report navigation with arrow keys.
  • BSP models respond to rendermode/renderamt/rendercolor keys.
  • Textures can be embedded/unembedded individually or all at once.
  • Textures can be applied which aren't already used in the map. Add a new WAD to the worldspawn "wad" key for more textures.
  • This guy: app
Fixes
  • Crash pasting an entity with an invalid BSP model key.
  • Crash viewing keyvalues for an entity with more than 64 FGD keys.
  • Crash with specific click combo when moving an entity for the first time.
  • Crash opening file with capital letters in its file extension.
  • Improved clipnode rendering (fewer missing polygons and faces stretching out to infinity. Still not perfect.)
  • Linux not building in Release mode.
  • Program window created off-screen.
  • Clean/Optimize crashing maps with bad VIS data.
  • FGD base class keys overridding child classes.
  • Entity classes not appearing depending on FGD order.
  • Entity Report not refreshing after creating/deleting entities.
  • Optimize deleting hulls for entities which are obsolete in Sven Co-op.
  • Optimize incorrectly deleting hulls for models that are shared with different entity types.
  • Creating BSP models prevents hlrad from running.
Changes
  • Font changed from Robooto to NotoSans for unicode support.
  • FPS overlay moved into main status bar for more widget space.
  • Removed Sven Co-op specific "Test" option.
  • Reduced message spam when Verbose Logging is disabled.
  • Map merging will place maps differently and will better fit the smaller Half-Life grid when adding the -hl option.
  • Clicking an empty value in the Attributes tab does not automatically add the key to the entity with a default value.
  • Copy/Paste uses the OS clipboard. Entities are copied as text and be transferred between windows and .ent files.
  • Keyvalue length limit in Attributes tab increased to 256 from 64.
  • Entity Report and Map Limits wdigets don't need an entity selected to function
  • A console window not shown when launching the 3D editor on Windows. Launch from the Command Prompt to troubleshoot startup problems.
Bugs

Probably a lot. Please report them. Most new features were added last month and weren't tested for long. I'm expecting a v6 will be needed this year for bug fixes alone.

Edit T+5 Hours: Uploaded new zips to fix a very distracting bug where clipnodes/entities would change brightness every click on some maps. 5600ccc

bspguy v4

23 May 08:25
34b85a4

Choose a tag to compare

This is a build from February 2021. It has some unfinished features and new annoyances in it, but I think it's overall better than v3.

If you downloaded a WIP version after November 2020, then not much has changed. I'm releasing this old build now because I'm not sure the master branch is in a good state.

New

  • Undo/Redo (unfinished). Currently works only for:
    • Creating/editing/deleting entities.
    • Creating/duplicating/editing BSP models (buggy).
    • Clean and Optimize command
  • Clipnode rendering. By default, clipnodes are only shown for models with no visible faces.
  • Entity Link rendering (off by default). Shows connections between an entity and its targets/callers.
  • Entity Report widget. Used to search for entities and for bulk deletion.
    • Double click an entity name to focus the camera on it.
    • Hold Ctrl or Shift to select multiple entites. Right click to delete.
  • Edit menu added. This has the same options as right-clicking, except that you can see the undo/redo actions.
  • File -> Test option added for quick testing.
    • This deletes AI nodes so you can start the map faster, so this isn't a replacement for the "Save" option. This is also specific to Sven Co-op.
  • Transformation window shows size of the selected object.
  • Simplify option added for clipnode hulls. This replaces the hull with a bounding box to reduce clipnodes.
  • Command to unembed textures. This forces the map to use WADs.
  • "Validate" checks for duplicate worldspawn entities, which crashes the game with svc_bad.

Fixed

  • Crash merging maps with missing textures.
  • Crash deleting an entity while it's grabbed.
  • Crash duplicating model with invalid head nodes.
  • Crash editing duplicated model with deleted hulls.
  • Broken texture coordinates, model origins, and collision in merged maps.
  • Pasting text also pastes an entity if you move the mouse to the 3d view with Ctrl+V still held.
  • Wrong .ent file name when merging maps.
  • Scaling not working after duplicating a model.
  • Transform window not updated when pasting an ent.
  • Numpad Enter doesn't work with hotkeys.
  • Various fixes for entity logic in merged maps (da31d9d 2837143).
  • visleaf validation errors shown when duplicating models.
  • "Optimize" sometimes breaks entities when deleting hulls (func_ladder, func_rotating, func_rot_button, func_mortar_field, and all triggers).
  • Clicking a new object sets the transform mode to "Move" but then doesn't toggle visibility of the axes if needed.
  • Merged map sets wrong origins for entities that use the spawnorigin key.

Changed

  • You can't edit models that share structures with other models. This causes broken rendering/collision in random parts of the map.
    • When you see the "SHARED DATA" warning, duplicate the model and you'll be able to edit.
  • You can move worldspawn. This does nothing. It's preparation for editing multiple maps at the same time.
  • The map must be selected before you can use most widgets. More preparation for multi-map editing. It's just annoying for now.
  • Keyvalue count and length limits match the limits for Sven Co-op (64 keys per ent, 256 chars per key).
  • Level trigger replacement logic is case insensitive.
  • Lowercased map names in bspguy_info ents.
  • trigger_changesky logic added for merged maps.

Map Scripts

There are new map scripts included here with fixes and new usage but there's no good documentation for them yet. For now, look at some of my recent merges if you want to use them. Some info on what has changed:

  • "bspguy_start_
    " is triggered after ents are loaded in a section
  • "bspguy" target added. Any entity can trigger this. Script actions are controlled by custom keyvalues:
    • $s_bspguy_load = spawns section ents (value = section name)
    • $s_bspguy_clean = deletes section ents (value = section names separated with "+")
      • Use when bspguy_mapchange is called after sections connected with teleports (see dogs_v1.bsp).
    • $s_bspguy_rotate = rotates player position/velocity/angles around !caller (for rotated seamless transitions, see 123456_v1.bsp).
    • $s_bspguy_trigger = triggers something (works with the #0 #1 #2 trigger mode suffixes).
  • added "bspguy spawn" command to test checkpoints (rapidly respawns you).
  • added bspguy_equip entity for updating equipment after transitions into areas with different CFG loadouts.
  • notifications are shown for map changes, so you know when you've touched a level trigger.

bspguy v3

26 Jul 05:49
4536d7d

Choose a tag to compare

New

Added a 3D editor. It's purpose is to make relative teleport creation easy for merged maps, but it can also be used as a ripent tool. See the README and Seamless Transitions wiki for more info.

Merged maps now also require a map script to function. See the new Map Script Setup wiki to learn how to setup and use it. The script boosts performance in entity-heavy maps, and simplifies merged entity logic overall.

Fixed

  • Fixed crash merging maps with missing textures or invalid lightmaps
  • Fixed .bsp suffix not being auto-appended to short map names
  • Fixed broken world/model faces in merged maps when viewed in an editor
  • Fixed models with multiple origin types not being moved as they should during a merge

Thanks to R4to0 for testing the WIP builds 👍

⚠️ WARNING ⚠️
Be careful editing map models in this version. There are some horrible bugs that can break collision/rendering in some random part of the map. If you want to edit models, remember to use the Duplicate BSP model option before editing a model.

bspguy v2

18 May 05:38

Choose a tag to compare

New:

  • Added simplify command for further reducing clipnodes.
  • Added delete command for deleting BSP models.
  • Added -optimize flag to the merge command. This reduces usage of all data types.
  • -hull 0 can be used with the noclip command. Deleting hull 0 reduces usage for all data types except clipnodes.
  • Added -redirect option to the noclip command. This redirects a clipnode hull to another one instead of disabling the hull entirely. This allows players/monsters to interact with the target model normally, but with less accurate collision.

Improved:

  • -nohull2 redirects hull 2 to hull 1 instead of disabling hull 2 entirely. This results in the same reduction of clipnodes while allowing large monsters and pushables to function normally (but with less accurate collision).
  • Unused data is deleted when merging or deleting model hulls.
  • Huge reduction in visdata size when merging (~2.5 MB -> ~0.01 MB on an echoes merge).

Fixed:

  • Fixed broken collision/faces on some entities (#1).
  • Fixed duplicate textures in output file when merging (#2)
  • Fixed crashes merging visibility and resizing lightmaps on some maps.
  • Fixed info_nodes being deleted when merging.

See the wiki for more info on simplify, delete, -optimize and -hull 0

bspguy v1

10 May 21:55

Choose a tag to compare

Initial release. Only useful for merging maps, and even that needs more work.