Tak też myślałem, źle przechwytujesz lore. Splitujesz linijkę lore na dwukropku i pokażę na przykładzie linijki 7., że źle to robisz. Zauważ, że przed liczbą masz spację i zapewne ona odpowiada za niedziałający skrypt.
# Linijka nr 7 twojego lore to "&7Wymagany poziom: &f4"
# Po splitowaniu na dwukropku niekolorowanej linijki 7. otrzymujesz:
# {_lore7::1} to jest "Wymagany poziom"
# {_lore7::2} to jest " 4"
Na twoim miejscu przechwytywałbym tę liczbę za pomocą subtextu, byłoby to o wiele wygodniejsze. Podam przykład do linijki 7, resztę dorobisz sobie samemu.
set {_lore} to uncoloured line 7 of player's tool's lore
set {_wartosc} to last (length of {_lore} - 17) characters of {_lore}
add ({_wartosc} parsed as number) to {twojaZmienna}
# 'length of {_lore}' reprezentuje długość niekolorowanej linijki 7.
# Odejmujemy od niej 17, gdyż tyle jest znaków przed tą liczbą (wliczając spacje!)