Ah, glad to see it worked out, congratulations!
As for backspace that is a tricky one, not sure if I can manage to get it right for you however, let's take the previous example mentioned with Var1 and Var2 (just so that we are trying to limit the number of variables to a manageable number). I am afraid I couldn't find anything related to arrays or even groups (if it uses a different name) in Playmaker.
What you suggested seems the best yes. Though, you can try something (but I guess this will work perfectly if you are going to only delete the last letter typed); from the previous example, the last letter should be still stored in Var1 even if you have pressed the backspace since from my own understanding that isn't a "letter" it is a bool variable if the player presses it deletes stuff if not, keep going. In which case I would use a "String Contains" action in Playmaker and enter String Variable parameter as Var2 and Contains String parameter as Var1, the event if true would be to alter the String (using String Builder again) and if false would do nothing.
Though I don't believe this will work for more than one letter unless you implement what you mentioned with making 10 variables and limit the characters entered in the text field.
I believe this might be done however in another way, yet it might be a little bit complex. Here is how:
You will need the following variables:
letterEntered (Var1 in previous example) - String Variable
stringTyped (Var2 in previous example) - String Variable
stringLength (new variable) - Int Variable.
lengthToRemove (new variable) - Int Variable.
The scenario would be as follows:
lengthToRemove initialized to 0
1- Player enters letter "U"
2- letterEntered = U
3- stringTyped = U, stringLength = Length of stringTyped = 0
4- Player enters letter "N"
5- letterEntered = N
6- stringTyped = UN, stringLength = Length of stringTyped = 1
7- Player enters letter "I"
8- letterEntered = N
9- stringTyped = UNI, stringLength = Length of stringTyped = 2
10- Player presses Backspace once
The States:
Setup:
In same state as the letterEntered have stringLength increment by 1 and the String Builder do its own normal trick as before (you will just add one more action to increment the stringLength variable).
Create two Events:
1- BackspacePressed
2- FINISHED (default) this is when backspace isn't pressed.
When backspace is pressed which you will test in the state you have the letterEntered change it would trigger BackspacePressed and that would go to a state that will have actions:
1- Subtract from the stringLength 1 (since it was pressed once).
2- Use Get String Left (action in Playmaker) and feed the String Variable parameter stringTyped and the Char Count parameter stringLength.
3- Increment lenghtToRemove by 1 (so when the action is repeated the variable is already incremented to delete the second last letter and so on).
That should get you the required result, when the player/user presses backspace again it should increment lengthToRemove by 1 and from 0 it goes to 1 and so on.
I hope this help.