no moral- [beta v1.7d]

by Khalfani

Download disabled

The designer of this FontStruction has chosen not to make it available for download from this website by choosing an “All Rights Reserved" license.

Please respect their decision and desist from requesting license changes in the comments.

If you would like to use the FontStruction for a specific project, you may be able to contact the designer directly about obtaining a license.

anything goes in this book-style pixel font. it is for secret project.

maximum of 11 pixels tall (plus 3 px descender below)


[1.7d] Still working on CJK and Hangul. Still not even halfway there!!!

[beta 1.7c] More CJK, Aboriginal Canadian Syllabics, Bengali

[beta 1.7b] More CJK but still not nearly enough

[beta 1.7a] I found a stray pixel which stretched the font two pixels too high. It's gone now.

[beta 1.7] ??? stuff? korean jamo, like 0.3% more of the CJK, Greek Extended, and one of the East Asian scripts (the name I forgot :<)

[beta 1.6d] assorted CJK and symbols

[beta 1.6c] devanagari (hindi script), thai

[beta 1.6b] thai and other junks. some characters improved


Congrations! FontStrunct Staff have deemed your FontStrunction worthy of stuff. “no moral-” is now a Pick.

Comment by Khalfani 6th august 2018

IDK man, I think it's pretty darn cute.

Comment by Houlaiziaa 6th august 2018

HOLY CRUMB! It seems I found a script piece to incercept for evil scientist experiments. Creating characters for CJK Unified, Hangul, or any Unicode Block in Plane 1 (0000-FFFF)!!!!! Proof of this will appear when I add common Chinese (Japanese kanji) characters for this font, and not just the Kangxi radicals. Good thing the script is open source.

[Other Unicode planes' characters can't really be added to a font. But maybe exporting can be changed as well...]

Comment by Khalfani 15th september 2018

How did you do that?

Comment by anonymous-1520403 16th september 2018


I use Google Chrome developer tools to override the editor script with a modified local version. (The editor script should be called "fontstructor" and starts with "Generated by Haxe" and other licensing information. It's very long, like 30k+ lines.) Near the end of the script is an array of Unicode blocks. (its name is "blocks". Search for "blocks" in the script and it's the last result) The array is defined with start positions (in decimal), end positions (also decimal), and name. It's easy to add more blocks to that array, and once you refresh the page with your override script, switch to the "Unicode Letter Sets" in Expert Mode and your new blocks will appear to select!!! 

The missing blocks you can add are very large which is probably why Fontstruct excludes them anyway. I defined the CJK block as 41 parts of 512 characters so it doesn't lag. I'll try to post a youtube tutorial soon, sorry if this explanation isn't clear enough

Comment by Khalfani 16th september 2018

I might have found something even worse in UnicodeRange.hx ... I'm attempting a new mod tomorrow. If it works, then any of the characters in all Unicode planes can be added to a font. Fontstructions could contain all the emojis and other junk like Cuneiform, Linear B, and Math Alphanumeric Symbols. I hope it works lol!!

The real question is who will construct these new huge blocks!!! (will surely release youtube tutorial.)

Comment by Khalfani 19th september 2018

Wow lol, I once tried to restore a font I messed up with brickswapping via firefox dev tool but i didnt understand anything of it. lol

Comment by Sed4tives 19th september 2018

