i forgot about the little ships! still shooting for Friday demo release, been too long and have had so much progress. managed to get them integrated in pretty quickly, but was having an issue appling the tilt. eventually figured out it was an issue with the dual rigidbody setup i have going and serialized the two references to fix the issue. also had to make a separate Fire function for the auto fire option on the Weapon Controller script, due to changes I made to the code when programming the boss fight mechanica. at first, i tried to just make an overload method to keep it simple, but i was having issues using the InvokeRepeating function due to the argument signatures not matching, so now there is a completely separate AutoFire function to use with Invoke. last thing to note is the new CleanUpByBoundary behaviour that is a replacement for the old DestroyByBoundary class. it essentially does a combination of destroying and disabling, with conditions for handling enemies and bullets. i thought i was able to remove the DestroyByBoundary all together, but realised today nothing leaving the game field was being killed! probably explains why the performance was slowly decreasing on the first planet. anyway, the most important thing to remember is that both if statements use dual conditionals the execution order of which is crucial. the first checks for the Bullet tag abd has an OR conditional with an EnemyBullet not equal to null check for disabling objects and the SECOND if statement checks for the Enemy tag and has an AND conditional, this time with EnemyBullet is null check instead for destroying. is this confusing? yes could i have probably just made a EnemyBullet tag and a third if atatement? yes do i have any idea why it came out so cattywampus? none whatsoever