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: Missing Documentation klez 3 hours ago
In the mirc 7.56 there's no help info about $urlget. It will be good if the mirc.chm will be updated in time. I don't know about other changes/adds if they are smile
23 22,770 Read More
Bug Reports Jump to new posts
Re: mIRC beta Khaled 6 hours ago
The latest beta version of mIRC is v7.56.106 and can be downloaded here. It includes the following changes:

Beta v7.56.106 changes:
1.Item 7, https://forums.mirc.com/ubbthreads.php/topics/265772

Beta v7.56.86 changes:
1.Item 4, fixed.
2.Item 5, fixed.
3.Item 6, https://forums.mirc.com/ubbthreads.php/topics/265755.
4.Relating to https://forums.mirc.com/ubbthreads.php/topics/265742
Reverted change as did not resolve issue.

Beta v7.56.71 changes:
1.Item 3, https://forums.mirc.com/ubbthreads.php/topics/265736
2.Relating to https://forums.mirc.com/ubbthreads.php/topics/265742
Several changes were made to the about dialog that might resolve
this issue.

Beta v7.56.20 changes:
1.Item 2, fixed. This should fix the R6034 Windows error caused by mIRC
loading an external OpenSSL library to determine if it is a newer
version. This feature can now only be enabled by manually by setting
"load=0" in the [ssl] section in mirc.ini.
2.In addition, all libraries (LibZip, OpenSSL, TagLib, Zlib) were
3.The change in the last beta relating to XP has been reverted, so this
beta now works with XP again.

Beta v7.56.11 changes:
1.Item 1, updated.
2.Relating to https://forums.mirc.com/ubbthreads.php/topics/265700
Changed how OpenSSL is compiled. This means that it is no longer
compatible with XP. This may resolve the R6034 Windows error.

1.Updated OpenSSL library to v1.1.1c.
2.Changed OpenSSL support so that, by default, mIRC no longer checks for
a newer external version of the OpenSSL library. This should resolve
the R6034 Windows error reported by some users.
3.Changed /url, /run, and other features to use alternative method to
open links to resolve issues with asynchronous window messages.
4.Fixed STS/SSL server/port parsing bug.
5.Fixed handling of 64bit timestamp value for several features.
6.Changed $crc() to use larger read buffer with files to improve speed.
7.Fixed script parser bug that caused binary variables to be unset in
scripts that call external DLLS that SendMessage() mIRC many times.
1 165,908 Read More
Feature Suggestions Jump to new posts
Re: Change the way servers are stored Khaled 6 hours ago
It is normal for scripters to make assumptions about how features work and to create scripts that parse the servers.ini, mirc.ini, and so on. That is why backwards compatibility is important.

In this case, there are no plans to change how mIRC uses INI files for the servers list or other features.

That said, I looked into idea of the merging of new and old servers.ini about twenty years ago, going as far as creating an interface for it. In the end, I decided it was too complicated for regular users, and messy even for techies.
4 114 Read More
Feature Suggestions Jump to new posts
Re: /hop #chan and 'keep channel open' Khaled 7 hours ago
Well, this is the reason we sometimes ask users to test out a clean copy of mIRC, when issues like this arise, because scripts can be used to change how mIRC works.

The purpose of PARSELINE is to allow scripters to do things like this on a low level, so there is nothing wrong with using it in this way :-)
4 144 Read More
Scripts & Popups Jump to new posts
Re: @whois window Angela 19/07/19 05:40 PM
Thank you! That worked.
2 66 Read More
Bug Reports Jump to new posts
Re: Large number of SendMessages unset &binvars Khaled 18/07/19 01:13 PM
Thanks for your bug report. This issue has been fixed for the next version.
3 126 Read More
Connection Issues Jump to new posts
Re: Unable to connect to Undernet Raccoon 17/07/19 06:18 PM
Go into Options > Connect > Servers > Undernet > select the server you wish to edit, click Edit.

Make sure the server port is 6667 and not +6697 or blank or anything else.

Go through and edit all the servers within the Undernet group.

The Default Port option is under Options > Connect > Options, and that should be set to +6697 for your general security.
If manually specifying 6667 for hand-typed servers that don't support SSL is too tedious, then change it to 6667.

As long as the server port is correctly asserted in the Edit Servers dialog for each and every server, you should have no problems.
3 102 Read More
Bug Reports Jump to new posts
Re: Disappearing tray Icon when minimized Khaled 17/07/19 03:48 PM
Good to hear. Thanks for the feedback.
11 675 Read More
Scripts & Popups Jump to new posts
Re: Hide Topic on Join Jaillynian 16/07/19 10:11 AM
I might be able to cobble something here, but sadly I'm not a scripter... at least not a good one.

