Download (5 KB)
For Luanti 5.10 and above

How do I install this?

timehud 🔗

Minimal timer HUD API for Luanti.

Differences vs hud_timers:

  • text-only timers (no background, no bar)
  • configuration file
  • label always renders as Name: 0h, 0m, 0s

API:

  • timehud.add_timer(player_name, def)
  • timehud.remove_timer(player_name, index)
  • timehud.remove_timer_by_reference(player_name, timer)
  • timehud.update_timers(player_name)
  • timehud.trigger_event(player_name, event_name)

Example:

local timehud = rawget(_G, "timehud")
if type(timehud) ~= "table" then
    return
end

minetest.register_chatcommand("timerdemo", {
    description = "Start a 30s demo timer",
    func = function(name)
        local timer = timehud.add_timer(name, {
            name = "Demo",
            duration = 30,
            color = "55ff55",
            on_complete = function(player_name, _timer)
                minetest.chat_send_player(player_name, "Demo timer finished.")
            end,
            on_event = {
                boost_tick = function(player_name, t)
                    -- Example: subtract 1s when this event is triggered.
                    t.time_left = math.max(1, (tonumber(t.time_left) or 1) - 1)
                end,
            },
        })

        if not timer then
            return false, "Could not create timer."
        end

        -- Optional immediate refresh.
        timehud.update_timers(name)
        return true, "Demo timer started."
    end,
})

-- Somewhere else in your code:
-- timehud.trigger_event(player_name, "boost_tick")
-- timehud.remove_timer_by_reference(player_name, timer)

Legacy global aliases are also exported for compatibility:

  • add_timer(...)
  • remove_timer(...)
  • remove_timer_by_reference(...)
  • update_timers(...)
  • trigger_event(...)

Reviews

Review

Do you recommend this mod?

  • No reviews, yet.