From 6f98d9a5b43915add084868b080ce8f78a01f7c6 Mon Sep 17 00:00:00 2001 From: nn <53490794+nn357@users.noreply.github.com> Date: Sat, 3 Oct 2026 18:40:15 +0900 Subject: [PATCH 1/5] remove random_seed from presets --- rust/data/presets/full-settings/Community Race Season 5.json | 1 - rust/data/presets/full-settings/Default.json | 3 +-- rust/data/presets/full-settings/Mentor Tournament.json | 1 - .../presets/full-settings/Summer Series Expert Challenge.json | 1 - 4 files changed, 1 insertion(+), 5 deletions(-) diff --git a/rust/data/presets/full-settings/Community Race Season 5.json b/rust/data/presets/full-settings/Community Race Season 5.json index 5b0351866..bb8ac788e 100644 --- a/rust/data/presets/full-settings/Community Race Season 5.json +++ b/rust/data/presets/full-settings/Community Race Season 5.json @@ -4912,7 +4912,6 @@ "all_enemies_respawn": false, "race_mode": true, "savestate": "No", - "random_seed": null, "disable_spikesuit": false, "disable_bluesuit": false, "enable_major_glitches": false diff --git a/rust/data/presets/full-settings/Default.json b/rust/data/presets/full-settings/Default.json index 4c5664427..31130449b 100644 --- a/rust/data/presets/full-settings/Default.json +++ b/rust/data/presets/full-settings/Default.json @@ -4826,7 +4826,6 @@ "enable_major_glitches": false, "speed_booster": "Vanilla", "race_mode": false, - "savestate": "No", - "random_seed": null + "savestate": "No" } } \ No newline at end of file diff --git a/rust/data/presets/full-settings/Mentor Tournament.json b/rust/data/presets/full-settings/Mentor Tournament.json index 38da78e3b..db84d7484 100644 --- a/rust/data/presets/full-settings/Mentor Tournament.json +++ b/rust/data/presets/full-settings/Mentor Tournament.json @@ -4912,7 +4912,6 @@ "all_enemies_respawn": false, "race_mode": true, "savestate": "No", - "random_seed": null, "disable_spikesuit": false, "disable_bluesuit": false, "enable_major_glitches": false diff --git a/rust/data/presets/full-settings/Summer Series Expert Challenge.json b/rust/data/presets/full-settings/Summer Series Expert Challenge.json index 08a2d637d..f7e22a14a 100644 --- a/rust/data/presets/full-settings/Summer Series Expert Challenge.json +++ b/rust/data/presets/full-settings/Summer Series Expert Challenge.json @@ -4824,7 +4824,6 @@ "all_enemies_respawn": false, "race_mode": true, "savestate": "No", - "random_seed": null, "disable_spikesuit": false, "disable_bluesuit": false, "enable_major_glitches": false From 35aff0d71c45c99a266d0c27345421804e38836a Mon Sep 17 00:00:00 2001 From: nn <53490794+nn357@users.noreply.github.com> Date: Sun, 4 Oct 2026 02:36:35 +0900 Subject: [PATCH 2/5] move random_seed --- rust/maprando-web/src/main.rs | 19 +++++++++++++------ .../templates/generate/scripts.html | 4 +--- rust/maprando/src/settings.rs | 1 - 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/rust/maprando-web/src/main.rs b/rust/maprando-web/src/main.rs index 6235587c1..b2fcb76b4 100644 --- a/rust/maprando-web/src/main.rs +++ b/rust/maprando-web/src/main.rs @@ -497,6 +497,7 @@ struct SeedData { struct RandomizeRequest { spoiler_token: Text, settings: Text, + random_seed: Option>, } #[derive(Serialize)] @@ -524,9 +525,10 @@ enum AttemptError { fn handle_randomize_request( settings: RandomizerSettings, app_data: actix_web::web::Data, + requested_seed: Option, ) -> Result { let race_mode = settings.other_settings.race_mode; - let random_seed = match (settings.other_settings.random_seed, race_mode) { + let random_seed = match (requested_seed, race_mode) { (_, true) | (None, _) => get_random_seed(), (Some(s), false) => s, }; @@ -683,9 +685,13 @@ async fn randomize( settings.name = Some("Custom".to_string()); } - if settings.other_settings.random_seed == Some(0) { - return HttpResponse::BadRequest().body("Invalid random seed: 0"); - } + let requested_seed: Option = match req.random_seed.as_ref().map(|s| s.0.trim()) { + None | Some("") => None, + Some(s) => match s.parse() { + Ok(v) => Some(v), + Err(_) => return HttpResponse::BadRequest().body("Invalid random seed"), + }, + }; if settings.skill_assumption_settings.ridley_proficiency < 0.0 || settings.skill_assumption_settings.ridley_proficiency > 1.0 @@ -694,9 +700,10 @@ async fn randomize( } let settings_copy = settings.clone(); + let app_data_copy = app_data.clone(); - let output_result = actix_web::rt::task::spawn_blocking(|| { - handle_randomize_request(settings_copy, app_data_copy) + let output_result = actix_web::rt::task::spawn_blocking(move || { + handle_randomize_request(settings_copy, app_data_copy, requested_seed) }) .await .unwrap(); diff --git a/rust/maprando-web/templates/generate/scripts.html b/rust/maprando-web/templates/generate/scripts.html index e7b5a762f..3ee5a65a9 100644 --- a/rust/maprando-web/templates/generate/scripts.html +++ b/rust/maprando-web/templates/generate/scripts.html @@ -374,7 +374,6 @@ "all_enemies_respawn": formData.get("all_enemies_respawn") == "true", "race_mode": formData.get("race_mode") == "true", "savestate": formData.get("savestate"), - "random_seed": tryParseInt(formData.get("random_seed")), "disable_spikesuit": formData.get("disable_spike_suit") == "true", "disable_bluesuit": formData.get("disable_blue_suit") == "true", "enable_major_glitches": formData.get("enable_major_glitches") == "true", @@ -503,6 +502,7 @@ let formData = new FormData(); formData.append("spoiler_token", document.getElementById("spoilerToken").value); formData.append("settings", JSON.stringify(settings)); + formData.append("random_seed", document.getElementById("randomSeed").value); let errorEl = document.getElementById("errorMsg"); let response; try { @@ -694,7 +694,6 @@ applyRadioValue("speedBooster", other.speed_booster); applyRadioValue("raceMode", other.race_mode); applyRadioValue("saveStateMode", other.savestate); - document.getElementById("randomSeed").value = other.random_seed; } async function upgradeSettings(settings) { @@ -1467,7 +1466,6 @@ document.getElementById("spoilerToken").value = localStorage["spoilerToken"]; } function checkOtherOptions() { - document.getElementById("randomSeed").value = ""; if (document.getElementById("fullSettingsPreset").value !== "") { return; } diff --git a/rust/maprando/src/settings.rs b/rust/maprando/src/settings.rs index c9a58f9b6..3c6cff569 100644 --- a/rust/maprando/src/settings.rs +++ b/rust/maprando/src/settings.rs @@ -660,7 +660,6 @@ pub struct OtherSettings { pub speed_booster: SpeedBooster, pub race_mode: bool, pub savestate: SaveState, - pub random_seed: Option, } #[derive(Clone, Copy, Serialize, Deserialize, Debug, PartialEq, Eq)] From b02c4b4dfa66a26d9000c5bbf47d2a3d1f7e3afb Mon Sep 17 00:00:00 2001 From: nn <53490794+nn357@users.noreply.github.com> Date: Sun, 4 Oct 2026 02:42:09 +0900 Subject: [PATCH 3/5] update cli / test --- rust/maprando/src/bin/maprando-cli.rs | 1 - rust/maprando/tests/logic_scenarios.rs | 1 - 2 files changed, 2 deletions(-) diff --git a/rust/maprando/src/bin/maprando-cli.rs b/rust/maprando/src/bin/maprando-cli.rs index 9c1333ab8..7aaf2b3a6 100644 --- a/rust/maprando/src/bin/maprando-cli.rs +++ b/rust/maprando/src/bin/maprando-cli.rs @@ -90,7 +90,6 @@ fn get_settings(args: &Args, preset_data: &PresetData) -> Result Result { enable_major_glitches: false, race_mode: false, savestate: maprando::settings::SaveState::No, - random_seed: None, }, debug: false, }) From 9a2d8faff368701d72d32e86d01c765cdde25808 Mon Sep 17 00:00:00 2001 From: nn <53490794+nn357@users.noreply.github.com> Date: Sun, 4 Oct 2026 13:12:55 +0900 Subject: [PATCH 4/5] Update rust/maprando-web/src/main.rs Co-authored-by: Brent Kerby --- rust/maprando-web/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/maprando-web/src/main.rs b/rust/maprando-web/src/main.rs index b2fcb76b4..9313ddc55 100644 --- a/rust/maprando-web/src/main.rs +++ b/rust/maprando-web/src/main.rs @@ -688,7 +688,7 @@ async fn randomize( let requested_seed: Option = match req.random_seed.as_ref().map(|s| s.0.trim()) { None | Some("") => None, Some(s) => match s.parse() { - Ok(v) => Some(v), + Ok(v) if v != 0 => Some(v), Err(_) => return HttpResponse::BadRequest().body("Invalid random seed"), }, }; From 78dd80ed1cf9a93b4190b5bb0ba3662b993e07ba Mon Sep 17 00:00:00 2001 From: nn <53490794+nn357@users.noreply.github.com> Date: Sun, 4 Oct 2026 14:15:13 +0900 Subject: [PATCH 5/5] Update main.rs --- rust/maprando-web/src/main.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rust/maprando-web/src/main.rs b/rust/maprando-web/src/main.rs index 9313ddc55..19da5b4f5 100644 --- a/rust/maprando-web/src/main.rs +++ b/rust/maprando-web/src/main.rs @@ -687,8 +687,9 @@ async fn randomize( let requested_seed: Option = match req.random_seed.as_ref().map(|s| s.0.trim()) { None | Some("") => None, - Some(s) => match s.parse() { + Some(s) => match s.parse::() { Ok(v) if v != 0 => Some(v), + Ok(_) => None, Err(_) => return HttpResponse::BadRequest().body("Invalid random seed"), }, };