CoreKeepersWorkshop - The simple GUI inventory editor for Core Keeper. This app further lets you edit basic player features as well as world header information.
- Inventory editor.
- Name changer.
- World difficulty changer.
- Automatic fishing bot.
- Export / import players.
- Minimization support.
- Unknown ID debugger.
- Modded support.
- No game file replacement.
- Future proof resiliency.
- Basic multiplayer support.
- Automatic map renderer.
- Player skill editor.
Due to how Core Keeper is as a unity game, the devolopers have protected their source and mono files. To further aid in the no support for modding this game includes, they also have used memory protection techniques to scramble regions of memory to prevent address pointers. So using some clever AoB (array of bytes) scanning, we can get around this protection due to some unspecified exploits that exists within their protection.
Included in this application's directory is a file named build.bat
. This file can be used to compile the applications source code from a single click. You can also download an already compiled version from the releases. After building, your application can be found in the releases directory. If you downloaded it pre-compiled, you will need to simply extract it to any desired location.
After launching, you will need to put some torches in both your first and last inventory slots (don't use added storage slots from bags, exc).
The features for the application is as follows:
Variants are mostly used curently for food items only. In order to find a variant for an item, you first need to determine the base item ID. All items regardless of variant all have a base ID. There is not a unique ID assosiated with each item variant, only the base ID. Refer to the formula below to understand how these are built.
Variant-ID: xxxxyyyy
x
= ID of first ingredient
y
= Second ingredient ID.
You may be asking yourself, how does this work without even replacing files in my game? To answer as simply as possible, you first need to understand what memory addresses are. Every game and every program on your PC has an "address" which is a physical space in your memory (RAM or CPU registers). This mod scans for these unique memory patterns by their values to to find values like an items ID, amount, variant and pretty much whatever value you can imagine. All text, numbers, and even the positions of enemies are stored in this memory; the only issue is finding it. Core Keeper is a very special game as there is no static way to get the game value from an address each time. Each time you reload your game, even your world, these addresses will no longer point to the values they did before. This game scrambles its memory to protect from people abusing this method so it's quite annoying. This mod uses some clever techniques to overcome this obstacle by something called AoB scanning. This allows us to always find the addresses by a unique pattern in memory, the torches.
To first find the addresses, tools such as cheat engine or other memory scanning software’s are used. Since we cannot save pointers example, corek.exe +AB12 +AB12 +AB12
etc., you can find unique arrays of bytes that stay the same each time (AoB scanning). Doing a bunch of math and navigating, you can start to build static pointers based off how the memory arranges bytes. This is why you need to have a torch in the first and last slot. Once this array is found, you can start coding around it and adding onto it. Making functions exc. CoreKeeper requires allot more work even so with the addition of memory protection method such as fake honeypot pointers. These addresses are duplicates of one desired value such as the amount of an item. When editing a fake address, there is a chance the memory will re-scramble and you will have to start all over to find once again for another opportunity to find it once again. Below you can see how the values are stored in memory for the inventory.
This editor has full support for adding modded items or future game release content. The assets folder contains all the inventory editor's textures. Each item category is divided by it's own subdirectory folder. These folders can be found within the .\assets\inventory\
directory. From here you can add new assets. The editor uses a very special type of json'ing to allow for adding future content without the need to manually update the application for each update. If the in-game items do not contain an asset texture within this editor, they will show up as a questionmark on the main form.
Below is a chart to show off filename system for images:
Here is the list of all the available categories:
- Tools
- PlaceableItems
- Nature
- Materials
- Special
- MobItems
- BaseBuilding
- Treasures
- ElectroMechanics
- PlantsSeeds
- Armors
- Accessories
- Weapons
- Consumables
- Seasonal
Adding background UI skins is now supported. You can add custom skins to the \assets\backgrounds\{folder name}
directory by any name. These images must be 695x420. It's very important you keep the inventory boxes where they are, these do not move with the skins. You can cycle through the skins using the "Change Skin" tab-button at the top. These will save when you close and appear when re-opened.