Goxel - a fork for AoS map making

Hey everyone,

Many of you will know of Goxel, a voxel editing program that can handle AoS maps, or be used for modelling.

Late last year, while myself and Influx were mapping, I decided to fork the source code and begin making some updates to it as we encountered things we wanted to change. I had been releasing these directly into the Voxel Cartography Discord, and having made a tiny recent fix I realised that I should (A) start using GitHub’s release feature to share them, and (B) advertise it outside of our small server.

So here it is: https://github.com/GrandyB/goxel/releases

Main changes (as of 0_1h):

🆕 FPV/First person camera ('#' hotkey toggle)
Full control over it is in the Camera category; toggle button for it, with settings such as fly speed, FOV, and manually being able to set the coordinates.
Arrow keys for direction.
Page Up/Down for vertical movement.
Right (or middle mouse) click and hold for "looking" (bare in mind you can't look and move at the same time for now).
🆕 FOV setting for regular camera (separate to FOV for FPV)
🔀 Rotational camera has a higher default FOV as part of making the transition to FPV less jarring; hopefully not too much of a problem - if it is, let me know. Can alter it yourself now anyway
🆕 Importing now adds the voxels into a new layer; this new layer is named after the file
🔀 kvx no longer has bounding box on import
🆕 Colour picker in tools panel is now the full colour picker from the popup (also reminder that holding CTRL while using a block adding tool briefly toggles to the colour picker for easy access!)
🛠️ Colour picker correctly steals mouse inputs, thus no longer draws underneath its popup while picking
🔀 Heightmap and colourmaps now export using .bmp, so they can be fed right into "bildramer's heightmap converter" (still need to specify .bmp in the file name)
🆕 Width/height/depth of brush
🆕 Added hotkey settings for brush modes (add/sub/paint are U/I/O) and planes (<> for move it up/down, / for visibility). Can change in settings.
🆕 Height/colourmap export (file > export)
🔀 Layer pane display always visible on the right
🛠️ ByteBit's AoS .vxl file fix

Can find me in the Voxel Cartography Discord - I will check here a bit but it’s easier to reach me there or in aloha’s aos-mapmaking channel. I doubt I’ll put much more time into it (only came on to fix a tiny issue with it, previous update was last December). Hopefully it’ll be useful to some of you mappers out there.

7 Likes

Half a year or so passes!
Two weeks ago I re-setup my dev environment for goxel and continued with more wishlist items we put together. I’ve now put out two versions that I’d love to get into more hands and test more thoroughly.

Here’s the major headlines…

Goxel 13

My fork was wildly out of date compared to the main branch, so it was long since time to bring the latest and greatest into my fork.

New changes coming in from Goxel 13 include:

  • New UI - imgui was updated to the latest, and a new UI was added
  • Rect Select (tool) - can select based on screen coordinates rather than a selection box; click and drag = a selection
  • Rotation around an origin (part of move tool) - rotating is now around a definable origin rather than an arbitrary middle-of-map origin, making rotations far more user friendly
  • .gox import - adds its layers into the current working file
  • Camera angle quick select - the new ‘cube’ in the upper right can be clicked to move the camera to various preset angles for the top/side/diagonals

Colour inherit brush settings

Inside the brush/shape tool, you have an extra bar in the ‘color’ section:

  • User = use the user selected colour from the GUI
  • Inherit = ignore the user selected colour, and instead take the nearest colour beneath the cursor
  • Add = add the user colour to the inherited colour
  • Mid = find the midpoint between the user selected colour and the inherited colour

Doodad placer tool

Import an external file (kvx/kv6/text at the moment), it’ll show a preview you can manipulate, click to add it into the current layer!

Previously you’d either have to use VOXED for this, or File > Import > [format] > (imports to new layer) > (move tool it into position) > (merge down if wanted)… which was a painful user experience. Now all that is done in one click.

It also has a history section filled with buttons representing files imported during this session, for quick access:

Non 90-degree rotations

Previously, you’d have to use an external tool like Magicavoxel to do this; now it can be done in goxel!

  • Move tool’s rotations are still 90 deg, as that is non-destructive in nature
  • Move tool has a new “Rotation (Destructive)” menu, with ‘Degrees X’/Y/Z and an apply button. Provide an angle in degrees, press apply and it’ll rotate the current layer that much (or at least try!). Can undo if necessary, and is a destructive operation as non-90 deg rotations are by nature destructive at low voxel resolutions
  • Doodad placer tool’s rotation buttons rotates by 12.5 degrees each button press. This is not destructive as it is a temporary volume that is cached and only “exists” once you click to place

Other features

  • Select layer of block under cursor hotkey - hover over a voxel and press the apostrophe ’ key (configurable in settings). This will switch your ‘active’ layer to be the layer that voxel belongs to
  • Selection tool shift to move - when using the selection tool, you manipulate a box to create a selection area. There’s two modes to it - RESIZE and MOVE that were inside a combo box. This is still available, but holding the shift key will temporarily switch you to MOVE, allowing you to move your bounding box rather than resize it in an easier way than having to use the combo
  • Selection tool ‘select entire layer’ button - quick way to select the entire layer content
  • App default tweaks - shadows disabled, blocks not so shiny and grid opacity reduced by default. Disabling shadows should help performance

As always, all new features are released on the fork’s github release page, and all new features are being tracked on the github project page and inspired by (and dev progress documented in) the Voxel Cartography Discord.

3 Likes

Impressive! Love the doodad placer and a bit mind-blown by the non-90 degree rotation option; it seems to work incredibly well!

Excellent editor, I’m already using it.
Of the minuses, I have not yet understood how to easily create complex terrain of earthly hills. I simply draw lines around the areas and move them up one level. The line maker is a bad tool, it misses random blocks of the line being drawn. It definitely needs to be fixed. And secondly, I wanted to have a custom palette, otherwise it’s not convenient to constantly click with an eyedropper.

Complex terrain is always a tricky one! Using colour alpha and the painting tool in goxel is an option but you may need to chop your terrain layer into several smaller ones in order to keep it performant.

The other option is to export your terrain as a heightmap, create a colourmap in your favourite image editor as a bmp, and then re-combine them into a vxl using Bildramer’s tool. Image editors have great tools for creating textures and such, so that’s the most versatile option.

Line maker - interesting. I’ll play about and see.
I’d definitely try using the brush with ‘1’ for the Z height, and then potentially trying out the ‘plane’ tool. The ‘/’ hotkey will enable the plane and ‘<’ and ‘>’ will raise/lower it. You can then change the snapping settings on the brush settings to make you only snap onto the plane and not the mesh. Makes building up terrain layer by layer much easier.

As for colour palettes, it looks like you can import colour palettes from gimp, but there are palettes built into the editor as well, the palette icon on the left has a dropdown, maybe one of those can help. If you’re in the brush tool, you can hold CTRL to temporarily switch to colour picker and click to grab. Can also hold SHIFT and the brush becomes a line tool temporarily as well. Perhaps those two will help.

New release.

v0_2e

  • :tools: Placer tool - now has correct origin and doesn’t clip the importer volume; all fixed in theory
  • :twisted_rightwards_arrows: FPV camera - default speed 10 → 50, but is overall slower than before (and control over it more fine grained as result)
  • :twisted_rightwards_arrows: Move tool - destructive rotation can now accept negatives (range is now -360 to 360)
  • :twisted_rightwards_arrows: All number related inputs reverted to using arrows every time

https://github.com/GrandyB/goxel/releases/tag/v0_2e

And another one 0_2f

  • :new: Placer tool - if there is a selection made, “Acquire selection” button appears and can copy the selection into the placer
  • :new: Image tab - “Crop to visible & reset origin” button - uses only the visible layers, crops to it, and resets the origin

https://github.com/GrandyB/goxel/releases/tag/v0_2f

0_2g

  • :new: Placer and Selection tool - both now have “Copy to placer” and “Move via placer” buttons after a selection has been made.

“Copy to placer” keeps the original voxels and selection box in place.
“Move via placer” copies the blocks within the selection, then wipes the selection and its box, ready to be placed elsewhere any number of times by the placer.

https://github.com/GrandyB/goxel/releases/tag/v0_2g

This change effectively provides a “move selection” mechanic, which has been saught after for a long time. Also means if you create something in one part of the map, you don’t necessarily need to export and reimport in order to use it in other places - can just copy the selection while keeping the original in place.