NPC spawner device completely bugged.

Summary

DAMAGE Amplifier doesnt give the damage boost sometimes in public sessions.
And the NPC spawner device spawns an extra npc or more even if the spawn limit has been set.
(If a NPC Spawn is set to 3 total spawn limit) it will spawn an extra one or more.

Please select what you are reporting on:

Creative

What Type of Bug are you experiencing?

Assets

Steps to Reproduce

Place a NPC spawner device
Set both the spawn limit and spawn count to the same value (ex. 4)
Start game

For the damage amp:

Place down a damage amp device
set the damage multiplier through verse
Pick up the effect on player spawn/ interact

Expected Result

NPC Device: spawn the corrent amount of NPC
Damage Amplifier: Pick up and grant the damage effect to the player

Observed Result

Additional NPCs will spawn based on the configured limit and current count

For the Damage Amplifier: It usually applies the effect, but on rare occasions it doesn’t, making it inconsistent.

Platform(s)

PC

Island Code

0243-3963-9174

Additional Notes

Seems that in rare case the NPC device will spawn the corrent amount but most cases it will not, and the extra NPC affects any sort of zones(player counter)

I have found out it is now capped at 4.0 in verse instead of unlimited like it was before

And yeah the NPC devices are spawning the incorrect amount

3 Likes

Someone said when you enable the npc device it spawns 1 now so if that spawns 1 and you have it set to 3 then you get 4 :frowning:

1 Like

Please keep issues in separate threads so we can escalate properly if needed. Going to keep this one for NPC Spawner since there’s another thread about the Damage Amp, please go vote for that one. Damage amplifier device capped at 4 instead of infiinte in verse

Adding more information to the bug, apparently enabling an npc spawner device will cause to spawn an extra NPC

Hello, I am trying to reproduce this but so far I can’t. Can you share all the settings of your npc spawner? Which type of NPCs are you spawning? Thanks!

1 Like

Hey here is an image of the settings. I’m also spawning with an NPC Character Definition with default Verse behaviour.(1st and 2nd image)
In my verse code I use a function to first enable the NPC spawner, then in another function I spawn them (3rd and 4th image)




image

It is name Guard spawner but it is the NPC spawner

It might be easier to reproduce if you use Lego uefn map, I think there is only one type of npc creators can use it has less settings.

I spawn npc like so:

for (NPCSpawner: NPCSpawners):
            NPCSpawner.Enable()
            NPCSpawner.SpawnedEvent.Subscribe(HandleNPCSpawned)
            NPCSpawner.Spawn()

I was able to reproduce with this code, but it seems different from the initial issue no?
We are investigating

guard_device_handler := class(creative_device):

@editable
Spawners:[]npc_spawner_device = array{}

# Runs when the device is started in a running game
OnBegin<override>()<suspends>:void=

    for(Spawner:Spawners):
        Spawner.Enable()
        Spawner.DespawnAll(false)

Right after that, I invoke a function that spawns them “spawn{SpawnFunction()}” and in that function it includes this:

It happens mostly in public games and it is very inconsitent
image

Just a kind tip but next time just show/paste the entire code for the person snips here and there can be confusing when you don’t see the full thing.

Here’s another thread that has the same issue as I described, hopefully that helps!

I had barely time when I took the screenshot, in the future I’ll make sure to include it

1 Like

The problem people are having is that it’s confusing that the NPC spawner spawns a bot when it’s enabled and not just when “spawn()” is called. So the expected behavior of an NPC spawner (by the user, not EPIC it seems) is that you enable it to get it ready and then call spawn to spawn a bot. Right now it 100% spawns a bot when enabled (which it’s been doing for a while but now it seems it’s definitely doing it all the time). So either the docs need to be updated or the behavior changed. Not sure how you guys are going to sort that out, but the solution for developers is to NOT call spawn when enabling and to NOT enable before you want to spawn.

The problem is such fixes are not communicated in the release notes, so creators do not know they need to remove workarounds.

I realize that, that’s why we post stuff here to help people. Epic isn’t going to fix it immediately, they have a LOT of bugs to fix, so in the meantime it’s best to understand what’s going on.

Priorities might change my friend, maybe one day the industry leaders can focus on people and improve their process so that creators experience is better

Epic need to cut the 40% share down to 39.5% and hire a ton more bug fixers so when a bugs reported its repro and fixed and released in the same week not weeks/months later

GraemeBB is right.

Calling Enable() will either:

  • Start the timer to spawn if the device is set to “Spawn on Timer = true” or
  • It will try to spawn one if the device is set to “Spawn on Timer = false”

It doesn’t seem we have changed this behavior lately.

Thus, as pasted in the screenshot above, if you do:

SpawnDevice.Enable() # A request to spawn an NPC will be queued (IT IS NOT SYNCHRONOUS)
SpawnDevice.DespawnAll(false) # As there is no NPC yet to despawn, this line does nothing
SpawnDevice.Reset() # This reset the number of NPC spawned to 0
spawn{SpawningFunction()} # This will request another NPC to spawn

I would suggest to either start with the device enabled then call Spawn() or call Enable() instead of Spawn() in your SpawningFunction()

On our side, we will investigate if we should cancel pending spawn requests when DespawnAll is called.

Thanks and have an Epic day!

1 Like