[Similar Issue:] Weird, was having a similar problem trying to figure out.
Was attempting to initiate combat when
entities (persons) collided and made contact (touched).
Though the function doesn't trigger when the entities touch,
and instead only works suddenly when the player collides moving towards
the enemy entity that's moving towards him.
In other words, even though both player and the enemy are touching
the function doesn't always trigger, working only when they're both moving towards each other in collision.
Anybody care to take a guess at a solution? Don't mean to hijack by the way, just think the problems may be similar.
. . .
[Possible Solution for Yours:] As for deleting AttachInput(), couldn't you just bind the arrowkeys to perform 'nothing' like so:
BindKey(KEY_UPRIGHTLEFTDOWN, '', '');
and keep AttachInput() in your script so that you keep the trigger registration working?
And then define the properties for the WASD keys in your movement script like so:
if (IsKeyPressed(WASD)) {Movement controls}
If I'm not mistaken, deleting AttachInput() also means you would have to reattach and redefine
all the functions and things that make triggers work that are included in the AttachInput() function.
Radnen has done this with his Lithonite Library I believe for example, which is also massive in size.
So it's better to keep AttachInput() in the script, and redefine the keys.