This issue was opened 3 years ago and still hasn't been resolved. On change events do not fire for programmatic changes in the sheet:opened event, which makes it incredibly hard to initialize values properly. This, in itself, is already a workaround that I'm doing because number inputs aren't stored as ints but rather as strings. Here's a simple example, in pug and js: input(name="attr_number_string", type="number")  // A string input span(name="attr_number")  // Display the numeric version of the attribute script     initialsValues = {number_string: "10"}     on("change:number_string", () => {    // This event handler works normally         getAttrs(["number_string"], values => {             setAttrs({number: parseInt(value.number_string)})         })     })     on("sheet:opened", () => {         setAttrs(initialValues)     }) In the above example, on sheet open, the `number_string` value is set, but the event doesn't propagate. In a normal event handler, it would.