mIRC Home    About    Download    Register    News    Help

Active Threads | Unanswered Past 24 hours | Past 48 hours | Past Week | Past Month | Past Year
Developers Jump to new posts
mIRC Language Extension for Visual Studio 2022+ goblin58 01/04/26 07:39 AM
I'm happy to release my mIRC language extension for Visual Studio 2022+.

I mostly work in Visual Studio and recently while working on some dynamic link library projects I found myself swapping from Visual Studio to VS Code all the time. I still use VS Code for most of mIRC scripting however It's nice to be able to stay in the one IDE.

I hope everyone finds this useful.

See https://github.com/rabbit59/mIRCLanguageExtension
0 75 Read More
Feature Suggestions
CHGHOST on/off TECO 28/03/26 05:00 PM
Hi Khaled,

I suggest that, since CHGHOST in mIRC is not enabled by default, a command be created for it, like this:

/CHGHOST on/off

Or add a check to the mIRC options.

This would allow us to see a message in the channels where we are and where the user who changes hosts is also located.

Example:

18:51 TECO [TECO@vhost.cferreira.org] changed host to TECO@suporte.PTirc.org

I think this suggestion would make accessing CHGHOST easier without us having to resort to creating code like the one I created and posted here on the forum.

Hug wink
0 86 Read More
Scripts & Popups
CHGHOST TECO 27/03/26 01:54 PM
Hi guys,

I would like to know if anyone can help me.

I need the CHGHOST event message.

I've been researching and mIRC, by default, doesn't show a message when a user changes hosts.

I debug the mIRC and found this information:

<- @time=2026-03-27T12:55:56.782Z :Tiago!Tiago@vhost.cferreira.org CHGHOST Tiago suporte.PTirc.org
<- @time=2026-03-27T13:28:35.041Z :Tiago!Tiago@suporte.PTirc.org CHGHOST Tiago vhost.cferreira.org

And I needed that whenever the user switches accounts, it shows both the previous and the new account:

Example:

12:34 · Tiago [Tiago@vhost.cferreira.org] has changed host to Tiago@suporte.PTirc.org

I created this code:
Code
alias pcb { echo $1 $+ $msgstamp $2- }

raw CHGHOST:*:{
  var %c = 1
  while ($comchan($nick,%c)) {
    pcb -i5mt $v1 · $nick has changed host to $+($nick,@,$2)
    inc %c
  }
}

And in the channels where I am and the user is also present, the message appears like this:

12:24 · Tiago has changed host to Tiago@suporte.PTirc.org
12:25 · Tiago has changed host to Tiago@vhost.cferreira.org

However, I can't find a solution to make the previous host appear in the message.

I would appreciate it if someone could help me wink

I found the solution:
Code
alias pcb { echo $1 $+ $msgstamp $2- }

raw CHGHOST:*:{
  var %c = 1, %oldmask = $gettok($fulladdress,2,33), %ident = $gettok(%oldmask,1,64), %newmask = $+(%ident,@,$2)
  while ($comchan($nick,%c)) {
    pcb -i5mt $v1 · $nick ( $+ %oldmask $+ ) has changed host to %newmask
    inc %c
  }
  haltdef
}

Return:

18:51 · Tiago (~Tiago@vhost.cferreira.org) has changed host to ~Tiago@suporte.PTirc.org
0 91 Read More
Scripts & Popups
On Join HadesSaint 24/03/26 06:31 PM
good evening!!! on my remote.partjoin i have this

