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)
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
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!
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)
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)
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.
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.
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
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.