diff --git a/starpilot/system/the_galaxy/assets/components/tools/device_settings.js b/starpilot/system/the_galaxy/assets/components/tools/device_settings.js index 984c1c5375..e1a125158e 100644 --- a/starpilot/system/the_galaxy/assets/components/tools/device_settings.js +++ b/starpilot/system/the_galaxy/assets/components/tools/device_settings.js @@ -1586,7 +1586,7 @@ function getSettingLockReason(param) { if (param?.requires_offroad && state.values.IsOnroad) { return "This setting can only be changed while parked." } - if (param?.requires_parked && !state.values.VehicleParked) { + if (param?.requires_parked && !state.values.VehicleParked && !(param.key === "ForceOffroad" && state.values.ForceOffroad)) { return "This setting can only be changed while the vehicle is in Park." } if (param?.disabled_when_key_true && state.values[param.disabled_when_key_true]) { diff --git a/starpilot/system/the_galaxy/assets/mobile/js/views/Settings.js b/starpilot/system/the_galaxy/assets/mobile/js/views/Settings.js index 5deb4bb0ae..80b2852ea2 100644 --- a/starpilot/system/the_galaxy/assets/mobile/js/views/Settings.js +++ b/starpilot/system/the_galaxy/assets/mobile/js/views/Settings.js @@ -121,7 +121,7 @@ export const Settings = { }, lockReason(param) { if (param?.requires_offroad && this.values.IsOnroad) return "This setting can only be changed while parked." - if (param?.requires_parked && !this.values.VehicleParked) return "This setting can only be changed while the vehicle is in Park." + if (param?.requires_parked && !this.values.VehicleParked && !(param.key === "ForceOffroad" && this.values.ForceOffroad)) return "This setting can only be changed while the vehicle is in Park." if (param?.disabled_when_key_true && this.values[param.disabled_when_key_true]) return param.disabled_reason || "Disabled by another setting." if (param?.requires_nonempty_key) { const val = this.values[param.requires_nonempty_key] diff --git a/starpilot/system/the_galaxy/the_galaxy.py b/starpilot/system/the_galaxy/the_galaxy.py index 289feb378a..92fa4acfd8 100644 --- a/starpilot/system/the_galaxy/the_galaxy.py +++ b/starpilot/system/the_galaxy/the_galaxy.py @@ -6185,10 +6185,10 @@ def setup(app): }), 200 if key == "ForceOffroad": - if not _get_vehicle_parked(): + enabled = str_val.strip() in ("1", "true", "True") + if enabled and not _get_vehicle_parked(): return jsonify({"error": "Force Offroad is only available while the vehicle is in Park."}), 403 - enabled = str_val.strip() in ("1", "true", "True") params.put_bool("ForceOffroad", enabled) params.put_bool("ForceOnroad", False) update_starpilot_toggles()