<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[SMD Not Firing]]></title><description><![CDATA[<p dir="auto">Had a survival game where SMD did not fire on correctly, allowing one to hit, even though there were multiple loaded SMD. People have warned that this has happened before, and to not trust the Mobile SMD unit.</p>
<p dir="auto"><a href="https://replay.faforever.com/27341539" rel="nofollow ugc">https://replay.faforever.com/27341539</a></p>
<p dir="auto">About 4 nukes were launched at fanatazgara, who had multiple loaded SMD, and one hit. There were also two loaded Mobile SMD in-range. I don't know how FAF decides what SMD fires on what nuke, when coverage overlaps. I was also in the game, and my Mobile SMD fired on incoming nukes, as did the stationary SMD nearby me.</p>
<p dir="auto">I don't know if the Mobile SMD unit is causing an issue and preventing stationary SMD from not firing. I tried recreating the issue in testing, but both Mobile and stationary SMD would fire properly.</p>
<p dir="auto">The Mobile SMD uses the following script.</p>
<pre><code>local SShieldHoverLandUnit = import('/lua/seraphimunits.lua').SShieldHoverLandUnit
local SIFHuAntiNukeWeapon = import("/lua/seraphimweapons.lua").SIFHuAntiNukeWeapon
--local nukeFiredOnGotTarget = false

MANTINUKE = Class(SShieldHoverLandUnit) {

	Weapons = {
        MissileRack = ClassWeapon(SIFHuAntiNukeWeapon) {

            IdleState = State(SIFHuAntiNukeWeapon.IdleState) {

                OnGotTarget = function(self)
                    local bp = self.Blueprint
                    if (bp.WeaponUnpackLockMotion != true or (bp.WeaponUnpackLocksMotion == true and not self.unit:IsUnitState('Moving'))) then
                        if (bp.CountedProjectile == false) or self:CanFire() then
                             nukeFiredOnGotTarget = true
                        end
                    end
                    SIFHuAntiNukeWeapon.IdleState.OnGotTarget(self)
                end,

                OnFire = function(self)
                    if not nukeFiredOnGotTarget then
                        SIFHuAntiNukeWeapon.IdleState.OnFire(self)
                    end
                    nukeFiredOnGotTarget = false

                    self.Trash:Add(ForkThread(function()
                        self.unit:SetBusy(true)
                        WaitSeconds(1/self.unit.Blueprint.Weapon[1].RateOfFire + .2)
                        self.unit:SetBusy(false)
                    end,self))
                end,
            },
		},
	},
</code></pre>
<p dir="auto">I noticed that I'd commented out:<br />
local nukeFiredOnGotTarget = false</p>
<p dir="auto">I tried testing both with this line restored and tested with the line commented out, and the SMD behaved the same in both tests, as far as I could tell. Testing involved various combinations of stationary and mobile SMD interception swarms of nukes. Test were done without unit waves, just nukes, so much less going on during the tests than during a normal survival game.</p>
]]></description><link>https://forum.faforever.com/topic/10236/smd-not-firing</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 19:28:38 GMT</lastBuildDate><atom:link href="https://forum.faforever.com/topic/10236.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 Jul 2026 21:55:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SMD Not Firing on Sun, 05 Jul 2026 00:56:08 GMT]]></title><description><![CDATA[<p dir="auto">FAF uses the desired shooter cap to decide who gets to fire on what, which is engine behavior where once a weapon locks on to a target, it adds towards the cap, and weapons can't target entities whose shooter cap is full. The issue is that the weapon takes up the cap while it is targeting, so if it misses or is reloading then its still taking up the cap. We fixed these issues with TMDs; try using <code>DisableWhileReloading = true</code> (used by tmd) or <code>TargetResetWhenReady = true</code> (used by antitorps) in the weapon blueprint.</p>
]]></description><link>https://forum.faforever.com/post/73861</link><guid isPermaLink="true">https://forum.faforever.com/post/73861</guid><dc:creator><![CDATA[Nomander]]></dc:creator><pubDate>Sun, 05 Jul 2026 00:56:08 GMT</pubDate></item><item><title><![CDATA[Reply to SMD Not Firing on Sat, 04 Jul 2026 02:41:30 GMT]]></title><description><![CDATA[<p dir="auto">You hit the nail on the head - nukes have a targeting limit - and once targeted by a 'ready' anti-nuke, other anti-nukes will NOT fire at that missile.    This is what keeps your anti-nukes from all firing at the first nuke to come in range.</p>
<p dir="auto">If however, that anti-nuke should miss - or be unready to fire - while still targeted on the nuke - you get this result.</p>
<p dir="auto">As I recall, going to Idle State will NOT break the target lock, leaving you vulnerable.</p>
]]></description><link>https://forum.faforever.com/post/73840</link><guid isPermaLink="true">https://forum.faforever.com/post/73840</guid><dc:creator><![CDATA[Sprouto]]></dc:creator><pubDate>Sat, 04 Jul 2026 02:41:30 GMT</pubDate></item></channel></rss>