secondlife / secondlife/viewer

`object.content.save` silently stops a script when `running` is omitted

Open
#6,180 1 comment 0 reactions 1 assignee View on GitHub

@Rider-Linden is already working on this.

Since Aug 26, 2026.

bug SLua
Dominant language
C++
Stars
299
Forks
146
Avg merge
1d 9h
Merged PRs (30d)
88

Description

Repo: viewer
Labels: bug, protocol, data-loss

Summary

object.content.save accepts an optional running parameter that sets the script's run state
after compilation. When the parameter is absent it defaults to false, which stops a script
that was previously running
.

Evidence

indra/newview/llscripteditorws.cpp, saveScript:

bool is_running = params.has("running") ? params["running"].asBoolean() : false;

The value is passed to LLScriptAssetUpload as the post-compile run state.

Impact

An optional field whose absence destroys state. It reads like a safe default and is not. Any
third-party client that saves a running script without explicitly echoing running: true will
silently stop it, with no error and no indication anything happened.

Proposed fix

When running is absent, leave the script's current run state unchanged. Only an explicit
true/false should change it.

Notes

Documented as a stopgap with a warning callout in the ObjectContentSave section of
Message_Interfaces.md. That callout should be revisited if this is fixed.

Test plan
  • test steps:

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.