But for + a thing means "if it weren't for this thing". It points at the one thing that changes everything. It is formal: in everyday speech you'd say if it weren't for your help, while but for is the tighter version you reach for in writing or emphatic, rhetorical speech. For a result now, follow with would + the base verb. After but for comes a thing (a noun), not a full sentence.
But for + a thing: if it weren't for this
But for your help, I would be lost.
But for the noise, I would be able to concentrate.
But for her support, he wouldn't be in this position.
Not "But for your help, I will be lost." — say "But for your help, I would be lost.". This is imagined, not a real plan, so the result uses would, not "will".
Try it: But for the map, we ___ completely lost right now. (would be / will be / are) Answer: would be — But for points at an imagined situation (if it weren't for the map), so the result uses would: would be lost. "Will be" treats it as a real future plan, which it is not. "Are" states it as simple fact, but the map is the very thing keeping them from being lost.
But for + a thing, in the past: would have
To talk about the past, keep but for + a thing, then follow with would have + the past participle. The scale to watch is the timeframe: a result now takes would, a result in the past takes would have. It keeps the same formal tone — plainer speech would say if it hadn't been for the warning.
But for your warning, I would have made a mistake.
But for the early warning, we would have missed the deadline.
But for her quick thinking, they would have failed.
Not "But for the rain, we enjoyed the picnic." — say "But for the rain, we would have enjoyed the picnic.". The result is imagined, not what really happened, so use would have + the past participle.
Try it: But for Hiroshi's directions, we ___ the venue last night. (would have missed / would miss / missed) Answer: would have missed — The result is in the past and imagined (the directions are what saved them), so use would have + the past participle: would have missed. "Would miss" points at now, not last night. "Missed" states it as a real event, but they did not actually miss it.
But for + an -ing form: if it weren't for doing this
But for can also be followed by an -ing form (a gerund), which behaves just like a thing: it means "if it weren't for doing this". The version that sounds most natural names whose action it was, with a possessive in front: but for her reminding me, but for the council's stepping in. It carries the same formal tone — plainer speech would say if she hadn't reminded me. What won't work after but for is a full sentence ("but for I knew") or a bare base verb ("but for know").
But for her reminding me, I would have forgotten.
But for the council's stepping in, the building would have closed.
But for Mateo's arriving early, we would have lost our seats.
Not "But for I knew the password, I couldn't have logged in." — say "But forknowing the password, I couldn't have logged in.". After but for, use a thing or an -ing form (often with a possessive in front: but for her knowing the password) — never a full sentence with a finite verb like "I knew".
Try it: But for can also be followed by an -ing form. Which one fits the pattern? (But for knowing the password, I couldn't have logged in. / But for I knew the password, I couldn't have logged in. / But for know the password, I couldn't have logged in.) Answer: But for knowing the password, I couldn't have logged in. — After but for you can use an -ing form: but for knowing the password. The second option puts a full sentence (I knew) after but for, which this pattern does not take. The third uses the base verb know, but but for needs a thing or an -ing form, not a bare verb.
Try it: But for your directions, I ___ hopelessly lost right now. (would be / would have been / am) Answer: would be — "Right now" fixes the imagined result in the present, so use would + the base verb: would be. "Would have been" shifts it into the past, which the time phrase rules out. "Am" states it as fact, but your directions are exactly what keep you from being lost.