---
tag: g060
title: Stored Positions
brief: Save, restore, and delete stored positions
author: shitcreek
contrib: Hans007a, TwoRedCells, thinkyhead

group: motion
requires: SAVED_POSITIONS

codes: [ G60 ]
related: [ G61 ]

parameters:

- tag: S
  optional: true
  description: Memory slot. If omitted, the first slot (0) is used.
  values:
  - tag: slot
    type: int

- tag: D
  since: 2.1.3
  optional: true
  description: Delete stored position(s). Include a slot index to delete one stored position. If no slot number is given, delete all stored positions.
  values:
  - tag: slot
    type: int
    optional: true

- tag: Q
  since: 2.1.3
  optional: true
  description: Restore (move to) a stored position. Equivalent to `G61 S`.
  values:
  - tag: slot
    type: int

- tag: F
  since: 2.1.3
  optional: true
  description: 'With `G60 Q`: Requested feedrate. (Actual feedrate may be limited.)'
  values:
  - tag: rate
    type: float

- tag: X
  since: 2.1.3
  optional: true
  description: 'With `G60 Q`: Restore the X axis (with optional offset).'
  values:
  - type: offset
    optional: true

- tag: Y
  since: 2.1.3
  optional: true
  description: 'With `G60 Q`: Restore the Y axis (with optional offset).'
  values:
  - type: offset
    optional: true

- tag: Z
  since: 2.1.3
  optional: true
  description: 'With `G60 Q`: Restore the Z axis (with optional offset).'
  values:
  - type: offset
    optional: true

- tag: E
  since: 2.1.3
  optional: true
  description: 'With `G60 Q`: Restore the E axis (with optional offset). The extruder will not be moved.'
  values:
  - type: offset
    optional: true

notes:
- The total number of slots is configured with the `SAVED_POSITIONS` option.
- All slots are initially empty. Restoring an empty slot does nothing.

examples:
- pre: Save current position to slot 0
  code: G60 S0
- pre: Delete the position in slot 3
  code: G60 D3
- pre: Restore the XYZE position in slot 5, with X offset
  code: G60 Q5 X10 Y Z E
- pre: Report all stored positions
  code: G60

---

This command is used to maintain a set of stored positions. Use `G60 S<slot>` to store the current position (all axes) to an SRAM buffer. You can then move back to a stored position at any time with [`G61 S<slot>`](/docs/gcode/G061.html).

Since Marlin 2.1.3 you can use:
- `G60` with no parameters for a stored positions report,
- `G60 Q<slot>` to move back to a stored position,
- `G60 D<slot>` to delete one stored position, and
- `G60 D` to delete all stored positions.
