• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

ShovelKnight Free OTClient protection

Fenrisus

Ferin-Sha
Joined
Mar 19, 2010
Messages
205
Reaction score
339
Location
Canada
45ms0PN.png

Presents
yf8O4lS.png

ShovelKnight Protection System.
(free edition)

Description:
ShovelKnight is a content protection system for OTClient. It's provide protection for your client files.
If you are looking for content protection solution, ShovelKnight may be useful for you. OTClient a good platform for create sweet custom server, but how about *.lua or spr+dat protection? For prevent leaking content from unique projects with unique sprites and content, i create my little protection system. ShovelKnight will be free to everyone, and OTClient 0.6.3 supports many clients already. Currently 70% of things can be done via .lua, and you dont need C++ source code actually. If anyways them needed, well, there is free version, but on private, payed versions of this software - everything is possible!:)
Free version already contains anti-reverse protection plus all required content-protection things. You just cant make custom modifications on C++ code or change low-level things.
Well, about limitations see below.

Free edition limitations:
1)Little banner on startup with ShovelKnight protection system logo.
(hope them will not hurt your players!)
QrHSNU1.png
2)game.exe can be runned only from special launcher.
3)No C++ source code for client. (i guess your uderstands why).
4) It really compiles only *.LUA, *.DAT, *.SPR files

MANUAL(How to use):
Everything is simple, you just working with your Data & Modules content, and after compile them as for example, Monogame Pipeline tool compile your assets. Package maker able to compile Data, Modules folders and Init.lua. Additional information can be found inside asset compiler:
8tmk2Ek.png

The default output format from compiler *.hpf, i.e. you should put in your lua file something like this:
Code:
-- add data directory to the search path
if not g_resources.addSearchPath(g_resources.getWorkDir() .. "data.hpf", true) then
  g_logger.fatal("Unable to add data directory to the search path.")
end

-- add modules directory to the search path
if not g_resources.addSearchPath(g_resources.getWorkDir() .. "modules.hpf", true) then
  g_logger.fatal("Unable to add modules directory to the search path.")
end
==========================
Techical info:
OTClient, clean, 0.6.3 cloned from github repository.
Package Contents:
-Compiled game.exe (otclient)
-All *.dll files required for launch game.
-Compiled Client Launcher app. (start game from it).
-Package Maker.
without data & modules folders! (you should put here your own!).
==========================
Recomendations:
-Dont use Mods folder, just copy all of them (if you have a some content on it) into Modules directory.
-Dont use otclientrc.lua, in this case they dont need. Remove links to it on Init.lua and also in Modules/client/client.lua (reload modules part of code). Right now thats all :)
==========================
Possible issues:
1)If some of your players got problems with loading game, and client will crush with error "Cant add data folder to searchpath" - Set programm compatibility mode with Windows XP SP3. This error appears due to some Windows 7, Windows 8.1, Windows 10 native redistributable frameworks, that make OTClient virtual filesystem fails on read packages. Compatiblity mode with WinXP SP3 solve this problem 100%.
2)A little long time await for loading client. It appears from protection code and buffering resources. Them not affect on gameplay, just startup. ~5-10 seconds required for load client. That is normally.
3)Some antivirus programms may threat game.exe as Win32/Packed.VMProtect.ABR. Dont care, that is normal behavior for protected software.
==========================
Credits:
-All OTClient developers, edubart, Summ, and others.
-Fenrisus(SkyImmerse studio) i.e. me, for protection.
==========================
Special thanks:
-Crip Killa (Chasm Developer)
-All who distrib me on Skype while i am play League of Legends, with asking about this.
Thanks you guys, that will be impossible without yours cuz i am epic lazzy :D
lol_sona_and_teemo_gif_by_chanseven-d6i7h39.gif
==========================
DOWNLOAD:

ShovelKnight OTClient

VirusTotal:

==========================
Enjoy your protected client! ;)
==========================
Dont foget to report any issues on this thread!
 
Last edited:
Awesome project, helpful for all of those who use OTClient, thanks for sharing!
 
