mIRC Home    About    Download    Register    News    Help

Active Threads | Unanswered Past 24 hours | Past 48 hours | Past Week | Past Month | Past Year
Feature Suggestions
Re: Add IDN (Unicode Domain) Support in mIRC WanderfuLL Yesterday at 05:27 PM
Thank you very much for adding IDN support to mIRC.
This feature will be incredibly helpful for many users around the world, and I truly appreciate your quick response and willingness to improve mIRC.

Thanks again for your great work and continuous dedication.
1 255 Read More
Bug Reports Jump to new posts
Bug with dialog window and center style Legless 19/11/25 05:32 PM
Found a bug with the dialog window and using "center" style on lines of text. If I hide the display for the text then check the visible option via a $did(id).visible, it ALWAYS returns $true if the "center" style was used in the dialog window. Included a little test script below to demonstrate what I mean:
Code
alias testWindow {
  if ($dialog(testWindow)) { dialog -x testWindow }
  dialog -m testWindow testWindow
}

dialog testWindow {
  title "Test Window"
  size -1 -1 100 100
  option dbu
  text "Test Text 1", 1, 6 6 88 118, center
  text "Test Text 2", 2, 6 14 88 118
}

on 1:dialog:testWindow:init:*:{
  ; hide both lines of text in dialog window
  did -h $dname 1,2
  ; display visibility properties for both lines of text
  echo -a Test Text 1 Visible: $did(1).visible
  echo -a Test Text 2 Visible: $did(2).visible
}
If you run this you'll see that even though I hide the text with "did -h $dname 1,2", it still shows using "$did(1).visible", that Test Text 1 is visible, due to having the center style.
0 33 Read More
Developers Jump to new posts
Re: 🦀 Mirust: A Safe and Seamless Rust-to-mIRC SDK Epic 14/11/25 04:55 AM
This is cool.
Thank / Спасибо.
1 190 Read More
Feature Suggestions
Re: Missing Documentation Khaled 13/11/25 11:38 AM
Thanks, for $pbkdf2() the hash can be: md5, sha1, sha256, sha384, sha512, and for $argon2() the hash can be: 2id, 2i, 2d. These have been added to the help file.
58 123,291 Read More
Feature Suggestions
Re: Missing Documentation KindOne 12/11/25 06:20 PM
Include supported hashes for $argon2() and $pbkdf2(). For $argon2() I assumed was supposed to be the complete hash name.

Code
alias argon2_test {
  var %password = test
  var %salt = kQIfhANrQOtrrBDL
  ; This part is confusing. I assumed it had to be "argon2id".
  var %hash = 2id
  var %derivedKey = $argon2(%password, %salt, %hash, 16, 2, 1, 16)
  echo -ag  %derivedKey
}
58 123,291 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 572 Read More
Bug Reports Jump to new posts
Re: Editbox option 'optional' Khaled 12/11/25 09:51 AM
Thanks for the feedback. The behaviours you describe are how the (optional) feature has always worked across all dialogs. The custom dialogs are simply using the existing functions for this.

I have had to make more changes to the custom dialog optional keyword parser as there was an issue with the order in which it was being parsed in the custom dialog code. At this point, I have decided to remove this feature for now and revert to the 7.82 custom dialog code, as it still needs more testing and will delay the release that was planned this week. I will add it back in a future beta cycle.
8 575 Read More
Developers Jump to new posts
🦀 Mirust: A Safe and Seamless Rust-to-mIRC SDK The_JD 12/11/25 12:44 AM
Mirust is a lightweight SDK designed to simplify the process of exporting Rust functions to mIRC via DLLs. It provides a safe, idiomatic interface for Rust developers while ensuring full compatibility with mIRC’s environment.

Key features:
  • Automatic DLL Lifecycle Management
    - Handles LoadDll and UnloadDll automatically, eliminating boilerplate and setup hassle.
  • Comprehensive LOADINFO Support
    - Adds LOADINFO compatibility for mIRC versions 5.6 through 5.71. All current LOADINFO items are supported across all versions — even those that didn’t originally include them.
  • Robust String Encoding
    - Transparently encodes and decodes both ANSI and Unicode strings into UTF-8 Rust strings, ensuring smooth interoperability.
  • Selective Function Exposure
    - Functions can be annotated with dllcall = false to restrict access exclusively to $dllcall, preventing accidental use via $dll which could lock up mIRC.
  • Memory Safety by Design
    - Mirust enforces safe Rust practices, preventing out-of-bounds memory access and avoiding unsafe pointer manipulation.


https://crates.io/crates/mirust/

Example function
Code
#[mirust_fn]
fn my_command(
    m_wnd: HWND,
    a_wnd: HWND,
    data: String,
    parms: String,
    show: BOOL,
    nopause: BOOL,
) -> mirust::MircResult {

    let command = "echo -st * Message from 🦀 Rust: $1-".to_string();
    let my_string = format!("You sent me: {}", data);

    mirust::MircResult {
        code: 2, // Command
        data: Some(command),
        parms: Some(my_string),
    }
}

