Is it possible to start a timer without passing an FTimerHandle argument to GetWorld()->GetTimerManager().SetTimer?

I want to fire and forget about it and don’t want to pollute my class with unused timer handles.

It’s not possible: all 6 overloads takes handle as the first param, so just declare a throwaway variable for handle. Something like:

void MyFunction()
{
	FTimerHandle _;
	GetWorld()->GetTimerManager().SetTimer(_, [](){
		//do work
	}, 1.0f, false);
}

You don’t really need to keep it for long unless you going to unset this timer later. So for one-shot timers it’s fine not to keep returned handle.