mIRC Home    About    Download    Register    News    Help

Active Threads | Unanswered Past 24 hours | Past 48 hours | Past Week | Past Month | Past Year
Bug Reports Jump to new posts
mIRC beta Khaled 6 hours ago
The latest beta can be downloaded here and includes the following changes:

Note: there are no more features planned for this beta cycle. Once the beta looks stable, a new version will be released to address the nickserv and IPv6 parser issues.

Quote
Beta 7.82.866 changes:
1.Item 7, added.
2.Item 6, I was finally able to reproduce this and can confirm that
this fix resolves the issue.
3.Item 8, added.

Punycode itself is straightforward but the unicode mapping, bidi
checking, NFC normalization, and meeting the Unicode Technical
Standard at https://www.unicode.org/reports/tr46/#ToUnicode is
a lot harder. I ended up looking at the IDNA and UPA libraries:

https://github.com/ada-url/idna
https://github.com/upa-url/upa

Both worked well, although the IDNA library needed some minor code
changes to compile under Visual Studio 2017 C++17 as it was using
several C++20 functions. This does mean that it may not be usable
in future if I need to maintain XP support. For now, I am using
the IDNA library.

There are many Punycode encoders/decoders online. The only one I
found that worked properly was https://www.punycoder.com.

4.Item 9, added https://forums.mirc.com/ubbthreads.php/topics/273673
6.Item 4, fixed https://forums.mirc.com/ubbthreads.php/topics/273702
7.Item 1, https://forums.mirc.com/ubbthreads.php/topics/273707
8.Item 10, updated.

Beta 7.82.526 changes:
1.Item 1, fixed.
2.Item 2, added.
3.Item 3, updated. These are minimal code changes that clear up minor
warnings for specific sections of code.
4.Item 4, added.
5.Item 5, fixed. The code was being used in different contexts, so I
have changed it to be more strict. Unit tests across different
features where this is used seem to be working correctly.
6.Item 6, fixed. This was reported for the Options dialog listbox but
I was not able to reproduce it. However, code was changed that relates
to listbox line heights, so has been changed to work as before.

Changes:
1.Fixed nickserv logon bug where the nickserv message was not being
sent on connecting to a server.
2.Added support for key derivation functions pkbdf2 and argon2 as
identifiers:

$pbkdf2(text|&binvar, salt|&binvar, hash, length, iterations, opts)

$argon2(text|&binvar, salt|&binvar, hash, length, iterations,
parallelism, memcost, opts)

The opts parameter is optional and can be set to 'b' to indicate
&binvar parameters. The return value is the derived key.

3.Updated code to clear all remaining minor static code analysis issues
reported by the compiler. This will make it easier to spot unhandled
issues in the future across 32-bit/64-bit/ARM64 versions.
4.Added custom dialog editbox option 'optional' for grayed out optional
text indicator. If followed by "quoted" text, this is used as the
optional text.
5.Fixed IPv6 parser change that affected a number of features, such as
the /dcc send/chat commands with nicknames that contain brackets.
6.Fixed listbox text not being displayed correctly for some features
when Windows DPI scaling is changed.
7.Added /drawdll command that calls a custom DLL and passes a picture
@window's memHDC and HBITMAP handles to it. The DLL can then either
draw to the memHDC or modify the HBITMAP directly.

/drawdll -n <@window> <dllname> <procname> [data]

The DLL must then return a data string in the format:

<update> <left> <top> <right> <bottom>

Where <update> is 0 or 1 indicating whether to update the display or
not. If -1, uses the default. <left> <top> <right> <bottom> are
window coordinates of the changed area. If not specified, the whole
bitmap is marked as changed.
8.Added $encode()/$decode() 'y' switch that Punycode-encodes/decodes
text with the ADA IDNA library using IDNA2008 and UTS46.
9.Added support for internationalized domain names when resolving
addresses.
10.Updated CA root certificates cacert.pem file.
1 447,873 Read More
Bug Reports Jump to new posts
Re: 7.82 broke login via nickserv on connect? Khaled Yesterday at 04:47 PM
Thanks, I have extended the nickserv code to also use the username if it is specified in the server dialog. This change will be in the next beta.
5 351 Read More
Bug Reports Jump to new posts
Re: Editbox option 'optional' Khaled Yesterday at 03:56 PM
Yes, that sounds about right. Let's see how the next beta works out.
3 39 Read More
Feature Suggestions Jump to new posts
Re: (optional) text in the dialog edit field Wims 06/11/25 11:20 PM
Couple notes.

Your suggestion is great and is an obvious improvement upon the original, too simple, suggestion.
But what you proposed syntactically speaking doesn't work: if you want an optional text for the editbox then you wouldn't be filling AND a ghost text AND the original field for the editbox's text.

The new beta only implements a default (optional) text, which, practically speaking, is quickly limiting, a better implementation which doesn't break the current syntax would be

Quote
edit "", id, x y w h, ... optional
With the optional option and empty value for the text, it would then show the default (optional) as an optional/ghost text.

Quote
edit "custom", id, x y w h, ... optional
Whereas this would then show the custom optional/ghost text "custom"