Mirust works with mIRC on x86 (32 bit), and is expected to function correctly on x86_64 (64 bit) and ARM64 versions of mIRC - assuming mIRC will use the "C" ABI in the upcoming variants.

@Khaled, is there a full list of lengths for data/parms (I could only find 900 bytes for 5.6, and the rest is unknown until 7.64 when mBytes was introduced)
1 190 Read More
Bug Reports Jump to new posts
Re: Editbox option 'optional' TECO 11/11/25 08:21 PM
Hi Khaled,

I tested it and found a bug. For example, in the dialog below:

[Linked Image from i.ibb.co]

Code
alias test { dialog -m test test }

dialog test {
  title "Dialog ghost text"
  icon $mircexe,0
  option pixels
  size -1 -1 306 115
  edit "", 1, 8 12 290 60, multi optional "test"
  button "&OK", 4, 142 83 76 23, ok default
  button "&Cancel", 5, 223 83 76 23, cancel
}
on *:dialog:test:*:*:{
  if ($devent == init) { did -f $dname 4 }
  elseif ($devent == sclick) {
    if ($did == 4) { echo -sg -- $did(1) }
  }
}

But if, for example, I type the same text from the ghost text (test) into the edit box, it doesn't return anything in the identifier $did(1)

[Linked Image from i.ibb.co]

However, I wanted to know one thing. Why are parentheses necessary for this to work, since they suggest that this feature will stop working if someone types the same text for real?

Hug wink
8 575 Read More
Bug Reports Jump to new posts
mIRC beta Khaled 11/11/25 09:44 AM
There are no betas available for testing at this time. Please download the latest version of mIRC from the mIRC website.
1 448,865 Read More
mIRC Help Jump to new posts
Suddenly Can't connect to Undernet StrictM 09/11/25 10:43 PM
I regualrly use Undernet without any trouble but the other day, I tried to log in and recieved this error message:
-
irc.undernet.org HTTP/1.1 303 See Other
-
irc.undernet.org Location: https://block.malwarebytes.com?lic=...186.233.185.155&url=irc.undernet.org
-
Connection: close

It kept trying to connect and the message continued to appear. I am able to connect to other servers, however.

PLS NOTE: This began when i installed the latest udate of MIRC 7.82

Can you help me connect to Undernet? Thanks!
0 132 Read More
Bug Reports Jump to new posts
Re: Editbox option 'optional' TECO 09/11/25 05:46 PM
Originally Posted by Khaled
Yes, that sounds about right. Let's see how the next beta works out.

Hi Khaled,

I tested it and it's working correctly now.

Epic's suggestion to add custom text seems great. If it's possible to add it, that would be perfect.

Thank you wink
8 575 Read More
Bug Reports Jump to new posts
Re: Editbox option 'optional' Epic 09/11/25 04:00 PM
It is not possible to add text after a style using a separate variable or identifier.
When trying to specify them between quotes, the dialog box displays the variable/identifier name instead of the text value.

    [Linked Image from i.ibb.co]
Code
alias dtest {
  set %gtext Enter some text here...
  dialog -m dtest dtest | did -f dtest 4
}
dialog dtest {
  title "Dialog ghost text"
  icon $mircexe,0
  option pixels
  size -1 -1 306 160
  edit "", 1, 8 12 290 60, multi optional %gtext
  text "NOTE: If the value is empty, ghost text will be displayed.", 2, 12 84 290 18, disable
  edit "", 3, 8 99 290 21, autohs optional " $gtext "
  button "&OK", 4, 142 130 76 23, ok default
  button "&Cancel", 5, 223 130 76 23, cancel
}
alias -l gtext { return Ghost text... }
8 575 Read More
Bug Reports Jump to new posts
Re: Editbox option 'optional' Epic 08/11/25 08:50 PM
Client: mIRC v7.82.866 (beta)
OS: Windows 11 23H2 x64

    [Linked Image from i.ibb.co]
Code
alias dtest { dialog -m dtest dtest | did -f dtest 3 }
dialog dtest {
  title "Dialog ghost text"
  icon $mircexe,0
  option pixels
  size -1 -1 306 160
  edit "", 1, 8 12 290 60, multi optional "Enter some text here..."
  edit "NOTE: If the value is empty, ghost text will be displayed.", 2, 8 81 290 18, disable
  edit "Normal text", 3, 8 99 290 21, autohs optional "Ghost text..."
  button "&OK", 4, 142 130 76 23, ok
  button "&Cancel", 5, 223 130 76 23, cancel
}