1)If some of your players got problems with loading game, and client will crush with error "Cant add data folder to searchpath" - Set programm compatibility mode with Windows XP SP3. This error appears due to some Windows 7, Windows 8.1, Windows 10 native redistributable frameworks, that make OTClient virtual filesystem fails on read packages. Compatiblity mode with WinXP SP3 solve this problem 100%.

What about Windows 8 and later users? There's no XP mode anymore :/
 
What about Windows 8 and later users? There's no XP mode anymore :/
This rarely happens, and depends on installed redistributable packages on your OS. Anyways, they will works fine. If any problems, they can be solved on same way, just put it compatible with Windows 7.

but mainly those error may appears only if you have a something like this (on one machine, at same time):
Wy9iIH6.png

+over9000 another frameworks.
Personally, on tests, i am on dev machine, got those issue, but lack of them on playing PC. And beta-testers has no reports about this issue.
Literally, you should dont care about this, cuz no one report it actually, and they can be fixed so easy. Maybe those behavior appears due to system enviroment setups (80% probably). I just have a lot of stuff and frameworks on dev. PC.(and that may cause a problems). On users machines them will never appears, or very very rare can. I just put those instruction, if you find those behavior.
 
Thanks for reply. I managed to start it but as I can see it doesn't support 10.90 version. Is it in further plans? Anyway it looks really great.
Code:
ERROR: C++ call failed: Client version 1090 not supported
stack traceback:
    [builtin#146]: at 0x5a924a30
    [C]: in function 'setClientVersion'
    /client_entergame/entergame.esf:330: in function 'doLogin'
    /client_entergame/entergame.otui:28: [@onEnter]:2: in function </client_entergame/entergame.otui:28: [@onEnter]:1>
    [C]: in function 'pcall'
    /corelib/util.esf:311: in function 'signalcall'
    /corelib/ui/uiwindow.esf:15: in function </corelib/ui/uiwindow.esf:12>
 
Thanks for reply. I managed to start it but as I can see it doesn't support 10.90 version. Is it in further plans? Anyway it looks really great.
Code:
ERROR: C++ call failed: Client version 1090 not supported
stack traceback:
    [builtin#146]: at 0x5a924a30
    [C]: in function 'setClientVersion'
    /client_entergame/entergame.esf:330: in function 'doLogin'
    /client_entergame/entergame.otui:28: [@onEnter]:2: in function </client_entergame/entergame.otui:28: [@onEnter]:1>
    [C]: in function 'pcall'
    /corelib/util.esf:311: in function 'signalcall'
    /corelib/ui/uiwindow.esf:15: in function </corelib/ui/uiwindow.esf:12>
yeah, support for 1090 not included for this moment, that will be in next versions soon as possible.
 
45ms0PN.png

Presents
yf8O4lS.png

ShovelKnight Protection System.
(free edition)

Description:
ShovelKnight is a content protection system for OTClient. It's provide protection for your client files.
If you are looking for content protection solution, ShovelKnight may be useful for you. OTClient a good platform for create sweet custom server, but how about *.lua or spr+dat protection? For prevent leaking content from unique projects with unique sprites and content, i create my little protection system. ShovelKnight will be free to everyone, and OTClient 0.6.3 supports many clients already. Currently 70% of things can be done via .lua, and you dont need C++ source code actually. If anyways them needed, well, there is free version, but on private, payed versions of this software - everything is possible!:)
Free version already contains anti-reverse protection plus all required content-protection things. You just cant make custom modifications on C++ code or change low-level things.
Well, about limitations see below.

Free edition limitations:
1)Little banner on startup with ShovelKnight protection system logo.
(hope them will not hurt your players!)
QrHSNU1.png
2)game.exe can be runned only from special launcher.
3)No C++ source code for client. (i guess your uderstands why).
4) It really compiles only *.LUA, *.DAT, *.SPR files

MANUAL(How to use):
Everything is simple, you just working with your Data & Modules content, and after compile them as for example, Monogame Pipeline tool compile your assets. Package maker able to compile Data, Modules folders and Init.lua. Additional information can be found inside asset compiler:
8tmk2Ek.png

