>So there’s no way for an expression to change the value of the controller even if it’s on the same layer, right
That’s correct, unless the expression is on that controller’s value.
>Would you happen to have a good reading resource on how to set this up via a script?
There are some online training courses available (some free, I think), but first you need to decide if scripting will provide a workable solution. Expressions are live and immediate, where scripts are generally run only when you initiate them. So if setting the value of the expression controller is a one-shot thing, a script might be the way to go, but if you need the value to be updated automatically based on other values, then it’s probably not the right tool.