the dollar sign in objects has a different meaning than in messages: it's the first argument to the patch (e.g.: when used as an abstraction [mypatch 123], then $1 in an object is replaced with 123). Ultimately the arguments to [pack] are the initial values, but (assuming they work in heavy) they will be replaced by the inputs. So you could use
(number input)
| [loadbang]
| |
| [20(
| |
[pack f f]
|
[line]
or
(number input)
|
[pack f 20] // check that this works in heavy
|
[line]
or even, in this specific case with [line]:
(number input)
|
[t f b]
| |
| [20(
| |
[line]