The main reason for the ‘said’ rule, is that 'said' is invisible.
If you write a whole page of dialogue, readers need to be able to distinguish between the speakers.
There are several ways of doing that:
- Action tag: Peter threw the mug across the kitchen. “Don’t ever talk to me that way again.”
- Name of the character in the dialogue: “Don’t ever talk to me that way again, Mary.”
- Distinctive speech pattern: “D-don’t ever talk to m-me that way again.”
- Inserting ‘stop’ words particular to the character. “Like, you know, don’t talk ever talk to me that way again, you know?”
- Dialect: “Don’ evah talk t’me them way agin.”
- Emphasize the words: “Don’t. Ever. Talk. To. Me. That. Way. Again.”
If you need to add a speech tag, ‘Peter said’ is pretty invisible. It’s similar to a stage direction:
(Peter:) Don’t ever talk to me that way again.
The other part of the rule is that novice writers are tempted to pimp up their speech tags instead of the dialogue.
"Don’t ever talk to me that way again," Peter hissed.
"Don’t ever talk to me that way again," Peter threatened.
"Don’t ever talk to me that way again," Peter yelled.
"Don’t ever talk to me that way again," Peter bellowed.
If you need to increase the impact of a dialogue and you cannot think of a way to change the dialogue, adding an action tag is better than changing the speech tag from ‘said’ to ‘threatened’.
The twinkle disappeared from Peter’s eyes and he stepped closer. His voice was low, almost a growl. “Don’t ever talk to me that way again.”
If you need to make a point quickly, yes, you can use a different speech that from said. I believe in the “you can do anything you want” in writing. However, use it moderatively.
Every rule can be broken, but most can be circumvented. The best advice is to use both as best as you can.
Here’s another post that can illustrate this even further.
Again, you can do anything you want.