Setting FX.MaxCPUParticlesPerEmitter from console has no effect on CPU particles

I am currently using UE 4.7.5. I am able to set the FX.MaxCPUParticlesPerEmitter console cvar from the BaseDeviceProfiles.ini file and see the results in my particles in the editor and standalone play. I can also set the variable from the console and see that the value has changed but my CPU particles are still unable to spawn more particles than the max CPU particle count that was set when the editor first started. I’ve even tried using the FX.RestartAll console command and still not working.

Could someone let me know what I’m doing wrong or confirm this as a bug? Thanks in advance :slight_smile:

Hi PaladinDawnfire -

There is a priority for setting Console Variables so if you have set a Console Varaible in one of the Base.ini(s) then you will never be able to override that value.

The priority is Base.ini > Default.ini > Set by Console

Thank You

Ketchum

I’m still having trouble with this and it is not resolved

Could you direct me to which of the base files (default folder locations and default files for 4.7.5) are? I’ve done a Notepad++ search across all my ini files in the following locations and have 0 hits for fx.maxcpuparticlesinemitter

C:\Program Files\Unreal Engine\4.7\Engine\Config\

C:\Users\USER PROFILE\Documents\Unreal Projects\PROJECT NAME\

Am I missing any other locations where these configs are stored? If not, what else am I missing? I didn’t try setting the cvar in the ini files until after it didn’t work when trying to set it in the editor’s console, so that can’t be the problem either.

Hello -

My apologies I misunderstood your question as having set the Base ini console variable before changing the variable in the console.

Without any input in the INI files I am able to effectively change the variable and have the Emitter respond accordingly. Since CPU particles cap can be set by a hardware limitation as well as in the engine, can I ask how many you are trying to set the Max number to and what type of processor you are running?

Thank You

Ketchum

Certainly :slight_smile:
My current hardware is an i5-4570 with 8gb of ram and a Geforce 550 Ti. I am trying to change the particle count both up and down from the default (that being 1000 per emitter). I’ve tried 10, 100, 2000, 5000, etc. I could work around this issue but its something I would like to be able to make work if possible.

Maybe you could recommend a different alternative? I am trying to create an app that is only dealing in simple particle systems for mobile phones (which are unable to use GPU particles since I’m dealing with phones outside of iPhone6 and higher). I want to allow the user to change the particle count up or down according to input from the user. There are some work arounds I could do like create multiple particle systems and scale each of their particles counts according to an integer that I get as input but that seems like a hack to me. I do understand that this could be a performance problem for some mobile phones if increased too high, but I would like to leave that choice to the user (or set limits in the ini files as you have suggested which may be my end result).

Until I can determine what count I should use, I would like to be able to change it in the console without jumping in and out of the editor (as well as building/deploying again and again to mobile phones) changing ini files each time.

Thanks for your help and your first post was certainly useful as I didn’t realize the priority, is there a good location to find out more about console variables in the docs? :slight_smile:

Hi PaladinDawnfire -

I have setup a test project for your to take a look at and I think it will help you out. First go into the …[VersionNumber]\Engine\Config\ folder and open the ConsoleVariables.ini file and add the following line

FX.MaxCPUParticlesPerEmitter=5000

The Per is important as InEmitter is not a correct variable. Now open the attached project and I have setup a Particle System which allows you in the Details panel to adjust the total number of Spawned Particles, currently it is set to 500, but you should be able to adjust it from 0 to 5000 with no issue, once you set the console variable. Now the Console Variable should be the absolute max amount you want to generate (you can look up the mobile specifications for your targeted devices to get this number, for you PC is it based on your CPU Processor, RAM and Video Card). The added benefit here is that the Scalar Parameter that you are changing in the details panel can also be taken into a Blueprint and given to the player to control at runtime.

Let me know if you are still having problems -

Thank You

Ketchum

Test_Project

EDIT: Also if you press K in PIE, at runtime, you should be given a particle count printed on screena nd in your log file. This is setup in the Level Blueprint.

I apologize , looks like I goofed on the title and wording of this thread. I meant to say FX.MaxCPUParticlesPerEmitter which is what I have been using from the beginning. When entering it into the console I was letting the Intellisense-like auto complete functionality of the editor finish typing out my command. However, I’m still not seeing how I can change the max count in the console of the editor. Even in your demo project I am still not able to change the max count using the console.

So I think the answer here is that it is not possible to change the FX.MaxCPUParticlesPerEmitter in the console even when both the default and base ini files are not set. I suppose what I can do instead is just set the max count in the ini files to something very large and then just do the same as your demo project by limiting the spawn count with a parameter in the particle. Then, once I have found number of particles that isn’t overloading the mobile device I can just set the max count in the ini files for that particular device I tested on.

Just ran into the same problem.

Try changing this value:
Particle system->Required module->Rendering->Max Draw Count.

BTW, changing the “FX.MaxCPUParticlesPerEmitter” worked for me using the editor console even for 250000.

Hello, is there a way to change the max spawned emitters globally? For example, there are 2000 exploding barrels, if they all explode at the same time only 30 emitters will be spawned or allows to run at any given time.