Skip to content

Instantly share code, notes, and snippets.

@jrus
Created July 29, 2012 09:26
Show Gist options
  • Save jrus/3197011 to your computer and use it in GitHub Desktop.
Save jrus/3197011 to your computer and use it in GitHub Desktop.
quick lua implementation of "random" UUID
local random = math.random
local function uuid()
local template ='xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
return string.gsub(template, '[xy]', function (c)
local v = (c == 'x') and random(0, 0xf) or random(8, 0xb)
return string.format('%x', v)
end)
end
@lions-tech
Copy link

@jrus Thank you for the snippet.

your can use this seed to avoid same uuid math.randomseed(tonumber(tostring(os.time()):reverse():sub(1, 9)))

I'd like to note, that this does not seem to work with lua 5.2.4. for i=1,10 do print(uuid()) end will print 10 times the same UUID. However, without the custom seed, it works perfectly fine.

@XDuskAshes
Copy link

XDuskAshes commented Aug 18, 2025

Just a heads up for those like me using this snippet in ComputerCraft, use math.randomseed(os.epoch("utc")) before calling this function (preferably at the top of your script) for the easiest results in randomness.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment