Keep your daughter as far away as possible from your MIL and FIL indefinitely. They sound toxic.
You need to first of all stop your daughter from screaming at you.
Do you model speaking in a civilised voice and make her copy you (no matter what she is saying)?
You need to tell her sternly if she blows her top, "We don't scream at other people. You do not have the right to scream at me."
After an accident/fall/bump, to stop the blaming:
Say in a friendly, calm voice - "Accidents are not a big deal. They happen all the time and they are not anybody's fault".
Smile, ask where it hurts, and offer a hug/cuddle/kiss or a plaster.
Don't get into a discussion with her or try to reason. She is 4. You will lose. State the reality of accidents and then change the focus to her feelings.
Anxiety can contribute to the blaming thing.
When she falls, bumps, etc, be quick to ask her (in a calm and friendly voice) if she's ok and praise her for being brave if she doesn't scream about it.
If she cries, give a hug, kiss the boo boo. Or get a plaster if she seems distraught.
A caring emotional response from you is what she wants and you can gauge what sort it is from whether she's crying and how hard.
If she spills something or breaks something accidentally, keep her calm by assuring her you can clean it up together, or fix it if that's possible. Again, address the blaming - "No, accidents happen." And then do not get drawn into reasoning.
For episodes like the straw, address the screaming immediately.
"We do not scream at people. You don't have the right to scream at me."
Don't talk about the straw (or whatever else she is screaming about).
Don't offer a replacement.
The actual thing itself doesn't matter for the moment.
If she wants something else then she needs to ask politely for it (say 'please' and 'thank you') and in a civil way, not sarcastic, not angry.
If you sense she is still steaming, tell her she can come back later for a drink (or whatever) when she is able to be polite and nice.