The default output format from compiler *.hpf, i.e. you should put in your lua file something like this:
Code:
-- add data directory to the search path
if not g_resources.addSearchPath(g_resources.getWorkDir() .. "data.hpf", true) then
  g_logger.fatal("Unable to add data directory to the search path.")
end

-- add modules directory to the search path
if not g_resources.addSearchPath(g_resources.getWorkDir() .. "modules.hpf", true) then
  g_logger.fatal("Unable to add modules directory to the search path.")
end
==========================
Techical info:
OTClient, clean, 0.6.3 cloned from github repository.
Package Contents:
-Compiled game.exe (otclient)
-All *.dll files required for launch game.
-Compiled Client Launcher app. (start game from it).
-Package Maker.
without data & modules folders! (you should put here your own!).
==========================
Recomendations:
-Dont use Mods folder, just copy all of them (if you have a some content on it) into Modules directory.
-Dont use otclientrc.lua, in this case they dont need. Remove links to it on Init.lua and also in Modules/client/client.lua (reload modules part of code). Right now thats all :)
==========================
Possible issues:
1)If some of your players got problems with loading game, and client will crush with error "Cant add data folder to searchpath" - Set programm compatibility mode with Windows XP SP3. This error appears due to some Windows 7, Windows 8.1, Windows 10 native redistributable frameworks, that make OTClient virtual filesystem fails on read packages. Compatiblity mode with WinXP SP3 solve this problem 100%.
2)A little long time await for loading client. It appears from protection code and buffering resources. Them not affect on gameplay, just startup. ~5-10 seconds required for load client. That is normally.
3)Some antivirus programms may threat game.exe as Win32/Packed.VMProtect.ABR. Dont care, that is normal behavior for protected software.
==========================
Credits:
-All OTClient developers, edubart, Summ, and others.
-Fenrisus(SkyImmerse studio) i.e. me, for protection.
==========================
Special thanks:
-Crip Killa (Chasm Developer)
-All who distrib me on Skype while i am play League of Legends, with asking about this.
Thanks you guys, that will be impossible without yours cuz i am epic lazzy :D
lol_sona_and_teemo_gif_by_chanseven-d6i7h39.gif
==========================
DOWNLOAD:

ShovelKnight OTClient

VirusTotal:

==========================
Enjoy your protected client! ;)
==========================
Dont foget to report any issues on this thread!

game.exe virus found
 
Just curious, how would one go about getting the paid version?
 
Little update: I will back to work on it (and also offer newest ver. of protection with alot of new features) at middle of november.
Right now, i am working on my little pixel-based MMO game, and them almost done! ;)
if you are interested: take a look on it.
That is browser game, based on my own WebGL framework, similar to RotMG game but on space. Bullet-hell Rogue like co-op MMO game. Build up your ships! Whatever you want! Kill your enemies with that, upgrade your ship, but be careful - death is permanent! :p (you need build up new ship and upgrade+leveling again).
 
Little update: I will back to work on it (and also offer newest ver. of protection with alot of new features) at middle of november.
Right now, i am working on my little pixel-based MMO game, and them almost done! ;)
if you are interested: take a look on it.
That is browser game, based on my own WebGL framework, similar to RotMG game but on space. Bullet-hell Rogue like co-op MMO game. Build up your ships! Whatever you want! Kill your enemies with that, upgrade your ship, but be careful - death is permanent! :p (you need build up new ship and upgrade+leveling again).

That looks dope man! As a pixel artist, I'd certainly make myself a pretty sweet ship haha.
So this is gonna be in the same fashion as Slither.io or Agar.io basically?

Good luck with it!
 
These kinds of programs are both good and bad, good because you can prevent most people from lifting your work, bad because the original developer of the program can unpack your files.
 
That looks dope man! As a pixel artist, I'd certainly make myself a pretty sweet ship haha.
So this is gonna be in the same fashion as Slither.io or Agar.io basically?

