Why do triggers not detect character controllers that are not moving?

Hello, I am having a problem getting a trigger volume to detect a character controller that is not moving. I am using trigger volumes as part of an attack to pass hit point damage messages to enemies/players. I use two different types of functions, onTriggerStay and onTriggerEnter to set off my messages. These trigger volumes are instantiated and destroyed constantly. I found this method has been working great but if the trigger volumes are instantiated into the world and an enemy/player with a character controller on it is within the trigger volume and not moving they are not detected by the trigger, but the second they move it registered them and the damage message is sent. This is a problem because if a player and an enemy are close enough they can spam attacks and neither will register a successful hit as long as they don't move.

Is there a way to have a trigger check if there is anything in it the moment it is instantiated into the world? Or is there another suggestion besides onTriggerStay and onTriggerEnter?

Moving objects should be given rigidbodies. Try adding rigidbodies to your triggers and see if that fixes it.