And we do need a /did switch to get that behavior.




It would also be nice to have an option to get a default value, so basically a text that is selected, which, when in focus, would automatically overwrite itself.
This can't be scripted.
2 304 Read More
Feature Suggestions Jump to new posts
Re: ARM64 Support for mIRC Jinx_Dojo 06/11/25 08:25 PM
As of 2025/11/06, the beta post notes:
Quote
3.Updated code to clear all remaining minor static code analysis issues
reported by the compiler. This will make it easier to spot unhandled
issues in the future across 32-bit/64-bit/ARM64 versions.

However, that post/page is transitory in nature and so is often blank. Fortunately, versions.txt is persistent and also notes it (emphasis added):

Quote
8.Updated all external libraries to support compilation as both 32-bit
and 64-bit, in preparation for a future 64-bit release and possible
ARM64 support
. Updated all routines to use 32-bit/64-bit compatible
types, performed static code analysis, compilation and testing under
different Visual Studio versions, SDKs, and platform toolsets,
focusing on common 32/64-bit porting issues, with the aim of
minimizing code changes and hardening code.

(It doesn't look like a 32-bit ARM is planned, so those of us with RaspberryPi 2 servers are out of luck!)
4 2,600 Read More
Feature Suggestions Jump to new posts
Re: Drag & Move Channels Wims 01/11/25 05:56 PM
Being able to drag and move channels around has been suggested a lot before.

Being able to see emoji is a font issue and mIRC does fallback to different fonts when a character isn't available in a font so you should be able to see emoji, you can try to set your font to 'segoe ui'.

As far as using emoji you can use this script which lists all the 'face' emoji in a custom windows, double clicking copy to clipboard.

alias emoji {
if ($window(@emoji)) { window -a @emoji | return }
else {
window -odl @emoji -1 -1 100 500 verdana -28
var %a 1,%l 128512 128515 128516 128513 128518 128517 129315 128514 128578 128579 129760 128521 128522 128519 129392 128525 129321 128536 128535 9786 128538 128537 129394 128523 128539 128540 129322 128541 129297 129303 129325 129762 129763 129323 129300 129761 129296 129320 128528 128529 128566 129765 128566 128527 128530 128580 128556 128558 129317 129768 128578 128578 128524 128532 128554 129316 128564 129769 128567 129298 129301 129314 129326 129319 129397 129398 129396 128565 128565 129327 129312 129395 129400 128526 129299 129488 128533 129764 128543 128577 9785 128558 128559 128562 128563 129770 129402 129401 128550 128551 128552 128560 128549 128546 128557 128561 128534 128547 128542 128531 128553 128555 129393 128548 128545 128544 129324 128520 128127 128128 9760 128169 129313 128121 128122 128123 128125 128126 129302
while ($gettok(%l,%a,32)) {
aline -l @emoji $chru($v1)
inc %a
}
}
}
alias chrU {
var %chr = $iif(U+* iswm $1, $base($mid($1, 3), 16, 10), $1)
if (%chr isnum 65536-1114111) return $chr($calc(55232 + %chr / 1024)) $+ $chr($calc(56320 + %chr % 1024))
return $chr(%chr)
}
menu @emoji {
dclick : clipboard $sline(@emoji,1)
}
1 106 Read More
General Discussion Jump to new posts
Re: mIRC locks Soundcard. Please make disable option! thomaz 30/10/25 10:57 PM
Finally i made sum investigations.

When mirc is using a soundcard, i tested it with "rme multiface" and now "creative pebble x speaker with internal usb soundcard", in both cases a running mirc eats 2 watt more power.

Now i had the idea to block mirc to access windows audio with sandboxie.
So i added "ClosedIpcPath=\RPC Control\AudioSrv" to the sandboxie.ini.
Then i start mirc inside sandboxie and voila ... 2 watt less energy consumption (25 Watt, instead of 27).
Maybe it isnt a very exact measurement because i use the power consumption measurement of an apc ups.
But it clearly shows that an always "touched" windows audio can generate unnecessary power consumption.

No matter, i can live with the sandboxie workaround smile

thx. smile
3 3,002 Read More
Scripts & Popups Jump to new posts
Re: SQLite DLL, Timer Message Delay and Overlap favellado 30/10/25 10:03 PM
The issue is that when passing $6 = 1, it assumes it will work for everyone. Everyone is the hash key, and $1, $2, $3, $4 is the hash value. If I pass the same message to different channels, one will overwrite the other because the key is the same. The problem seems to be there.
I avoid $unsafe in the scon or timer when I know the value won't have problems.
The alias $sbtok builds an $aliasname(parameters) to be used in a timer or scon, for example:
noop $sbtok(44,echo,$null,-a,test) is the same as $echo(-a,test).

SBTOK = String Builder token
5 357 Read More
Bug Reports Jump to new posts
Re: 7.82 window tab text bigger then 7.81 FrostyWinnipeg 30/10/25 07:13 PM
Your comment about the treebar had me go down the rabbit hole and I thought I would compare fonts for that and the switchbar to old backups and there's the answer. The font settings had changed.

Previously I had switchbar set to Microsoft Sans Serif 8 and the treebar Segoe UI 9. I dont ever recall changing the font on those so I wonder how old they are? They must have been default at one time?
4 377 Read More
General Discussion Jump to new posts
Re: auto identify doesnt work anymore? Khaled 29/10/25 09:23 AM
See here for a recent discussion on this topic.
1 91 Read More
General Discussion Jump to new posts
Re: msl running headless goblin58 29/10/25 07:14 AM
I appreciate your time and response. If mSL is baked into the gui then I wouldn’t even consider doing it, sounds like to much of a challenge.
2 260 Read More
Bug Reports Jump to new posts
Re: 7.82 bug - /dcc chat nick's with "]" or "[" cowbawx 27/10/25 12:00 PM
Great! Thank you!
2 273 Read More
Feature Suggestions Jump to new posts
Add IDN (Unicode Domain) Support in mIRC WanderfuLL 26/10/25 09:43 PM
Hello Khaled,

I’ve noticed that IDN (Internationalized Domain Names) like irc.aşk.net are not resolved in the current mIRC versions (e.g., 7.81).

Can you please consider adding support for IDNs so users can connect to servers using Unicode domains directly?

This would greatly help users from many languages and regions.

Thank you for your great work on mIRC.
0 153 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 264 Read More
Scripts & Popups Jump to new posts
Re: Choose var equally Simo 16/10/25 11:27 AM
Thanks wims, i used original as well but was hoping your shorter version could be made to work but from what i understand from you is it can't be made to work, if i understood well.


BTW these are the aliases for it :

Code
 

alias cloakjhtyafvdl { return $regsubex($str(x,$r(4,5)),/./g,$iif($r(0,1) == 1,$r(a,z),$iif($r(0,1) == 1,$r(a,z),$r(0,9)))) }

alias cloakjhtyafvdXX { return $regsubex($str(x,$r(2,3)),/./g,$iif($r(0,1) == 1,$r(0,9),$iif($r(0,1) == 1,$r(0,9),$r(0,9)))) }


Much appreciated,

Simo.
9 942 Read More
Feature Suggestions Jump to new posts
Re: Editable Language Files WarPigs 14/10/25 06:08 AM
I fixed some errors in the dll, there now no warnings.
Originally Posted by WarPigs
So, iv'e created a new german language DLL for mIRC 7.81 (Partly translated with an AI) that can downloaded here. I'll optimize that now with an further review of the dll.
25 27,309 Read More
Bug Reports Jump to new posts
Re: Laptop trackpad scrolling way too fast Khaled 06/10/25 01:38 PM
Thanks for your bug report. I was able to reproduce this issue on a touchpad here. Excessively fast/sensitive two finger scrolling on touchpads seems to be a common issue with applications. In this case, mIRC was not handling how a touchpad sends WM_MOUSEWHEEL delta values in small increments, that need to be accumulated, which is different to how a mouse sends the same message. I have made a change to the next beta that should hopefully resolve the issue.
1 275 Read More
General Discussion Jump to new posts
Anyone Here? Zmodem 05/10/25 03:18 AM
Figured I would use the General Discussion forum to shamelessly look for anyone, even old timers, still residing within this playground smile How is everyone?
0 157 Read More
mIRC Help Jump to new posts
Re: server.ini Khaled 03/10/25 09:53 AM
You can find the scripts editor in the Tools menu in the mIRC menubar.

Once you open the scripts editor, you will need to click on the Aliases tab, then click View in the menubar to see which files are loaded.

You will then need to do the same thing with the Popups, Remote, Users, and Variables tabs.

If you see a servers.ini files listed in the View menu, you will need to select it, then click the File menu in the menubar and click on Unload.
3 758 Read More
Feature Suggestions Jump to new posts
Re: Extend draw commands to support alpha Epic 31/08/25 01:50 PM
Good idea, I support this request.
1 513 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 294 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 578 Read More
Scripts & Popups Jump to new posts
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 543 Read More
Feature Suggestions Jump to new posts
Re: /write - add switch to create path/directory Epic 23/08/25 07:20 AM

My own temporary solution to implement this idea:
Code
alias write {
  if (-*p* iswmcs $1 && $nofile($2) && !$exists($nofile($2))) { mkdir $nofile($2) } | write $1-
}
1 784 Read More
Scripts & Popups Jump to new posts
Re: Format and color the public messages Epic 20/08/25 07:20 PM
You can also try using another variation of the script code with one common alias to check the nick, format and send the echo message:
Code
on ^*:TEXT:*:#: haltdef | emsg $chan $nick $1-
on *:INPUT:#: if (/* !iswm $1) { haltdef | .msg $chan $1- | emsg $chan $me $1- }

alias -l emsg {
  var %time $+(94,$time(HH:nn:ss))
  if ($2 isop $1) { var %nick $+(04,$2) }
  elseif ($2 ishop $1) { var %nick $+(09,$2) }
  elseif ($2 isvoice $1) { var %nick $+(00,$2) }
  else { var %nick $+(07,$2) }
  echo $1 %time %nick :15 $3-
}
4 1,337 Read More
Page 1 of 7 1 2 3 4 5 6 7