By default, Linux buffers output when not in interactive mode (i.e. not in a terminal), so the output is only flushed when the buffer is full (e.g. every 4096 bytes, but this is implmentation defined); when the program explicitly calls
flush (which is apparently not happening here); or when the process ends (as you are seeing).
You can change this default behaviour by adjusting the buffer size. For example, by launching a program via
stdbuf -oO /root/.samp/runtime/0.3.7/samp03svr
O for "Off" (also
L for "line buffered" or a size for an explicit buffer size).
Alternatively there is an
unbuffer command or the