OK thanks to a couple of guys answering questions, and a good deal of research on my part, I have my first script up and running. My daughters asked for hair dyes, so it works now. Each color is a Case, and the whole thing is scripted Items…buy a bottle of dye, doubleclick, and your hair color changes. Anyway.....It took 8 Cases to do the script, and each case is 75 lines, it's a fairly long script. It will grow extremely long when I add 4 more hair styles in all 8 available colors, this is only 1 hairstyle male and 1 for female. I'll post it here for reference, but my question is, can a variable take the place of a bunch of lines in a case like this? > Case 0 > > If GetPlayerSprite(Index) = 0 Then > Call SetPlayerSprite(Index, 30) > Call TakeItem(Index, 96) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 31 Then > Call SetPlayerSprite(Index, 30) > Call TakeItem(Index, 96) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 32 Then > Call SetPlayerSprite(Index, 30) > Call TakeItem(Index, 96) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 33 Then > Call SetPlayerSprite(Index, 30) > Call TakeItem(Index, 96) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 34 Then > Call SetPlayerSprite(Index, 30) > Call TakeItem(Index, 96) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 34 Then > Call SetPlayerSprite(Index, 30) > Call TakeItem(Index, 96) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 36 Then > Call SetPlayerSprite(Index, 30) > Call TakeItem(Index, 96) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 15 Then > Call SetPlayerSprite(Index, 37) > Call TakeItem(Index, 96) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 38 Then > Call SetPlayerSprite(Index, 37) > Call TakeItem(Index, 96) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 39 Then > Call SetPlayerSprite(Index, 37) > Call TakeItem(Index, 96) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 40 Then > Call SetPlayerSprite(Index, 37) > Call TakeItem(Index, 96) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 41 Then > Call SetPlayerSprite(Index, 37) > Call TakeItem(Index, 96) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 42 Then > Call SetPlayerSprite(Index, 37) > Call TakeItem(Index, 96) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 43 Then > Call SetPlayerSprite(Index, 37) > Call TakeItem(Index, 96) > SendPlayerData(Index) > > End if > > Exit Sub > > Case 1 > > If GetPlayerSprite(Index) = 0 Then > Call SetPlayerSprite(Index, 31) > Call TakeItem(Index, 97) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 30 Then > Call SetPlayerSprite(Index, 31) > Call TakeItem(Index, 97) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 32 Then > Call SetPlayerSprite(Index, 31) > Call TakeItem(Index, 97) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 33 Then > Call SetPlayerSprite(Index, 31) > Call TakeItem(Index, 97) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 34 Then > Call SetPlayerSprite(Index, 31) > Call TakeItem(Index, 97) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 35 Then > Call SetPlayerSprite(Index, 31) > Call TakeItem(Index, 97) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 36 Then > Call SetPlayerSprite(Index, 31) > Call TakeItem(Index, 97) > SendPlayerData(Index) > > > ElseIf GetPlayerSprite(Index) = 15 Then > Call SetPlayerSprite(Index, 40) > Call TakeItem(Index, 97) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 38 Then > Call SetPlayerSprite(Index, 40) > Call TakeItem(Index, 97) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 39 Then > Call SetPlayerSprite(Index, 40) > Call TakeItem(Index, 97) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 37 Then > Call SetPlayerSprite(Index, 40) > Call TakeItem(Index, 97) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 41 Then > Call SetPlayerSprite(Index, 40) > Call TakeItem(Index, 97) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 42 Then > Call SetPlayerSprite(Index, 40) > Call TakeItem(Index, 97) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 43 Then > Call SetPlayerSprite(Index, 40) > Call TakeItem(Index, 97) > SendPlayerData(Index) > > End If > > Exit Sub > > Case 2 > > If GetPlayerSprite(Index) = 0 Then > Call SetPlayerSprite(Index, 33) > Call TakeItem(Index, 98) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 30 Then > Call SetPlayerSprite(Index, 33) > Call TakeItem(Index, 98) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 32 Then > Call SetPlayerSprite(Index, 33) > Call TakeItem(Index, 98) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 31 Then > Call SetPlayerSprite(Index, 33) > Call TakeItem(Index, 98) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 34 Then > Call SetPlayerSprite(Index, 33) > Call TakeItem(Index, 98) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 35 Then > Call SetPlayerSprite(Index, 33) > Call TakeItem(Index, 98) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 36 Then > Call SetPlayerSprite(Index, 33) > Call TakeItem(Index, 98) > SendPlayerData(Index) > > > ElseIf GetPlayerSprite(Index) = 15 Then > Call SetPlayerSprite(Index, 43) > Call TakeItem(Index, 98) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 38 Then > Call SetPlayerSprite(Index, 43) > Call TakeItem(Index, 98) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 39 Then > Call SetPlayerSprite(Index, 43) > Call TakeItem(Index, 98) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 37 Then > Call SetPlayerSprite(Index, 43) > Call TakeItem(Index, 98) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 41 Then > Call SetPlayerSprite(Index, 43) > Call TakeItem(Index, 98) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 42 Then > Call SetPlayerSprite(Index, 43) > Call TakeItem(Index, 98) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 40 Then > Call SetPlayerSprite(Index, 43) > Call TakeItem(Index, 98) > SendPlayerData(Index) > > End If > > Exit Sub > > Case 3 > > If GetPlayerSprite(Index) = 0 Then > Call SetPlayerSprite(Index, 32) > Call TakeItem(Index, 99) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 30 Then > Call SetPlayerSprite(Index, 32) > Call TakeItem(Index, 99) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 33 Then > Call SetPlayerSprite(Index, 32) > Call TakeItem(Index, 99) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 31 Then > Call SetPlayerSprite(Index, 32) > Call TakeItem(Index, 99) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 34 Then > Call SetPlayerSprite(Index, 32) > Call TakeItem(Index, 99) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 35 Then > Call SetPlayerSprite(Index, 32) > Call TakeItem(Index, 99) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 36 Then > Call SetPlayerSprite(Index, 32) > Call TakeItem(Index, 99) > SendPlayerData(Index) > > > ElseIf GetPlayerSprite(Index) = 43 Then > Call SetPlayerSprite(Index, 15) > Call TakeItem(Index, 99) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 38 Then > Call SetPlayerSprite(Index, 15) > Call TakeItem(Index, 99) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 39 Then > Call SetPlayerSprite(Index, 15) > Call TakeItem(Index, 99) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 37 Then > Call SetPlayerSprite(Index, 15) > Call TakeItem(Index, 99) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 41 Then > Call SetPlayerSprite(Index, 15) > Call TakeItem(Index, 99) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 42 Then > Call SetPlayerSprite(Index, 15) > Call TakeItem(Index, 99) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 40 Then > Call SetPlayerSprite(Index, 15) > Call TakeItem(Index, 99) > SendPlayerData(Index) > > End If > > Exit Sub > > > Case 4 > > If GetPlayerSprite(Index) = 0 Then > Call SetPlayerSprite(Index, 34) > Call TakeItem(Index, 100) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 30 Then > Call SetPlayerSprite(Index, 34) > Call TakeItem(Index, 100) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 32 Then > Call SetPlayerSprite(Index, 34) > Call TakeItem(Index, 100) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 31 Then > Call SetPlayerSprite(Index, 34) > Call TakeItem(Index, 100) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 33 Then > Call SetPlayerSprite(Index, 34) > Call TakeItem(Index, 100) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 35 Then > Call SetPlayerSprite(Index, 34) > Call TakeItem(Index, 100) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 36 Then > Call SetPlayerSprite(Index, 34) > Call TakeItem(Index, 100) > SendPlayerData(Index) > > > ElseIf GetPlayerSprite(Index) = 15 Then > Call SetPlayerSprite(Index, 39) > Call TakeItem(Index, 100) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 38 Then > Call SetPlayerSprite(Index, 39) > Call TakeItem(Index, 100) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 43 Then > Call SetPlayerSprite(Index, 39) > Call TakeItem(Index, 100) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 37 Then > Call SetPlayerSprite(Index, 39) > Call TakeItem(Index, 100) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 41 Then > Call SetPlayerSprite(Index, 39) > Call TakeItem(Index, 100) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 42 Then > Call SetPlayerSprite(Index, 39) > Call TakeItem(Index, 100) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 40 Then > Call SetPlayerSprite(Index, 39) > Call TakeItem(Index, 100) > SendPlayerData(Index) > > End If > > Exit Sub > > Case 5 > > If GetPlayerSprite(Index) = 34 Then > Call SetPlayerSprite(Index, 0) > Call TakeItem(Index, 101) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 30 Then > Call SetPlayerSprite(Index, 0) > Call TakeItem(Index, 101) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 32 Then > Call SetPlayerSprite(Index, 0) > Call TakeItem(Index, 101) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 31 Then > Call SetPlayerSprite(Index, 0) > Call TakeItem(Index, 101) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 33 Then > Call SetPlayerSprite(Index, 0) > Call TakeItem(Index, 101) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 35 Then > Call SetPlayerSprite(Index, 0) > Call TakeItem(Index, 101) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 36 Then > Call SetPlayerSprite(Index, 0) > Call TakeItem(Index, 101) > SendPlayerData(Index) > > > ElseIf GetPlayerSprite(Index) = 15 Then > Call SetPlayerSprite(Index, 41) > Call TakeItem(Index, 101) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 38 Then > Call SetPlayerSprite(Index, 41) > Call TakeItem(Index, 101) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 43 Then > Call SetPlayerSprite(Index, 41) > Call TakeItem(Index, 101) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 37 Then > Call SetPlayerSprite(Index, 41) > Call TakeItem(Index, 101) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 39 Then > Call SetPlayerSprite(Index, 41) > Call TakeItem(Index, 101) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 42 Then > Call SetPlayerSprite(Index, 41) > Call TakeItem(Index, 101) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 40 Then > Call SetPlayerSprite(Index, 41) > Call TakeItem(Index, 101) > SendPlayerData(Index) > > End If > > Exit Sub > > Case 6 > > If GetPlayerSprite(Index) = 0 Then > Call SetPlayerSprite(Index, 35) > Call TakeItem(Index, 102) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 30 Then > Call SetPlayerSprite(Index, 35) > Call TakeItem(Index, 102) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 32 Then > Call SetPlayerSprite(Index, 35) > Call TakeItem(Index, 102) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 31 Then > Call SetPlayerSprite(Index, 35) > Call TakeItem(Index, 102) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 33 Then > Call SetPlayerSprite(Index, 35) > Call TakeItem(Index, 102) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 34 Then > Call SetPlayerSprite(Index, 35) > Call TakeItem(Index, 102) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 36 Then > Call SetPlayerSprite(Index, 35) > Call TakeItem(Index, 102) > SendPlayerData(Index) > > > ElseIf GetPlayerSprite(Index) = 15 Then > Call SetPlayerSprite(Index, 42) > Call TakeItem(Index, 102) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 38 Then > Call SetPlayerSprite(Index, 42) > Call TakeItem(Index, 102) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 43 Then > Call SetPlayerSprite(Index, 42) > Call TakeItem(Index, 102) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 37 Then > Call SetPlayerSprite(Index, 42) > Call TakeItem(Index, 102) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 41 Then > Call SetPlayerSprite(Index, 42) > Call TakeItem(Index, 102) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 39 Then > Call SetPlayerSprite(Index, 42) > Call TakeItem(Index, 102) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 40 Then > Call SetPlayerSprite(Index, 42) > Call TakeItem(Index, 102) > SendPlayerData(Index) > > End If > > Exit Sub > > Case 7 > > If GetPlayerSprite(Index) = 0 Then > Call SetPlayerSprite(Index, 36) > Call TakeItem(Index, 103) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 30 Then > Call SetPlayerSprite(Index, 36) > Call TakeItem(Index, 103) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 32 Then > Call SetPlayerSprite(Index, 36) > Call TakeItem(Index, 103) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 31 Then > Call SetPlayerSprite(Index, 36) > Call TakeItem(Index, 103) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 33 Then > Call SetPlayerSprite(Index, 36) > Call TakeItem(Index, 103) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 35 Then > Call SetPlayerSprite(Index, 36) > Call TakeItem(Index, 103) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 34 Then > Call SetPlayerSprite(Index, 36) > Call TakeItem(Index, 103) > SendPlayerData(Index) > > > ElseIf GetPlayerSprite(Index) = 15 Then > Call SetPlayerSprite(Index, 38) > Call TakeItem(Index, 103) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 39 Then > Call SetPlayerSprite(Index, 38) > Call TakeItem(Index, 103) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 43 Then > Call SetPlayerSprite(Index, 38) > Call TakeItem(Index, 103) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 37 Then > Call SetPlayerSprite(Index, 38) > Call TakeItem(Index, 103) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 41 Then > Call SetPlayerSprite(Index, 38) > Call TakeItem(Index, 103) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 42 Then > Call SetPlayerSprite(Index, 38) > Call TakeItem(Index, 103) > SendPlayerData(Index) > > ElseIf GetPlayerSprite(Index) = 40 Then > Call SetPlayerSprite(Index, 38) > Call TakeItem(Index, 103) > SendPlayerData(Index) > > End If > > Exit Sub > > Case Else > Call PlayerMsg(Index, "No item script found. Please contact an admin to solve this problem.", WHITE) > Exit Sub