The last time someone gave me a hash table script, I never figured out how to use it.
2 105 Read More
Bug Reports Jump to new posts
Re: v7.56 about crash Sat 13/07/19 10:09 AM
Originally Posted by chili_beta
[..] closing the about window (which I went to for the silly animations), [..]

FWIW: you can close the first screen, without continuing to the second, by pressing Esc.
9 275 Read More
Developers Jump to new posts
Re: $sha* larger disk buffer speed boost Khaled 13/07/19 07:26 AM
Thanks for testing these out.

I'm seeing a noticeable boost in speed for the listed hashes, but it wasn't clear whether $crc and $md5 were already considered to be optimized, or just not a priority.

$md5() was already using the larger buffer. $crc() is actually a much older implementation located elsewhere in the source code which I didn't look at. I have increased its buffer size as well in the next beta.
1 112 Read More
Scripts & Popups Jump to new posts
Re: Connection Id (cid) and code blocks question. Erasimus 12/07/19 08:57 PM
Originally Posted by Raccoon

The value that $cid returns is inherited by all aliases, etc, called within an event.

I would presume, without testing, that the $cid returned by a modeless dialog event will be whichever $cid happens to be active. I would further presume that the $cid will represent the dialog's "parent" at the time of the dialog event in question, if the dialog had been assigned a parent (-a switch?), but this is all worth testing for yourself.

Rather than looking up a connection's CID, you can simply request the value via $scon(N).cid on demand.

Ok, thanks for the info and I will carry out tests. I assumed the inheritance due to the single thread in mIRC, but needed it confirmed.

Between asking the question and getting your answer, I've been doing a lot of thinking about this and found something that will probably help me out.

Originally the script was designed for a single connection to a specific server There were a significant number of global variables to hold state information and data relevant to the connection, which changed when the server's IRCd was updated (unreal to inspircd). Alongside that ran a separate script for the other connections that was rather minimalistic.

More and more I found that the small script was calling aliases within the bigger initial script, so I decided to amalgamate the 2 scripts, and it will eventually have a connect manager built into it. Rather than making the global variable count double/triple/... (extremely impractical) I decide to make the jump to Hash Tables - never done that before now.

Each server is given a small shortname (3-5 characters) that is used to access the data for each connection, sometimes with suffixes added to the end of that shortname or in conjunction with a code for an object type - example for idlerpg games (possibility of 2 games on any server): the table uses the shortname code + 'C' + GameNumber for the channel name and shortname code + 'B' + GameNumber for the Bot name, and so on.

