Dice roller in Ruby (mainly for D&D)
Nice code overall, pretty readable, though there is space for improvements.

1) You don't have to return from ruby methods.

2) Good use of Enumerable methods will make code cleaner.

3) Use loop instead of while true

4) Also consider keyword arguments, as calling roll(2, 4) looks kind of cryptic.

Will all that in mind, we can turn your code into something like:

def roll(amount = 0, sides = 0)
  # rand(1..0) will return nil btw
  amount.to_i.times.sum { |t| rand(1..sides.to_i) }
end

loop do
  input = gets.chomp.to_s

  abort("May your rolls be ever natural.") if input == "exit"

  amount, sides, mod = input.tr("^0-9", " ").split
  fin = roll(amount, sides) + mod.to_i # nil converts to 0

  puts fin
end