Today I lurked on the forum to check how things were going, and I just stumbled this topic:
http://www.ut99.org/viewtopic.php?f=15& ... 675#p66659
which turned out into a string manipulation discussion, and due to my coding passion (string manipulation, specially at the level of the byte itself, is one of favorite topics in coding, to the point I was making parsers in UScript to interpret SQL and other fun stuff) I couldn't resist but to email you so you can let them know that NW3 has a couple of very useful string functions they can look at and use, even if just to know how they work.
More specifically, they're documented in the NW3_SDK.pdf file (in page 17), and they can check the source code for the NWUtils class along with the documentation describing it. These are pretty basic standalone functions in this single class, so they can pretty much copy and paste the functions in any other mod to use them (one or another may call another helper function, but always within the same class alone).
Examples of functions (starting with the one they're talking about):
ReplaceStr(coerce string Replace, coerce string With, coerce string Text, optional int maxReplaces)
processStrSplit(string splitStr, string srcStr, out string outStr1, out string outStr2) - splits a string in 2
StrMatch(string sA, string sB, optional bool bCaseSensitive) - compares 2 strings (and supports ? and * wildcards to match any exactly 1 character and any characters respectively)
And then for those cases where people want to store indexed settings in the shape of a string (key=value type of deal, such as "a=1;b=stuff;..."), like a database of sorts, there are these:
getValueFromSettingsString(coerce string varString, string strSettings)
hasValueFromStringList(string dataStr, int index, optional out string indexData)
hasPropertyFromStringList(string dataStr, int index, optional out string indexProperty, optional out string indexData)
And I have another source that goes a bit further beyond, which has functions and classes exclusively for string manipulation for calculating all sorts of hashes from strings (MD5, SHA-1 up to SHA-512), a JSON parser and writer (to communicate with REST web APIs which generally communicate in JSON, and which I tested with very large JSON responses to stress test it), and a few other things, which is the last item in the list I made here:
http://www.ut99.org/viewtopic.php?f=12&t=5638
(it's the UWeb source)
I planned to make also a regex function, but by then I had moved on from these little string projects of mine in UScript.
Right now I only work with PHP and Javascript exclusively (along with SQL and a few other technologies), and there string manipulations are a piece of cake to make, but it's still very interesting to create these sorts of functions in a very limited environment such as UEngine1/UT1, as it does help young programmers to develop better algorithms for other languages once they are able to creatively come up with solutions in more limited systems.