Hammer Editor - Improvements

Since the devs are able to change the new editor here are a few improvements I would love to see (if possible). Please note that I’m using the SteamVR hammer so if any of these things are already implemented or fixed ignore them.

Changing keybindings

Right now you can only see the keybindings and if you want to change them you have to open and change the text file /game/core/tools/keybindings/hammer_key_bindings.txt . Being able to change them in the current UI would be much easier. A “reset keybindings” button would be nice too in case you break them somehow.

Angle values and rotation snapping


The editor currently only offer 5 different angles you can snap to. If you want something like 22.5° (half of 45°) you will need to type it in using the numpad which is quite a hassle and has a limitation I will mention in a bit. The simplest solutions would be to add more values to the list or the option to customize them. But I think an even better solution would be to add a keybinding to half the current value. For example pressing ctrl/shift/alt once halfs the current value. And you could maybe also press it multiple times to half it repeatedly (E.g. 45 → 22.5 → 11.25 → 5.625).

As for the previous mentioned limiation, if you manually type in the angle you can’t type in negative values. Pressing “-” does nothing and it’s also bound to “ShrinkSelection”. So the rotation is only possible in one direction. The workaround I found is adding 360 to the value so something like “-22.5” can be achieved with typing in “337.5” but I don’t think that’s a good solution.

Grind snapping “problems”

This one is more like a nitpick and is simply caused by how the default pivot snaps to the grid when moving. I will quickly explain the problem using a few images.

Let’s say I want to move this block up by 64 units while using a 64 grid and grid snapping:

If I use the blue arrow to move it up it will move by 32 units like this:

At that point I can move it up and down by 64 units but always 32 units offset from the original position. It’s impossible to reach this intended position:

I know you can use the up arrow key to quickly reach that position but it’s not possible using the mouse and the axis arrows without changing the grid (to 32 units) or the pivot (moving it down by 32 units). You can also use “N” to move the pivot around while in mesh mode but not in any other mode.

No idea if this even needs a change but I think having some UI button easily accessible that changes where the default pivot is placed would be nice. Maybe something like “force default pivot to be on grind” where if the pivot isn’t on the grid it moves to the closest point on the grid automatically.

So in the case above the pivot is placed by default at x=0, y=0, z=32 (off-grid) and with the new setting it should be placed at x=0, y=0, z=0. The code could be something like “new_x = Math.Round(old_x / current_grid) * current_grid” for each value.

Commands and macros

Alright this one will be a bit more complicated and is more like a rought concept I would love to see implemented at some point. The editor currently allows you to repeat a set of commands using the command history.

With two commands like these:

You can quickly create something like this with just one click:

What I would love to see is some kind of macro menu where you can save and customize sets of commands. The option to see and modify the values of the commands would be great too. Maybe even extended commands to include pivot changes.

I know that something like that might be implemented in the future by players once you “allow coders to add their own Helpers and Tools to Hammer” but I think adding it earlier would be really great.

Well that’s everything for now. There are a few other tools I would want but most of them would be too much to ask for at this moment and some are already being worked on anyway like the path tool stuff.

You can always open suggestions here, I’m sure you’ll get better visibility.

Here is one thing I forgot to mention.

Interpolated Bridges

There is no way to precisely set the control points of an interpolated bridge. It would be nice if the control points (blue points) are able to snap to the grid and if you could see and change the exact values they have in the tool properties window.

Also no idea if this can be changed but when creating these bridges the width of a path becomes smaller. This should be 128 units wide. Not to mention the extreme angle it has. I guess it creates 2 bezier curves between the edges and then connects them afterwards.

Here is a bridge I made using a single curve that was in the middle, local vertices editing and a few manual tricks. I guess it could be recreated by code using a single bezier curve in the middle as a base, then placing the selected edges unscaled on them, correcting their rotation and finally connecting them.

This change (as an option) would be awesome for things like roads as the current bridge tool creates really stretched geomtry and changes the proportions.

Thanks I didn’t know that existed. I will post some of them there too.