In attempting to mod for NTT I have come across a number of features that appear to not work as intended with the skills API. Creator YellowAfterlife has said that he will look at potential fixes for the next update; in the meantime I have been testing various things in order to find out with more precision where problems arise and (hopefully) make his job easier when it comes to fixing them. If other people could verify these bugs by testing on their own machines to check that it's not just some issue with my computer, it would be greatly appreciated.
1: skill_avail functionality
It appears that defining the skill_avail method within a custom skill mod file prohibits the skill from appearing in the pool. Verified by oneslightweirdo: running a skill.gml with no definition for skill_avail will allow it to be chosen as per normal, however defining it as: "#define skill_avail", "#define skill_avail return 1" and "#define skill_avail return 0" all remove the mutation from the pool.
trace() functions defined within skill_avail do trigger (verified oneslightweirdo), suggesting that the problem may lie not with the method itself but the way that the returned value from calling skill_avail is then used to determine mutations that may appear in the pool.
2: skill_set_active functionality
skill_set_active() appears to have no effect on custom skills. Verified oneslightweirdo: calling skill_set_active(skill,bool) for custom skill at game_start with either boolean argument will still allow it to appear in the skill pool, and calling skill_set_active(skill,bool) after the skill is taken with either argument will not allow it to reappear in the pool.
3: skill_set functionality
skill_set with custom skills does not fully give the skill to the player. It appears to trigger the skill_take method and remove the skill from the pool if set to 1, however it does not display the HUD icon or run the step method. If set to 0 it will trigger skill_lose and re-add the mutation to the skill pool, however if the player has the mutation through normal means it will not remove the step events.. Verified oneslightweirdo: Calling skill_set(skill,1) at game_start triggers skill_take and removes the skill from the pool, but active (step) events are not added. Later calling skill_set(skill,0) will allow it to appear in the pool in the future, and triggers skill_lose. Calling skill_set(skill,0) will not remove the active component of a skill from a player who already has the skill, but will allow the mutation to appear in the pool for a second time.
4: skill_get_active functionality
For custom skills, skill_get_active appears to always return false. Verified oneslightweirdo: calling trace(skill_get_active(skill)) returns 0 when the skill exists in the pool, when it is called to exist using skill_set(skill,0) and when skill_set_active() is called for either boolean argument
My thanks in advance for anyone who verifies these issues, and particularly to YellowAfterlife for making this absolutely fantastic NT mod and for any work done in the future to fix these issues!
Edit 1: updated info on skill_set issues