I have only one magic user in my game and he doesn't learn any spells by leveling up. Instead all spells in the game are in spellbooks in the form of runes or other symbols and in order to be learned they must first be deciphered to trigger a quest to gather spell ingredients and a "Mastery Test" minigame to use it properly in order to obtain it as a usable skill.
The spells are set up as a cryptogram where the letters are switched with runes or other symbols rather than with other letters. The Alchemy Recipes are done the same way, except leaving off the quest and mastery test of course.
The way I want it to be set up is as sort of minigame/puzzle where the player has to decode it themselves. This goes for both the actual spells in the Bibliotheca Arcanum and the Alchemy Recipes. The CodeKey/Legend would be available to examine and memorize outside of the minigame, but during the minigame the player would have to remember what symbol stands for what letter on their own.
Each page/spell/recipe would be translated separately.
Each occurrence of a letter would be translated at once; you know, all "E"s, all "A"s, etc...
Recipes and normal pages can be translated one right after another, but with spells once one is translated it must be mastered before another can be translated even if they are of the same level. For instance Level One has 5 spells(4 Elemental Summons and one "Illumis" Light Orb), you master the Fire Summons automatically as part of the story, but after that you can choose any one of the others on that level to translate next. All spells on a level must be mastered before advancing to the next level.
Anyway, I would rather the puzzle script didn't rely on changing fonts because I want it able to be used with symbols I make up as well as the Futhark runes and I have absolutely no clue how to make a font file that a computer would recognize. Also, I want the player to be able to insert any letter they want when trying to translate it and only get an error if it is wrong when they try to confirm the page as completely translated instead of when they try putting the letter in. At any time pressing the cancel button will take the player back to the Key Items menu.
Here are some mock-ups to help show what I mean:
Spoiler
This is the code-key/legend the player would have.
(I noticed I will have to change the page images because I included both capital and lowercase runes. Double the number of runes would thereby double the player's confusion and necessitate associating each letter with 2 symbols rather than 1. I'd rather avoid that. 26 characters is enough! :p )

Anyway...
Step 1:
The spellbook would be used from the Key Items menu and the pages would appear full size.

Step 2:
Left and right arrows would be used to flip between the pages with the currently selected page/spell outlined.

Step 3:
Once an untranslated page/spell is decided on the action button would be pressed causing it to zoom out(be replace by a smaller image most likely).

Step 4:
It would then be overlaid by a translucent color.

Step 5:
And the runes would appear but with more space between the lines. Below the runes would be a dash corresponding to each symbol/letter. From this point on the cancel button will bring up a prompt with text asking if you want to discard your changes and yes and no buttons rather than taking you directly back to the Key Items menu, selecting "Yes" resets the puzzle and takes the player back to the Key Items. (Sorry, I realized I left off one dash for the word "Spirit" on all 3 occurrences of it in this mock-up.)

Step 6:
Left and right arrows would select the rune/symbol to translate, with a white underline indicating it and blue box highlighting all occurrences of that rune. (Sorry, I realized I left off one dash for the word "Spirit" on all 3 occurrences of it in this mock-up.)

Step 7:
When the action button is pressed a letter would appear on the dashes associated with that rune. Left and right arrows would cycle through the alphabet. When the player thinks they have the right letter they press the action button once more to finalize it and go on to the next rune to translate. (Sorry, I realized I left off one dash for the word "Spirit" on all 3 occurrences of it in this mock-up.)

Step 8:
When the player puts the last letter in a prompt will appear in the middle of the screen. The prompt will have a bit of text and yes and no buttons. Left and right arrows to pick a button and action button to press it. Answering yes will either give an error saying it is wrong and boot the player right back to Step 5 or say that you got it right, replace the rune page with the English page in the spellbook, and begin the quest to earn that spell. ("Alchemy Recipes" are a separate book and do not have quests associated with them.) Answering no will just take the player back to Step 5. (I finally realized I had left it off and added the missing dash.)

(I noticed I will have to change the page images because I included both capital and lowercase runes. Double the number of runes would thereby double the player's confusion and necessitate associating each letter with 2 symbols rather than 1. I'd rather avoid that. 26 characters is enough! :p )

Anyway...
Step 1:
The spellbook would be used from the Key Items menu and the pages would appear full size.

Step 2:
Left and right arrows would be used to flip between the pages with the currently selected page/spell outlined.

Step 3:
Once an untranslated page/spell is decided on the action button would be pressed causing it to zoom out(be replace by a smaller image most likely).

Step 4:
It would then be overlaid by a translucent color.

Step 5:
And the runes would appear but with more space between the lines. Below the runes would be a dash corresponding to each symbol/letter. From this point on the cancel button will bring up a prompt with text asking if you want to discard your changes and yes and no buttons rather than taking you directly back to the Key Items menu, selecting "Yes" resets the puzzle and takes the player back to the Key Items. (Sorry, I realized I left off one dash for the word "Spirit" on all 3 occurrences of it in this mock-up.)

Step 6:
Left and right arrows would select the rune/symbol to translate, with a white underline indicating it and blue box highlighting all occurrences of that rune. (Sorry, I realized I left off one dash for the word "Spirit" on all 3 occurrences of it in this mock-up.)

Step 7:
When the action button is pressed a letter would appear on the dashes associated with that rune. Left and right arrows would cycle through the alphabet. When the player thinks they have the right letter they press the action button once more to finalize it and go on to the next rune to translate. (Sorry, I realized I left off one dash for the word "Spirit" on all 3 occurrences of it in this mock-up.)

Step 8:
When the player puts the last letter in a prompt will appear in the middle of the screen. The prompt will have a bit of text and yes and no buttons. Left and right arrows to pick a button and action button to press it. Answering yes will either give an error saying it is wrong and boot the player right back to Step 5 or say that you got it right, replace the rune page with the English page in the spellbook, and begin the quest to earn that spell. ("Alchemy Recipes" are a separate book and do not have quests associated with them.) Answering no will just take the player back to Step 5. (I finally realized I had left it off and added the missing dash.)

Spoiler
http://www.dafont.com/elder-futhark.font
Elder Futhark is actually the runes used by the Norse around the time of the Vikings.
Vikings were the famous Norse raiders, not a separate culture. The Norse were among the earliest recorded cultures with widespread literacy.
It was also what J.R.R. Tolkien based his Ancient Dwarven on.
Elder Futhark is actually the runes used by the Norse around the time of the Vikings.
Vikings were the famous Norse raiders, not a separate culture. The Norse were among the earliest recorded cultures with widespread literacy.
It was also what J.R.R. Tolkien based his Ancient Dwarven on.
"Bot's Al Bhed" script has already been suggested as the closest thing the person knew of to what I was looking for. It doesn't fit the bill though and doesn't appear to be capable of being edited to work either(though I suppose I could be wrong).