[191.023] Missiles teleport through ship armor (not stations)

Cyber Cheese shared this bug 3 months ago
Need More Information

The Problem: Missiles behave dramatically differently when they strike a large grid "ship" compared to a large grid "station." On stations, they behave as expected--consistently exploding on the surface of the armor until the armor is destroyed. However, on ships, the missiles pass partly or entirely through the armor with almost every shot. The result is that a station with 3 layers of armor is more than 10 times as durable as an identical large ship when hit with missiles.


To reproduce in any world or DS:


1) Attach a firing grid, with a cockpit and at least 8 rocket launchers, to a target large grid using landing gear, taking care to have the rocket launchers aimed at the target grid.

2) On the target grid, place at least two layers of heavy armor to defend against the rockets, with a space between them, in front of a functional block such as conveyors or cockpits.

3) Copy the setup and paste a copy nearby.

4) For one copy, convert the target grid to station.

5) For the other copy, convert the target grid to ship.

6) Fire the rockets until the target grid functional block is destroyed.


Expected result: Both grids' functional block should last an identical amount of time before being hit by the missiles.


Actual result: The "ship" grid will lose the functional block first.


To reproduce in linked test world:

1) Load into the world;

2) Fire 5 volleys of rockets at the undamaged "ship" target;

3) Fire 30 volleys rockets at the undamaged "station" target;


Expected result: Both targets should still have cockpits and conveyor systems behind the armor.


Actual result: The station target will still have conveyor blocks behind the armor, but the ship target will have lost many or all of them.


Video demonstration: https://streamable.com/zw8gs

Test world: https://gofile.io/?c=oxvzfS

Comments (35)

photo
5

I can confirm this bug. Tested and replicated.

photo
3

Hello, Engineer!


Thank you for your feedback! Your topic has been added between considered issues.

Please keep voting for the issue as it will help us to identify the most serious bugs.


We really appreciate your patience.


Kind Regards

Keen Software House: QA Department

photo
2

I'd say missiles phasing through armor is a pretty serious bug. Slowing missiles down to about 100 seems to fix it.


https://youtu.be/NDHsAxbAPE0

photo
3

I do a lot of PvP on server ... The current PvP meta is to put as much rocket launchers and turrets as you can and do not care about armor. So this bug is a total break of weapons mechanics, the armor is basically ignored by missiles making them OP and armor to be useless.

photo
1

Hello, Engineers!


Thank you for contacting us. We have reproduced the issue "ship armors being ignored by missiles". However, using the test world provided by Cyber Cheese, Conveyor blocks behind the armors weren't destroyed as well. Could you please confirm that the described behavior here (Conveyor blocks are destroyed) is still happening to you?


Any additional information would be greatly appreciated!


Thank you.


Kind Regards

Keen Software House: QA Department

photo
3

If you retry the test with missiles exceeding 100 m/s in speed, the bug will be more apparent.

photo
3

Thank you for looking into this important issue.


In my testing, all ship blocks suffer this bug, not just heavy armor. The problem is more apparent with stronger blocks (such as the heavy armor I used), because a conveyor block would die to one hit anyway whereas a heavy armor block that should survive longer fails to function too early if it is a ship block. (As shown in my video.)


As Braxbro indicated, you can more easily see that this is a bug in missile object collisions by increasing the speed of missiles. This video shows the result for a mod that has 800 m/s missiles:

https://streamable.com/d6ojn


Two things seem to be happening:

1) The collision itself is not detected with sufficient frequency, causing the "phasing" or "teleporting." With 800 m/s missiles it is easy to shoot through a block entirely without causing a collision.

2) Once a collision is detected, the explosion happens too late, so the missile object is too far in its trajectory. With 800 m/s missiles, it is possible to cause an explosion behind the block that will not actually damage the block that the missile collided with.

photo
2

I can also confirm this. This is likely due to collision detection failing the same way it does if you install infinite speed mod and fly through a planet if your speed is greater than 2kmps. This issue does not apply to armor tho as specified above. It applies to any block the missile can collide with. Passing through X layers of anything will cause the missile to explode. It is not consistent as sometimes the collision is detected however most of the time it is not until you reach deeper. If you place stack layers of any block you will observe the missile passing through the first layers most of the time. In fact if you place a single layer of say heavy armor and fire at it the missile wont even explode most of the time.