It's in that area where things start to get complicated. Turns out that 3 servers I connect to have IRPG channels, all called the same name, and 2 of them share the same Bot name, so ensuring I get the correct cid is important. I still use a global variable holding the channel names which is used with On Join code, and is especially good since $addtok will not enter a duplicate - keeps the data size down and probably faster for the channel name checking
 On *:JOIN:%IRPGChannels: { 

I already pass the shortname on to various aliases so decided to create 2 new tables. One called shortname which has the connection id as the item name and the shortname as the data. The other, ConnId, has this reversed: shortname forms the item name, cid the data.

This allows any section of code to look up one or the other dependant upon the info it can get. If it uses the cid it can get the shortname etc. this also removes the need for those multiple if ($server == <whatever>) and makes the whole thing rather dynamic.

The tables are populated as each server is connected using On Logon, and the relevent data removed at On Disconnect. These tables also provide me with the chance to check if a sever is connected or inactive, the inactive one(s) having features in the dialogs disabled if inactive.

It all appears to work at this point, but testing and refining continues.
2 90 Read More
Bug Reports Jump to new posts
Re: /url in socket event clears $sockname (context) Khaled 12/07/19 12:18 PM
I have made a change in the latest beta that affects a number of features that use ShellExecute(), such as /run, /url, opening the Received Files folder, and so on. This appears to resolve this issue.
2 135 Read More
Scripts & Popups Jump to new posts
Re: Completely new to scripting Erasimus 12/07/19 05:40 AM
Places I used when I was starting are:

Wikichip as noted in an earlier posting - I use this as a reference rather than a 'how to'

If you want to see a simple dialog in code and can try it out yourself have a look at


where I posted a simple dialog that mimics the search for text in any window (basically a duplication of Ctrl-F inside mIRC)
4 206 Read More
Feature Suggestions Jump to new posts
Re: Allow users to create nick per server in setting daq 11/07/19 05:31 PM
I don't actually care that much about auto connect, but I don't want to type my username every time I connect to a server that requires a different one. To me these are completely distinct features and if storing the username with server configuration is trivial to implement I think it should be done despite the fact that auto connect functionality has been shifted over to scripts.
3 240 Read More
Bug Reports Jump to new posts
Re: Visual C++ Runtime Error R6034 Khaled 09/07/19 09:18 AM
Thanks to the posters reporting this issue.

We managed to track down the issue to mIRC checking if there is an external OpenSSL library and loading it to see if it is a newer version than the internal OpenSSL library. In the past, this has never been an issue, however it appears that, in this case, the external OpenSSL DLLs found in the system PATH are compiled in a way that is causing an MSVCRT conflict. If the user sets mirc.ini [ssl] load=2, this prevents mIRC from checking for newer external OpenSSL libraries and resolves the issue.

The next version of mIRC will be changed so that, by default, it will not check for newer external OpenSSL libraries.
13 227 Read More
Bug Reports Jump to new posts
Re: /sockclose clientside, on sockclose/sockwrite Khaled 09/07/19 09:09 AM
Thanks for your bug report. This is by design. mIRC is reporting Winsock events as they happen. If an on SOCKCLOSE event is received by your script, that means this is what Winsock has reported. If an on SOCKWRITE event is received, again this means this is what Winsock has reported. As a scripter, you need to check each and every event for an error. If there is an error, you need to follow your own socket closing protocol for your script.
1 76 Read More
Scripts & Popups Jump to new posts
Re: Text triggers Erasimus 09/07/19 12:14 AM
Originally Posted by bloke
Apologies in advance I've only been playing around with scripting for less than a day.

I've made a bot that randomly says a quote anytime some says the trigger word by itself example

if someone says


The bot would trigger and say a random quote from a list.

Is there anyway to add a line in the script so the bot would pick up "Bananas" said in a full sentence.
Eg. "I'm going to buy some bananas today" and have the bot trigger?

I assume you have something line
 On *:TEXT:Bananas:*: { SendBananaQuote }

simply expand it to
 On *:TEXT:*Bananas*:*: { SendBananaQuote }

which will match any use of that word within any sentence (in other words within any text string).
1 151 Read More
Scripts & Popups Jump to new posts
Re: What sort of notices is this? Erasimus 09/07/19 12:07 AM

Cheers, i got that to work now... however, is there's a way I can write code into 1 block? i.e.




All into 1 code block? Or that's not possible? As I'd like to keep script all tidy so that I can follow the code easier rather than looking up in CONNECT and code if necessary and then code bit extra under NOTICE and RAW, etc.. wink

Sorry if i'm sound like a n00b but i'm actually not good at scripting - can only do very basic frown

Personally I would not do it all in one block as you are asking for, that is really muddying things up. I find it easier to have a sequence of On Notices like the following -
On *:NOTICE:*This nickname is registered and protected*:*:{ //nickserv identify %Password }

On *:NOTICE:*Password accepted - you are now recognized*:*:{ /Join #<whatever> }

I have regularly seen the join command(s) be sent to the server, well before the +r message comes back to my client, but it doesn't appear to make any difference to the joins. I suspect that the server I am using (it's a small private one) is queuing up messages to be sent out. Remember the setting of the +r may have been applied before you get the message saying it has been applied.

If you want to wait for that and then act you can leave out the 'password accepted' On Notice from above and replace it with
On *:USERMODE: {  if ($1 = +r) { /join #<whatever> }  }

There is the other advantage to having an On Notice for each message that you want to respond to. The way you are doing it, every single NOTICE that is sent to your client will be processed by your single block On Notice, and execution is only aborted (asssuming the message doesn't match what you are testing for) within certain parts of your code, and that code will get bigger as you continue to make it a single all encompassing block.

In the standard method, I used (and thats the way it is presented in examples) the non-matching notice is aborted out of the block without going inside it.

The more you process inside the block before the message is found to not match, the longer your code will take to achieve that, in other words you are slowing the script down.

One other change that I do is to get rid of all those unnessary messages that fill up the status window by using the '^' character at the ON Notice 'declaration' part and haltdef to stop mIRC from displaying them.
Think about it, does you really need the other 2 lines ?
[07:50:17] -NickServ- nick, type /msg NickServ IDENTIFY password. Otherwise,
[07:50:17] -NickServ- please choose a different nick.
when you responded to the first ?

On ^*:NOTICE:*This nickname is registered and protected*:*:{ 
   //nickserv identify %Password
   /echo -st Identifying to Nickserv

On ^*:NOTICE:*/msg NickServ IDENTIFY*:*:{ haltdef }
On ^*:NOTICE:*please choose a different nick*:*:{ haltdef }

On ^*:NOTICE:*Password accepted - you are now recognized*:*:{ 
     /echo -st Password Accpted - Joining Channels
     /Join #<whatever>

Then same thing applies when you are dealing with raw numericals. One humungous block is confusing to read later on (a few years after you wrote it) while several different on raw commands, one for each numeric that you process is easier to understand.

Incidently, what you refrred to in your original post are notices. Thats why they started with ' -NickServ- '
I suspect the 1st line is actually from your mIRC client since it startes with an astrix -> * Your nick is now Colt45.
You would only see that if you changed to that nick just before the message appeared.
5 203 Read More
Scripts & Popups Jump to new posts
Re: Double Window Erasimus 08/07/19 11:19 PM
Originally Posted by David123456789
How do I:
change the font in a dialog?

I'd be interested in that too, along with how can you apply Bold or Underline within text fields, or colour.

There just doesn't seem to be much scope in what you can do for emphasis in dialogs.
2 158 Read More
Feature Suggestions Jump to new posts
Re: while | else Wims 08/07/19 11:49 AM
I do this quite often, I just set a variable inside the loop and check if it's set after.

Are there others languages supporting an else on a while statement like that?

As weird as it looks, i'm all for it!
1 89 Read More
Bug Reports Jump to new posts
Re: /elseif not reporting error Wims 07/07/19 04:39 PM
So if they post soon after it's put onto the todo list, they get yelled at for not giving any time for it to be added, but if they wait too long then that's lack of interest. What's the appropriate time to wait for these items, so we know when to put it on our calendar?
Lol, in practice this is not the result of people waiting, 9 years is definitely too long. It's easy to understand why this hasn't been dealt with and was forgotten, it's also easy to post a reminder, no harm.
16 1,523 Read More
Feature Suggestions Jump to new posts
New Version Update Check -- Beta Redirect Raccoon 06/07/19 12:09 PM
When starting mIRC just after a new version is released, the client will prompt you to download it, but beta versions of the client will direct you to https://www.mirc.com/beta.html which then redirects you to the empty beta thread.

Similarly, when clicking Help > About and then [Check for Updates], the beta client will direct you to https://www.mirc.co.uk/beta.html which similarly redirects to the empty beta thread.

Solution: New final releases should direct the user to https://www.mirc.com/get.html instead.
0 77 Read More
Latest News Jump to new posts
mIRC 7.56 released Khaled 06/07/19 09:01 AM
Dear mIRC User,

mIRC v7.56 has been released today.

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

Added $urlget() identifier that downloads content from http/https addresses.
Fixed $regml().pos bug with multibyte characters.
Updated libraries OpenSSL to v1.1.1b, LibZip to v1.5.2, and PCRE to v8.43.
Reverted changes to $gmt(N) and $gmt(format).
Fixed $astime() and other time/date features applying DST incorrectly.
Changed time/date features to use threadsafe versions of CRT time functions.
Changed $encode()/$decode() to allow non-literal keys longer than 56 characters.
Fixed "try next server in group" option being incorrectly applied.
Changed time/date routines to use Windows APIs, allowing extended date range 1601 to 9999.
Changed /msg -switches support to enable backwards compatibility with certain BNCs.
Added /server [-key filename] to set private key file to use for an SSL connection.
Changed nickserv logon method to increase delay before triggering perform.
Changed status window connect icons to distinguish between valid/non-valid SSL connections.

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 451 Read More
Bug Reports Jump to new posts
Re: Speed problems and corrupt files Khaled 04/07/19 08:49 AM
Quick update: It definitely helped, but setting fsend 100, will also make the connection unstable, I tried at 50, and my speed improved a lot, but still a little unstable, I will try different settings and bots to test properly smile

That is not too surprising. The higher the value, the more likely that the large number of transfer events/messages will overwhelm the processing of other windows events/messages in the single main thread. As well as affecting the GUI, this could affect other features. This change in /fsend is entirely experimental. If it works for you, great. If it does not, there is no other option at the moment to make transfers fully utilize 100Mbit connections I'm afraid.
9 293 Read More
Page 1 of 2 1 2