Read Mode

Fn.dll - An Awesome Batch Plugin | By Anonymous

Fn.dll - An Awesome Batch Plugin | By Anonymous
Fn.dll - An Awesome Batch Plugin | By Anonymous
Hello Friends!! Its been a while, we haven’t posted anything on the blog. This is all because of our Summer Holidays Industrial training schedule. So, most of our time and energy is used in various industrial operations. And you know, we are also Humans, thus we couldn’t update the blog in time. But better late than never, we are back with another awesome batch plugin Fn.dll. This Batch Plugin seems to be a windows Dynamic List library (due to .dll Extension), but it can be executed directly by using cmd console. So, we personally think that it may be a renamed version of some other batch plugin. We’ve searched about it all over the internet, but we couldn’t find anything about it. Nothing about its author, its usage or details. Moreover, it doesn’t contain a help menu, which may be helpful in many scenarios. So, dealing with such a plugin becomes very difficult, when you don’t know what options that you are looking for, in the plugin. Although, the plugin itself is very useful and fast. 

As explained above in the paragraph, because of lack of information about its original author. But still, we want to thank him from the bottom of our heart, for sharing this amazing plugin with rest of the batch community. This plugin has made our life very much simpler and easier. Now, we can directly deal with the usage of this amazing plugin. We’ve come across this plugin, first time when we analyzed the game ViewPoint by Honguito98. We found this batch plugin, among one of the core files of the game. After analyzing the whole code of the game, we came to know about various parameters, which can be passed to Fn.dll plugin. 

If you know anything about the original author, or the original file (which is renamed), Please do mention it in the comment field below with the proper genuine proof. E.g. Website, Link to the original file, etc. We’ll appreciate your contribution in #TheBATeam. So, Let’s talk about the usage and features of Fn.dll over Batbox.exe.

As you know, In our previous post, we have Declared Batbox.exe – An Awesome Batch Plugin | By Dark Batcher but here we are also saying that Fn.dll is also an Awesome batch plugin. This is because of the reason that; both are equally great in our point of view. As both Fills limitations of each other. We’ll talk about benefits of fn.dll and batbox.exe and their difference in a separate post. But here, we have to focus only on the Fn.dll.


Description: This is a small and efficient batch plugin of only 5.5 Kbs of size. It contains almost all the options, which we always try to find in a standard batch plugin. It is much faster in run-time response and returns the output very efficiently. It can take following arguments.

Note: As we don't have any official documentation of this batch plugin anywhere. So, it may be possible that it can take more arguments than we’ve explained here. And the explanation of known arguments may be different form original explanation, because this explanation is based on our understanding of this amazing batch plugin.

The Arguments it can take are simple, English type arguments. You will easily get habitual of them while working with this plugin. This is one of the many reasons, due to which it is explained as an Awesome Batch Plugin by #TheBATeam.

Thanks to all Those, who helped #TheBATeam for making this article better by providing important information. We would like to say thanks to all who commented below, and suggested Us more options with genuine links.

Sr. #
Parameter / option
Usage Example

