Posted in Developer Zone, Second Life, tips

Using the Omnifilter to screen out spambots

If, like me, you are being assaulted by spambots sending Russian propaganda and links, that come in via both the Nearby Chat window and also as IMs, then you will doubtless be wanting some respite from it!

These spams are generally in Russian (the Cyrllic alphabet) and often are news propaganda about the war in Ukraine.

Well, help is at hand with Firestorm’s Omnifilter, which is a semi-recent addition that not many people know about.

The quick info

To dive straight in and get this working, open the Omnifilter (it’s under the Comm menu) and set up a Rule like this:

Omnifilter

Specifically, you are specifying regex mode, case sensitive, with the following regex:
.*(?:(?:^|[^\xD0-\xD3]+)(?:[\xD0-\xD3][\x80-\xBF]){3,}){2}.*

Make sure to set it up exactly like mine, and also set the Rule to “On”

That’s it. You don’t need to read any further

Tweaking it

This is a fairly aggressive filter that fires on encountering two 3+ letter words of the Cyrillic alphabet being present in a message. Feel free to tweak it as required, if legit messages get blocked.

  • {3,} controls how many consecutive Cyrillic letters a word must have, in this case 3+
  • {2} controls how many words must occur, in this case 2

Under the hood

There are a few little quirks I discovered whilst developing this, which I will share in case you are interested. It’s just background information and you do not need to know this to set up the filter.

Firstly it’s unclear how one gets on their radar, but when you do then the spam is fairly relentless and the mechanism is fairly sophisticated using burner accounts and temp-rezz objects. So trying to locate the sim where the object is rezzed is fruitless as it will be gone by the time you get there. And blocking the account sending the IMs is playing whack-a-mole.

Next, I noticed in the source code of Firestorm that the Omnifilter is using std::string throughout, presumably with UTF-8 encoding, so a regex like [\x{0400}-\x{04FF}] which tries to examine entire Unicode characters won’t work. In fact it can cause a Crash to Desktop!

Instead we examine the characters as byte pairs to determine if the letter is Cyrillic.

And, also it is very important that case sensitivity is turned on, otherwise the string is put through LLStringUtil::toLower() which can cause issues by corrupting the data.

 

 

Posted in Developer Zone, Phoenix / Firestorm, Programming, Second Life, Viewers

Compiling the Firestorm Viewer

Last updated 15-Feb-2026


Extended instructions, tips, and ‘gotchas’ on how to compile and build Firestorm, a third-party Open Source viewer for use with Second Life by Linden Lab.

Includes both Firestorm for Windows and also Firestorm for Ubuntu Linux.

First published in February 2014, and regularly updated ever since.

NOTE: This article assumes that you are a competent software developer who is comfortable with C++ build environments and command consoles. Most people will have no need to build their own version of Firestorm from the source code.


Continue reading “Compiling the Firestorm Viewer” →

Posted in Developer Zone, Programming, Second Life, Viewers

Adding new libraries to a custom Viewer

As part of my private build of Firestorm, the Open Source third-party viewer for Second Life from Linden Lab, I have added new library dependencies for something I am working on (adding metadata to snapshots).

This blog post details how I added them, making use of CMake and modifying various files.

I present it in the hope that it may prove useful to others.

Continue reading “Adding new libraries to a custom Viewer” →

Posted in Phoenix / Firestorm, Programming, Second Life, Viewers

The pain of compiling your own Viewer

This post has been superseded. Click here for the updated post. 

I’m sadly well aware that very few people read my blog and that even fewer have the technical ability or desire to build their own Viewer from the source code, but I know there are a handful and this is for them.

Firstly there is a LOT of pain. Lots of getting all the right libraries, support tools, resources and the like before you even begin to struggle with compilation errors.

Mariana Latynina is blogging about compiling under Linux64, and has tried several code bases including Phoenix
See http://marianalatynina.blogspot.com

And Forestaurora is blogging about Phoenix under Windows
See http://forestaurora.wordpress.com

You can see from there quite how much work is involved in getting a compile done. Surely it has to be easier than that?

(Oh, and a ‘hi’ to Tonya as she’s probably the only person who will read this post and even then only because I’ll point her at it. LOL)

—

Update: The guys at Radegast have the right idea. Ok, it’s not a full Viewer, but even so it’s the kind of thing we’d like to see:
http://radegastclient.org/wiki/Building_From_Source