bnspatch
Personal project I decided to (partially) release to the public.
Disclaimer
This project is for educational purposes only. Using this on a live server is against the Blade & Soul Rules of Conduct and User Agreement. I accept no responsibility should you manage to get yourself banned while using it.
Download
https://mega.nz/folder/WXhzUZ7Y#XzlqkPa8DU4X8xrILQDdZA
Basic features
- Enables multi-client.
- Prevents
aegisty.bin
/aegisty64.bin
from loading. - Disable WinLicense(R) protections:
- "Detect File/Registry Monitors"
- "Anti-Debugger Detection"
- "Disallow execution under VMware/Virtual PC"
XML patches at run-time
bnspatch loads %userprofile%\Documents\BnS\patches.xml
, which can be used to apply various types of
transformations to any .xml
file loaded by Blade & Soul.
There is also support for BnS Buddy-style addons (.patch
files). Just place them in %userprofile%\Documents\BnS\addons
.
The patches.xml
format isn't documented yet but you can read the code and figure it out,
or look at other peoples examples. It implements most of pugixml's relevant API for element and attribute nodes.
For an example of basic and advanced usage, see patches.xml
at the root of the repository,
or the extra files in the contrib
folder.
For more info, refer to xmlpatch.cpp
, XML Path Language (XPath) Version 1.0, and the pugixml manual.
FAQ
d912pxy?
Q: Does this work withYes it does! In fact, I highly recommend using it.
Q: Do I have to use all of the components for this to work?
No. Each component works individually and may be used together or separately.
Q: Isn't this unsafe compared to BnS Buddy?
Not really. I've been using some variant of it since I started development in 2017, and have never been warned nor banned, and neither has anyone else I shared it with.
Q: Is this compatible with BnS Buddy?
There is some overlapping functionality, but yes. Just understand that changes made by bnspatch will always take priority over conflicting changes made by BnS Buddy.
Q: Plugins and addons and patches, oh my!
Since there seems to be some confusion about the technical differences, I want to try and clear it up:
-
Plugins (*.dll): These are files that make changes to the game's code in some way. bnspatch is a plugin. They are loaded by my
winmm.dll
(pluginloader). They belong in:%programfiles(x86)%\NCSOFT\BNS\bin\plugins
%programfiles(x86)%\NCSOFT\BNS\bin64\plugins
-
Addons (*.patch): Legacy BnS Buddy-style addons, what you're probably already used to. They are only capable of rudimentary searching & replacing text in .xml files. These belong in
%userprofile%\Documents\BnS\addons
-
Patches (*.xml): This is my own format, similar to addons but much more powerful, though there is a steeper learning curve. The location is configurable, but generally unless you know exactly what you're doing, you'll want to put
patches.xml
in%userprofile%\Documents\BnS
, and any extra patches (if applicable) in%userprofile%\Documents\BnS\patches
.
Q: I have a question that wasn't answered here!
Join the Mod Police Discord server and ask!
Acknowledgements
- microsoft/Detours (MIT license)
- microsoft/GSL (MIT license)
- zeux/pugixml (MIT license)
- processhacker/phnt (CC-BY-4.0 license)
- JustasMasiulis/xorstr (Apache-2.0 license)