Ch99.1: Your own event map support
The lazy author takes forever to update event support
How about making your own event update pack?
Appendix ‐‐ Making your own event map support
Warning: If you don't have your own kcauto python environment, then it is highly impossible for you to make your own update pack(since you have no access to
(2025/11/12, with the latest update, nodes define are separated to kcauto/kca_enums/nodes.py)data/combat/map_enum.json, so normal user should be able to follow this guide now)
There are three things to setup:
- assets (
assets/combat/_event_next_page_<X>.png
andassets/combat/_event_world_E-<X>.png) - map data (
data/combat/E-<X>.json) - nodes (
data/combat/map_enum.json)
Assets
For assets, you have to capture ref of the map icon
FROM
TO
And the next page button
FROM

TO

Then replace the files in assets/combat/_event_next_page_<X>.png and assets/combat/_event_world_E-<X>.png
map data
Now we have to setup the map data so that kcauto can handle combat and LBAS for us.
First thing first, we need to get the map image ready.
I personally get it from kancolle wiki
We need the image without any scaling so be careful with the source you use.
Where you can get reliable map image
A mini tool tool/map/mapCoorUpdater.py could help building up the map data,
the requirement to run this python file is listed in tool/map/mapCoorUpdaterRequirement.txt.
Run the tool and it will pull the latest map edges data from KC3 source code.
So make sure you work on this after KC3 has updated the event map data.
Map Coordinates Updater
After you finished filling in basic info,
the coor of each node is needed to be defined (ref:issue#20 and discussion#71):
- Click top left of the map
- Follow the guide from the tool and set the node type if needed,
pressofor option nodeafor anti-air nodesfor anti-sub nodebfor boss node
- Click on each node
Set node C as option node
Where to click on the image
mapCoorUpdater finished setting up E-4.json
Nodes
In order for kcauto to handle,
all nodes are defined in data/combat/map_enum.json.
You don't have to add the newly updated nodes into the file manually, tho.
Run tool/map/maps_generater.py and it will generate tool/map/map_enum.json.
then replace data/combat/map_enum.json with tool/map/map_enum.json.
Debugging map data
In case you need to debug a E-X.json file, Let's take a look in an old E-5.json.
Map data defines the node, edge, and enemy type in a map.
{
"world": "E", //This is an event map
"subworld": 5, //The 5th world
"panel": 1, //It is located at the 1st panel (The upper one), this is needed because for example E1~E3 could all located at page 1
"page": 3, //It is located at 3rd page
"enemy_context": [ //What type of enemy will appear in this map, these data will then provide to quest module
"subs",
"carriers",
"transports"
],
"nodes": { //Coords for every nodes, this is the offset from top left of the GAME WINDOW(not your browser or screen) to the node
"A": {
"coords": [
157,
273
]
},
...
...
"L2": {
"coords": [
775,
424
]
}
},
"edges": { //The edge between every nodes, this is defined in the api from kancolle
"1": [
"Start 1",
"A"
],
...
...
"37": [
"V",
"U"
]
}
}