mIRC Home    About    Download    Register    News    Help

Active Threads | Unanswered Past 24 hours | Past 48 hours | Past Week | Past Month | Past Year
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 107 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 43 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 89 Read More
Bug Reports
mIRC beta Khaled 28/08/25 11:03 AM
The latest beta can be downloaded here and includes the following changes:

Quote
Beta v7.81.2295 changes:
1.Item 8, experimented with ARM64, which needs a newer toolset and SDK
version than the one I am currently using to maintain compatibility
with XP. If I am to maintain a consistent/tested release/debug codebase,
this will likely require dropping support for XP.
2.Item 13, updated. The number of deprecated OpenSSL API calls in mIRC's
SSL code has been increasing with each migration to newer versions of
OpenSSL. Updating these is not as simple as replacing an API call.
Almost all of the deprecated APIs require a complete rewrite of
long-tested / critical code. Documentation is sparse and finding
code examples online is difficult, especially since deprecated APIs
are in wide use and most codebases have not been updated, requiring
signficant research. All new APIs also need to be enabled for
dynamic loading from a DLL if the static library is not being used.

This update replaces 30+ deprecated OpenSSL APIs, affecting a
number of features, such as connecting to servers, signing/signature
verification, certificate creation/parsing/display, ECDSA login/public
key extraction, and so on.

Beta v7.81.1739 changes:
1.Item 9, updated to LunaSVG 3.4.0.
2.Item 10, updated.
3.Item 9, updated to OpenSSL 3.5.2.
4.Item 11, fixed. Some features, eg. Switchbar, were using the
older Microsoft Sans Serif font on Windows 10 onwards when they
should have been using Segoe UI to match the rest of the
interface.
5.Item 12, fixed.

Beta v7.81.1533 changes:
1.Fixed https://forums.mirc.com/ubbthreads.php/topics/273507
Reverted changes to /drawsave.
2.Fixed https://forums.mirc.com/ubbthreads.php/topics/273514
Fixed PCRE configuration file.

Beta v7.81.1502 changes:
1.Item 1, updated. This looks like it is working correctly on XP
and onwards.
2.Item 2, added. The tray tip implementation is based on tips expiring
within a delay period and a maximum queue size. For this feature, the
way tips are ordered/expired had to be changed. For non-permanent
tips, the behaviour should still be identical to previous versions.
3.Item 3, updated. mIRC currently limits itself to the 7.0 SDK for
XP compatibility. But I occasionally test with newer SDKs which can
introduce changes to APIs/structs/etc.
4.Item 4, fixed https://forums.mirc.com/ubbthreads.php/topics/273408
5.Item 5, changed https://forums.mirc.com/ubbthreads.php/topics/273429
6.Item 6, fixed https://forums.mirc.com/ubbthreads.php/topics/273456
7.Item 7, changed. Previously, mIRC was loading the entire dialog from
the language DLL and using it as is. This allowed translators to
size/position controls to fit translated text. Unfortunately, this
lead to issues, eg. where a control style/size/position changes in
a subsequent version, and a translator would need to propagate all
of these changes to their language DLL, and re-test them for newer
releases. This makes updating language DLLs far more difficult.
8.Item 8, significant progress towards a 64bit version.

Note: this beta release is the standard 32bit mIRC that includes
the changes described below. A 64bit mIRC is not being released yet.

All external libraries have been updated to compile as both 32bit
and 64bit. This took some work as the existing solutions were created
and customized over many years for just 32bit builds. As multiple
builds are now needed for the external libraries that mIRC uses,
ie. debug/release 32bit/64bit/ARM64, I did not want to go through
the process of re-applying custom build changes every time
a new library is released. So I re-installed all libraries from
original sources and used their default configs, naming conventions,
paths, and other settings, where possible, and compared all of
these to the older configurations to ensure there were no critical
differences in build options. Most of the Cmake build files still
require tweaks, eg. for XP compatibility, so these have now been
documented per library and automated where possible. This setup
also makes it easier to add ARM64 builds at a later date.

