Oh, alright ^^;
There’s another way to prevent bad words, but it dramatically decreases creativity and would probably be more coding.
Have a list of words to choose and combine.
Ex:
list: tree, sun, water
You can choose as many words as you want, like treesun or watertree or even waterwater. Though I think the entire point of having nicknames is allowing us to be creative with names.
You can also forbid special characters/numbers. So if arkadion was a bad word, you couldn’t do _4rk4d10n_. Otherwise it will be stopped by the possible filters.
But then… there are other languages to be considered.