Good luck with it!
That will be like those game, but with space ships:


The hardest part is spaceships & projectiles. Spaceships - is not actually sprites. That is binary tile array with color config, particle point emmiters, animation layers, and collision model (BodyRig collisions for projectiles).
Each of those ship weight just ~5-10kb and can be stored on database.
This developed specially for give players their own ships. You may draw ship as you want it. Also, you may share your "designs" between other players. Just draw them, put the modules (Cockpit, Engines, Reactor, Weapons, etc.) and play!

There is some "fitting" system -main and heart of your ship is cockpit. Those module provide basic CPU, energy and define your ship class (fighter, frigate, cruiser, battleship, dreadnought) and also increase scale of your model hehe. And fit system based on CPU. For example, you has a Tier 5 (max is 12 tiers) cruiser cockpit. Well, you may install Tier 10 weapons on it, but you will got a some issues - 1) Low energy amount for it, and you may shoot only once at full energy capacity. 2)Low speed due to poor engines. 3)Low Energy regen rate, 4)No "skill" secondary weapon. But you will got a some firepower (with long cooldown).
Also, player select his "role" as he want. Here is Repair Module for heals other players, Ion Cannon, Rail Gun (sniper things), Hangar Bay (you may launch 2 fighters as "pets", they will help you on killing enemies) and etc.

Well, death is the end(?) Yes and nope. After death you lose all your ship items, and also spaceship (exept items stored on depot!) and got a Credits as reward. Amount of credits based on your game progress. Hmm, similar to those game:
T7GgblB.jpg

you may upgrade some unique modules with credits and also build new ships.

Finally- my game is hardly inspired from RotMG, but with my own things and spaceships ;)
UPD:
These kinds of programs are both good and bad, good because you can prevent most people from lifting your work, bad because the original developer of the program can unpack your files.

1) I know how it's works, thats true. But anyways your data is protected. Content issues?
Sprites?
I do my own as i can:
From Concept art....
cuihxsv.jpg

To ingame sprites:
cFP2k9G.jpg
There is no "perfect protection" is exists. For example, with my reverse engineering skills, i can decompile C/C++ APP, and restore C++ source code from MASM32 listings. That is possible.
Or do such customs without source code just with ASM hooks:
WEbodK1.jpg

Needless to to say, about "crack" someone... Hmm, if someone pay me a peso, every time when someone asks me to unpack Necronia, Zezenia or other same project...:D But i'm never do it, because content developer != content leecher. Dont be leechers, be developers guys!

Best regards!
 
Last edited:
That will be like those game, but with space ships:


The hardest part is spaceships & projectiles. Spaceships - is not actually sprites. That is binary tile array with color config, particle point emmiters, animation layers, and collision model (BodyRig collisions for projectiles).
Each of those ship weight just ~5-10kb and can be stored on database.
This developed specially for give players their own ships. You may draw ship as you want it. Also, you may share your "designs" between other players. Just draw them, put the modules (Cockpit, Engines, Reactor, Weapons, etc.) and play!

There is some "fitting" system -main and heart of your ship is cockpit. Those module provide basic CPU, energy and define your ship class (fighter, frigate, cruiser, battleship, dreadnought) and also increase scale of your model hehe. And fit system based on CPU. For example, you has a Tier 5 (max is 12 tiers) cruiser cockpit. Well, you may install Tier 10 weapons on it, but you will got a some issues - 1) Low energy amount for it, and you may shoot only once at full energy capacity. 2)Low speed due to poor engines. 3)Low Energy regen rate, 4)No "skill" secondary weapon. But you will got a some firepower (with long cooldown).
Also, player select his "role" as he want. Here is Repair Module for heals other players, Ion Cannon, Rail Gun (sniper things), Hangar Bay (you may launch 2 fighters as "pets", they will help you on killing enemies) and etc.

Well, death is the end(?) Yes and nope. After death you lose all your ship items, and also spaceship (exept items stored on depot!) and got a Credits as reward. Amount of credits based on your game progress. Hmm, similar to those game:
T7GgblB.jpg

