# TODO Remove in future # https://github.com/godotengine/godot/pull/42408 extends Node class_name UUID static func getRandomInt(max_value): randomize() return randi() % max_value static func randomBytes(n): var r = [] for index in range(0, n): r.append(getRandomInt(256)) return r static func uuidbin(): var b = randomBytes(16) b[6] = (b[6] & 0x0f) | 0x40 b[8] = (b[8] & 0x3f) | 0x80 return b static func v4(): var b = uuidbin() var low = '%02x%02x%02x%02x' % [b[0], b[1], b[2], b[3]] var mid = '%02x%02x' % [b[4], b[5]] var hi = '%02x%02x' % [b[6], b[7]] var clock = '%02x%02x' % [b[8], b[9]] var node = '%02x%02x%02x%02x%02x%02x' % [b[10], b[11], b[12], b[13], b[14], b[15]] return '%s-%s-%s-%s-%s' % [low, mid, hi, clock, node]