diff --git a/core/installer/derived.go b/core/installer/derived.go
index 4030623..eebb8ad 100644
--- a/core/installer/derived.go
+++ b/core/installer/derived.go
@@ -3,8 +3,10 @@
 import (
 	"fmt"
 	"html/template"
+	"math/rand/v2"
 	"strings"
 
+	"github.com/richardlehane/crock32"
 	"github.com/sethvargo/go-password/password"
 )
 
@@ -101,6 +103,9 @@
 				}
 				ret[k] = psswd
 			}
+			if def.Kind() == KindSketchSessionId {
+				ret[k] = GenerateSketchSessionId()
+			}
 			if def.Kind() == KindVPNAuthKey {
 				enabled := true
 				if v, ok := def.Meta()["enabledField"]; ok {
@@ -146,6 +151,8 @@
 			ret[k] = v
 		case KindPassword:
 			ret[k] = v
+		case KindSketchSessionId:
+			ret[k] = v
 		case KindArrayString:
 			a, ok := v.([]string)
 			if !ok {
@@ -352,3 +359,12 @@
 func GeneratePassword() (string, error) {
 	return password.Generate(20, 5, 0, false, true)
 }
+
+func GenerateSketchSessionId() string {
+	u1, u2 := rand.Uint64(), rand.Uint64N(1<<16)
+	s := crock32.Encode(u1) + crock32.Encode(uint64(u2))
+	if len(s) < 16 {
+		s += strings.Repeat("0", 16-len(s))
+	}
+	return s[0:4] + "-" + s[4:8] + "-" + s[8:12] + "-" + s[12:16]
+}
