AlwaysTransCollectMode.js
Created by @Rydian
The skill Transformation Mastery comes with a collection journal in your character menu, and inside of it is a Collect Mode button. By clicking that button, while holding down ALT enemies will now display additional information regarding their transformation collection status. However, this setting is not saved. It will reset after changing channels or logging out.
This modification ensures Collect Mode will always be enabled.
AutoSetMTU.js
Created by @cursey and @Aahzmandius
MTU, short for maximum transmission unit, is the cap of how big a packet can be sent through the internet. The bigger the packet, the longer it takes to send, and as the opposite would imply, a shorter packet would send quicker. Since Mabinogi doesn't make use of big packets, having the MTU set on high (1500 by the default) would be considered a waste.
This modification reduces the MTU value (386, as low as we can go) used by Mabinogi. The packets will much shorter, take shorter time to send to the server, and as a result reduce latency ("lag") between the client and server.
BitmapFont.js
Created by @Blade3575
Originally in foreign versions of Mabinogi throughout 2003 to 2011, bitmap font was used to render text on the Mabinogi client. It never made it to the North America service of the game with the exception of modding. This was disabled during the Grandmaster update (Generation 16) with a user interface renewal update.
This modification enables bitmap font, resizing every text in-game to about 8px font size.
BorderlessWindowedMode.js
Created by @cursey & improved by @Warsen
This file is not a modification, but a script that places Mabinogi in borderless windowed mode. The window of Mabinogi will stretch out to completely fill the screen up until the taskbar, and it will also hide away the border of the window. Note that you must be on windowed mode for this to apply correctly, not full screen.
ChatAllowSameMsg.js
Created by @cursey
While talking in chat, sending a message with repeated characters from the previous message will stop the message by being sent and notify you about it with the message "Skipped repeated messages for network stability.".
This modification disables this feature from triggering.
ChatNoRateLimit.js
Created by @cursey
While talking in chat, sending multiple messages (regardless if they are similar or not) in a short span of time will block you from chatting for a new seconds, and will notify you about with the message "You cannot enter multiple messages so quickly. Please wait a moment and try again.".
This modification disables this feature from triggering.
ChatToMiniGamers.js
Created by @cursey
Players who participate in a mafia party minigame become unavailable for chatting through the friends list messenger.
This modification allows you to open a conversation window with them regardless if they are in a minigame.
ClientSideDevCat.js
Created by @Rydian
Within the game files, there is special title called "devCAT" which only employees of devCAT (the development team behind Mabinogi) may attain. This title unlocks various features used by the employees for testing and moderation purposes. While some of these features are not available to be used (such as GM Panel) due to a server check on the account authority level, some client-sided features become enabled by just "pretending" to have the title equipped on our own client.
These are the known features while assuming the devCAT status:
Current and maximum HP values are displayed underneath HP bars of entities while holding down ALT.
Right clicking items and entities allows you to copy their itemdb.xml or race.xml identity code, respectively.
Item tooltips will display their itemdb.xml identity code, and will also display their sharing status, on wether they can be traded, stored in the bank, etc.
The talent window will display talent debug information, including total experience in each talent, current talent title, and current grandmaster talent.
Removal of anti-spam measures while chatting, similar to what ChatAllowSameMsg.js and ChatNoRateLimit.js does.
The Keyword tab in the character screen displays all keywords, including the hidden story and quest progress ones.
ColorAltText.js
Created by @cursey
While holding down ALT, other entities are represented with the color of dark blue. This color is visibly hard to see in dark areas of the game.
This modification overrides that color with a bright shade of white (#FFFFFF).
Defaults.js
Created by @cursey
This file is not a modification, but a script that is prepended to every script ran by kanan. It is a requirement to launch scripts and as such should not be disabled.
DisableNagle.js
Created by @cursey
John Nagle, once created an algorithm named Nagle's algorithm that improves the efficiency of TCP/IP by combining packets and sending them at once as opposed to one by one in order to reduce wasted transmits. However, when it comes to online gaming, this algorithm will hit negatively, packets will take longer to send, and as a result, the user will experience slower gameplay functionality, most commonly known by players as "lag".
This file is not a modification, but a script that disables Nagle's algorithm in Mabinogi, and as such will reduce latency ("lag") if it was not already disabled.
DisableScreenFlash.js
Created by Step29
While loading or executing the following skills, a white screen flash will occur:
Charging Strike
Shuriken Charge
Meteor Strike
Thunder
Critical Hit
This modification will disable that screen flash from occurring.
DLLLoader.js
Created by @cursey
This file is not a modification, but a script that provides the injection of a .DLL file onto the Mabinogi client.exe. You can use this script to load other utilities that use the .DLL extension.
DontTargetNPCs.js
Created by @cursey
While holding down CTRL, entities close to the mouse cursor will be selected for conversation or battle depending on their interaction with the player.
This modification will disable NPCs from being selected, and only enemies will now be selectable.
DungeonMapResize.js
Created by Step29
The map of Mabinogi has multiple configurations, one of them being resizing the map. However, while inside of a dungeon, this option will become disabled and the map's size can no longer be adjusted.
This modification will enable resizing the map regardless if inside of a dungeon or not.
ElfLagFix.js
Created by @Blade3575
Players with higher than moderate latency (100ms and above) will encounter a freeze issue while using the skill Ranged Attack on an Elf character. The character will be momentarily frozen in place, unable to execute any actions as the world around them still runs normally. This issue is known by players as "elf lag", more information regarding the topic can be found here.
This modification will replace the way Ranged Attack works with another form, and as such fix the issue.
EnableFFSA.js
Created by @cursey
In the Options menu, within the video tab, there is an option labeled as Full-screen Anti-aliasing. Such as the name implies, it enables anti-aliasing while rendering objects and entities, smoothing out their edges to get a better graphical feeling. On the right side here, you can see an in-game example, notice the collar of the shirt. You can learn more about anti-aliasing here. By default, this option is faded out, with no possible way of clicking or toggling it.
This modification removes the fade, allowing you to click and adjust anti-aliasing to your preferred choice.
EnableInterfaceWhileDead.js
Created by @cursey
While the player character is in an unconscious status (dead!), they can no longer use various features of the user interface, such as inventory, options, etc. Their only option is to choose a revival method.
This modification removes those limitations, allowing you to access every bit of the user interface while dead. A convenient usage of this modification is to buy Nao Soul Stone through the Cash Shop and withdraw them, should one run out of options.
EnableMultiClient.js
Created by @cursey
By default, the users can only run no more than one instance of the Mabinogi client. Assuming you somehow managed to get past Mabinogi's launcher "Either Mabinogi is running, or the same launcher. Please check and try again." error message while opening the launcher, another error message will stop you on your way from opening another client, "Another Mabinogi Client is already running."
This file is not a modification, but a script that is will bypass that error message, and allow the executing of another Mabinogi client.
Take note you will still need another method to launch the client as Mabinogi's launcher still checks if client.exe is running, few of these methods include:
kanan auto start.bat, provided with kanan. This requires modifying the contents of directory.txt with the installed path of Mabinogi.
Modified client.exe shortcut. Right click client.exe in the Mabinogi directory, send shortcut to desktop and add code:1622 ver:143 logip:208.85.109.35 logport:11000 chatip:208.85.109.37 chatport:8002 setting:"file://data/features.xml=Regular, USA" at the end of the "Target" line.
MabiDirectLaunch.exe, provided with UOTiara.
Modified Mabinogi.exe, can be found online through Google (scan beforehand and proceed with caution).
FOVChange.js
Created by @Rydian
FOV, short for Field of View or Field of Vision determines how much is observable around the player's point of view. Not to be confused with RenderDistance.js, which increases the range of vision ranged in the distance. You can learn more about FOV here. Strangely enough, reducing the FOV in Mabinogi actually does what would be in other video games increasing the FOV. By default, Mabinogi's FOV is set to 180.
This modification reduces the FOV to 120 and as a result increases the observable surronding of the player to provide a better 3D feel. Inside the script, there are examples of other FOV settings, and you can modify the value should you want a different FOV.
FarAltText.js
Created by @cursey
While holding down ALT, entities surrounding the player character will appear with their given name and HP bar (and HP value, if you have devCATEffects.js enabled), but only up to the range of 3000. To add perspective, the range of vision is 5000 to 15000 depending on configuration.
This modification removes the limit of 3000, and instead loads any visible entity's information regardless of their distance from the player.
FighterNoForce.js
Created by @Rydian
While in hiding the interface (Default key: /), using Fighter-related skills will unintentionally trigger the user interface to reveal itself again. This might cause inconvenience while video recording and fighting at the same time.
This modification disables this user interface trigger from happening.
FreeIndoorCamera.js
Created by Step29
While inside indoor locations such as Dunbarton's clothing store, or Tir Chornail's general shop, the camera will be angled in place and be locked at that position.
This modification disables that camera lock, allowing you to move the camera around indoor as you please.
FreeZoom.js
Created by @cursey
There is a limitation when you zoom in and out with the mouse scroll wheel. This limitation caps at 500 and 3000 respectively, and you will not be able to go beyond those.
This modification removes the zooming limitation, allowing you to zoom out as far out as you desire. If you happened to scroll out too much (just for being anarchist), you can open the Options menu to reset back to the default zoom value.
FreezeTimeOfDay.js
Created by @cursey
Time flows every second in Mabinogi, and it can be very immersive, but sometimes this feature can cause nuisance as it makes certain things such as enemies and items are hard to see in the dark.
This modification freezes time completely, and sets it to 12:00 PM, right at noon. Should you want to, inside the script you can modify the value to any hour you want to freeze time at. Take note, the value should be decimal in 24-hours mode. (9 PM = 21.0, 3 AM = 3.0, etc)
GlobalHeightOverride.js
Created by @Rydian
Regardless if they are a player, a pet, an enemy, or a NPC, every character on Mabinogi has an age, and every week on Samhain players and pets age by one year.
This modification breaks this feature, and overrides every entity's age to a Tin Potion's height. Should you want to, inside the script you can modify the value to the desired age (or more accurately, height) you want. Examples are provided inside the script.
HideMainTitle.js
Created by @Rydian
Titles next to player names are there to represent accomplishments, stat choice, or just cosmetic choice, but to some other players, it is nothing but cluster that distracts from the reason you looked there in the first place, the player's name.
This modification hides all titles of every entity. There are some drawbacks provided with it, such as being unable to tell your own title should you forget it, and spotting "the Ancient" enemies via name.
HideNPCCurtains.js
Created by Step29
While talking to NPCs, or while viewing cutscenes, at the top and the bottom of the screen two black border "curtains" will appear to provide a more cinematic look.
This modification removes those curtains.
HideObjects.js
Created by @Poshwosh
Objects such as houses, trees and signs are part of the game's graphical features, but the more you render on your screen, the less frames per second your machine will be able to maintain. Weaker machines, such as laptops or low-end personal computers will only be able to render as much before low FPS starts to occur, and eventually freezes. Specifically speaking, Tara.
This modification disables all objects from loading, and as a result drastically increases FPS should you be starving for some.
Disabled by default: Unnecessary for common machines, provides more nuisance than help if FPS is at a good spot.
HideSecondTitle.js
Created by Step29
Similar in reasoning to HideMainTitle.js, only that instead it disables the graphical icons on the right side of a player's name known as secondary titles.
HotkeyAnyItem.js
Created by
By default, players may place any skill or action onto the hotkey bar, and should they want, they may hotkey potions as well.
This modification takes a step forward and allows not just potions to be placed in the hotkey bar, but any sort of item with a "Use" option. As a result, you will be able to hotkey Wings of a Goddess, Holy Water of Lymilark, or even regular Phoenix Feather and Party Phoenix Feather in two different hotkeys.
IgnoreMaintainFrame.js
Created by @Rydian
Mabinogi can run very poorly at times due to its outdated engine and lack of proper optimization, especially at raids. To remedy to this, devCAT implemented optimization settings under the Performance tab of the Options menu, specifically speaking, "minimize nearby characters". This option will replace other player characters with low-polygon dummies to increase FPS, but it will only do so if your FPS is dropping below the set value. Once your FPS surpasses the set value, characters will appear again, this creates an annoying cycle of constant smooth to slow gameplay.
This modification modifies the set value to one that cannot be reached, so that nearby players will always be minimized regardless of FPS.
IgnoreTranslucency.js
Created by @Rydian
As you control and move the camera around, colliding the camera with objects such as walls and trees will cause those objects to become translucent.
This modification disables that collision translucency, objects will now always render.
LargerTTFontResize.js
Created by
This modification increases the default font's size to about 14px. Note that this modification adjusts the default font, therefore it will not have any effect if BitmapFont.js is enabled.
Disabled by default: Since by default BitmapFont.js is turned on, there is no need to have it enabled.
LogOutInConversation.js
Created by @Rydian
You are not allowed to log out while in a conversation with an NPC through normal means. Instead, you will receive the error message "You cannot log off while in conversation with an NPC.".
This modification bypasses that error message, and allows you to log out successfully.
MiniTitleMenu.js
Created by Step29
The title selection menu inside the character window can be a bit considered very unorganized if you haven't attempted to collect all the titles in Mabinogi. Instead, you will be greeted with a large amount of unknown titles (
) in between of your achieved titles.
This modification removes those unknown titles, resulting in a minimalist title menu.
MinuteClock.js
Created by @cursey
Time in Erinn flows by every second, and although time is still ticking, the clock will update every 10 minutes in Erinn time, hiding away the 1 to 9 minute movements.
This modification updates the clock to update on a 1 minute Erinn time basis, allowing you to see time as accurately as possible.
MoveToSameChannel.js
Created by @cursey
You are not allowed to move channels to the same one you currently are on. Instead you will be greeted by the "Currently logged channel." error message.
This modification bypasses that error and will allow you to change to the same channel you're currently logged into.
MuteCommerceImp.js
Created by Step29
During commerce, you will encounter a small trade imp assisting you on your way, giving you advice, telling you jokes and even warn you about incoming bandits. To some, it's a blessing, to others, it's nuisance.
This modification will mute the trade imp from chit-chating with you, and will only notify you if bandits are nearby.
NPCFastText.js
Created by Step29
While holding a conversation with NPCs, their dialogue text will appear letter by letter slowly to provide an immersive feeling.
This modification will speed up the dialogue text to instant speed.
NoChannelMoveDenial.js
Created by @cursey
Attempting to change channels while holding a conversation with an NPC will trigger the "You cannot switch to another channel while in conversation with an NPC." error message.
This modification will bypass that error and allow you to change channel while talking to NPCs.
NoChannelMoveDescription.js
Created by @cursey
During the process of changing channels, you will encounter a warning popup "Moving to another channel incurs same penalties as re-login." explaining you what could result in changing channels. To players who are already familiar with that warning it could be considered redundant, as their objective was to change channel quickly.
This modification skips that warning notification, and and the only thing you will see when you select "Change Channel" is the channel selection screen.
NoFullscreenChange.js
Created by @Rydian
Players who run their client under windowed mode sometimes may unintentionally change to full-screen mode by pressing ALT + ENTER or by mis-clicking on the Mabinogi menu.
This modification disables the functionality of that switch. You will not be able to go full-screen mode with this script.
NoLogoutPenaltyMsg.js
Created by @cursey
Upon initiating combat or creating a dungeon, users will face a penalty of experience and gold loss depending on their current level. This error occurs while attempting to logout "If you exit now, you will lose 12911 EXP and 3131 Gold.".
This modification skips this message.
NoPersonalShopCreationMsg.js
Created by @cursey
Upon the creation of a personal shop, the owner of the shop will receive the "A shop has been created. ... Beware that if you are more than 5 yards away, the shop will close." warning.
This modification skips this message.
NoPlayerZoomTransparency.js
Created by Step29
Similar to IgnoreTranslucency.js, by colliding the camera with another entity such as a player or an NPC, entities will begin to become semi-transparent. This can be inconvenient for some, it makes taking zoomed in screenshots very difficult.
This modification removes the transparency during collision, allowing you to look at entities without them fading out.
NoSkillRankUpWindow.js
Created by Step29
Upon ranking up a skill, a white screen flash will occur, and a window will popup, "You have reached Rank 1 Sharp Mind!", congratulating you on ranking up the skill. This can be considered as redundant for some.
This modification stops the rank up popup from occurring.
OneClickRevive.js
Created by Step29
Upon dying in Mabinogi, you are met with multiple choices of where you would like to revive at. Regardless of choice though, there will always be a confirmation asking you if you are sure regarding your selection. This can be considered inconvenient for those who wish to revive as soon as possible.
This modification skips the confirmation menu while reviving, allowing you to revive with a single click.
PartyChatMarketFilter.js
Created by @cursey
The Member Wanted party recruitment feature allows players to advertise their party with their objective for all across the channel they are on. Players tend to abuse this feature to advertise buying and selling messages instead, creating a market system out of it. As a result, players on channels with high popularity will receive constant party notifications regarding those market messages, while the real party recruitment messages get shoved away.
This modification solves this problem by filtering out messages related to market advertisements. Every buying and selling messages including B>, S>, T>, and more, will be filtered away.
PatternScanSnapshot.js
Created by @cursey
This file is not a modification, but a script that will automatically disassemble locations of memory patterns used by each script. This is used for archiving and allows easier updating when a modification breaks.