I figured that was the case. I came up with a solution for myself also.
I created a “database” if you want to call it that. assigning a string to a number 1-26 (the number of keys required). I attached the code below so i dont have to explain the whole thing. the gist of it is, the original comp is named “1”. i have all of the attributes attached there and linked as needed to a control later within “1”. as i duplcate it in the project window, it updates the name 1-26. The code under the source reads the name of the comp and associates that to a string from which it gets the content of the key.
the downside is, since i wanted there to be a control layer within the “Keyboard” comp, ihave to individually link the attributes of each comp to the control layer manually. I did make it simpler by attaching all of the key attributes to one null layer within “Key” but then i still need to link all of those to the control layer in “Keyboard”
If you can think of a better system for that, that would be greatly appreciated. but right now i think its as dynamic as it can get
a = " ";
c = 0; //controls if it uses the first or second character//
//this allows me to use the same code to generate the number and letter//
//i just need to change this to 1 to generate the number instead//
if (thisComp.name == 1) {a = "q1"}
if (thisComp.name == 2) {a = "w2"}
if (thisComp.name == 3) {a = "e3"}
if (thisComp.name == 4) {a = "r4"}
if (thisComp.name == 5) {a = "t5"}
if (thisComp.name == 6) {a = "y6"}
if (thisComp.name == 7) {a = "u7"}
if (thisComp.name == 8) {a = "i8"}
if (thisComp.name == 9) {a = "o9"}
if (thisComp.name == 10) {a = "p0"}
if (thisComp.name == 11) {a = "a@"}
if (thisComp.name == 12) {a = "s#"}
if (thisComp.name == 13) {a = "d&"}
if (thisComp.name == 14) {a = "f*"}
if (thisComp.name == 15) {a = "g-"}
if (thisComp.name == 16) {a = "h+"}
if (thisComp.name == 17) {a = "j="}
if (thisComp.name == 18) {a = "k("}
if (thisComp.name == 19) {a = "l)"}
if (thisComp.name == 20) {a = "z_"}
if (thisComp.name == 21) {a = "x$"}
if (thisComp.name == 22) {a = "c\""}
if (thisComp.name == 23) {a = "v'"}
if (thisComp.name == 24) {a = "b:"}
if (thisComp.name == 25) {a = "n;"}
if (thisComp.name == 26) {a = "m/"}
a[c];