An horizontal directional drilling system having one or more automatic drilling modes, comprising: a drill pipe configured to attach to a boring tool; a thrust pump configured to linearly advance the drill pipe; a rotation pump configured to rotate the drill pipe; one or more pressure sensors configured to measure hydraulic fluid pressure; and a controller coupled to the thrust pump and pressure sensor, the controller configured to execute program instructions stored in a memory to cause the HDD system to: perform drilling operations in a constant parameter mode in which an output parameter is maintained at a constant level; and calculate a derivative value of the hydraulic fluid pressure measurements and compare the derivative value to a derivative threshold; characterized in that said controller is further configured to execute further program instructions stored in the memory to cause the HDD system to: compare the hydraulic fluid pressure measurements to a variable pressure limit while the HDD system is operating in the constant parameter mode; decrease the variable pressure limit if the derivative value exceeds the derivative threshold, wherein the amount that the variable pressure limit is decreased is based on one or more of the hydraulic fluid pressure measurements; and reduce output of the thrust pump when the comparison of the hydraulic fluid pressure measurements to the variable pressure limit indicates that one or more of the hydraulic fluid pressure measurements exceed the variable pressure limit. a drill pipe configured to attach to a boring tool; a thrust pump configured to linearly advance the drill pipe; a rotation pump configured to rotate the drill pipe; one or more pressure sensors configured to measure hydraulic fluid pressure; and a controller coupled to the thrust pump and pressure sensor, the controller configured to execute program instructions stored in a memory to cause the HDD system to: perform drilling operations in a constant parameter mode in which an output parameter is maintained at a constant level; and calculate a derivative value of the hydraulic fluid pressure measurements and compare the derivative value to a derivative threshold; characterized in that said controller is further configured to execute further program instructions stored in the memory to cause the HDD system to: compare the hydraulic fluid pressure measurements to a variable pressure limit while the HDD system is operating in the constant parameter mode; decrease the variable pressure limit if the derivative value exceeds the derivative threshold, wherein the amount that the variable pressure limit is decreased is based on one or more of the hydraulic fluid pressure measurements; and reduce output of the thrust pump when the comparison of the hydraulic fluid pressure measurements to the variable pressure limit indicates that one or more of the hydraulic fluid pressure measurements exceed the variable pressure limit. perform drilling operations in a constant parameter mode in which an output parameter is maintained at a constant level; and calculate a derivative value of the hydraulic fluid pressure measurements and compare the derivative value to a derivative threshold; characterized in that said controller is further configured to execute further program instructions stored in the memory to cause the HDD system to: compare the hydraulic fluid pressure measurements to a variable pressure limit while the HDD system is operating in the constant parameter mode; decrease the variable pressure limit if the derivative value exceeds the derivative threshold, wherein the amount that the variable pressure limit is decreased is based on one or more of the hydraulic fluid pressure measurements; and reduce output of the thrust pump when the comparison of the hydraulic fluid pressure measurements to the variable pressure limit indicates that one or more of the hydraulic fluid pressure measurements exceed the variable pressure limit.