I was then able to compile and test a full 64bit mIRC under Visual
Studio 2017/2022 and different SDK versions for testing. Reviewed
reports from Visual Studio 2022 static code analysis and cppcheck.
Most warnings were false positives but some related to pointers being
stored in INTs which required code changes. Mostly minor cast warning
changes to 180+ files. Repeated and reviewed the above process
several times, focusing on common 32/64 bit porting issues, with
the aim of minimizing code changes and hardening code.

Compiled 32bit/64bit mIRC with Address Sanitizer for testing.

Also tested 32bit mIRC with /largeaddressaware enabled, giving it
access to 4GB memory, and tested on Windows with top down memory
allocation enabled. This feature requires that all external 32bit
libraries, including custom DLLs, are capable of handling the full
32bit pointer range for shared memory, so it will not be enabled
in the 32bit version of mIRC as this could break backward
compatibility. The /largeaddressaware setting is just being used
for local testing.

No crashes or issues so far with various units tests.

Notes:
1) Although mIRC can now run as a 64bit application, it is still
internally limited by INT variables for most features, ie. limited to
two billion users in your notify list, lines in a window, etc. There
are no plans to change this as this limit is far beyond what mIRC
can practically handle in these contexts anyway.
2) For the scripting language, features that store binary data, such
as &binvars, are also limited to INT bytes. This means that the 64bit
is limited to, at most, 2 GB per &binvar. Changing this to an INT64
would require significant code changes, so has been left as it is for
now as I would like a stable 64bit that can be tested against a stable
32bit.
3) The way floating point errors are handled had to be changed
since the 64bit uses SSE2, whereas the 32bit was using IA32-specific
code that had been stable for decades. The code for both 32bit and
64bit has been standardized to SSE2 and to use a platform independent
method of checking for floating point errors for x86, x64, and ARM64
platforms.
4) Custom 32bit DLLs that currently work with the 32bit mIRC will
need to be updated to 64bit to work with the 64bit mIRC.
5) Performed more tests with mimalloc and the 64bit version. This may
be enabled in the 64bit for testing in the future.

9.Item 9, updated. The OpenSSL v3.0.17 branch is LTS to September 2026,
however, I tested OpenSSL v3.5.1 and this seemed to work without any
issues, and did not require code changes, so have decided to change
to it for LTS to 2030.
10.Switched from Windows 10 to 11 for development machine, so all of my
testing now takes place on Windows 11, with limited testing on VMs
for other Windows versions.

Changes:
1.Updated local host look up method to use a non-deprecated API.
2.Added $tip() support for delay of -1 to indicate a permanent tip
that does not expire until manually closed.
3.Updated $input() to size dialog correctly in newer versions of the
Windows SDK.
4.Fixed $urlget() crash bug when credentials are passed in URL.
5.Changed numeric 650/651 support to handle InspIRCd not sending 651
End of Services Messages numeric.
6.Fixed handling of swapped mouse buttons in different contexts.
7.Changed the way that dialogs are loaded from language DLLs. Only
the text in a dialog is now used, as opposed to loading and using
the entire dialog.
8.Updated all external libraries to support compilation as both 32bit
and 64bit, in preparation for a future 64bit release and possible
ARM64 support. Updated all routines to use 32bit/64bit 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.
9.Updated libraries to LibZip v1.11.4, LunaSVG v3.4.0, and TagLib
v2.1.1. Also updated from the OpenSSL v3.0.x branch to v3.5.2.
10.Updated CA root certificates cacert.pem file.
11.Fixed features that were using the wrong default GUI font under
Windows 10/11.
12.Fixed various Aero theme bugs relating to Windows display scale
and text size options.
13.Updated OpenSSL support to remove use of deprecated APIs / use
newer/recommended APIs/methods for OpenSSL v3.5.x.
1 442,387 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 116 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 329 Read More
Scripts & Popups
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 558 Read More
Connection Issues Jump to new posts
Re: "Excess flood" when reconnecting to IRCCloud Simo 20/08/25 05:24 AM
It's probably due to mirc getting info from the ircd for all 27 channels wich may result in disconnect due to excess use of commands wich is common, what you could try is add some sort of delay for joining channels/using commands.
1 421 Read More
Scripts & Popups
Re: Condition "if ()" to check parts of mask Fernet 16/08/25 01:08 PM
Thanks Simo. I'll test t as soon as I can. My main pc is on manteinance now :-P
3 573 Read More
General Discussion Jump to new posts
Re: what did these commands do ? RoCk 15/08/25 03:55 PM
I don't know what's going on with that 500000 in the 12th position your n5, but it should be either 1 or 0 (on or off)