Suggestions for fix:

Easiest solution: Slow down the missiles to let the collision be detected.

Best solution:

A lot of servers use speed mods because vanilla speed cap is generally too slow. The reason most of them have a cap at all is either because of asteroid generation (can be compensated for by reducing asteroid gen %) and because of what i mentioned earlier where ships and players traveling too fast for the collision to be detected will simply pass through whatever. I suggest that collision detection be altered to compensate for high speeds using some kind of predictive algorithm. Either predict a crash based on the trajectories of the 2 objects or do post-processing to check if the objects passed through each other. This could be solved by either altering the game engine or doing a nice hack to the game itself. In any case i think this fix is long overdue!

photo
photo
3

Hello keen, i can confirm same bug, after pvp battle my outside ship armor (over all about 6k block) looked like brand new however my inside tanks ,o2 gens (hidden inside with protection of 3 heavy armor walls were destroyed . Only wall close to them were damaged after rocket flew through the armor and exploded at inside component.

photo
1

I have also reproduced this bug with no mods using several different block types (armor, thrusters, conveyors, and reactors). Once the missile accelerates to 200 m/s, it will consistently pass through at least one layer of small grid blocks as shown in this video:

https://streamable.com/xvqke

Please see the world file and the log files here: https://gofile.io/?c=GYEwq7

photo
2

So you provided the test data with modded missile speed, do I understand you correctly? It should be an important step in bug reproducing steps queue. So what mod and what speed did you use?


As for vanilla missiles, a long time ago I showed this bug to be happening when you shoot under the angle


https://support.keenswh.com/spaceengineers/general/topic/the-damage-from-missiles-pass-through-the-armor


Is is interesting to note that such bugs do not occurs with bullet type of weapons ... even if we will modify the velocity to be 2000.

photo
1

Anrej,


The original report and my reply with the small grid world are both without any mods. I can confirm that projectiles do not experience this problem, it is only missile objects.


I agree that the angles do strange things, but this is a new problem. At the time of your report on the angles, missiles would not phase through in the way they do now.

photo
photo
3

Watching at this "need more information" and thinking, what information do you need?


Just build a ship like that:

3160df3ea9341f20c4004746c047f726


Make sure that it is ship grid (not station) and then hit that armor with 10 rockets from 700m (for max speed), then you get


a70c8c90a701b03a84f8b35584e83627


I haven't used any missile speed mod in that, vanilla missiles with vanilla speeds.

photo
5

This is a huge issue. Without working missiles, PvP is a lot less fun. I can confirm that this issue is real. I did a deep dive into Sandbox.Game.dll and wrote a patch.

In Sandbox.Game.Weapons.MyMissile.UpdateBeforeSimulation(), add the following code and the issue disappears completely:

MyPhysics.HitInfo? hitInfo = MyPhysics.CastRay(base.PositionComp.GetPosition(), base.PositionComp.GetPosition() + this.m_linearVelocity * 0.0166666675f, 0);

if (!base.MarkedForClose && hitInfo != null)

{

this.m_collidedEntity = (MyEntity)hitInfo.Value.HkHitInfo.GetHitEntity();

this.m_collisionPoint = new Vector3D?(hitInfo.Value.HkHitInfo.Position);

this.m_collisionNormal = hitInfo.Value.HkHitInfo.Normal;

this.MarkForExplosion();

}

photo
2

This is a very serious issue, the PvP balance is completely thrown out the door. Most blocks seem to be affected, with the exception of large blocks like large thrusters, jump drives, hydrogen tanks and similar. The higher the speed of the missile is the more frequent the clipping is. Bullet type projectiles are not affected, just like others said.


This issue existed before, but only when you shot blocks from an angle as is reported in this original post.


Since one of the major updates the clipping started to behave like it does as described above, clipping no matter the angle.


MysterD's finds should help in finding the origin of the issue.


TheFerrariMan

Admin on Upside Down

photo
2

Still broke Hotfix 1.191.106

photo
2

I have no idea why it hasn't been fixed yet :D


It totally broke combat mechanics making impossible to play ... and instead of fixing this, Keens prefer to play with fancy safezones/factions/shops :D

photo
1

This same bug has returned once again...

photo
1

all projectiles explode behind 6 bloks after colide with the first lair of armor while not moving the armor.

Only bullets are working fine. But srsly they do no damage.

photo
2

Currently this is the WORST game breaking bug in the game, it completely ruins gameplay for any PVP server

photo
3

@Keen Support What more information do you need? You have a clear way of replicating the issue. This should be one of your highest priorities - it completely breaks the combat mechanics of the entire game. Balance is non-existant. It used to work before, so revert the changes you made that broke this if that is what it takes. The impact of such a change can surely not be as serious as having every single missile phase through blocks.

photo
1

Yes omg plz fix this asap i am loosing the will to play the game

photo
2

Two months in and this still has not been fixed. There is another bug report for the same issue here.


As MysterD said, this is not a difficult fix. Fountain Core has been running an alternate sandbox .dll for over a month on a busy dedicated server with no issues. I see no reason why Keen cannot make the same change. The change, as I understand it, is this:


Add this code:

MyPhysics.HitInfo? nullable = MyPhysics.CastRay(this.PositionComp.GetPosition(), this.PositionComp.GetPosition() + this.m_linearVelocity * 0.01666667f, 0);

if (!this.MarkedForClose && nullable.HasValue)

{

this.m_collidedEntity = (MyEntity) nullable.Value.HkHitInfo.GetHitEntity();

if (this.m_collidedEntity != null)

{

this.PositionComp.SetPosition(nullable.Value.Position, (object) null, false, true);

this.m_collisionPoint = new Vector3D?(nullable.Value.Position);

this.m_collisionNormal = nullable.Value.HkHitInfo.Normal;

this.MarkForExplosion();

}

}

Into sandbox.game \ sandbox.game.weapons \ mymissile \ updatebeforesimulation():void below this line:


public override void UpdateBeforeSimulation()

{

Since most updates override this fix, I would really appreciate it if Keen could please correct the .dll themselves and allow combat to function again.

photo
1

Really needs a fix real soon, yeah...


This solution however, is a bad one. We looked into it, but a developer (think it was Inflex, was a while ago) confirmed that this is a very bad solution as making every single missile raycasted would add severe performance loads. Better would be to simply revert whatever changes they made that caused this bug to appear from the get-go. As a temporary solution this change may work, but to release such a solution as an official one would obviously not work.

photo
1

Could you upload that file with this temporary fix, I have tried to do this but I don't know how to recompile it. I have basically no programming skills.

photo
photo
4

After the economy update, this bug is still present.

photo
4

I dont understand why KSH rather spends the time fixing gold paint DLC and whatnot rather than this gamebreaking bug. This is easily replicated and ignored for months

photo
3

Any of the KSH persons can contact me and ill set up a world within 5 mins to show what is happening

photo
2

yep this has been such a massive issue in multiplayer combat .

photo
4

I purchased the last DLC. I won't be purchasing anymore until this is fixed.

photo
2

Why does Keen refuse to fix this bug which is hands down killing PvP for most players. I understand Keen has little care for PvP and they like the PvE more but can we at least have PvP playable again?

photo
2

I recommend KEEN technical support for 4 months of the problem finally solve this issue on the examples given by the players themselves, or specify what specific information they lack. The fact that the policy of the company is directed towards the PVE segment should not mean that those who chose the PVP in this project should experience failure and stop using the project because of a trivial error, since this will already be considered discrimination.

photo
2

Easily the worst bug in the game, I’m currently working on a tabletop-esque companion game for SE that allows players to conquer a galaxy and construct their own fleets, with the combat handled inside SE. Currently, this bug utterly shatters this possibility. Ships are being cored with *very* little exterior damage, and its invalidating any ship without a superfluous amount of layered armour. Even then, if you have 5-10 stacks of armour, it is shredded off wildly fast as the explosion happens inside. This is very frustrating and I sincerely hope Keen is addressing it.

photo
2

Keen you must fix this not only does this break the vanilla missiles. It even affects every modded weapon pack that's missile based Ie. the Merpex Weapon Pack..

photo
2

Maybe it's time to start linking this in some negative steam reviews?