• Hi Guest! To get rid of ads on the page, please consider donating through user upgrades or other methods.

Other [TOOL][JAVA] Character Effect Remover v1.0.4 [Update:05/10/2019]

HoloWiseWolf

Cricket
Donator
Member
CHARACTER EFFECT REMOVER
(Yes, it's a glorified copy paste app)

CURRENT VERSION
v1.0.4

IMPORTANT
If you are switching to 1.0.4 from older version of the app, first recover the files with version you're currently using and then run 1.0.4 and remove effects with it. For more info check changelog for 1.0.4

Since affected files changed in 1.0.4 please report any new or jarring issues in game if those occure.


THANKS TO
XRain55 for providing list of UPK containing most of the effects in this thread https://www.bnsbuddy.com/threads/warden-light-great-fix-with-fps.1178/
My friend Aki for reminding me to add 2 kfm wolf files on top of that
Cupid for providing .bat file for the app

DISCLAIMER
Since the app simply moves the files there are possible casualties in terms of things unrelated to character fx, examples known to me would be ball throw in DST and spin throw attack in Mao, those will display a missing texture for a second when those attacks happen, there are more but none should affect the gameplay.
I'm not guaranteeing a stability of this app or that it'll even work for you, it was tested by me and my friend and it worked properly in both cases but critical failure is still possible altho I mitigated most of the possible fail points I was aware of.
The app has a strict file list it should affect but nonetheless I'm in no way responsible for you using this app incorrectly, any damage caused by the app is your responsibility and I will preferably provide help only if app was used correctly (but I don't bite so go ahead and ask for help anyway)

