[FekLar]'s Excellent SpR Jukebox Hacks Page


A major cut and paste error was repaired 5/24/2001, where the wrong line was commented out of the code. The correct line was the line just next to the one that got commented out by mistake: It should work now, so if you came here and tried it before, and it didn't work, that's why. Sorry for the typo.
Click here to download [FekLar]'s modified SpR v 8.4 script

Click here for a decent anti-spam script with a few SpR modifications

This script is great. I found it on the net somewhere. Its small and simple enough to be easy to read through to check to make sure there are no evil backdoors, but it really performs. It keeps spam windows from opening in mirc, and performs some decent protection functions. Only rarely now do I get a query window containing spam, where I used to get 15 or 20 or more every hour.



Before we get to the script modifications, I want to point out a bug in SpR and how to fix it. Ever come back to your machine and find that mirc / SpR have locked up and gone south, sometimes with white channel windows where there should be text? This may be the problem:

The line of script in spr-serv.ini that gets sent to the user when the user types or pastes an invalid trigger may be to blame, especially if you modified it from the stock message. The line sends something like "You got the name wrong, or I don't have it" to the user (search for "have it"). Replace the line with pure text, with no commas or other punctuation, and see if the problem disappears. Be careful how you modify that line afterwards.

This is my line:
  if (%SpR.Down.Ext == $null) { iline @SpR.Find 1 spr_notice $nick 11,1Ptaak:1,0 You got the file name wrong (or I don't have it). 1,8I may have 4renamed1 it. 1,0 You might try 4downloading1 my updated 4list! | goto end }

My script was locking up before I made this change, and it hasn't locked up since I made it, after weeks of operating. Be careful not to make this line of text too long. I suspect that either the punctuation, ANSI, or the length of the line has something to do with it, one of the three. At any rate, this fixed the lockup problem. If I remember correctly, I had this problem with the stock SpR script, before I modified that line. If you never had the lockup problem, I say if it ain't broke, don't fix it.



SpR Jukebox is great, but it could stand some improvement. There are many opportunities and locations in the script to place enhancements, but two of these stand out the most.

One is a SpR deficiency of not telling the user what the bitrates of the found files are. If [FekLar] searches for @find Pink Floyd Us And Them, 15 or 20 servers using SpR Jukebox will answer up, but none will tell me the bitrate.

I want to replace my Pink Floyd Dark Side of the Moon album by downlaoding it, not buying it again for the sixth time. This album is a classic, that needs to be present in any serious rock or 70s collection. a bitrate of 128K cannot possibly do this album justice. 128K might cut it for a 'sounds of the 70s' collection CD rip, but not for a classic. I want VBR or 256K or higher bitrate files.

Unfortunately, none of the 20 SpR servers that answer up offer any clue as to the bitrates of their files. I have to manually download the beginning of the file from each one of them to see what the bitrates are. Finally, after the 15th download, I find an at least passable 192K bitrate file and download it, after searching through a sea of worthless 128K bitrate files.

This does no one any justice. It floods the channels with many redundant file requests and eats up channel bandwidth. It allows the propogation of low quality filez, since most people give up and just download a 128K file after three or four tries. Some people don't even bother, and download from the first server who answers up regardless of the bitrate.

If SpR was standardized to always show the bitrate, people would realize that they can choose the best quality files and download them without having to go through a lot of hassle.

I warn you now, Ptaak: back up your mIRC directory before you attempt any script modifications, even minor ones like these: One typo can lead to a life of suffering, and if you have a backup, you can just put it back the way it was and not spend hours trying to figure out what it was you modified by mistake. If you can't figure anything else out, get WinZIP, install it and fire it up, and call up Windows Explorer. Then expand the C: drive so you can see the mirc directory, and select it. Then Right click, and select add to mirc.zip. Now you are backed up.


This hack is so easy, its almost a crime. All you have to do to modify the script is to add one character to one line in the script file. This is the comment character, the semicolon, or ' ; '. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (that one).

My version of SpR is 8.4, but it is likely that this should work with most versions: this appears to be a stable fragment of code which has been used through many versions, but be sure that the code and the logic is the same before attempting it.

Of course, for it to work, you have to specify that you want the bitrate information recorded into your file list when you use SpR to generate the list.

To access the script, call up <ALT>Tools->Remote, and then call up <ALT>View, and select the file spr-serv.ini. This is the section we want:


   else {
      %k = $pos(%Put.Temp,$chr(32)) | %k = $len(%Put.Temp) - %k | %Put.Temp = $right(%Put.Temp,%k) | %Put.Found = $remove(%Put.Temp,$chr(160))
      %k = $pos(%Put.Temp,::info::) - 1 | %Put.Temp = $left(%Put.Temp,%k) | %Put.Temp = $remove(%Put.Temp,$chr(160))
      if ($remove(%Put.FindMP,*) isnum) {
        %k = 1
        :loop
        set %Put.Numeric $gettok(%Put.FindMP,%k,42)
        if (%Put.Numeric == $null) { goto match }
        if (%Put.Numeric !isin %Put.Temp) { inc %j 1 | goto start }
        else { inc %k 1 | goto loop }
        :match
      }

Use the find text command in the remote editing window and search to find this block of code. Searching for %k = $pos(%Put.Temp,::info::) will probably find it. In SpR 8.4, the code starts near line 80 or so (my script has other modifications, so this may be off by up to 10 lines in either direction.)

change this line:

      %k = $pos(%Put.Temp,::info::) - 1 | %Put.Temp = $left(%Put.Temp,%k) | %Put.Temp = $remove(%Put.Temp,$chr(160))
to this:
      ;  %k = $pos(%Put.Temp,::info::) - 1 | %Put.Temp = $left(%Put.Temp,%k) | %Put.Temp = $remove(%Put.Temp,$chr(160))
See the semicolon I added at the beginning of the line? Just place a semicolon as the first character of this line, and it comments out the line so that the script never reads or executes it. This is all you have to do.

This particular line of code takes the variable %Put.Temp, which contains a line that the script read from your file list, and strips off everything after the end of the filename (after the first space it finds).

In other words, it changes this:

![FekLar] (Van_Halen)-Mean_Street.mp3                                   ::INFO:: 4.6MB 128/44 Stereo
to this:
![FekLar] (Van_Halen)-Mean_Street.mp3

which is what we don't want, so this hack comments out the line and prevents this code from ever executing. With that line out of the way, this is what gets sent to the user instead:
 

![FekLar] (Van_Halen)-Mean_Street.mp3                                   ::INFO:: 4.6MB 128/44 Stereo

which is what we want. This is the line that gets sent out to the user on a successful @find Van Halen Mean Street request. Someone remind me to find a 256K bitrate Van Halen Mean Street file one of these days.

Remember, you have to select the option to have SpR include the bitrate info when you have SpR generate your file list, or there will be no bitrate information for SpR to send to the user.


Remember to hit the OK button or shoose File->Save to save your modification. After your modifications are complete, remember to save a copy of spr-serv.ini in a safe place like a backup disk, becuase if you ever need to reinstall mirc and or SpR, your changes will be lost if you havent got a backup. This file is located in \mirc\spr.


The other hack regards the limitation of SpR in only sending a maximum of 5 @find requests to a user. I think this is way too conservative. My SpR sends a maximum of 15 file names to a user. I have well upwards of 200 Beatles songs, and it sends the first 15 before recommending the user downlaod my file list, and it also tells the user exactly how many files it found (in this case, 15 out of 297)

It is pretty vague, to just tell the user to download the list. I might have 297 Beatles files, or I might have 16: There is no way for the user to know. All that extra list downloading that results eats up server and channel bandwidth, and this serves no one's interests except the power company's.

This hack is also pretty easy, although the second part is slightly more involved than the first one, which involves adding one character.


This is the relevant section of code within spr-serv.ini. This may look complicated, but we only need to change one value. This much text is included so that we can be sure that your version of SpR, if it isn't 8.4, is or is not compatible with this hack.

    if (%Put.Temp == $null) { 
      dec %i 1 
      if (%i == 0) {
        if (%SMP3.Echo == On) { mpecho The $smc.m(search) of $smc.h( [ %Put.FindMP ] ) for $smc.m( [ $nick ] ) got $smc.h(No Matches) in your machine! }
        goto end
      }
      if (%SMP3.Echo == On) { mpecho Total $smc.h( [ %i ] match(es) ) for the search request $smc.h( [ %Put.FindMP ] ) by $smc.m( [ $nick ] ) }
      aline @SpR.Find spr_msg $nick 0,1 ..... Total8 %i 0files Found 
      if (%SMP3.Search == hfon) {
        if (%SMP3.Search.Int == $null) { set %SMP3.Search.Int 5 }
        set %SMP3.Search hfoff | .timer921 1 %SMP3.Search.Int /set %SMP3.Search hfon
      }
      goto end
    }
    if (%i > 5) {
      if (%SMP3.Echo == On) { mpecho The $smc.h(search) of $smc.h( [ %Put.FindMP ] ) for $smc.m( [ $nick ] ) got $smc.h(too many results) $+ ! Some of Results sent and Getting list Recommended! }
      aline @SpR.Find spr_msg $nick 1,4Too Many Results to Display 15,2 (Getting My list by @ $+ $me Recommended) 
      if (%SMP3.Search == hfon) {
        if (%SMP3.Search.Int == $null) { set %SMP3.Search.Int 5 }
        set %SMP3.Search hfoff | .timer921 1 %SMP3.Search.Int /set %SMP3.Search hfon
      }
      goto end
    }

This code starts around line 35 or so. (my script has other modifications, so this may be off by up to 10 lines in either direction)

This is the line we want to modify

    if (%i > 5) {
Just replace the 5 with whatever value you feel is more acceptable than 5. Mine reads
    if (%i > 15) {
 

 
 
 
 
 
 
 
 
 
 
 

I wouldn't advise making this number any larger than 25 or 30 as an absolute maximum. Anything past 25 will likely piss people off.

That's all there is to it. Of course, we still want to tell the user the total number of hits, and that is slightly more complicated.


    if (%Put.Temp == $null) { 
      dec %i 1 
      if (%i == 0) {
        if (%SMP3.Echo == On) { mpecho The $smc.m(search) of $smc.h( [ %Put.FindMP ] ) for $smc.m( [ $nick ] ) got $smc.h(No Matches) in your machine! }
        goto end
      }
      if (%SMP3.Echo == On) { mpecho Total $smc.h( [ %i ] match(es) ) for the search request $smc.h( [ %Put.FindMP ] ) by $smc.m( [ $nick ] ) }
      aline @SpR.Find spr_msg $nick 0,1 ..... Total8 %i 0files Found 
      if (%SMP3.Search == hfon) {
        if (%SMP3.Search.Int == $null) { set %SMP3.Search.Int 5 }
        set %SMP3.Search hfoff | .timer921 1 %SMP3.Search.Int /set %SMP3.Search hfon
      }
      goto end
    }
    if (%i > 15) {
      if (%SMP3.Echo == On) { mpecho The $smc.h(search) of $smc.h( [ %Put.FindMP ] ) for $smc.m( [ $nick ] ) got $smc.h(too many results) $+ ! Some of Results sent and Getting list Recommended! }
      aline @SpR.Find spr_msg $nick 11,1Ptaak: 11,14Too Many Results!  I displayed8,22 1511,14 of 8,6 $+ $line(%Put.Findmk,0,0)1 11,14Filez. 9,10 Type 8,1 @ $+ $me 9,10 to download my complete 8,1list.8,13  Serving at 1ADSL8 (max 14000 bps) speed.
      ;  aline @SpR.Find spr_msg $nick 1,4Too Many Results to Display 15,2 (Getting My list by @ $+ $me Recommended) 
      if (%SMP3.Search == hfon) {
        if (%SMP3.Search.Int == $null) { set %SMP3.Search.Int 5 }
        set %SMP3.Search hfoff | .timer921 1 %SMP3.Search.Int /set %SMP3.Search hfon
      }
      goto end
    }

Let's simplifiy this a little. I'll get rid of the non relevant lines:

    if (%i > 15) {
      if (%SMP3.Echo == On) { mpecho The $smc.h(search) of $smc.h( [ %Put.FindMP ] ) for $smc.m( [ $nick ] ) got $smc.h(too many results) $+ ! Some of Results sent and Getting list Recommended! }
      aline @SpR.Find spr_msg $nick 11,1Ptaak: 11,14Too Many Results!  I displayed8,22 1511,14 of 8,6 $+ $line(%Put.Findmk,0,0)1 11,14Filez. 9,10 Type 8,1 @ $+ $me 9,10 to download my complete 8,1list.8,13  Serving at 1ADSL8 (max 14000 bps) speed.
      ;  aline @SpR.Find spr_msg $nick 1,4Too Many Results to Display 15,2 (Getting My list by @ $+ $me Recommended) 
Line 1 is the line we mofified first. I modified it from 5 to 15. Line 2 is irrelevant. Line 3 is a new line that has been added, and line 4 is the old line that was commented out. Line 4 used to be line 3.

This is the new 3rd line that replaces the old one:

      aline @SpR.Find spr_msg $nick 11,1Ptaak: 11,14Too Many Results!  I displayed8,22 1511,14 of 8,6 $+ $line(%Put.Findmk,0,0)1 11,14Filez. 9,10 Type 8,1 @ $+ $me 9,10 to download my complete 8,1list.8,13  Serving at 1ADSL8 (max 14000 bps) speed.
Simplified, with all the ANSI color codes bullshit removed, this reads:
      aline @SpR.Find spr_msg $nick Ptaak: Too Many Results!  I displayed 15 of $+ $line(%Put.Findmk,0,0) Filez.  Type @ $+ $me to download my complete list.  Serving at ADSL (max 14000 bps) speed.
Or modified slightly to something that you can personalize,
      aline @SpR.Find spr_msg $nick Too Many Results!  I displayed 15 of $+ $line(%Put.Findmk,0,0) Filez.  Type @ $+ $me to download my complete list.
Type whatever you want, but don't break the line: it all has to fit on one line. Notice that I put 'displayed 15 files' into the text: If I change the value I initially changed above from 5 to 15 back to 5, I have to remember to go back here and change this 15 to 5 as well.

That's all there is to it.

{FekLar] says: _enjoy_

Hopefully these two enhancements will become a standard, and be incorporated directly into future releases of SpR, particularly the bitrate information delivery modification.

I hear that the latest version of SpR does implement some of this, but I admit to being a tad paranoid, after SpinoC gave the copyright to someone else. 8.4 is the last version of SpR written totally by SpinoC. After I am certain that the new version has no backdoors, I'll probably start using it, but until then, my hacked version does what I want done.


Here is the first third of my spr-serv.ini file. It contains a number of different hacked lines of code. You should copy and paste all of it into notepad, and read it from there. It has a few additional modifications, like stripping the spaces out of the bitrate info and sending the info in color, and also illustrates some more access points for personalization of the script.

Position your mouse cursor on the T on the word This below, click and hold the left button and while holding the mouse button down, move the mouse down to the bottom border of this browser window. When the window quits scrolling, right click on the highlighted text and choose copy. Then call up notepad and paste it there. Don't use wordwrap in notepad, especially if you are going to copy and paste directly from there into SpR.


This is the first third of my spr-serv.ini file. Search this page for "[FekLar] was here" to find the modification points.
Any lines that start with the ; character are comments, and are not executed by the script.

Yuo should probably call up this file in notepad, and then call up your original spr-serv.ini in another notepad. Then minimize
all your windows except the two notepads and tile the notepad windows, so you can compare them side by side.
(right click your taskbar just next to the clock window and choose tile vertically)

Any hack that you implement, be sure to remove references to [FekLar]. You can leave the mp3 page ad in if you want.
You could just take this entire script segment, and replace the beginning third of your spr-serv.ini file with it, making sure
to get the alignment right. If you do this, search for all occurrences of [FekLar] and replace them with your own text.

;------- SpR Jukebox by SpinoC (spinoc@erols.com) http://www.spr.wildstar.net or spr.hurricaneweb.com --------
on *:TEXT:@*:# {
  if ($1 != @find) && ($1 != @locator) { goto final }
  if (%SMP3.Disable == On) || (%SW.SMP3 == Off) || (%SMP3.Search == Off) || (%SMP3.Search == hfoff) || (%SMP3.DCC.Auto == off) || ($line(@spr.find,0) > 20) { goto final }
  if ([ %SMP3.SpR. [ $+ [ $site ] ] ] != $null) { 
    if ([ %SMP3.SpR. [ $+ [ $site ] ] ] >= 1) { goto final }
    else { inc %SMP3.SpR. [ $+ [ $site ] ] 1 }
  }
  else { set -u15 %SMP3.SpR. [ $+ [ $site ] ] 1 }
; [FekLar] was here     User error checking, you probably don't want to implement this, so I commented it out.
;  if ( ($count($1-,/) != 0) || ($count($1-,\) != 0) ) { /msg $chan 11,1Ptaak: ( $nick on $chan )5,15 A 12search5 containing '1/5' or '1\5' will 4never5 produce results. Searching for AC/DC 4fails5, because / is an illegal character in a file name.  Searching for AC DC will 4work5. Type @[FekLar] for the link to [FekLar]'s IRC downloading tutorial. }
;  if ( ($count($1-,/) != 0) || ($count($1-,\) != 0) ) { /echo 11,1Ptaak: ( $nick on $chan )5,15 A 12search5 containing '1/5' or '1\5' will 4never5 produce results. Searching for AC/DC 4fails5, because / is an illegal character in a file name.  Searching for AC DC will 4work5. Go to http://protogod.exit.de/mp3tutor/mp3page.htm for [FekLar]'s IRC downloading tutorial. }
;  if ( ($count($1-,/) != 0) || ($count($1-,\) != 0) ) { aline @SpR.Find spr_msg $nick 11,1Ptaak:5,15 A 12search5 containing '1/5' or '1\5' will 4never5 produce results. Searching for AC/DC 4fails5, because / is an illegal character in a file name.  Searching for AC DC will 4work5.Go to http://protogod.exit.de/mp3tutor/mp3page.htm for [FekLar]'s IRC downloading tutorial. }
; [FekLar] was here      End of user error checking
  if ($count($1-,beatles) != 0)  { .msg $nick 11,1Ptaak:5,15 **** The Paul McCartney Death Clues ****  http://www.h2g2.com/A277328  Fascinating reading for Beatles fans.  A large number of hints and clues dropped by the Beatles since 1966 strongly suggest that the real Paul McCartney died in a car crash in 1966, and was replaced by a plastic surgery-altered doppelganger named Billy Shears. }
; [FekLar] was here    Custom text for specific bands, refer users to a band's fan sites or whatever...
; I could add a line for Iron Maiden, another line for Aerosmith, etc...  has to be lowercase match text.
; Iron Maiden (or any band that has spaces in the band's name) would require parenthesis. example:  if ($count($1-,(iron maiden)) != 0) {.msg $nick You searched for Iron Maiden: I've done that.}
  %Put.Temp = $address($nick,2) | if ((%Put.Temp) && ($window(@spr.banned))) { %Put.Temp = $fline(@spr.banned,%Put.Temp,1) | if (%Put.Temp) return }
  if (%SMP3.Main.Only == On) && ($chan != %SMP3.Main.Chan) { goto final }
  if (%SMP3.Main.Only == Multi) {
    set %i 0
    :multich
    set %Put.Temp %SMP3.MCH. [ $+ [ %i ] ]
    if (%Put.Temp == $null) { unset %Put.Temp %i | goto final }
    if ($chan != %Put.Temp) { inc %i 1 | goto multich }
    else { unset %i %Put.Temp }
  }
  if ($window(@SpR.F_List) == $null) { window -hl @SpR.F_list | %Put.Temp = $sprdir $+ %SMP3.Filelist $+ -mm.txt | if ($exists(%Put.Temp) == $false) return | filter -fw %Put.Temp @SpR.F_list !* }
  set %Put.FindMP * $+ $replace($replace($replace($replace($2-,$chr(32),*),_,*),-,*),?,*) $+ *
  :sort
  if (** isin %Put.FindMP) { set %Put.FindMP $replace(%Put.FindMP,**,*) | goto sort }
  if (%Put.FindMP == *) || ($len(%Put.FindMP) <= 3) return
  set %Put.Findmk @SpR.F^List $+ $rand(a,z) 
  window -lh %Put.Findmk
  filter -ww @SpR.F_List %Put.Findmk %Put.FindMP
  if ($line(%Put.Findmk,0) > 0) {
    %i = 1 | %j = 1
    :start
    set %Put.Temp $line(%Put.Findmk,%j)
    if (%Put.Temp == $null) { 
      dec %i 1 
      if (%i == 0) {
        if (%SMP3.Echo == On) { mpecho The $smc.m(search) of $smc.h( [ %Put.FindMP ] ) for $smc.m( [ $nick ] ) got $smc.h(No Matches) in your machine! }
        goto end
      }
      if (%SMP3.Echo == On) { mpecho Total $smc.h( [ %i ] match(es) ) for the search request $smc.h( [ %Put.FindMP ] ) by $smc.m( [ $nick ] ) }
; [FekLar] was here  modified results user output text: note that if two lines of text are sent here, then two should be sent below (see below)
      aline @SpR.Find spr_msg $nick 0,1 ..... Total8 %i 0files Found 
      aline @SpR.Find spr_msg $nick 11,1Ptaak: 0 Type @[FekLar] or try protogod.exit.de/mp3tutor/mp3page.htm for 4,11[FekLar]'s  4SpR script enhancements
      if (%SMP3.Search == hfon) {
        if (%SMP3.Search.Int == $null) { set %SMP3.Search.Int 5 }
        set %SMP3.Search hfoff | .timer921 1 %SMP3.Search.Int /set %SMP3.Search hfon
      }
      goto end
    }
; [FekLar] was here  %i >15 means SpR will send 15 matches rather than 5
    if (%i > 15) {
      if (%SMP3.Echo == On) { mpecho The $smc.h(search) of $smc.h( [ %Put.FindMP ] ) for $smc.m( [ $nick ] ) got $smc.h(too many results) $+ ! Some of Results sent and Getting list Recommended! }
; [FekLar] was here  I displayed8,22 15  means SpR will send 15 matches rather than 5. This is the other place to modify 5 to 15.
      aline @SpR.Find spr_msg $nick 11,1Ptaak: 11,14 Too Many Results!  I displayed8,22 15 11,14 of 8,6   $+ $line(%Put.Findmk,0,0) 11,14 Filez. 9,10 Type 8,1 @ $+ $me 9,10 to download my complete 8,1list0,1
      aline @SpR.Find spr_msg $nick 11,1Ptaak: 0 Type @[FekLar] or try protogod.exit.de/mp3tutor/mp3page.htm for 4,11[FekLar]'s  4SpR script enhancements
; [FekLar] was here  modified results user output text: note that if two lines of text are sent here, then two should be sent below (see below)
      if (%SMP3.Search == hfon) {
        if (%SMP3.Search.Int == $null) { set %SMP3.Search.Int 5 }
        set %SMP3.Search hfoff | .timer921 1 %SMP3.Search.Int /set %SMP3.Search hfon
      }
      goto end
    }
    else {
; [FekLar] was here  these four lines are a major rewrite, either change all four, or use the lesser hack to send bitrate info described above.
      %k = $pos(%Put.Temp,$chr(32)) | %k = $len(%Put.Temp) - %k | %Put.Temp = $right(%Put.Temp,%k) | %Put.Found = $remove(%Put.Temp,$chr(160))
; [FekLar] was here  This hack discards all the spaces in between the filename and the "::INFO::" string
      %k = $pos(%Put.Temp,$chr(160),1) - 1
; [FekLar] was here
      if (%k == - 1) { %k = $pos(%Put.Temp,::info::,1) - 1 }
; [FekLar] was here these four lines are a rewrite that sends out the bitrate info. $rand below causes the text to be sent in a random color
      %Put.Temp = $left(%Put.Temp,%k) $+ $chr(32) $+ $chr(32) $+ $chr(32) $+ $chr(32) $+  $+ $rand(1,15) $+ $mid(%Put.Temp,$calc(8+$pos(%Put.Temp,::info::,1)), $calc(8+$len(%Put.Temp))-$pos(%Put.Temp,::info::,1) )
; [FekLar] was here   See the two references to 8 in the line above? Leave them alone. 
; If you were to change the ::INFO:: string to something else somewhere else in the script, it would break this code.
; because 8 = $len(::INFO::)
      if ($remove(%Put.FindMP,*) isnum) {
        %k = 1
        :loop
        set %Put.Numeric $gettok(%Put.FindMP,%k,42)
        if (%Put.Numeric == $null) { goto match }
        if (%Put.Numeric !isin %Put.Temp) { inc %j 1 | goto start }
        else { inc %k 1 | goto loop }
        :match
      }
      if (%i == 1) {
        if ($window(@SpR.Find) == $null) { window -hl @SpR.Find }
        %jj = $spr_ssv
        if (%jj > %SMP3.DCC.Max) { set %jj %SMP3.DCC.Max }
        set %kk $readini $sprdir(SpRcounter.ini) Que Total
        if (%kk == $null) { set %kk 0 }
        if (%kk > %SMP3.Que.Max) { goto end } 
        if (%kk == $null) { %kk = 0 }
; [FekLar] was here modified results user output text
        iline @SpR.Find 1 spr_msg $nick 11,1Ptaak: 0,1 I found  4,15 $line(%Put.Findmk,0,0)] 0,1  Matches for 4,15 %Put.FindMP 0,1 
        aline @SpR.Find  spr_msg $nick  15,2 Copy and Paste in8 the Channel 15to Request a File 0,1 (Slot:11 $+ %jj $+ 15/9 $+ %SMP3.DCC.Max $+ 15) (Que:11 $+ %kk $+ 15/9 $+ %SMP3.Que.Max $+ 15) in Use 
; [FekLar] was here mp3 page advertising: warning: many users will auto ignore you if you send them "http", and you are likely to get channel-banned if you advertise ad pages, porn, commercial, or any other bullshit not related to mp3s
        aline @SpR.Find spr_msg $nick 11,1Ptaak: 0 Type @[FekLar] or try protogod.exit.de/mp3tutor/mp3page.htm for 4,11[FekLar]'s  4mp3 tutorial
      }
      if ($gettok(%Put.FindMP,1,42) isin %Put.Temp) { set %Put.Found %Put.Temp }
      ;/echo 4 aaaaaaaa %SMP3.RLNick %Put.FindNK %SMP3.RLNick $me spr_msg $nick ! $+ %Put.FindNK %Put.Found
      if (%SMP3.RLNick) %Put.FindNK = %SMP3.RLNick | else %Put.FindNK = $me | aline @SpR.Find spr_msg $nick ! $+ %Put.FindNK %Put.Found | inc %i 1 | inc %j 1 | goto start 
    }
  }
  elseif (%SMP3.Echo == On) { mpecho The $smc.h(search) of $smc.h( [ %Put.FindMP ] ) for $smc.m( [ $nick ] ) got $smc.h(No Matches) in your machine! }
  :end | window -c %Put.FindMK | unset %Put.FindNK %Put.FindMK %Put.FindMP %Put.Findlist %i %j %k %kk %jj
  :final
} 
; this is the next line:   on *:TEXT:!*:# {  
; this is not the complete spr-serv.ini file, it is complete only from the beginning of the file to here.


here is a useful SpR hack: This is also in spr-serv.ini.
Search for "if (%kk == $null) { set %kk 0 }" and find these lines:

        if (%kk == $null) { set %kk 0 }
        if (%kk > %SMP3.Que.Max) { goto end } 
        if (%kk == $null) { %kk = 0 }
        iline @SpR.Find 1 spr_msg $nick 11,1Ptaak: 0,1 I found  4,15 $line(%Put.Findmk,0,0)] 0,1  Matches for 4,15 %Put.FindMP 0,1 
        aline @SpR.Find spr_msg $nick  15,2 Copy and Paste in8 the Channel 15to Request a File 0,1 (Slot:11 $+ %jj $+ 15/9 $+ %SMP3.DCC.Max $+ 15) (Que:11 $+ %kk $+ 15/9 $+ %SMP3.Que.Max $+ 15) in Use 
        aline @SpR.Find spr_msg $nick 11,1Ptaak: 0 Type @[FekLar] or try protogod.exit.de/mp3tutor/mp3page.htm for 4,11[FekLar]'s  4mp3 tutorial

notice how I changed the aline to an iline. Stock SpR uses three alines here. This change causes the text (I found xx matches for 
*whatever*) to get sent out to the user right away, rather than just being added at the end of the user message queue (@SpR.Find, 
call it up in mirc with Alt-W (Alt-Window)->@SpR.Find to see the message queue sending out find results to the users).
aline = add line, iline X = insert line at position X.

The way stock SpR handles this event, the user might wait as long as 90 seconds if the @find server is really busy before SpR sends 
them the "I found files that match" string. This hack sends it out immediately. The user still might wait 90 seconds before the 
triggers and file names get sent, but at least they know that there are matches and that the info is coming.