Add using System;, reset outputCharacter at the end of the for loop (or move declaration into the loop), and does the program handle characters that are not multiples of 9? I'll have to check your golfed code from earlier when I'm not on a phone. Otherwise, good job!
@MDXF I created the "set face" and "get face index value" specifically to expand on memory while also adding to something else, like arithematic or algorithms
Cubically [Variant], 163 bytes
■𝟝f₀𝟛₂f₁𝟛₅f₂𝟛₅R₁R₃F₁F₃$-₀𝟝(+𝟝f₄6:7(f₅6:7(f₃6*₅4₀@0⁶:3₀-𝟙)6:7(f₃6*₅4₀+𝟙@0⁶:3₀-𝟙)6:7(f₃6*₅4₀+𝟚@0⁶:3₀-𝟙)6:7(f₃6*₅4₀+𝟛@0⁶:3₀-𝟙)6:7(f₃6*₅4₀+𝟜@0⁶:3₀-𝟙)6@𝟙₀:5₀-𝟙)6:4₀-𝟜)6
This is a variant of Cubically. It isn't as fun to use as the original, but it ca...
I was going to have it so if you specified a layer and pulled a value from the notepad, it'd treat the notepad as a tape and pull the nth value from the notepad, where n is the specified layer.
@MDXF If you aren't using apostrophes yet, may I recommend using apostrophes as an alias of 3? It'd let you do stuff like R'DR, assuming those commands implicitly are called with 1.
@MDXF I'm rewriting the language and reorganizing the codepage, as well as changing a lot of operators. I'll show you when I'm done, and hopefully that gives you some ideas.
Why not change Pi to "an arbitrary input stream of digits" or "an arbitrary substring of pi, starting after the decimal point" or something? Most languages will have trouble taking 200M digits of input as a string and especially as a number. Keep in mind that 200M bytes is 200MB!