Not quite generic or elegant but useful in my case: x and z are coordinates in the block or chunk or what is it called (1-80) function setsign(x, z, x0, z0, area, data, text) local h = citygen_get_h(x, z, x0, z0)+1 local vi = area:index(x, h, z) data[vi] = minetest.get_content_id("default:sign_...