The 10th position of your n3 looks correct with 1 (on).
7 1,097 Read More
Feature Suggestions Jump to new posts
Re: Editable Language Files WarPigs 14/08/25 05:04 PM
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.
24 24,573 Read More
Scripts & Popups
Re: script for entropy abi 13/08/25 03:27 AM
Originally Posted by Epic
Here's what the combined code might look like, replace the necessary words and text with what you need:
Code
on *:INPUT:*:{
  if (/* !iswm $1) {
    if ($1 == word1) { say $1 your text $2- | halt }
    if ($1 == word2) { say $1 your text $2- | halt }
    if ($1 == word3) { say $1 your text $2- | halt }
    if ($1 == word4) { amsg $1 your text $2- | halt }
    if ($1 == word5) { me $1 your text $2- | halt }
    if ($1 == word6) { ame $1 your text $2- | halt }
  }
}

P.S. I hope that it is you who is learning, and not AI instead of you.

Thank you your response @epic as I said earlier they have a different script with a different name, which I ask how to combine it without changing the script and you change it if as you do the same
19 3,234 Read More
Scripts & Popups
Re: Help with bans Mairel 12/08/25 06:46 AM
I didn't realize it came out like that...

It won't let me edit the post anyway, thanks for posting the right one.
33 5,494 Read More
Feature Suggestions Jump to new posts
$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 156 Read More
Scripts & Popups
Re: clear [solved] abi 10/08/25 10:53 AM
thanks all of you
3 462 Read More
Scripts & Popups
Re: Hide channels from /whois Fernet 10/08/25 06:45 AM
Originally Posted by vinifera
either channel flag exists or user flag for hiding (especially if user is Oper)
this depends on what IRCdaemon your network uses...

Thanks sir
2 391 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 170 Read More
Feature Suggestions Jump to new posts
Re: ARM64 Support for mIRC mjt 09/08/25 06:39 AM
+1 This request. Can we please have an aarch64 build of mIRC? It is currently the only piece of software left on my machine that is still x86.
2 1,931 Read More
Scripts & Popups
Re: catching internal messages ? Wims 08/08/25 09:57 PM
Scripting errors can be caught with the :error goto label

alias testerror {
if ( { }
:error
if ($error) {
echo -sg custom : $v1
}
}
You can and should use /reseterror as soon as possible otherwise mIRC is in an error state and some features will stop working, you cannot just keep executing any code.



* Fast send is off cannot be caught by some kind of event, the only way to workaround this is to override the command name with a custom alias and handle everything from inside the alias by using <!command> to force a built-in command call from the alias. /Timer command are impossible to handle properly in this way.

alias fsend {
if ($show) { echo -sg custom /fsend call }
!fsend $1-
}
1 226 Read More
mIRC Help
Re: mIRC Channel Central Window Khaled 07/08/25 04:32 PM
mIRC only supports changing fonts in Status, Channel, Chat, and other MDI windows. I'm afraid that there is currently no way to change the fonts in dialogs, which use the standard Windows dialog font size.

If you find that the font size that Windows uses in its standard interface/dialogs is too small, one option might be to change your Windows display scaling. In Windows 11, this can be found in the Windows Settings / System / Display / Scaling dialog.
1 371 Read More