Initial plan was to make signs using Krita, a free graphics program, and import them into my favorite voxel editor to make them into voxel signs. Problem is, I really needed the resolution, so the voxel characters were too blocky and it really detracted from the legibility.
I ended up making a dynamic sign that reads from a tag on itself, then grabs the right image and displays it in-game, crisp and neat.


As I was working with the signs, I made a mistake in one area – see if you can spot it:

--- Contract Signs
local imagePath = "MOD/images/contract/"
local contractName = "Nil"
local screenHandle = 0
function tick()
if contractName == "Nil" then -- Only firing once to not waste cycles
screenHandle = UiGetScreen()
contractName = GetTagValue(screenHandle, "name") -- picks up name=<contract name> in "tags" for the screen entity
end
end
function draw() -- UI Stack
UiTranslate(UiCenter(), UiMiddle())
UiAlign("center middle")
UiImage(imagePath .. contractName .. ".png")
end
The above is a snippet in lua of how I got that to work – trust me, I wouldn’t have used tick() if I had any other way — but it seems to work fine without performance hits.
Before balancing out the visual weight of the signs, it was time for more destruction testing. The signs I used were different than sprites, so I had to make another type of damage-detection to deal with them.
That is it for now, more to come…