Apex Legends has always had a rather prominent muzzle flash problem, in that some of the game's firearms simply produce an excessive - if realistic - amount of screen flashing after shooting. There is a way, thankfully, to get rid of that!
The catch with Apex Legends muzzle flash disabling is that it's going to take some configuration file editing, so if that's something you're not keen on, we're sorry to say that we can't help you. If you're not averse to copy-pasting a few lines of code into a text file, though, keep reading!
How to get rid of Muzzle Flash in Apex Legends?
We'll leave the ethical concerns of configuration file editing for you to sort out. If you'd just like to remove muzzle flash from Apex Legends entirely, first go to C:\Users\-username-\Saved Games\Respawn\Apex\local\settings.cfg and copy a backup somewhere safe, in case you ever want to revert the tweak. When you've got that sorted, open the settings.cfg file and use one of the two following tweaks:
Minimal Muzzle Flash
r_shadows 0
mat_screen_blur_enabled 0
alias “+shoot” “+attack; r_particle_timescale 10” //muzzle flash
alias “-shoot” “-attack; r_particle_timescale 1” //muzzle flash
bind_US_standard “mouse1” “+shoot” //muzzle flash
mat_compressedtextures 1
cl_ragdoll_collide 0
r_dxgi_max_frame_latency 0
hud_setting_pingAlpha “0.100000”
cl_cull_weapon_fx “0”
cl_ejectbrass “0”
No Muzzle Flash
r_shadows 0
mat_screen_blur_enabled 0
alias “+shoot” “+attack; r_particle_timescale 300” //muzzle flash
alias “-shoot” “-attack; r_particle_timescale 1” //muzzle flash
bind_US_standard “mouse1” “+shoot” //muzzle flash
mat_compressedtextures 1
cl_ragdoll_collide 0
r_dxgi_max_frame_latency 0
hud_setting_pingAlpha “0.100000”
cl_cull_weapon_fx “0”
cl_ejectbrass “0”
All you need to do is find the corresponding options and tweak them so that they show the same values as one of the configuration settings showcased above. Once that's done, hit 'save' and you're good to go!