You just update a property using a counter with a target value of 0 and starting value of 30. A trigger loop decrements the counter every trigger of one of the triggers. Then broadcast on a channel that updates the text via blocks. The block code would be:
Set text, get property, “[the property goes here]”
More info on trigger loops here.