how do you make a one shot particle effect?

Basically you want the effect to be burst, rather than constant. To do that:

Click on the effect, then on Spawn, and then in the details page:

  1. Go into Rate → Distribution → Constant and set that to 0
  2. Go into Burst → Burst List → Click on the + to add an element → set count to something in the few hundreds

Now go back to the emitter, click in required, then go to the details panel, under duration → emitter loops, and set that to 1.

Done. Let me know if that worked. This tutorial can help as well:
https://docs.unrealengine.com/latest/INT/Videos/PLZlv_N0_O1gb5sdygbSiEU7hb0eomNLdq/c7rZnYvn11I/index.html
(Watch from minute 8:20, for some 5-10 minutes)

Hope this helps.