{ putmessaget # %chatjoincolor *** $nick ( $+ $gettok($address($nick,5),2,33) $+ ) is joined the channel # *** | halt }

*** pippo (ident@host) is joined the channel #pippo ***

i like, if possibile, insert the country variable on join (i'm Oper)

Example:

*** pippo (ident@host) [ES] is joined the channel #pippo


I haven't found a var $country

Tnk y for help smile
0 94 Read More
Scripts & Popups
[Release] Xhtml.dll v1.0.0 – HTML Engine & Runtime 3ncriptado 22/03/26 05:51 PM
Xhtml.dll v1.0.0 – Modern Web Browser Engine for mIRC

Xhtml.dll is a modern replacement for the legacy nhtml.dll, bringing the power of Microsoft Edge WebView2 (Chromium) directly into mIRC.

It allows you to embed fully functional web browsers inside mIRC windows with full support for modern web technologies.


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Features
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

- Modern Web Engine (Edge WebView2 / Chromium)
- Full Web Standards Support (HTML5, CSS3, ES6+, WebGL, WebAssembly)
- Framework Compatible (React, Vue, Angular, etc.)
- Full Mouse & Keyboard Interaction
- Resizable Browser Windows
- Multiple Instances Support
- Simple and Clean API for mIRC
- Drop-in Replacement for nhtml.dll


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 Requirements
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

- Windows 10 / 11
- mIRC 7.x or later
- Microsoft Edge WebView2 Runtime


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 Quick Start
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Installation:

1. Download Xhtml.dll
2. Copy it to your mIRC root folder
3. Install WebView2 Runtime if not installed
4. Load the script:

/load -rs scripts/xhtml.mrc


Basic Usage:

; Open a URL
/xhtml https://www.google.com

; Close the browser
/xhtml.close


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 API (Core Functions)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

attach -> Attach WebView2 to a window
navigate -> Navigate to a URL
detach -> Detach and cleanup
resize -> Resize browser
goback -> Navigate back
goforward -> Navigate forward
refresh -> Reload page
stop -> Stop loading
geturl -> Get current URL


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🧪 Example
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

alias mybrowser {
window -pdoks @MyBrowser 100 100 1200 800
dll Xhtml.dll attach $window(@MyBrowser).hwnd
.timer 1 2 dll Xhtml.dll navigate https://github.com
}


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🆚 Why Xhtml.dll?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

- Uses Chromium instead of Internet Explorer
- Supports modern JavaScript
- Works with modern frameworks
- Actively maintained
- Designed for real-world web usage inside mIRC


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ Notes
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

- Wait 2–3 seconds after attach before navigate
- Make sure WebView2 Runtime is installed
- Use correct architecture (x86 / x64)


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔗 Project
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

REPO: GitHub

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Made with ❤️ for the mIRC community
0 96 Read More
Feature Suggestions
DLL binvar support Ook 14/03/26 12:20 AM
I propose adding support for evaluating binvars to SendMessage() where 2 possible methods are:

method 1:
The dll would write the binvar name and offset & length of data requested to the mapfile and call SendMessage(hwnd, WM_MBINVAR_GET, [flags], [mapfile cnt])
to retrieve chunks of data from the named binvar via the mapfile with all the same error codes as the existing messages.

A requested length of -1 would mean from offset to the end.

An additional set of enhanced error flags could be added to indicate more data waiting & unknown binvar

Code
#define WM_MBINVAR_GET (WM_USER + 202)
#define MIRCF_UNICODE 8
#define MIRCF_ENHANCEDERRORS 16

bool getBinvarData(HWND mIRCHWND, WCHAR *szMapFileDataAsString, int MapCnt, WCHAR *szBinvarname, size_t start, ptrdiff_t length)
{
  wsprintf(szMapFileDataAsString, L"%s %d %d", szBinvarname, start, length);
  
  auto err = SendMessage(mIRCHWND, WM_MBINVAR_GET, MIRCF_UNICODE | MIRCF_ENHANCEDERRORS, MapCnt)
  // mapfile now contains binvar data.
  if (err == 0)
    return true;

  // handle errors...

  return false;
}

method 2:
The dll would write the binvar name to the mapfile and call SendMessage(hwnd, WM_MBINVAR_GET, [flags], [mapfile cnt])
to retrieve a pointer to the binvar data & data length as text in the mapfile (similar to how /drawdll passes HDC's)
this would also lock the binvar to stop it being deleted untill a matching WM_MBINVAR_RELEASE is sent with the same binvar name in the mapfile.

An additional enhanced error flag could be added to indicate unknown binvar

This version would allow the dll to directly read & modify the binvar data.

Code
#define WM_MBINVAR_GET (WM_USER + 202)
#define WM_MBINVAR_RELEASE (WM_USER + 203)
#define MIRCF_UNICODE 8
#define MIRCF_ENHANCEDERRORS 16

std::vector<uint8_t> getBinvarData(HWND mIRCHWND, WCHAR* szMapFileDataAsString, int MapCnt, WCHAR* szBinvarname)
{
  std::vector<uint8_t> vOut;

  wcscpy(szMapFileDataAsString, szBinvarname);

  const auto err = SendMessage(mIRCHWND, WM_MBINVAR_GET, MIRCF_UNICODE | MIRCF_ENHANCEDERRORS, MapCnt);
  if (err == 0)
  {
    auto pBinvarData = reinterpret_cast<uint8_t*>(wcstoumax(szMapFileDataAsString, nullptr, 10));
    auto szlen = wcschr(szMapFileDataAsString, L' ') + 1;
    auto iLen = wcstoumax(szlen, nullptr, 10);
    vOut.reserve(iLen);
    
    std::memcpy(vOut.data(), pBinvarData, vOut.size());

    wcscpy(szMapFileDataAsString, szBinvarname);
    SendMessage(mIRCHWND, WM_MBINVAR_RELEASE, MIRCF_ENHANCEDERRORS, MapCnt);
    return vOut;
  }

  // handle errors...

  return vOut;
}

Both these methods have their pros & cons with lots of work need to secure them etc...
0 131 Read More
Scripts & Popups
sockopen ThomasDieKleineL 01/03/26 08:26 PM
Sorry for my bad English.

I'm German.

I have a small problem with a sockeopen. Here's my code. I hope you can help. Thanks in advance.

Code
on *:sockopen:fb: { 
  if ($sockerr) { echo -st $+(14,$sock($sockname).addr) konnte nicht gescheckt werden :( | return } 
  sockwrite -n $sockname GET $sock($sockname).mark HTTP/1.0
  sockwrite -n $sockname HOST: $sock($sockname).addr
  sockwrite -n $sockname User-Agent: $me
  sockwrite -n $sockname Content-Length: 769
  sockwrite -n $sockname Connection: close
  sockwrite -n $sockname $crlf
}
on *:sockread:fb: { 
  if ($sockerr) { echo -st $+(14,$sock($sockname).addr) konnte nicht gescheckt werden :( | return }
  else {
    tokenize 32 $sock($sockname).mark
    var %temp | sockread %temp
    if (%temp != $null) {
      echo -a %temp
    }
  }
}
on *:sockclose:fb:{ sockclose fb }

alias test { sockclose fb | sockopen -e fb www.kicker.de 443 | sockmark fb /bundesliga/spieltag/ }

The server's response is as follows:

HTTP/1.1 403 Forbidden
Server: CloudFront
Date: Sun, 01 Mar 2026 20:26:11 GMT
Content-Type: text/html
Content-Length: 915
Connection: close
X-Cache: Error from cloudfront
Via: 1.1 9ef1b108656dc6d0707b168b862883dc.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: FRA60-P1
X-Amz-Cf-Id: 1pl4VLVPWj1QTbu4HzG0Pqr3yhHPgnSsyDgw8ZJ2W5sEih49_EO_fA==
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>403 ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
Bad request.
We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.
<BR clear="all">
If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.
<BR clear="all">
<HR noshade size="1px">
<PRE>
Generated by cloudfront (CloudFront)
Request ID: 1pl4VLVPWj1QTbu4HzG0Pqr3yhHPgnSsyDgw8ZJ2W5sEih49_EO_fA==
</PRE>
<ADDRESS>
</ADDRESS>
0 224 Read More
Feature Suggestions
Line shading RoCk 14/02/26 09:08 PM
Could you add this option for custom windows, too? Maybe a switch for the /window command. Thanks!

5.Added Line shading option to Display/Options dialog that shades
alternate lines. Also added a system menu Shading option for
per-window settings.
0 144 Read More
Feature Suggestions
darkmode alias Bauderr 01/01/26 04:06 PM
I would like to suggest a /darkmode and /lightmode commands
0 276 Read More
Bug Reports
Typo in help document Bauderr 24/12/25 06:56 PM
In the help document under $finddir it says the following:
Code
$finddir($mircdir,logs*,1)  returns the first directory name beginning with "mirc"
As you can see, it says beginning with "mirc" however it is searching for logs*
0 213 Read More
Feature Suggestions
/writeini deVilbaT 13/12/25 12:44 PM
A switch is needed to save /writeini, but as the first item.

Example .ini:
[a]
a=b

Command: /writeini <some switch> a b a

Effect:
[a]
b=a
a=b

Regards.
0 276 Read More
Scripts & Popups
YouTube Requester Fernet 30/11/25 06:19 PM
Hi!
I found this bot in a channel:

[img]https://ibb.co/LzBhJ9TR[/img]

Input = Someone ('Shakti) type title and singer (Rod Stewart Sailng)
Output = Bot return YouTube link and more info

Someone has any hint about it? How to make or where to find?
Thanks for help
0 279 Read More
Feature Suggestions
Indentation size in the script editor goblin58 28/11/25 09:19 PM
Would it be possible to add a user option to adjust the tab/indentation size in the script editor. I use a vs code for editing and I have my tab/indentation size set to 4 spaces, however loading/saving scripts reformats the indentation/tab size to 2 spaces.
0 244 Read More
Scripts & Popups
website text script NewzNZ 23/11/25 08:36 AM
Hi there

I have some scripts to pull headlines etc from various news feeds.

Am currently using:
if (some-text-here isin %temp) {

to identify the line of text I want to use, but some of the sites have more of an RSS format and don't have unique lines or codes to identify them.

Just wondering if there's a way to pull a specific line number from a page? e.g. in a tcl script used on an eggdrop bot, it's [lindex [split $data \n] 6] where line 6 is the number.

Thanks in advance for any help...
0 324 Read More
Latest News Jump to new posts
mIRC 7.83 released Khaled 12/11/25 04:54 PM
Dear mIRC User,

mIRC v7.83 has been released today.

This is a small update that adds features and addresses a number of issues reported by users since the last release. It includes improvements, changes and fixes, including:

Fixed NickServ bug that prevented /nickserv from logging on when connecting.
Fixed IPv6 parser bug that affected /dcc commands and other features.
Fixed listbox text not being displayed correctly with different DPI settings.
Added support for key derivation functions pbkdf2 and argon2 as identifiers.
Added /drawdll command that allows a custom DLL to draw to a picture @window's bitmap.
Added $encode()/$decode() 'y' switch that Punycode-encodes/decodes text.
Added support for internationalized domain names when resolving addresses.
Updated CA root certificates cacert.pem file.

How to upgrade?
mIRC is distributed in an installer that installs mIRC on your computer for you. Simply download and run the installer from the download page on the mIRC website. Follow the instructions the installer gives to you. When upgrading all your old settings and scripts will stay as they were, if you want that. Read the questions the installer asks with care and nothing can go wrong. You will be chatting with the new mIRC in no time. If you get stuck or if you want to find out more about a certain feature, just click on a Help button or browse the Help file and you should find lots of hints to help you out.

Where to download?
As always, the latest version of mIRC can be downloaded from the download page on the mIRC website.

Registering mIRC
As you know, mIRC can be downloaded freely and evaluated for 30 days. If you find that you enjoy using mIRC, it would be great and much appreciated if you registered your copy. This licenses you to use your copy of mIRC and helps to support our continued work on mIRC. You can find out how to register here.

Full list of Fixes, Changes and Additions.
For a more detailed list of recent changes, please see the whatsnew.txt file. You will need to read through the help file to learn more about these changes and their impact. Some changes are obvious, some need getting used to - please take your time to play with them and see how they work. May we invite you to use these forums for all questions you might have? The forums offer great help with everything related to mIRC!

Thanks for using mIRC, have fun on IRC!
0 2,090 Read More
Latest News Jump to new posts
mIRC 7.82 released Khaled 25/10/25 05:42 PM
Dear mIRC User,

mIRC v7.82 has been released today.

This is a small update that adds features and addresses a number of issues reported by users since the last release. It includes improvements, changes and fixes, including:

Added $tip() support for permanent tray tips.
Added support for specifying a username for SASL Logins.
Added SASL disconnect on error server option.
Fixed percent encoding/decoding memory bug that would have caused intermittent crashes.
Fixed touchpad speed/sensitivity when scrolling in different types of windows.
Fixed handling of swapped mouse buttons in different contexts.
Fixed $urlget() crash bug when credentials are passed in URL.
Fixed features that were using the wrong default GUI font under Windows 10/11.
Fixed various Aero theme bugs relating to Windows display scale and text size options.
Updated all code and libraries in preparation for future 64bit / ARM64 versions.
Updated libraries to LibZip v1.11.4, LunaSVG v3.5.0, and TagLib v2.1.1.
Updated from the OpenSSL v3.0.x branch to v3.5.4.
Updated SSL code to remove use of 30+ deprecated OpenSSL APIs.
Updated CA root certificates cacert.pem file.

How to upgrade?
mIRC is distributed in an installer that installs mIRC on your computer for you. Simply download and run the installer from the download page on the mIRC website. Follow the instructions the installer gives to you. When upgrading all your old settings and scripts will stay as they were, if you want that. Read the questions the installer asks with care and nothing can go wrong. You will be chatting with the new mIRC in no time. If you get stuck or if you want to find out more about a certain feature, just click on a Help button or browse the Help file and you should find lots of hints to help you out.

Where to download?
As always, the latest version of mIRC can be downloaded from the download page on the mIRC website.

Registering mIRC
As you know, mIRC can be downloaded freely and evaluated for 30 days. If you find that you enjoy using mIRC, it would be great and much appreciated if you registered your copy. This licenses you to use your copy of mIRC and helps to support our continued work on mIRC. You can find out how to register here.

Full list of Fixes, Changes and Additions.
For a more detailed list of recent changes, please see the whatsnew.txt file. You will need to read through the help file to learn more about these changes and their impact. Some changes are obvious, some need getting used to - please take your time to play with them and see how they work. May we invite you to use these forums for all questions you might have? The forums offer great help with everything related to mIRC!

Thanks for using mIRC, have fun on IRC!
0 723 Read More
General Discussion Jump to new posts
ARM64 vs WinXP Support magamiako 28/08/25 03:35 PM
Oh that's a tough one.

Honestly, given mIRC there are probably more people that benefit from having Windows XP support than those that would benefit from having ARM support (after all, ARM64 devices can run x86 code, even if sub optimally).

I'd probably lean on a poll or system check from folks to get an idea of the number.

However, I definitely still recommend getting an x86-64 version of mIRC up and running if possible! As there are enough security benefits under the hood in Windows these days to make that worthwhile.

To be fair, though, maintaining Windows XP support now would be similar to maintaining Kenbak-1 support when mIRC first came out.
0 481 Read More
General Discussion Jump to new posts
Appreciate all the under the hood work! magamiako 28/08/25 03:23 PM
Just wanted to comment to Khaled that I massively appreciate all of the under the hood work being done on mIRC right now! I know it's not something that's typically a visible feature for most users, but it's important work to keep mIRC modernized (and hopefully, better performance and more security).

Thanks!
0 760 Read More
Scripts & Popups
BADNICK JOIN/CHANGE Fernet 26/08/25 01:54 PM
Hi. I'm using this addon that check ON JOIN and ON NICK if nick is included in bnicks.txt.
So if nick is included in the file, so the user receive a kick/ban:


Code
on !*:JOIN:#CHANNEL:{
  var %idmask $remove($gettok($gettok($address($nick,5),1,64),2,33),~)
  var %x = 1
  while (%x <= $lines($mircdirbnicks.txt)) {
    if ($read(bnicks.txt,%x) iswm %idmask) {
      cs ban $chan +3600 $+(*!*,$v1,*@*) NICK NOT ALLOWED ! | /write $mircdir $+ banemule.txt *Badnick* $date $time $nick ---> $address
    }
    if ($read(bnicks.txt,%x) iswm $nick) {
      cs ban $chan +3600 $+(*,$v1,*!*@*) NICK NOT ALLOWED ! | /write $mircdir $+ banemule.txt *Badnick* $date $time $nick ---> $address
    }
    inc %x
  }
}

on *:NICK:{
  var %i = 1, %badwords = 1
  while (%i <= $comchan($newnick,0)) {
    if ($comchan($newnick,%i) != #eMule-Italian) { break }
    if ($newnick !isop $comchan($newnick,%i)) && ($newnick !ishop $comchan($newnick,%i)) && ($newnick != $me) {
      while (%badwords <= $lines(bnicks.txt)) {
        if ($read(bnicks.txt,%badwords) iswm $newnick) {
          cs ban $chan +3600 $+(*,$v1,*!*@*) NICK NOT ALLOWED !  | /write $mircdir $+ banemule.txt *Badnick* $date $time $newnick ---> $address($newnick,5)
        }
        inc %badwords
      }
    }
    inc %i
  }
}

All the + % @ & ~ users are protected, but because I have some troll users who use to wear a nick that recall ircop/ircap , I'd like to add an exception for them too, because in the channel , they don't have any status (so they looks normal users) , so they receive kick/ban too.
So I think addon should has to check mask.
I plan to make a exceptednick.txt and write allowed nicks/masks.

These are ircop/Ircap part of mak:

*!*@ServicesAdmin.*
*!*@NetAdmin.*
*!*@*.NETNAME.org
*!*@NL.IrcOp.NETNAME.org


Thanks for help
0 774 Read More
Feature Suggestions
$toolbar() - add property for picture file path Epic 10/08/25 03:40 PM

I suggest adding a new property ".picfile" for the identifier $toolbar() that will return the path to the picture file used as the toolbar button icon.


Syntax: $toolbar(name/N).picfile

Return: images\ico\picfile.ico


Note: This can only work if the button was created/added by the user himself using the command /toolbar -a, where he specified the path to the external picture file.
0 607 Read More
mIRC Help
Toolbar Buttons Fernet 09/08/25 01:28 PM
Hello.
Because I use to set some aliases using script editor (ie: f12 /clerall) , now I'd like to add some buttons on toolbar and associate to a command.
This is my actual toolbar:

[img]https://ibb.co/8g3z4qXJ[/img]

And this is what I mean:

[img]https://ibb.co/4nZsBcQF[/img]

And so give to any Italian flag (or any flag.png) a different command.
Is it possible?
I tried using /toolbar -a CLEAR /clearall but I get----> /toolbar: insufficient parameters
What am I missing?
Thanks
0 758 Read More
Feature Suggestions
Feature requests regarding URLs list Inhahe2 04/08/25 02:43 AM
I don't remember if I've suggested this feature before, but if I did, it was a long time ago and nothing was done. =p

I think the URLs list (that mIRC captures from channels, etc.) would be a lot more useful if each URL showed the channel and the nick or hostmask that posted the URL, and preferably if you could filter by channel and/or nick/hostmask, too.

Being able to filter by domain/subdomain might be good, too.

Oh, and the choice of inclusion or exclusion filters could be good.
0 544 Read More
Scripts & Popups
BADWORD IN MASK Fernet 27/06/25 03:14 PM
Hello, I noticed there're users who join in my channel with badword included in mask.
Example:

NICK is BADWORD@etc.....

Is possible to have an addon that kick/ban an user who use BADWORD in its mask?
Thanks
0 506 Read More
mIRC Help
command /script fir3fox 08/06/25 07:47 PM
Hi, someone told me /script should show me what script file and .ini files my mirc have read and using, and its should be built comamnd from start, /script unkown command is that a normal behavour or I miss something here ?

//fir3fox
0 633 Read More
Scripts & Popups
whois help me abi 03/06/25 12:57 PM
Hello,
I tried to make a script but when I tried not to produce special whois only on the query without having to display anywhere either the status channel or any but had to be query only query
Quote
raw &311:*:{ echo -a $timestamp 13( 0whois $2 13 ) | echo -a $timestamp 12| 0nick:14 $2 | echo -a $timestamp 12| 0name:14 ( $+ $6- $+ ) | echo -a $timestamp 12| 0hostname:14 $3 $+ @ $+ $4 | halt }
raw &314:*:echo -a $timestamp 12| 0name:14 $2- | halt
raw &312:*:echo -a $timestamp 12| 0server:14 $3 ( $+ $4- $+ ) 0IP:12 $serverip | halt
raw &369:*:echo -a $timestamp 12| 0whowas:14 $2- | halt
raw &379:*:echo -a $timestamp 12| 0using modes:14 $6- | halt
raw &307:*:echo -a $timestamp 12| 0registered nick:14 Yes | halt
raw &319:*:echo -a $timestamp 12| 0channels:14 $3- | halt
raw &313:*:echo -a $timestamp 12| 0oper status:12 $5- | halt
raw &671:*:echo -a $timestamp 12| 0SSL:12 $4- | halt
raw &310:*:echo -a $timestamp 12| 0raw info:12 $4- | halt
raw &320:*:echo -a $timestamp 12| 0raw info:12 $3- | halt
raw &330:*:echo -a $timestamp 12| 0raw info:12 $4- | halt
raw &317:*:echo -a $timestamp 12| 0idle:14 $duration($3) | halt
raw &301:*:echo -a $timestamp 12| 0away:14 $3- | halt
raw &318:*:echo -a $timestamp 13( 0end whois $2 13 ) | halt
raw &378:*:{
haltdef
var %host = $remove($6,*@)
hadd -mu1800 userhost $2 %host
if $longip(%host) {
echo -a $timestamp 12| 0real IP:12 $6
return
}
if $hget(iptable,%host) {
echo -a $timestamp 12| 0real Host:12 $6 0real IP:12 $ifmatch
return
}
echo -a $timestamp 12| 0real Host:12 $6 0Getting IP...
hadd -m iptable %host 0
.dns -h %host
}

On *:dns:{
if $hget(iptable,$dns(1).addr) == 0 {
hadd -mu1800 iptable $dns(1).addr $iif($dns(1).ip,$ifmatch,Unresolved)
halt
}
echo -a $timestamp 13> 11dns12 [13!12]
var %n = $dns(0)
if (!$dns(0)) { echo -a $timestamp 12.11.13. 11Resolve 4Failed }
while (%n > 0) {
echo -a $timestamp 12.11.13. 11Resolved 12: 13[12 $+ $dns(%n).addr $+ 13]12 To 13[12 $+ $dns(%n).ip $+ 13] $iif($dns(%n).nick != $null, 13[12 $+ $dns(%n).nick $+ 13]) | HALTDEF
dec %n
}
}

alias listip {
var %i = $hget(userhost,0).item
window -t20,40 @listip
while %i {
var %nick = $hget(userhost,%i).item, %ip = $hget(userhost,%nick), %i = %i - 1
if $hget(iptable,%ip) {
var %host = %ip, %ip = $ifmatch
}
aline @listip $+(Nick: %nick,$chr(9),IP: %ip,$chr(9),$iif(%host,Host: %host,Unresolved))
}
}
0 912 Read More
Page 1 of 2 1 2