From db652f68f8152c826f0ccc03f77fca1c0709cd2e Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Sat, 11 Apr 2026 20:30:56 +0200 Subject: [PATCH] Add validation for player start max speed and bunny hop settings in scene document validation --- src/document/scene-document-validation.ts | 35 +++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/document/scene-document-validation.ts b/src/document/scene-document-validation.ts index 5f7f92a2..b072ade6 100644 --- a/src/document/scene-document-validation.ts +++ b/src/document/scene-document-validation.ts @@ -1195,6 +1195,17 @@ function validatePlayerStartEntity( ); } + if (!isNonNegativeFiniteNumber(entity.movementTemplate?.maxSpeed)) { + diagnostics.push( + createDiagnostic( + "error", + "invalid-player-start-max-speed", + "Player Start max speed must remain a finite number zero or greater.", + `${path}.movementTemplate.maxSpeed` + ) + ); + } + if (typeof entity.movementTemplate?.capabilities?.jump !== "boolean") { diagnostics.push( createDiagnostic( @@ -1291,6 +1302,30 @@ function validatePlayerStartEntity( ); } + if (!isBoolean(entity.movementTemplate?.jump?.bunnyHop)) { + diagnostics.push( + createDiagnostic( + "error", + "invalid-player-start-bunny-hop", + "Player Start bunny hop setting must be a boolean.", + `${path}.movementTemplate.jump.bunnyHop` + ) + ); + } + + if ( + !isNonNegativeFiniteNumber(entity.movementTemplate?.jump?.bunnyHopBoost) + ) { + diagnostics.push( + createDiagnostic( + "error", + "invalid-player-start-bunny-hop-boost", + "Player Start bunny hop boost must remain a finite number zero or greater.", + `${path}.movementTemplate.jump.bunnyHopBoost` + ) + ); + } + if ( !isFiniteNumber(entity.movementTemplate?.sprint?.speedMultiplier) || (entity.movementTemplate?.sprint?.speedMultiplier ?? 0) <= 0