Fn.dll Sleep [Time]
Fn.dll Sleep 500
Stops the CMD window for specified amount of time. In example, CMD window will be paused for Half a second.
Fn.dll Kbd
Fn.dll Kbd
Set KeyPress=%Errorlevel%
Stops the CMD console for getting a Keyboard hit / Button Press from the User. And Returns the ASCII Code of the pressed key in Environment Variable named as ‘Errorlevel’.
Fn.dll _Kbd
Fn.dll _Kbd
Set KeyPress=%Errorlevel%
Do not Stop the CMD console, but try for getting a Keyboard hit / Button Press from the User. And Returns the ASCII Code of the pressed key in Environment Variable named as ‘Errorlevel’. Or if No key is pressed, it returns 0.
Fn.dll Mouse
For /f "tokens=1,2,3" %%A in ('Fn.dll Mouse') do (
Set _Y=%%A
Set _X=%%B
Set _Mouse_Key=%%C
Stops the CMD console for getting a click from the mouse. And returns the co-ordinate clicked and mouse key, which is used to click. You can retrieve all this information combining it with For Command.
Fn.dll color [HexCode]
1.     Fn.dll color 0a
2.     Fn.dll color
Used to change the color of the console, unlike Color command, it doesn’t change color of the whole window. In example, 1st syntax is used to change color of next text to be printed, while 2nd syntax is used to see current color configuration.
Fn.dll Print [HexCode] “[Text]”
Fn.dll Print 0c “Hi, I’m Red.”
Prints the required text string on the CMD console at a required Location with required colors.
Fn.dll Locate [Y] [X]
Fn.dll Locate 5 5
Moves the Blinking cursor to specified location on the CMD console. Helps in building GUI like applications in Batch.
Fn.dll Sprite [Y] [X] [HexCode] “[Text]”
Fn.dll Sprite 5 5 0a “I’m Printed at 5,5”
Mixture of all the previous Parameters, Allows the Programmer to print a colorful text anywhere on the CMD console.
Fn.dll Cursor [N]
Fn.dll Cursor 50
This parameter is used to change the height / width of the blinking cursor of CMD console. It can Hide / Unhide the Cursor too. [Valid Values between 0 to 100]
Fn.dll Font [Size]
Fn.dll Font 7
Changes the font-size of characters in cmd. It Is the unique feature of Fn.dll plugin, as no plugin till date we’ve come across, which can do this. You should give it a try.
Fn.dll Play [*.wav]
Fn.dll Play “C:\MyRecording.wav”
Plays an audio file, specifically plays a *.wav file. First time a Batch file can possibly play sounds in the code. Try it.
Fn.dll Time
For /f "tokens=1,2,3,4,5,6,7,8" %%A in ('Fn.dll Time') do (
Set _Year=%%A
Set _Month=%%B
Set _Date=%%C
Set _Day=%%D
Set _Hour=%%E
Set _Minute=%%F
Set _Second=%%G
Set _MilliSecond=%%H
This parameter provides a lot about the current time of the CMD console. This option would be very helpful in logging the various intervals or scenarios while running or debugging your program.
Fn.dll Maximize
Fn.dll Maximize
Maximize the cmd console to its maximum size. (i.e. Screen). In windows 7, it expands the CMD only half of the screen, while it should expand it to full screen in windows 10.
Fn.dll Inputhit [Accuracy]
For /f "tokens=1-4" %%W in ('Fn.dll Inputhit 600') do echo %%W %%X %%Y %%Z
Accepts both inputs, mouse + keyboard. You can use it when you need to take anyone of these standard inputs in your program. Similar to Input.exe plugin By Kvc.

That’s all. We only knew this much about Fn.dll - An awesome batch plugin. But if you are using this batch plugin with more arguments, you can share them with us via your precious comments. We’ll publish them too, with proper credit given. If anyone knows about the original author. Please do mention his name, so that we can give the proper credit where it is due. You can easily Download and use this plugin from the link given below. Thanks for you time.

keep sharing, keep learning...
Be happy, spread happiness...

Download Link:



  1. Hello, I found others arguments in Fn.dll (found in .data section) : _KBD, SPRITE, TIME and MAXIMIZE, no idea how to use them but that's it.


    1. WOW !!!
      One of The Legend of Batch Programming, "The TSnake41" is here...

      I can't believe that you have posted this Comment on our Blog. I'm very pleased to read it. Thanks for Your Contribution in #TheBATeam. We'll Now, Update this Article with your Added Arguments. But We need to do a Little Experimentation with them before preceding.

      Thanks. ☺

  2. Hello to the Batch Archive Team

    1. Hello from the Other Side...

      We are please to see your Comment.
      How can we help you with your query???

  3. Could Honguito88 be the creator/modifier of Fn.dll (aka bg.exe)? Found his post here:

    Looking at the code, mouse AND keyboard can be read in real time:

    rem V=%Y% W=%X% X=%M% Y=%K% Z=%C%
    For /F "Tokens=1-4" %%W in ('Fn.dll Inputhit 600') Do echo %%W %%X %%Y %%Z
    goto :cicle

    Run this, move the mouse around and you'll see the coordinates change. Press a key and you'll see the key and ascii code. Very nifty and useful if one wants to use both inputs in a batch!

    "fn.dll _kbd" is identical to "fn.dll kbd" except there is no pause. Run this code and you'll see an endless output of zeros, but you'll get an ascii code when you press a key:

    fn.dll _kbd
    echo %errorlevel%
    goto :cicle

    1. Amazing Information! We are very thankful to you for the link you've provided. We're now going to update the article as per all of your contributions. Thanks Again.

      We appreciate it.

  4. I Think I've Found The Real Author. I Think Its Carlos... Cause In The Honguito98's Post(Link Provided By Johnye) I Saw Honguito98 Giving The Credits For Bg.exe To Him. Just Like Johnye Said Fn.dll Is Also Known As Bg.exe, And Its Commands Are Same! I Saw The Documentation On His Post. And Honguito98 Also Said He Modified The Bg.exe. So I Think He Modified It And Changed Its Extension To .dll.

    So Clearly Its Real Author Is Carlos.

    1. Did not you know that yet? Bg.exe and fn.dll are the same alone is the one .dll and the other .exe the maker is "Carlos Montiers Aguilera"

  5. In relation to submission 73486.

    Upon further analysis and investigation we have verified your submission and, as such, the detection(s) for the following file(s) will be removed from our products:

    File name: Fn.dll
    MD5: 713662fad8b9b47c038c5e122640ccdf
    SHA256: 3b461b421c68de041e9d1aba664784e2060a8b4e43628ffbadbdf63dd1ab5005
    Note: Whitelisting is available by downloading a RAPID RELEASE indicated in the Further Information section below or via the next Live Update
    Further Information:
    Required RAPID RELEASE sequence >= 190614

    The latest Rapid Release definition available here:
    To check the current sequence number of the Rapid Release definition:
    More information on Rapid Release definitions can be found:

    If detection persists, please contact support:
    * Norton:
    * SEP:

    Decisions made by Symantec are subject to change if alterations to the Software are made over time or as classification criteria and/or the policy employed by Symantec changes over time to address the evolving landscape.

    For more information on best practices to reduce false positives:

    Symantec Security Response

    This message (including any attachments) is intended only for the use of the individual or entity to which it is addressed and may contain information that is non-public, proprietary, privileged, confidential, and exempt from disclosure under applicable law or may constitute as attorney work product. If you are not the intended recipient, you are hereby notified that any use, dissemination, distribution, or copying of this communication is strictly prohibited. If you have received this communication in error, notify us immediately by telephone and (i) destroy this message if a facsimile or (ii) delete this message immediately if this is an electronic communication. Thank you.


Powered by Blogger.