It doesn't seem to work. I'll find out later :(

Comment by Khalfani 19th september 2018

Something on the server is causing astral codepoints to be truncated to 65535. Which means they can't be saved (it would cause duplicates).

But I still might find a way.

Comment by Khalfani 20th september 2018

7000 character "milestone". the 7000th character added was "rightwards white arrow" at U+21E8. I will say a milestone every 3000 characters after this

Comment by Khalfani 14th october 2018

is it me or is the font name bolded?

Comment by anonymous-1520403 17th october 2018

It's you trippin' 

It's always displayed in bold :P

Comment by Sed4tives 17th october 2018

oh... Also, Khalfani, plane 1 is 10000-1ffff, plabe 0 is 0-ffff...

Comment by anonymous-1520403 17th october 2018

tis true, i probably meant the first plane but forgot the real names.

Comment by Khalfani 17th october 2018

10000th glyph is unicode 156E (in Unified Canadian Aboriginal Syllabics). five digits yay!! next milestone 13k 

Comment by Khalfani 19th january 2019

WOW! That is a lot!

Comment by anonymous-1520403 19th january 2019

Jesus, that's a lot of Chinese characters. Adding custom scripts is a brilliant idea. Are these hand-drawn? Extremely impressive.

Really unique distressed/quirky/(still) cute style.

Comment by Houlaiziaa 22nd april 2020

im back and apparently drawing more CJK

Comment by Khalfani 22nd july 2020

the 13,000th character is 敪. if other fonts aren't updated soon, this one may be the most characters font in fontstruct. too bad having a lot of characters is not a sign of quality nor being finished. :(

Comment by Khalfani 30th july 2020

Horrifying. Please continue.

(Have you considered adding characters by frequency? For example, a lot of Korean hangeul syllables aren't actually used in normal language.)

Comment by Houlaiziaa 31st july 2020

Cool!! And yeah I tried at first. I can't seem to find a good list of the most common CJK/Chinese/Kanji/...

As for the Hangeul, I actually found a list of the 2350 most common syllables (supposedly forming 99.9% of all Korean text), and am filling that out first. Thanks for concern!!

Comment by Khalfani 31st july 2020

While your font may not be the best aesthetically, by god does it have an awful lot of characters. Especially so for CJK ideographs, which require some hacking and fiddling to get to in the first place.

Comment by erictom333 16th may 2021

I have found this list of about 3000 chinese characters sorted by frequency… Too bad you'll have to set the encoding to GB2312 to see what they are because they aren't displayed correctly with the Win-1252 encoding…

Comment by Bryndan W. Meyerholt (BWM) 16th may 2021

Thats a neat list! Thanks for sharing!! Also yeah the aesthetic isn't the best lol!! The origin was I just digitized some block serifed letters i drew quickly on paper

Comment by Khalfani 16th may 2021

For some ideas on filling the PUA, here's the current draft of Unicode 14.0 delta (different from 13.0) code tables. There's also the July 2020Jan 2021, and another (I don't have a link here) Script Ad Hoc meetings and the Roadmaps,, and a bunch of other proposals at my disposal if you want.

Comment by erictom333 21st may 2021

Cool and thanks! Right now I'm trying to finish the most common Hangul characters. I'm about halfway through that...

Comment by Khalfani 21st may 2021

Good luck! I'd only dare touch Hangul if I could automate it. Besides, Hangul needs more than the 7x7 I set aside for East Asian scripts, likely even more than the 9x9 I've got going for Minecraftian, a script of my own creation with a similar structure (676 syllables, to be encoded in U+E45D through U+E6FF).

Comment by erictom333 21st may 2021

Here are the blocks I've pasted in:

{start:2144,end:2207,name:"Arabic Extended-B"},{start:2208,end:2303,name:"Arabic Extended-A"},

{start:6832,end:6911,name:"Combining Diacritics Extended"},

{start:7296,end:7311,name:"Cyrillic Extended-C"},{start:7312,end:7359,name:"Georgian Extended"},

{start:40960,end:41471,name:"Yi 1"},{start:41472,end:42127,name:"Yi 2"},{start:42128,end:42193,name:"Yi Radicals"},

{start:43824,end:43887,name:"Latin Extended-E"},

{start:57344,end:57599,name:"Private Use Area (E0)"},{start:57600,end:57855,name:"Private Use Area (E1)"},{start:57856,end:58111,name:"Private Use Area (E2)"},{start:58112,end:58367,name:"Private Use Area (E3)"},{start:58368,end:58623,name:"Private Use Area (E4)"},{start:58624,end:58879,name:"Private Use Area (E5)"},{start:58880,end:59135,name:"Private Use Area (E6)"},{start:59136,end:59391,name:"Private Use Area (E7)"},{start:59392,end:59647,name:"Private Use Area (E8)"},{start:59648,end:59903,name:"Private Use Area (E9)"},{start:59904,end:60159,name:"Private Use Area (EA)"},{start:60160,end:60415,name:"Private Use Area (EB)"},{start:60416,end:60671,name:"Private Use Area (EC)"},{start:60672,end:60927,name:"Private Use Area (ED)"},{start:60928,end:61183,name:"Private Use Area (EE)"},{start:61184,end:61439,name:"Private Use Area (EF)"},{start:61440,end:61695,name:"Private Use Area (F0)"},{start:61696,end:61951,name:"Private Use Area (F1)"},{start:61952,end:62207,name:"Private Use Area (F2)"},{start:62208,end:62463,name:"Private Use Area (F3)"},{start:62464,end:62719,name:"Private Use Area (F4)"},{start:62720,end:62975,name:"Private Use Area (F5)"},{start:62976,end:63231,name:"Private Use Area (F6)"},{start:63232,end:63487,name:"Private Use Area (F7)"},{start:63488,end:63743,name:"Private Use Area (F8)"},

This isn't all of them but it's a start.

Comment by erictom333 25th may 2021

@erictom333 The standard charsets can be modified as well, One thing is is that data is in base 64 so you'll need to decode it, but it does allow you to have non-continuous codepoints in the same block…

You could also add {start:43888,end:43967,name:"Cherokee Supplement"}, to the list (in the correct spot

Comment by Bryndan W. Meyerholt (BWM) 25th may 2021

The most characters, likely just for a little while...

I'm glad Fontstruct isn't crashing!! It is programmed quite well

Comment by Khalfani 27th may 2021

"থেমেগেছে" This word for some reason just look weird in this font

Comment by migyoroc 15th september 2021

@migyoroc it's because the vowel diacritic "e" is implemented improperly; it isn't given its own width. ideally this would be solved by giving it width and letting the text rendering engine to reorder the glyphs properly (so that e is placed *before* the consonant), but it seems like the creator of this font chose to treat it the same way as combining diacritics (so that it is placed on the left side of the consonant, without getting its width, so that it overlaps with the previous consonant)
fontstruct doesn't have opentype support or complex text rendering engine yet so proper indic support is impossible

Comment by Echo Heo (bluemon) 17th september 2021

because most importantly correct ligature forms are not possible to be dealt with without using ligatures; that means no conjuncts and irregular consonant+vowel combinations, like रु रू in devanagari and রু রূ শু in bengali

Comment by Echo Heo (bluemon) 17th september 2021

Also of Interest


Get the world’s leading font editor for OSX.

More from the Gallery

no moralby Khalfani
pentationby Khalfani
no moral- [beta v1.7d]by Khalfani
a e s t h e t i cby Khalfani
Textureby wolfkrim
Letterscape Graphical MLby linehand
Geodoni Extra Black Condensedby William Leverette (will.i.ૐ)
fs Pythagorasby William Leverette (will.i.ૐ)

From the Blog


The Numbers Competition Results


The Numbers Competition