May 2, 2026
Description
Every Easter Eve, the witches gather to compete against each other. The task is to fly to Blåkulla [blawcullah]. They work in teams, but only one witch can win, the first one to reach Blåkulla. She will do whatever it takes to get there, even sacrificing her teammates.
The Prusament spool has a lot of hexagonal holes, forming a hexagonal grid along a circular path. Use this as a game board, where you move pegs in 6 directions. The players place the pegs in their starting positions. The winner is the one who reaches the goal (Blåkulla), no matter how many pegs they lose. Players move in opposite directions.
This project is 95 % game design and only 5 % 3D design.
You only need to print the pegs. Pick the new peg for the new spool type and old for old. You may want to do a test print. Scale the peg in Slicer, if you want it to sit tighter or loser.
You may want to print the central plate and the blockers, too, to cover ambiguous holes of the spool.
It's hex yact, not hexy act. And it's spelled häxjakt in Swedish and means witch hunt, though the gameplay is more about witches competing against each oter, not about a patriarch harassing innocent women.
Blåkulla means blue hill, a mythical place in Norse mythology, where witches gathered. A small island in the Baltic sea, between Öland and mainland Sweden, bears the name Blå jungfrun (blue virgin). It used to be called Blåkulla, but due to superstitious seafarers, they were forced to change the name.
In the image, the blue pegs move clockwise, the red pegs move counterclockwise. Play scissors-paper-rock about who starts the game.
A shorter game version starts with only four pegs per each player. The blue player starts at 10 o'clock, the red at 2 o'clock. The longer version starts with 8 pegs per player, the additional pegs being at 8 o'clock and 4 o'clock. The aim is to reach Blåkulla, the area at 6 o'clock. Each player's winning move is shown by the arrows at the bottom of the picture.
In the game, many moves go like in checkers. You do captures by jumping over an opponent's peg. A row of captures can be made, if the jumping peg reaches a position, from where a new capture is possible. Possible captures are forced to be made, like in checkers. Both players are obliged to watch out for any illegal move. At each point, if two different captures can be made, the player may choose which one to make. It doesn't have to lead to the longest possible row of captures.
Moving may not happen in a backward direction. Each move must be a clockwise or zero angular shift for the blue player and likewise a counterclockwise ditto for the red player. Note the five rows (8, 10, 12, 2 and 4 o'clock), where the lines are exactly radial to the spool centre. On these rows, it's allowed to move in four directions, including the two radial directions (towards the centre of the spool or in the opposite direction). On the previous row, the direction towards the centre would be backward and hence not allowed. On the next row, the opposite happens.
Allowed directions for blue to move around 12 o'clock shown with green arrows:
Backward movement is allowed in captures.
If one player is blocked so that they can't make a move, the turn goes to the opponent. This can lead to victory, if the opponent can advance to Blåkulla in consecutive turns without unblocking the blocked player.
In theory, both players can become blocked. This must be considered a tie game.
At a capture, the captured peg is removed from the board (use the lower side of the spool as a peg store). If it is the last peg left of the opponent, it is not removed. Instead the capturing player can add a peg, placing it in any of the used starting positions. If the capturing player hasn't lost any pegs yet, they may make a second move. This move can't be the same peg jumping again over the same opponent peg. In the case of capturing the last peg of a player, when the turn returns to this player, they may not capture the peg that performed the previous capture.
This way, each opponent has always one peg left. The game is won only by reaching Blåkulla, not by capturing all opponent pegs.
The winner is the player, who brings one peg to Blåkulla. The game can also end in a tie, if neither player can make a legal move.
In the rare case of both players reaching Blåkulla on same round (remember who started the game!), the two pegs are removed and the game is all about the next pegs reaching Blåkulla. In the super rare case, where both players have run out of pegs at this point, the game must be considered a tie.
Besides the pegs, which are essential, we can print a guide plate, which can be attached onto the spool. It will point out the crucial parts of the playing field (the starting rows marked with Roman numerals, and Blåkulla). Here we use a multi colour printing method with only one extruder and minimal spill. The guide covers the grey area in the following picture, hiding a few holes that are not playable, holes that are not fully regular hexagons or fully a part of the filament winding part of the spool.
You find this plate without an image as an stl file among the files. You also find it with my image as a ready to print g-code file.
Aditional parts can be printed to block any hole along the rim that would otherwise start a heated argument in the middle of a game. These holes are at 8, 10, 12, 2 and 4 o'clock, and at Blåkulla:
Since the blockers are placed at the starting rows of the pegs, you could print the blockers with the same colours as the corresponding pegs, while the blockers at 12 o'clock and at Blåkulla could be same colour as the centre plate.
The technique of multi colour printing consists of printing the image against the printer bed. Design the image to consist of two or more colours. Make the different colour areas as separate objects. Use a copy of the object with lesser surface as a hole to cut out from the other object. Consider how many layers of colour you want. Usually one single layer is enough. Two will make better contrasting at the contours. You can't print with a raft. Even a brim might mess up the colours, if the Slicer decides to first do the brim and then do the area with lesser colour. The optimal would be to first print the brim with same filament as the surrounding area. Then we need a filament change to print the inside details with the other colour. When the first layer is complete, we need another filament change to return to the first colour to complete the print. The thing is, Prusa Slicer doesn't add colour changes in the middle of a layer. You have to find the right spot in the g-code and add it yourself, using say Notepad++.
And you don't really need a brim. You print a big flat image against the print bed. The whole print sticks to that image perfectly well without a brim.
To be able to insert colour change in the middle of one layer
To be able to decide the print order of objects within one layer
Search functions to find things in the g-code
I edited the image in Inkscape. Each element is its own svg graphics element:
The main colour will be dark green metallic. The witch will be black. Everything that is white, the moon, the text, the arrows, will be one single STL element. The black witch will be one STL element. The third STL element is the plate, seen with the black hairline contour in the image.
Gathering all elements in Tinkercad in the image below. Here we have the plate element, the text element and the witch element. The plate is 1 mm thick. The text and witch are both 0.5 mm thick. I make a copy of the witch and the text and make them a hole to cut away a 0.5 mm layer from the plate. Then I make a new copy of the witch and make it a hole to cut its shape away from the text (only the moon part is affected). Now I have three parts, which fit into each other.
I read each part into Slicer and rotate them so that I can see the image from underneath:
Here I must make them line up perfectly. I have no way of deciding the order of the objects. I can drag them in the right panel, but that has no effect on the print order. Slicer decides that for me, which is bad, because I'd like to print the plate first. It would act like a brim for the other objects. In my test print, the witch got printed first, then the white parts with the moon and the text, then the plate. To change that order, I'd need to move huge blocks of data in the g-code. Now the only thing I did was this:
I searched for the point where the witch print ended and the white print started. Right there I inserted line 2540 and 2541, which was M400 and M600. Those codes command the printer to finish any move, then pause for filament change. The printer (Prusa Mk3s+) nicely asks me to perform the filament change and confirms that the colour is ok. I added those code lines on two other points, too. On the first layer, the background (the object named Hexyact_plate.stl) is printed with a metallic dark green, but I added a filament change after the first layer so that the rest of the whole plate was printed in black, which is cheaper. And the black might give a deeper tone to the metallic green background.
Printables.com complained about the M400 code, so I replaced it with G4 P0 to be able to upload the gcode file. But trust me, M400 works just fine on a MK3s+.
Here's the plate fitted on an old type Prusament spool:
The plate is designed to fit the new type spool, but it will fit on these old spools, too. The pegs, however, are not interchangeable. The old spool holes are larger. I will include files for pegs for both spool types.
In this print, I change filaments only in the first layer. It looks good, though the white colour doesn't fill every spot it should. For a better result, we need to make the witch object and the white object thicker, so that the slicer finds these objects in the second layer, too. That will of course double the number of filament changes we need for the whole print. If you want to optimize a single layer image, you might want to do a thorough z offset calibration. Mine is a bit off.
You find this file among the print files. It will enable printing the plate in three colours.
Load your printer with the witch colour (I used black)
Start printing
When paused, change filament to the background colour (I used dark green metallic) and resume
When paused, change filament to the moon and text colour (I used white) and resume
When paused, change filament to the witch colour and resume.
When paused, change filament to the background colour and resume
When paused, change filament to the moon and text colour and resume
When paused, change filament to the colour you want for the rest of the part
Following the steps above, you get two layers of colours. If you think one layer is enough, just switch at step 5 to the colour you want for the rest of the part. The print will still pause at each filament change. At least the white parts benefit from two layers of colour.
License:
Creative Commons — Attribution — Noncommercial