you may upgrade some unique modules with credits and also build new ships.

Finally- my game is hardly inspired from RotMG, but with my own things and spaceships ;)
UPD:


1) I know how it's works, thats true. But anyways your data is protected. Content issues?
Sprites?
I do my own as i can:
From Concept art....
cuihxsv.jpg

To ingame sprites:
cFP2k9G.jpg
There is no "perfect protection" is exists. For example, with my reverse engineering skills, i can decompile C/C++ APP, and restore C++ source code from MASM32 listings. That is possible.
Or do such customs without source code just with ASM hooks:
WEbodK1.jpg

Needless to to say, about "crack" someone... Hmm, if someone pay me a peso, every time when someone asks me to unpack Necronia, Zezenia or other same project...:D But i'm never do it, because content developer != content leecher. Dont be leechers, be developers guys!

Best regards!
I am not knocking your work, just pointing out the obvious in case it isn't obvious to people. Since this community is an open source community, rather than providing an application to protect their work, a better idea would be to provide the source files of the application to protect their work.

Just imagine if TFS, Otclient, RME, and the many other tools available to us, if their source were closed source where this community would be today, (there wouldn't be one) .

I understand you may have put a lot work into your application and just don't want to give it away, however most of us are more inclined to use an application if we are able to compile it ourselves. This way we know almost for certain that the program does not contain possible malicious intentions, unfortunately a virus scan or the word of a developer "its safe to use" can not always confirm this.

A program is not truly free if developers can not see what is under the hood. You should mention the licensing at the start of this thread that the program is freeware.
 
I am not knocking your work, just pointing out the obvious in case it isn't obvious to people. Since this community is an open source community, rather than providing an application to protect their work, a better idea would be to provide the source files of the application to protect their work.

I understand you may have put a lot work into your application and just don't want to give it away, however most of us are more inclined to use an application if we are able to compile it ourselves. This way we know almost for certain that the program does not contain possible malicious intentions, unfortunately a virus scan or the word of a developer "its safe to use" can not always confirm this.

A program is not truly free if developers can not see what is under the hood. You should mention the licensing at the start of this thread that the program is freeware.
You are fully right from one side, and wrong from one another. Once released, it's become useless, because potential bot-maker (i mean developer with some skills, not just user) know how your protection is work. Also, needless to say about custom sprites protection or other content things. Right now, currently them protected both, from reverse and common users. After publish source code, another developers will make a "patch" for it (after some time) and will take your content or for example, make a bot+unprotect solution for protected clients. Thats why source code of software protectors should be nerver published. Just because it's became very vulnerable.

Just imagine if TFS, Otclient, RME, and the many other tools available to us, if their source were closed source where this community would be today, (there wouldn't be one) .

Hmm at some point, it's can be open sourced in distant future. Protection part of OTClient is non official TFS or OTClient feature (but if developers ask about this, i will publish them as part of OTClient itself). That is "optional custom" like Poketibia or Ascalon/Chasm server or custom WebTemplate, and i just provide "datapack" without source as for exclusive content ;) But here, i will make a some point. I offer also private payed versions too. With full source code, for developers. And they can do whatever they want with that. Also, there is some interesting thing - before sell copy, i make a changes inside each copy of source code (due to security reasons, for prevent "concurrent hack & leak" between developers) and those datapack is unique. Public version of protection, has same (with few exceptions) features, high level of protection, them unique (no one of private ver. owners has source code from it) but for all users, who want just setup & configure their protection and just use them. If you are developer and want full source code & develop C++ things (and also make general changes) why not just buy private version of those protection? I guess that is fair exchange. For common users - source code is useless, for developers pay once for got all source code - is their "thanks" to me.:)
 
Withou antivirus game.exe crash on windows 10 (just appear it =>
7d92b3a478dd5f7e3b5b4a8c396a9dd6.gif


If you click nothing happens xD
 
Last edited:
Unable to add data directory to the search path, already sue compatibily xp s3, game.exe stopped working, help me D:

i use windows 7 ultimate
 
Back
Top