Scoop Script Mirc <SAFE × CHEAT SHEET>
To use this, open your mIRC script editor (Alt + R), go to the Remote tab, and paste the following code into a new file.
; ============================================================
; Scoop Script for mIRC
; Description: Fetches detailed user info and displays it in a custom window.
; Usage: Right-click a nickname in a channel or query -> Scoop User Info
; ============================================================
; Create a menu item in the nickname list
menu nicklist
-
.Scoop User Info:
; Enable the whois catchers
.enable #ScoopWhoisGroup
; Initiate the whois command on the selected nickname
whois $$1
; Store the nickname in a variable for the window title
set %ScoopTarget $$1
; Open or switch to the custom window
if ($window(@ScoopInfo) == $null) window -a @ScoopInfo
else clear @ScoopInfo
; Print header
aline @ScoopInfo $+ $chr(3) $+ 14 $+ -[ Scooping Info for: $+ $chr(3) $+ 4 $+ %ScoopTarget $+ $chr(3) $+ 14 $+ ]-
aline @ScoopInfo $chr(160)
-
; This group catches the raw server replies for WHOIS
#ScoopWhoisGroup off
; Raw 311: User Nickname, User, Host, Real Name
raw 311:*:
aline @ScoopInfo $+ $chr(3) $+ 14 $+ Nick: $+ $chr(3) $+ 0 $2
aline @ScoopInfo $+ $chr(3) $+ 14 $+ Address: $+ $chr(3) $+ 0 $+ $3 $+ @ $+ $4
aline @ScoopInfo $+ $chr(3) $+ 14 $+ RealName: $+ $chr(3) $+ 0 $6-
haltdef
; Raw 319: Channels user is on
raw 319:*:
aline @ScoopInfo $+ $chr(3) $+ 14 $+ Channels: $+ $chr(3) $+ 0 $3-
haltdef
; Raw 317: Idle time and Sign-on time
raw 317:*:
aline @ScoopInfo $+ $chr(3) $+ 14 $+ Idle: $+ $chr(3) $+ 0 $duration($3)
aline @ScoopInfo $+ $chr(3) $+ 14 $+ Signed On: $+ $chr(3) $+ 0 $asctime($4, mmmm dd, yyyy h:nn tt)
haltdef
; Raw 318: End of Whois (Turn off the group)
raw 318:*:
aline @ScoopInfo $chr(160)
aline @ScoopInfo $+ $chr(3) $+ 14 $+ -[ End of Scoop ]-
.disable #ScoopWhoisGroup
haltdef
#ScoopWhoisGroup end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Universal Scoop Script for mIRC v1.0 ; Commands: !scoop web <url> ; !scoop song ; !scoop sysinfo ; !scoop last ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ---- Initialize Hash Table ---- on *:start: hmake ScoopDB 100
; ---- Main Command Parser ---- on *:TEXT:!scoop *:#: var %cmd = $2 var %arg = $3- if (%cmd == web) performWebScoop %arg elseif (%cmd == song) performSongScoop elseif (%cmd == sysinfo) performSysScoop elseif (%cmd == last) recallLastScoop else last
; ---- Web Scoop (Full Page Parser) ---- alias performWebScoop var %url = $1 if (%url !isurl) return sockopen scoopweb %url 80 scoop script mirc
on *:sockopen:scoopweb: tokenize 32 $sock($sockname).addr sockwrite -n $sockname GET / HTTP/1.1 sockwrite -n $sockname Host: $1 sockwrite -n $sockname User-Agent: mIRC-ScoopBot/1.0 sockwrite -n $sockname $crlf $+ $crlf
on *:sockread:scoopweb: var %data, %title, %desc sockread %data if (<title> isin %data) && (%title == $null) %title = $remove(%data,<title>,</title>) if (name="description" isin %data) && (%desc == $null) %desc = $regsubex(%data, /content="([^"]+)"/, \t) %desc = %desc if (%title != $null) && (%desc != $null) msg # Scoop ▸ Title: %title msg # Scoop ▸ Description: %desc hadd ScoopDB last_scoop Title: %title $+ , Desc: %desc sockclose $sockname
; ---- Media Player Song Scoop (via COM or WM_COPYDATA) ---- alias performSongScoop var %song = $dll(mediaplugin.dll,getcurrent,foobar2000) if (%song == $null) %song = "No media player detected or no song playing." msg # 🎵 Scooped Song: %song hadd ScoopDB last_scoop %song To use this, open your mIRC script editor
; ---- System Info Scoop ---- alias performSysScoop var %cpu = $comvar($comcreate("Win32_PerfFormattedData_PerfOS_Processor"),PercentProcessorTime,5) var %ram = $comvar($comcreate("Win32_OperatingSystem"),TotalVisibleMemorySize,1) var %freeram = $comvar($comcreate("Win32_OperatingSystem"),FreePhysicalMemory,1) msg # 💻 SysScoop ▸ CPU: %cpu% ▸ RAM: $round($calc( (%freeram / %ram) * 100 ),1)% free hadd ScoopDB last_scoop CPU: %cpu% RAM: %freeram / %ram
; ---- Recall Last Scoop ---- alias recallLastScoop var %last = $hget(ScoopDB,last_scoop) if (%last == $null) msg # No scoops captured yet. else msg # 📜 Last Scoop: %last
Update mIRC
scoop update mirc
→ Your logs, scripts, and license remain untouched due to persist.
Scoop scripts can become resource-heavy if not coded carefully. Here are pro tips: ; ---- Main Command Parser ---- on *:TEXT:
# deploy-mirc.ps1
param(
[switch]$WithConfig
)