WHAT DOES IT DO?
This tool allows you to remove (and backup) upk files responsible for character effects without removing animations.
I'm unable to allow a removal for specific classes only, as I don't know which file is responsible for what character. (also characters are often mixed between files and that'd require modified .upk files)

WHY WOULD I USE IT?
Skill effect removal ought to improve your performance without removing animations from the characters. From my testing (and others) it does seem to improve fps stability.
It it also useful when used in combination with BNSBuddy animation toggles (for example if you remove animations of your main class using buddy you'll constantly T-pose but with my app you can improve your performance without losing animations on classes you want to keep)

REQUIREMENTS:
Java 1.8 (or newer)
(Note: !THIS MOST LIKELY DOESN'T AFFECT YOU! for most people using development kits 11 and up to run java apps JavaFX is not included anymore thus app may throw a JavaFX error on start, I will fix that but meanwhile if you encounter that issue please use a java release that includes JavaFX)

PLANS (Issues/Fixes/Changes):
Goals:
1. Spotting and fixing possible points of failure that may cause unexpected exceptions (crash/freeze for end user)
2. Implementing functions that could improve usage of the app.)

Issues:
1. TextArea may cause Thread exception that in turn freezes entire app if .appendtext is called too fast in repetition by copypaste Runnable called by a separate Thread
current fix: Implemented StringBuilder to append entire message batch related to current file instead of appending each message separately during the process + calling Thread.sleep in known spots that cause that issue
Reliability status: Uncertain, no issues so far. It's a workaround, not a fix so there's still a possibility that app will freeze. (in that case kill it and rerun) I'll work to fix it permanently. Workaround itself is not ideal as it causes progress messages to appear after Thread is done dealing with a file instead of actively reporting the progress, also Thread.sleep is nasty.

Possible changes:
1. Share the source code through pastebin/github and link it in the thread to allow possible contributions/critique.
2. Implement JNA to allow the app to automatically read CookedPC path (additional button next to picking directory(?))
3. Find out which file corresponds to which class to allow toggling of effects (May require light UI/code overhaul to make it toggle friendly instead of based primarily on user picked directories and arraylist)
4. Change output to always be in the same folder as .jar file (more user friendly, more consistent usage wise, gives it a more stand-alone app feel, especially when combined with directory auto picking from point 2 and toggles from point 3)

CHANGELOG:
UPDATE
5/10/2019 v1.0.4

- App no longer removes file "00064820" which is responsible for KFM wolf form animations. It was added by accident and with this version app will only remove effects.
- Added file "00064738" which is responsible for archer effects. Removing archer effects fixes issue with tab which would show a giant missing texture under player.

HOTFIX
02/09/2019 v1.0.3

Important change to the batch file used to run the app.
Fixed an issue where if user were to run the file from a drive different that system drive it would not succeed (and report that it couldn't access a jarfile)
Added verification steps to ensure app changed a directory to one that is expected and that the directory contains jar file

UPDATE
28/08/2019 v1.0.2

- (Thanks to Cupid for creating the batch file) Added .bat file that ensures app runs as admin, saves error logs and many other things. Batch file will output log.log file in the same directory as .jar file that allows for easier view into errors if those occurred.
- Added properties file that will store and load directories used last time by the user.
- Added switch button that will switch directories for easier backup recovery.
- progress bar will change colour to red in case an error occurred or green if process was fully successful.
- Minor code fixes that will hopefully prevent possible errors.

HOTFIX
09/08/2019 v1.0.1

- Ensured that the input streams for MD5 checksum generation are being closed as soon as the checksum is done generating (fixes unlikely but possible file block)
- Added printStackTrace() in case of a controlled ERROR reported within the app, it'll be shown in a command line (if user chose to run it through command line) and will be wrapped by a message pointing at the exact ERROR message shown within the app (May dump them into a text file instead in one of the future updates for the sake of simplicity)

RELEASE
08/08/2019 v1.0

- app release

HOW TO USE IT:
Run the app through start.bat file, otherwise you may encounter errors related to
permissions (because in some cases app may require admin rights) that'll prevent the app from functioning properly

UNPACK ZIP FILE AND MAKE SURE YOU HAVE ONE FOLDER WITH .jar .bat AND .properties FILES

REMOVAL
1. Start the app through start.bat file
2. Pick your CookedPC folder as FROM directory.
3.Pick your backup folder as TO directory.
4. Start button should unlock, press it.
5. If bar turned red check log window (or generated log.log file in same directory as .jar, it has more info). If you are unable to fix the error (look FAQ) contact me here.

RESTORATION
1. Start the app through start.bat file
2. Pick your backup folder as FROM directory.
3.Pick your CookedPC folder as TO directory.
4. Start button should unlock, press it.
5. If bar turned red check log window (or generated log.log file in same directory as .jar, it has more info). If you are unable to fix the error (look FAQ) contact me here.


HOW DOES IT WORK:
1. After you pick 2 existing directories where at least one includes "CookedPC" Start button will unlock
2. App will start to iterate through an array of known effect file names
3. In case of a found match it will attempt to generate MD5 checksum of the file in FROM destination (otherwise, error)
3. Then it will attempt to copy the file to TO directory (otherwise error)
4. It will attempt to generate MD5 checksum of created copy (otherwise error)
5. It will compare checksums (otherwise error)
6. IT will attempt to delete original file (otherwise error)

Any error stops the entire process for that specific file and moves to the next one, every error is listed in output window

FAQ:
1. What does "[ERROR] FAILED TO READ SOURCE DIRECTORY" or "[ERROR] FAILED TO READ OUTPUT DIRECTORY" mean?
This error appears when after choosing a directory, the File object (which holds directory you've picked) returns false when checked if it is a legitimate directory, shouldn't happen during regular use, should be fixable by simply retrying to pick a destination.

2. What does "[ERROR] File xxxx doesn't exist" mean?
This error appears when xxxx effect file is not present in FROM directory, check if the file is present, if it isn't then it wasn't there in the first place and no actions were taken (and app moves to next file). If the file is still in FROM directory and error repeats contact me in this thread.

3. What does ""[ERROR] Failed to generate original MD5 sum for xxxx" mean?
This error occurs when the app wasn't able to generate MD5 checksum for file xxxx but it was present. After that error no actions are taken and app moves to the next file. If error persists contact me here.

4. What does "[ERROR] File xxxx failed to copy"?
This error means that xxxx file MD5 checksum was generated but file itself failed to copy to TO directory. After that error no actions are taken and app moves to the next file, there's a possibility that you may find a corrupted file in TO directory, remove it. If error persists contact me here.

5. What does "[ERROR] Failed to generate copy MD5 sum for xxxx" mean?
This error means that the file was copied to TO directory but app failed to generate MD5 sum for that file, in this case original file won't be removed for safety reasons, you can rerun the app to try again as it overwrites files in TO directory, removing original file is not recommended as you cannot be sure backup file is not corrupted. If error persists contact me here.

6. What does "[error] MD5 check failed for xxxx" mean?
This error means that copy process and MD5 checksum generation were successful but MD5 checksum comparison between original and copy of the file failed. In this case original file won't be removed for safety reasons, you can rerun the app to try again as it overwrites files in TO directory. DO NOT REMOVE ORIGINAL FILE MANUALLY, unless checksum generation failed the copy file is corupted and guaranteed to not work in case you want to use it in recovery process. If error persists contact me here.

7. What does "[ERROR] Source file xxxx failed to delete" mean?
This error means that the entire process was successful, backup file should not be corrupted and you are free to remove the file manually (altho i'd recommend rerunning the app for the sake of safety) If error persists contact me here. (but first try to run the app as admin (run through cmd (and run cmd as admin)) as it may be a permission issue due to your Windows settings and status of your Windows account on your pc)


JAR VIRUSTOTAL:

v1.0.4
https://www.virustotal.com/gui/file/e591667ce62273e25a363f8ad0562f6f27861925be39a76cdca8345b0a755f4b/detection
v1.0.2 and v1.0.3
https://www.virustotal.com/gui/file/2d14f4208f80b54ddf56c547b11aa7861ab11de29f32f75282bdcc7ab2b7e926/detection
v1.0.1
https://www.virustotal.com/gui/file/ab425408e066d4893a94e0d41fae34fc13c2fa32b9202cb543d5598fe8cf8719/detection
v1.0
https://www.virustotal.com/gui/file/48a7b4faf7c313b6cf52f762e335479a6d248aef2f7e98bdea1ee64de9be461a/detection

LIBRARIES USED:
javafx-sdk-12.0.1
commons-io-2.6
commons-codec-1.13

DOWNLOAD
ATTACHMENTS​
 

Attachments

Last edited:

HoloWiseWolf

Cricket
Donator
Member
where is suposed to put the libraries ?
You don't have to do anything with java libraries, I listed them for the sake of transparency because they're a part of the application. Just unpack the zip, run jar file and refer to "HOW TO USE IT" section.
 

streets

Cricket
Member
thought nobody is gonna do this, unfortunately the program won't delete any file at all.
[INFO] File 00003814 copied to final destination
[INFO] MD5 check successful for 00003814
[ERROR] Source file 00003814 failed to delete
[INFO] File 00006660 copied to final destination
[INFO] MD5 check successful for 00006660
[ERROR] Source file 00006660 failed to delete
[INFO] File 00007242 copied to final destination
[INFO] MD5 check successful for 00007242
[ERROR] Source file 00007242 failed to delete
[INFO] File 00007307 copied to final destination
[INFO] MD5 check successful for 00007307
[ERROR] Source file 00007307 failed to delete
[INFO] File 00008841 copied to final destination
[INFO] MD5 check successful for 00008841
[ERROR] Source file 00008841 failed to delete
[INFO] File 00008904 copied to final destination
[INFO] MD5 check successful for 00008904
[ERROR] Source file 00008904 failed to delete
[INFO] File 00009393 copied to final destination
[INFO] MD5 check successful for 00009393
[ERROR] Source file 00009393 failed to delete
[INFO] File 00009801 copied to final destination
[INFO] MD5 check successful for 00009801
[ERROR] Source file 00009801 failed to delete
[INFO] File 00009812 copied to final destination
[INFO] MD5 check successful for 00009812
[ERROR] Source file 00009812 failed to delete
[INFO] File 00010354 copied to final destination
[INFO] MD5 check successful for 00010354
[ERROR] Source file 00010354 failed to delete
[INFO] File 00010504 copied to final destination
[INFO] MD5 check successful for 00010504
[ERROR] Source file 00010504 failed to delete
[INFO] File 00010771 copied to final destination
[INFO] MD5 check successful for 00010771
[ERROR] Source file 00010771 failed to delete
[INFO] File 00010772 copied to final destination
[INFO] MD5 check successful for 00010772
[ERROR] Source file 00010772 failed to delete
[ERROR] File 00010869 doesn't exist
[INFO] File 00011949 copied to final destination
[INFO] MD5 check successful for 00011949
[ERROR] Source file 00011949 failed to delete
[INFO] File 00012009 copied to final destination
[INFO] MD5 check successful for 00012009
[ERROR] Source file 00012009 failed to delete
[INFO] File 00013263 copied to final destination
[INFO] MD5 check successful for 00013263
[ERROR] Source file 00013263 failed to delete
[INFO] File 00023411 copied to final destination
[INFO] MD5 check successful for 00023411
[ERROR] Source file 00023411 failed to delete
[INFO] File 00023412 copied to final destination
[INFO] MD5 check successful for 00023412
[ERROR] Source file 00023412 failed to delete
[INFO] File 00024690 copied to final destination
[INFO] MD5 check successful for 00024690
[ERROR] Source file 00024690 failed to delete
[ERROR] File 00026129 doesn't exist
[INFO] File 00031769 copied to final destination
[INFO] MD5 check successful for 00031769
[ERROR] Source file 00031769 failed to delete
[INFO] File 00034433 copied to final destination
[INFO] MD5 check successful for 00034433
[ERROR] Source file 00034433 failed to delete
[INFO] File 00056127 copied to final destination
[INFO] MD5 check successful for 00056127
[ERROR] Source file 00056127 failed to delete
[INFO] File 00059534 copied to final destination
[INFO] MD5 check successful for 00059534
[ERROR] Source file 00059534 failed to delete
[INFO] File 00060548 copied to final destination
[INFO] MD5 check successful for 00060548
[ERROR] Source file 00060548 failed to delete
[INFO] File 00060549 copied to final destination
[INFO] MD5 check successful for 00060549
[ERROR] Source file 00060549 failed to delete
[INFO] File 00060550 copied to final destination
[INFO] MD5 check successful for 00060550
[ERROR] Source file 00060550 failed to delete
[INFO] File 00060551 copied to final destination
[INFO] MD5 check successful for 00060551
[ERROR] Source file 00060551 failed to delete
[INFO] File 00060552 copied to final destination
[INFO] MD5 check successful for 00060552
[ERROR] Source file 00060552 failed to delete
[INFO] File 00060553 copied to final destination
[INFO] MD5 check successful for 00060553
[ERROR] Source file 00060553 failed to delete
[INFO] File 00060554 copied to final destination
[INFO] MD5 check successful for 00060554
[ERROR] Source file 00060554 failed to delete
[INFO] File 00060555 copied to final destination
[INFO] MD5 check successful for 00060555
[ERROR] Source file 00060555 failed to delete
[INFO] File 00060556 copied to final destination
[INFO] MD5 check successful for 00060556
[ERROR] Source file 00060556 failed to delete
[INFO] File 00060557 copied to final destination
[INFO] MD5 check successful for 00060557
[ERROR] Source file 00060557 failed to delete
[INFO] File 00060558 copied to final destination
[INFO] MD5 check successful for 00060558
[ERROR] Source file 00060558 failed to delete
[INFO] File 00060729 copied to final destination
[INFO] MD5 check successful for 00060729
[ERROR] Source file 00060729 failed to delete
[INFO] File 00064820 copied to final destination
[INFO] MD5 check successful for 00064820
[ERROR] Source file 00064820 failed to delete
[INFO] File 00064821 copied to final destination
[INFO] MD5 check successful for 00064821
[ERROR] Source file 00064821 failed to delete

This is all I get from the Output box. Maybe it has something do with admin rights (because I installed it on my C: SSD)?

Edit: running through cmd doesn't give me any errors or something
 

HoloWiseWolf

Cricket
Donator
Member
thought nobody is gonna do this, unfortunately the program won't delete any file at all.

This is all I get from the Output box. Maybe it has something do with admin rights (because I installed it on my C: SSD)?

Edit: running through cmd doesn't give me any errors or something
Lack of errors in cmd is due to me not including printStackTrace() in this release when controlled exceptions are caught. I'll reintroduce it back to the app in next release tomorrow/today, aprox in 10 hours. So you can wait for it and report once more with the exact exception (Frankly I just forgot to readd it before building final jar)

Meanwhile the only two reasons I could think of is an unclosed stream (which shouldn't be the case as it worked for me and others) or a lack of proper permissions (try running it as admin)
 

HoloWiseWolf

Cricket
Donator
Member
HOTFIX
09/08/2019 v1.0.1

- Ensured that the input streams for MD5 checksum generation are being closed as soon as the checksum is done generating (fixes unlikely but possible file block)
- Added printStackTrace() in case of a controlled ERROR reported within the app, it'll be shown in a command line (if user chose to run it through command line) and will be wrapped by a message pointing at the exact ERROR message shown within the app (May dump them into a text file instead in one of the future updates for the sake of simplicity)​
 

Louyo

Cricket
Member
this works amazing, thanks. there is just one more thing needed: a restore button. when needed so it copies back the files to the origin location :) maybe its just me but i remove animations and/or sfx just for raiding
 

HoloWiseWolf

Cricket
Donator
Member
this works amazing, thanks. there is just one more thing needed: a restore button. when needed so it copies back the files to the origin location :) maybe its just me but i remove animations and/or sfx just for raiding
I'm glad it works for you ^^

If you swap the directories (FROM to your backup folder and TO to your CookedPC folder) it will restore the backup instead. (It goes through the same process so be wary of possible errors. App enables start button as long as one of the folders has "CookedPC" in it's directory) I will make it more intuitive in the future (also gonna edit main post to make it more clear how to restore with current implementation) :)
 
Last edited:

Louyo

Cricket
Member
oh yes is see makes sense. yeah well a "swap directorys" button would be what i mean then. you know. for the lazy guys that dont want to open notepad to ctrl c and v back and forth the directories (you can only hold one folder at a time ^^ )

edit: actually nevermind, it doesnt save the directorys anyway, so i have to select them manually anyway.
 
Last edited:

doctorx

Cricket
Member
Thx it works really nice it really helps whit the fps, and its nice to see the movements of my characters and all the others.
 

HoloWiseWolf

Cricket
Donator
Member
Edited the main post a little bit

-added "what's coming" which specifies date of an upcoming build + what I'm planning to add in it
-added point 9 to FAQ that explains how to run JAR as admin for people that want to fix possible permissions issue (often related to errors while deleting files)
 

LongCyber

Bamboo Warrior
Donator
Member
u should write wich command line u need to put in cmd to move to jar location
and you blind should read #1 carefully
"1. Start the app. (recommended to start through cmd, read FAQ) "
and in his FAQ
"Move to directory with .jar file
1. if it's on the same drive as you are currently in cmd
ex. cd C:\Users\player\download\EffectRemover
2. if it's on a different drive than one you are currently in cmd
ex. cd /d W:\download\EffectRemover
After moving to directory with jar file type in
java -jar filename.jar (filename should be EffectRemover)"
 

Chaoscore

Cricket
Member
Do i get any FPS benefits from that when im usally raiding with ALl Animations disabled via Bnsbuddy?

As you said holol its smt like an alternative.
 

HoloWiseWolf

Cricket
Donator
Member
Do i get any FPS benefits from that when im usally raiding with ALl Animations disabled via Bnsbuddy?

As you said holol its smt like an alternative.
If you have ALL animations disabled through buddy then as far as I recall you'll never see any effects. You can use both buddy and the tool to for example, turn off animations for everyone except you and turn off only effects for yourself. This way you optimize the fps gain without turning yourself into a T pose, from my personal experience it helped a lot, especially when alt tabbing for a longer period of time as it eliminates huge fps drops when using your skills for the first time.
 

HoloWiseWolf

Cricket
Donator
Member
SINCE I ADDED NEW FUNCTIONALITIES PLEASE REPORT ANY ERRORS YOU ENCOUNTER

UPDATE
28/08/2019 v1.0.2

- (Thanks to Cupid for creating the batch file) Added .bat file that ensures app runs as admin, saves error logs and many other things. Batch file will output log.log file in the same directory as .jar file that allows for easier view into errors if those occurred.
- Added properties file that will store and load directories used last time by the user.
- Added switch button that will switch directories for easier backup recovery.
- progress bar will change colour to red in case an error occurred or green if process was fully successful.
- Minor code fixes that will hopefully prevent possible errors.​
 

HoloWiseWolf

Cricket
Donator
Member
i got this error

Running: java -jar EffectRemover.jar
'java' is not recognized as an internal or external command,
operable program or batch file.
================================================================================
Program terminated with exitcode 9009

It means you either do not have Java installed or you do not have a properly set environment variable.

For Java download:
For a way to fix environment variable

Note that bin path you have to use as a variable may be different for you (for example it could be in jre1.8.0_221 while the example uses
jdk1.7.0_72)
 

HoloWiseWolf

Cricket
Donator
Member
HOTFIX
02/09/2019 v1.0.3

Important change to the batch file used to run the app.
Fixed an issue where if user were to run the file from a drive different that system drive it would not succeed (and report that it couldn't access a jarfile)
Added verification steps to ensure app changed a directory to one that is expected and that the directory contains jar file​
 
Top Bottom