We have published the first version of release:
Add skill: Post-action swap

I don’t like making posts like these but I think it’s better to make suggestions sooner rather than later.
-Do you plan on supporting the Fourth Allegiance patch? If so, it’d probably be more convenient to add it (especially since parts of it are written in C already) early instead of retroactively changing code to add compatibility. Not only would the latter be an extra hassle but it would likely create some extra bugs with some more involved skills (such as Keep Up, Armor March, and Pass in the non-C version).
-A config option to determine which allegiances are targeted by skills. For example, instead of writing the support skills to check IsSameAllegiance or AreUnitsAllied, make them check a custom function that calls one or the other depending on the config option. If you do want to implement the Fourth Allegiance, this would also enable specific versions of those checks since allegiances are no longer necessarily mutual (eg. blue can be allied with green but green can still attack blue) or to make AoE skills such as Savage Blow only damage units allied to the target instead of not allied to the attacker.
-A config option to make it so traps/range events can also trigger on units other than the active unit (such as those moved by skills or dropped with rescue). Using your Swap gif as an example, if there were fire traps under both Innes and Caellach, in vanilla only Innes would be damaged, but with the suggested config option (if it is enabled) it would also damage Caellach since he was repositioned onto a trap.
Studied the patch roughly, I think it has too much hooks to the vanilla functions that I prefer to say it as a subsystem rather than a patch. I don’t think this kind of patch, which holds a lot of hooks but has limited applicability, should be introduced into the common project (and even not as a patch that allow unskilled wizards to install as well). Instead, it should be introduced into their own games by skilled wizards who are interested and capable, just as Gaiden style magic system or ThreeHouses style magic system.
Interesting idea, but it may slow down battle-calc, which may cause the game freezed and players feel stuttered during target-selection, so I think it is better to maintain a simplified calculation process for the skillsys at present.
Since function HandlePostActionTraps() is exec after post-action, so it may cause active-unit trigger the trap he stands on after all special effect is done.
Ideas you mentioned are interesting, but I think maybe they are not as important as str/mag or weapon-range that need to be integrated into the skillsys directly. However, the entire skillsys is open sourced, and I’d love to see someone make customization based on it. I think you can integrate your ideas into your own game if you’re skilled enough, and when it comes to the question of the need to call on API or insert hooks to hook-list of skillsys, I am also happy to answer.
I don’t know if this helps any, but I rewrote some of the weapon range stuff using the decomp C and integrated it into pokemblem a while ago. I did this to speed up GenerateDangerZoneRange. My approach was to keep the decomp weapon range bits method, but if something falls outside that, use a different function.
https://github.com/Veslyquix/Pokemblem/blob/master/Patches/DangerRadius/C/GenerateDangerZoneRange.c#L434
Might be worth a little look. Good luck with this exciting project.
I follow this guide, but after placing the patches in there it doesn’t let me use them and it brings this string of numbers. This happens on both a completely vanilla ROM and one with regular SkillSystems installed.

The patches we offered here are used for this modern skillsys project.Not for vanilla nor community project. You need to follow the readme of the repo to build it, then use FEB.
I’ve been following the install instructions but I’ve gotten stuck at this part when running the make command. Something about the gfx-installer.sh not being found. Anybody have any suggestions?
It’s not deleted. It’s there. In the exact filepath make should be looking for.
Although I am having an issue before that with build.sh where the following command isn’t being run (not sure if that’s contributing to it?) dotnet publish -o $root_dir $colorzcore_src/ColorzCore/ColorzCore.csproj. Poking around online, it seems I need the .NET sdk (correct me if I’m wrong). I’ve installed that also, but it’s still not running the command.
The irony of this situation is, this is supposed to be a higher level release of the skill system but it requires even more technical knowledge to set up than its predecessor ![]()
Since I’m used on working on ubuntu server, it is not quite sure why WSL lost its existing file. I guess it is because that script lost its executable permission after unzipping or it is just a bug for WSL if it is trying to find a file with deep path on external NFS? If that’s the truth, maybe you directly clone the repo to the ~/ dir on WSL and then it will work.
As for ColorzCore built on linux, this does have a little bit problem for beginner as it holds dependence on .NET framework, I think it is better to seek help on @StanH
Okay so a couple of things for my Windows brothers.
I resolved my .NET SDK errors by following the instructions here .net - dotnet sdk is installed but not recognized - Linux Ubuntu/popOS 22.04 - Stack Overflow
And I resolved the issues with gfx-installer.sh by running dos2unix in the same folder. That got me all the way to the building of the GBA file.
Still having issues with ColorzCore though, it says it still can’t find it. I’ll update if I figure that out.
EDIT: I copied over my ColorzCore from my EventAssembler folder in the old skill system, but that was targeting the 5.0.0 .NET framework and I was stuck with 6.0.28 (which wouldn’t change no matter what tutorials I followed). So I opened the accompanying ColorzCore.runtimeconfig.json file I had and changed the version there to 6.0.28 and it FINALLY compiled.
That took a whole day of going down rabbit holes. I mean this with all due respect Mohka, you’re a wizard among wizards but the installation process for this can go screw itself. ![]()
Hopefully my endeavours will help others if they get stuck installing this on Windows as well.
this is why I just click a batch file to build my stuff
A little disclaimer for Windows users again (not sure how it is for Linux) but when you get to the point of adding skill icons, make sure you run make clean first. Otherwise your terminal will complain about undefined identifiers when it tries to look for a 4bpp version of your png icon that doesn’t exist.
Also @Mokha would it be possible to have seperate definitions for the skill name in the menu and the skill name in the description? Because I’ve noticed when porting skills, if you shorten the skill name in the corresponding txt file for your skill, it gets shortened in both, like so.
Refer to chapter: Develop new skill in DOC SkillSys.md, which may answer your question.
- gfx-generator.sh may properly identify the new skill icon if you followed on DOC
- Skill name is acturally separated from skill description, which may casue it display differently from the skill name in statscreen page to helpbox.
- I did follow that, and I think your documentation is going to need updating because the
HeavyStrikespng and all past skills I’ve been porting haven’t been recognised without first runningmake clean.
This is what it looks just running make
- I should be clearer, where
H-Strikesis shown here, that line is used for both instances of the skill name. It forces the shortening of long skill names inside the text box as well as the stat screen. I’m saying it’d be better if those two things could be seperated somehow, so we can have the full skill name inside the text box.









