Search Unity

Bad Word Filter PRO - Solution against profanity and obscenity

Discussion in 'Assets and Asset Store' started by Stefan-Laubenberger, Jan 9, 2015.

  1. Emperor

    Emperor

    Joined:
    Feb 13, 2014
    Posts:
    41
    Hi Sir,

    Does it work on iOS too?
     
  2. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Yes, it works on all Unity build platforms.


    So long,
    Stefan
     
  3. Tri36em

    Tri36em

    Joined:
    Jul 8, 2017
    Posts:
    1
    Stefan,
    I would appreciate getting a string back of all the bad words/sentences in English as you stated above. We'd like mark everything manually. Thanks!
     
  4. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
  5. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    We've created a new promo video:



    Have fun :)
     
    Martin_H likes this.
  6. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Last edited: Jun 25, 2018
    twobob likes this.
  7. kaspyar

    kaspyar

    Joined:
    Feb 26, 2017
    Posts:
    4
    Hi, thanks for your plugin.
    But I have problem with making build on Windows 10 platform, i get such erors:
    Reference rewriter: Error: type `System.Net.WebClient` doesn't exist in target framework. It is referenced from BadWordFilter.dll at Crosstales.BWF.Util.CTWebClient.
    UnityEngine.Debug:LogError(Object)

    And other similar errors, can you help with it?

    keywords : UNITY_WSA UWP WinRT
     
  8. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi

    To build for WSA (UWP), you have to use the PRO version as mentioned in the description:
    Capture.PNG

    But you're lucky, we reduced the upgrade price also by 30% for the "Mega Sale":
    https://goo.gl/TzfWRc
     
    Last edited: Dec 4, 2017
  9. kaspyar

    kaspyar

    Joined:
    Feb 26, 2017
    Posts:
    4
    Thanks for your fast answer.
    I followed your advice and bought PRO version.
    But when I try to build I got this error:

    Assets\crosstales\BadWordFilter\Plugins\Scripts\ExtensionMethods.cs(229,34): error CS1061: 'Action' does not contain a definition for 'Method' and no extension method 'Method' accepting a first argument of type 'Action' could be found (are you missing a using directive or an assembly reference?)

    Please, help.
     
  10. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Sorry for the problems... :(
    Please open "Assets\crosstales\BadWordFilter\Plugins\Scripts\ExtensionMethods.cs" and delete the lines 213 - 269.
     
    Last edited: Dec 4, 2017
  11. kaspyar

    kaspyar

    Joined:
    Feb 26, 2017
    Posts:
    4
    Yes it helped, thanks.
    But need to delete lines 213-269
    One more question:
    Should I remove old not Pro version before import PRO?
     
  12. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
  13. InglewoodTechnology

    InglewoodTechnology

    Joined:
    Mar 7, 2016
    Posts:
    40
    Howdy, Stefan;

    Have been a happy BWF user, until the latest upgrade to 2.9.9. Now, the basic BadWordManager.Contains(string, sources[]) call always returns false, no errors or messages
    • I did not follow any sort of upgrade process, just downloaded the latest from asset store and let it import. Was this a mistake?
    • How can I debug this issue/validate my BWF configuration?
    Thompson
     
  14. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi Thompson

    Delete "Assets/crosstales/BadWordFilter" first and import the new version again.
    Please et me know if it works.

    Thx!


    Cheers
    Stefan
     
  15. InglewoodTechnology

    InglewoodTechnology

    Joined:
    Mar 7, 2016
    Posts:
    40
    Of course, so simple, resolved, thanks!

    Thompson

     
  16. InglewoodTechnology

    InglewoodTechnology

    Joined:
    Mar 7, 2016
    Posts:
    40
    Although, now that I have your attention;

    My sources include Chinese as well as other languages, so I believe I need to use the "Simple Check" option, which ignores regex settings in the BadWordManager. This means BWF will ignore the "Ignores Case" regex option, so BWF will fail to detect upper-case bad words. If this correct?

    Ultimately, I'd like to both check for Chinese and ignore case for my European languages, is this possible?
     
  17. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Definitely, check first Chinese with "Simple Check" enabled, then disable it and check the remaining sources. ;)
     
  18. eguchi-hisato

    eguchi-hisato

    Joined:
    Sep 13, 2015
    Posts:
    9
    i bought PRO version.
    i cannot build my project after importing this.

    unity 5.4.3f1
    Bad Word Filter PRO 2.9.9

    the error message i got is:

    UNetWeaver error: Exception :System.ArgumentException: An element with the same key already exists in the dictionary.
    at System.Collections.Generic.Dictionary`2[System.UInt32,System.UInt32].Add (UInt32 key, UInt32 value) [0x0007e] in /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:404
    at Mono.Cecil.MetadataSystem.SetReverseNestedTypeMapping (UInt32 nested, UInt32 declaring) [0x00000] in <filename unknown>:0

    let me know how to resolve this problem???
     
  19. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi

    Honestly, I don't think this has something to do with BWF.

    Can you please create a new empty project, import BWF and build it?
    That should work, please let me know.

    Cheers
    Stefan
     
  20. eguchi-hisato

    eguchi-hisato

    Joined:
    Sep 13, 2015
    Posts:
    9
    thank you for your quick reply!

    i can build when i create a new one.
    even if i import non-pro version(dll), i face to this issue??
     
  21. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Sorry, I don't understand. :(

    It works when you import BWF into an empty project, right?
    And what do you mean with the dll?
     
  22. eguchi-hisato

    eguchi-hisato

    Joined:
    Sep 13, 2015
    Posts:
    9
    sorry for my poor english...

    yeah, BWF can be imported into an empty project.

    i bought non-pro version too because i cannot build PRO version.
    i gave up to use PRO version and i tried to use non-pro version(https://assetstore.unity.com/packages/tools/localization/bad-word-filter-48397)
    after that, i can use this assets without any issue because i don't need to compile this asset to use.
     
  23. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    No problem, I'm just trying to find the problem.

    So, you own the DLL and PRO version?
    DLL works in your project and PRO doesn't, is that right?
     
  24. eguchi-hisato

    eguchi-hisato

    Joined:
    Sep 13, 2015
    Posts:
    9
    yes, i own two versions.

    in my project, DLL version works fine but PRO...
    i added some files to my project to find the problem.
    when i added only Common, BadWordFilter/Scripts/Util/Config.cs and Constants.cs, i can build.
    but, i faced to the problem again when i added BadWordFilter/Scripts/Util/Helper.cs.
    i think Helper.cs has any issues but i cannot find the problems...sorry
     
  25. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    The issue is, that the DLL and PRO versions have different "Common" folders.
    Just remove "Assets/Plugins/crosstales" and import ONLY ONE version of the tool.

    That should solve the problem.
     
  26. DaanyShaikh

    DaanyShaikh

    Joined:
    Feb 14, 2018
    Posts:
    1
    Hello Stefan,

    I am currently working on a bad language filter project on my course and was wondering if you can give me some notes on how to program one as I am very interested in this particular project
     
  27. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi Daany

    I wrote you a PM.


    Cheers
    Stefan
     
  28. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    I can confirm bad words filter is great.
     
    Stefan-Laubenberger likes this.
  29. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Thank you!

    If you like the product, please don't forget to rate it.


    Cheers
    Stefan
     
  30. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    Yeah, I thought I had.
    Seems like we never actually outed that build to anything other than android...
    I'll open the projects and see about a WebGL build, difficult to review with a completely internal project as reference
     
  31. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    Updated my review. Thanks man
    3 years ago

    Does what it says on the tin. Really very well.
    All these years on and still being incredibly well supported. PAY THE MONEY!
     
    Stefan-Laubenberger likes this.
  32. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Thank you very much for your kind words! This keeps me going the extra mile!

    I hope we stick around for the years to come and are able to provide you all with the tools you need and deserve.


    So long,
    Stefan
     
    twobob likes this.
  33. dansav

    dansav

    Joined:
    Sep 22, 2005
    Posts:
    510
    It looks great, but I just tried the current WebGL version and was quickly able to put in a bunch of bad words as long as I separated the bad word with a space so each half word did not trigger the filter. I could also write all the bad words I wanted to if I put in spaces between each letter. Is it possible you could modify your solution to deal with these situations -- maybe combine each two to three words, or flag situations with multiple single letters and spaces. I think you have the most robust and comprehensive system out there.
     
  34. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi

    Thank you for your interest in BWF!

    About the spaces: this was intentionally designed as it is. Otherwise, it could lead to more more false positives and would cost a lot of performance.
    But you could change the regexes to match those cases.
    On the other hand, if someone wants to swear, they will always find a way... The purpose of our tool is to catch >90% of the cases by delivering a great performance suitable for games.

    I hope you understand our take on this and I'm happy to provide you with further instructions to fine tune BWF for your case.
     
  35. dansav

    dansav

    Joined:
    Sep 22, 2005
    Posts:
    510
    Yes I would like the further instructions for that type of situation.
     
  36. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    You have to modify the bad words. Here is any example if you don't like people with the name "Dick" ;)
    \bd( )*i( )*c?( )*k\w*\b

    ( )* must be inserted between every character of the word.

    We could theoretically add this as an automatic option, but I'm unsure if it's a good idea, because as I wrote, this can slow down the performance drastically... So handle it with care and use it only for the most important words you want to detect that way.
     
    twobob likes this.
  37. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    Exactly. you cant stop em. but you can slow em down
     
    Stefan-Laubenberger likes this.
  38. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    @eguchi-hisato
    Please look here
    https://forum.unity.com/threads/motion-controller.229900/page-111#post-3588866
     
    Last edited: Aug 9, 2018
  39. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Important notice for all "standard" customers:

    We constantly try to push our assets to the next level by adding new features and deliver the best support for our customers. In the past we've kept updating the asset in a 2-month cycle. However, after careful consideration, we feel like this needs to happen at a faster pace. We've received numerous input from the community that a faster pace would help out a lot. Because Unity is ever evolving and we want to keep our assets relevant we need to be able to keep up the fast pace that is Unity's second nature. Packaging and maintaining a separate DLL-version poses a problem in regards to this goal.

    With this in mind, we decided to phase out the DLL-version by the end of August 2018.
    Besides being able to update the asset more often, we are convinced that phasing out the DLL-version in favor of the PRO version will also bring these improvements for our customers:
    1. More functionalities and supported platforms due the source code (e.g. Linux)
    2. Less frictions with different Unity versions within the same company
    3. Fast hotfixes and high priority support

    We understand that this may impact you negatively. However we hope with the upgrade-path we offer to you - our loyal DLL-customers - can alleviate your concerns and win you over once more:
    PRO edition

    Please rest assured we will continue to support and improve the PRO version over the years to come.

    I hope you understand our decision.


    Cheers
    Stefan
     
    Last edited: May 12, 2019
  40. joedurb

    joedurb

    Joined:
    Nov 13, 2013
    Posts:
    38
    BWF is not marking leetspeak by default. not sure how to enable.

    if I try a word: a$$ BWF will show it as Contains:True, and list ass as a bad word with GET, but will not mark it.
    It will mark ass but not a$$.

    I don't believe i have bumped anything. same behavior on Demo scene.

    Martians are a$$holes...
    Contains: True
    Get: assholes
    Replace: Martians are ********...
    Mark: Martians are a$$holes...

    My guess is mark is simply searching for assholes rather then a$$holes to mark... .
    Any simple fix for this? Can i get unconverted words via GET?
    In my use case, i am only interested in Marking, not replacing.
     
  41. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    I've sent you an email. ;)
     
  42. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Update regarding the deprecation of the standard package:

    The standard package is planned to be available (but no longer maintained) until December 2018. This will allow the transition to PRO with a 50% reduced upgrade-price for our existing customers.
    Afterwards, the package will vanish from the store and the upgrade path will become inaccessible.


    Edit:
    We managed to create an upgrade path for the standard version which will last forever.
    Therefore, customers of the DLL version can still upgrade to PRO for 50% of the full price.
     
    Last edited: Jan 22, 2019
  43. shochet

    shochet

    Joined:
    Dec 17, 2013
    Posts:
    30
    Trying out this plugin. Two quick questions:

    1) Is there a minimal install without fonts, textures, buttons, prefabs, etc - or a safe list of things that can be deleted and still have the API work? It is a surprisingly big installation 300+ files?

    2) When filtering it seems that once it finds a bad word it aggressively replaces it everywhere in the string. Example:
    BWFManager.ReplaceAll("grape") // returns "grape" which is correct
    BWFManager.ReplaceAll("grape rape") // returns "g**** ****"
    Why did it filter grape here? I'd expect it to return "grape ****"

    Thanks!
     
  44. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi

    All those files won't end up in the final build, so I won't bother deleting anything... However, if you really wanna delete some stuff, those folder can be removed:
    upload_2018-9-27_2-12-17.png

    About the replace issue: yes, you are right, there is a problem and it's already fixed. Please send me your invoice and I can provide you with the latest version.


    Cheers
    Stefan
     
  45. isokron

    isokron

    Joined:
    May 24, 2017
    Posts:
    1
    Hi, we're having all sorts of issues with the Bad Words filter not allowing words that 'should' be allowed (a clear example of this being that the default language config files don't allow the number '500' to be used). But then when the definition files are updated in results in lots of 'bad' words we don't want to allow are now being allowed. It'd be great if there was a way to define an 'acceptable' list of words in a file (that we could add things like the number '500' in) that would bypass all the unacceptable words definition files. Is it possible for us to do something like this?
     
  46. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi

    I tried BWF with "500" but it wasn't marked as bad word in any language...
    Can you give me an example?

    We decided to use regex for the detection of bad words because it's a very powerful way to handle the use-case. You could easily exclude the allowed words.
    However, a white list is probably easier for many customers and we have it on our future feature list. But it's not decided if and when we will add it.
    Meanwhile, please use regex - if you need any help send me an email.


    Cheers
    Stefan
     
    twobob likes this.
  47. samblakewilson

    samblakewilson

    Joined:
    Dec 26, 2018
    Posts:
    2
    Is there I way I can use this to censor steam games?
     
  48. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    Hi

    Can you please elaborate what you exactly mean?
    BWF is independent from any underlying store and would be part of your game, but it can't censor words outside of the app.
     
  49. samblakewilson

    samblakewilson

    Joined:
    Dec 26, 2018
    Posts:
    2
    Steam is a gaming site where you can buy/download games to play on your computer and I can't play some of the games because of the Language in them. If you need a link to see what exactly steam is I can send you one
     
  50. Stefan-Laubenberger

    Stefan-Laubenberger

    Joined:
    May 25, 2014
    Posts:
    1,981
    I know what Steam is ;)
    However, BWF can't censor words if it's not part of the games you want to play.