Everything is almost good/perfect, except that when using custom ghost text, only the characters that were specified in quotes should be displayed, without modification. In this code example, I have specified a custom ghost text starting with a capital letter and without brackets, however, in the dialog box it displays with brackets and the first word starts with a lowercase letter.

So, it is assumed/expected that by default, when using the style optional, the ghost text in the dialog box should be displayed as (optional), and when adding custom text in quotes after the style, the text should be displayed in its original form, as the developer/designer of the script code wants to do, without additional brackets and in the specified letter case.
8 575 Read More
Bug Reports Jump to new posts
Re: 7.82 broke login via nickserv on connect? Khaled 07/11/25 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 646 Read More
Bug Reports Jump to new posts
Re: Editbox option 'optional' Khaled 07/11/25 03:56 PM
Yes, that sounds about right. Let's see how the next beta works out.
8 575 Read More
Bug Reports Jump to new posts
Re: Editbox option 'optional' TECO 07/11/25 03:23 PM
Originally Posted by Khaled
Thanks for your bug report. This is a bit more complicated than I anticipated. The (Optional) text has always depended on whether the editbox has focus or not. But in the case of custom dialogs, scripts can modify the content whether the editbox has focus or not. The only way around this that I can think of is that if a script tries to modify the editbox in any way, the (Optional) indicator will be automatically unset. And if a script tries to get the contents, it will return an empty value. This change will be in the next beta.
Hi,
In my opinion, when I requested the addition of this condition, it was so that when the edit box is empty, the text (Optional) would appear, and when it is focused and the cursor is present, the text would disappear so that something could be typed. However, if you want to keep the edit box empty, the text (Optional) would still be displayed, but when you click OK, $did(name,id) would not return anything.
8 575 Read More
Bug Reports Jump to new posts
Re: 7.82 broke login via nickserv on connect? deVilbaT 07/11/25 03:01 PM
In the latest beta version, the bug has not been completely fixed. In the Edit Server window (Options), set the login method to /msg nickserv or /nickserv, then fill Username and Password fields. Unfortunately, mIRC sends this data incorrectly. It only sends the Password (verified in @debug). However, when we fill in only the Password field in the following way: <username> <password>, the data is sent correctly.
5 646 Read More
Bug Reports Jump to new posts
Re: Editbox option 'optional' Khaled 07/11/25 11:57 AM
Thanks for your bug report. This is a bit more complicated than I anticipated. The (Optional) text has always depended on whether the editbox has focus or not. But in the case of custom dialogs, scripts can modify the content whether the editbox has focus or not. The only way around this that I can think of is that if a script tries to modify the editbox in any way, the (Optional) indicator will be automatically unset. And if a script tries to get the contents, it will return an empty value. This change will be in the next beta.
8 575 Read More
Feature Suggestions
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 512 Read More
Feature Suggestions
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,850 Read More
Bug Reports Jump to new posts
Editbox option 'optional' TECO 06/11/25 01:55 PM
Hi Khaled,

Thank you for adding my suggestion.

However, I'd like to see if this is a bug or the intended behavior. When I have the "optional" condition for the edit box, and if I don't type anything and click OK, it's normal for the identifier $did(name,id) to return the text (optional).

Example:

[Linked Image from i.ibb.co]


Code
dialog version {
  title "Version"
  size -1 -1 306 155
  edit "Enter the server or nickname:", 1, 10 12 290 60
  edit "NOTE: If empty it will query the current server.", 2, 10 71 270 16, disable
  edit "", 3, 8 92 290 22, autohs optional
  button "&OK", 4, 142 124 76 23, ok
  button "&Cancel", 5, 223 124 76 23, cancel
}
on *:dialog:version:{
  if ($devent == sclick) && ($did == 4) { .raw version $did(3) }
}

Return: ".raw version (optional)"

The only solution I see is to put $remove($did(name,id),(optional)) in the command.

Example:
Code
.raw version $remove($did(3),(optional))

8 575 Read More
Bug Reports Jump to new posts
Re: 7.82 broke login via nickserv on connect? Wollino 02/11/25 06:33 PM
Hi! I can confirm that this annoying bug is present in this version. But I'm SURE that the Father of mIRC will fix this and other issues encountered with this update as soon as possible.

Thank you, Khaled, for always working to improve mIRC.
5 646 Read More
Feature Suggestions
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 194 Read More
Feature Suggestions
Drag & Move Channels Sunlily 31/10/25 02:21 PM
Hi,

I think it would be cool to be able to drag and drop rooms to rearrange them. I know you can force them to open in a specific order but sometimes upon disconnect/reconnect some rooms have issues with re-opening in the correct order. Being able to drag and drop them in the correct placement would be a nice addition.

And also being able to at least see emoji's used by others would be nice if not be able to use emoji's as a chatter.

That's all smile
1 194 Read More
Page 1 of 3 1 2 3