Sample code for 30+ languages & platforms
AutoIt

Generate Monotonic ULIDs

See more ULID/UUID Examples

Generate a sequence of monotonic ULIDs all using the same seed time. This code sample generates a series of ULIDs with continuously increasing values.

Important: Chilkat's ULID functionality was introduced in v9.5.0.94.

Chilkat AutoIt Downloads

AutoIt
$oSeedDt = ObjCreate("Chilkat.CkDateTime")

;  You can set the seed time to any desired value.
;  In this example, the seed time is set to the current system date/time.
$oSeedDt.SetFromCurrentSystemTime()

;  Generate the 1st ULID in the series.
;  (i.e. the current UTC UNIX-time)
Local $bUtc = True
Local $sUlid = $oSeedDt.UlidGenerate($bUtc)
ConsoleWrite($sUlid & @CRLF)

;  Store the ULID in a Chilkat StringBuilder to generate the series.
$oSbUlid = ObjCreate("Chilkat.StringBuilder")
$oSbUlid.Append($sUlid)

Local $i = 0
While $i < 50
    $oSeedDt.UlidIncrement($oSbUlid)
    ConsoleWrite($oSbUlid.GetAsString() & @CRLF)
    $i = $i + 1
Wend

;  Sample output:

;  01GRGH30H8DMQ4F9A0XCTZHPGM
;  01GRGH30H8DMQ4F9A0XCTZHPGN
;  01GRGH30H8DMQ4F9A0XCTZHPGP
;  01GRGH30H8DMQ4F9A0XCTZHPGQ
;  01GRGH30H8DMQ4F9A0XCTZHPGR
;  01GRGH30H8DMQ4F9A0XCTZHPGS
;  01GRGH30H8DMQ4F9A0XCTZHPGT
;  01GRGH30H8DMQ4F9A0XCTZHPGV
;  01GRGH30H8DMQ4F9A0XCTZHPGW
;  01GRGH30H8DMQ4F9A0XCTZHPGX
;  01GRGH30H8DMQ4F9A0XCTZHPGY
;  01GRGH30H8DMQ4F9A0XCTZHPGZ
;  01GRGH30H8DMQ4F9A0XCTZHPH0
;  01GRGH30H8DMQ4F9A0XCTZHPH1
;  01GRGH30H8DMQ4F9A0XCTZHPH2
;  01GRGH30H8DMQ4F9A0XCTZHPH3
;  01GRGH30H8DMQ4F9A0XCTZHPH4
;  01GRGH30H8DMQ4F9A0XCTZHPH5
;  01GRGH30H8DMQ4F9A0XCTZHPH6
;  01GRGH30H8DMQ4F9A0XCTZHPH7
;  01GRGH30H8DMQ4F9A0XCTZHPH8
;  01GRGH30H8DMQ4F9A0XCTZHPH9
;  01GRGH30H8DMQ4F9A0XCTZHPHA
;  01GRGH30H8DMQ4F9A0XCTZHPHB
;  01GRGH30H8DMQ4F9A0XCTZHPHC
;  01GRGH30H8DMQ4F9A0XCTZHPHD
;  01GRGH30H8DMQ4F9A0XCTZHPHE
;  01GRGH30H8DMQ4F9A0XCTZHPHF
;  01GRGH30H8DMQ4F9A0XCTZHPHG
;  01GRGH30H8DMQ4F9A0XCTZHPHH
;  01GRGH30H8DMQ4F9A0XCTZHPHJ
;  01GRGH30H8DMQ4F9A0XCTZHPHK
;  01GRGH30H8DMQ4F9A0XCTZHPHM
;  01GRGH30H8DMQ4F9A0XCTZHPHN
;  01GRGH30H8DMQ4F9A0XCTZHPHP
;  01GRGH30H8DMQ4F9A0XCTZHPHQ
;  01GRGH30H8DMQ4F9A0XCTZHPHR
;  01GRGH30H8DMQ4F9A0XCTZHPHS
;  01GRGH30H8DMQ4F9A0XCTZHPHT
;  01GRGH30H8DMQ4F9A0XCTZHPHV
;  01GRGH30H8DMQ4F9A0XCTZHPHW
;  01GRGH30H8DMQ4F9A0XCTZHPHX
;  01GRGH30H8DMQ4F9A0XCTZHPHY
;  01GRGH30H8DMQ4F9A0XCTZHPHZ
;  01GRGH30H8DMQ4F9A0XCTZHPJ0
;  01GRGH30H8DMQ4F9A0XCTZHPJ1
;  01GRGH30H8DMQ4F9A0XCTZHPJ2
;  01GRGH30H8DMQ4F9A0XCTZHPJ3
;  01GRGH30H8DMQ4F9A0XCTZHPJ4
;  01GRGH30H8DMQ4F9A0XCTZHPJ5
;  01GRGH30H8DMQ4F9A0XCTZHPJ6