This page documents a complete, working OrcaSlicer profile for the Creality K2 Plus with the stock 0.4 mm hardened-steel nozzle. These are the exact Process and Printer presets I run on CachyOS (OrcaSlicer installed as a Flatpak), and they produce clean, reliable prints without the mid-print crashes and axis faults that the default Creality-to-OrcaSlicer hand-off can cause.
If you have the same printer and just want a known-good starting point: copy the two JSON files below into your OrcaSlicer user-preset folder, restart the slicer, and select them. Everything else is explained underneath.
Tested setup
- Slicer: OrcaSlicer 2.3.2 (build 75fe485d)
- Printer: Creality K2 Plus — Klipper firmware, Moonraker host
- Nozzle: Creality 0.4 mm hardened steel
- Layer height: 0.16 mm (Optimal)
- OS: CachyOS — OrcaSlicer Flatpak (
com.orcaslicer.OrcaSlicer)
Why this profile is stable
The K2 Plus runs Klipper, and the printer already owns the start/stop routine through its on-printer macros (START_PRINT and END_PRINT). The usual cause of crashes when slicing in OrcaSlicer is the Machine Start G-code doing too much — homing, meshing, or driving the toolhead around before the printer is ready — which collides with what the on-printer macro is also doing. That double-up is what triggers axis faults and Klipper errors.
The fix is to keep the Machine Start G-code minimal: hand the temperatures off to START_PRINT, set the coordinate/extrusion modes, then make only safe absolute moves. Let the printer’s own macro do the homing and meshing. This is the exact sequence in the printer preset below:
START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]
G90
G21
M83
G1 Z3 F600
G1 X175 Y175 F12000
Machine End G-code is just END_PRINT for the same reason — the printer handles the teardown.
Where to put the preset files
Save each JSON block below to a file (use the filename shown in its heading), drop it in the matching sub-folder of your OrcaSlicer user directory, then fully restart OrcaSlicer so it re-scans presets. The process preset goes in process/ and the printer preset goes in machine/.
- Standard Linux install:
~/.config/OrcaSlicer/user/default/ - Flatpak install (what I use):
~/.var/app/com.orcaslicer.OrcaSlicer/config/OrcaSlicer/user/default/
So the two files land at …/user/default/process/ and …/user/default/machine/. If you sign in to an Orca/Creality account, the default folder may instead be a numeric account ID — just look for the folder that already holds your other presets.
Process Preset
0.16mm Optimal K2 Plus 0.4 nozzle.json
Inherits Creality’s stock 0.16mm Optimal profile, with a few changes for stronger, cleaner parts: 3 wall loops, 3 top / 3 bottom shell layers, gyroid sparse infill, and an outer‑then‑inner wall order. precise_outer_wall is off and supports are enabled by default (turn them off per-model as needed).
{
"bottom_shell_layers": "3",
"enable_support": "1",
"from": "User",
"inherits": "0.16mm Optimal @Creality K2 Plus 0.4 nozzle",
"name": "0.16mm Optimal K2 Plus 0.4 nozzle - Custom",
"precise_outer_wall": "0",
"print_extruder_id": [
"1"
],
"print_extruder_variant": [
"Direct Drive Standard"
],
"print_settings_id": "0.16mm Optimal K2 Plus 0.4 nozzle - Custom",
"sparse_infill_pattern": "gyroid",
"top_shell_layers": "3",
"version": "2.3.2.60",
"wall_loops": "3",
"wall_sequence": "outer wall/inner wall"
}
Printer Preset
Creality K2 Plus 0.4 nozzle.json
This is the important one. Notable settings: gcode_flavor is klipper with the moonraker agent; the minimal machine_start_gcode covered above; resonance_avoidance enabled across a 70–120 mm/s window; scan_first_layer on (uses the K2’s first-layer scan); direct-drive retraction at 0.8 mm @ 40 mm/s; and a 0.4 mm Normal Lift Z-hop. The multi-material change_filament_gcode is the stock CFS toolchange sequence — leave it as-is if you run the CFS.
{
"adaptive_bed_mesh_margin": "0",
"auxiliary_fan": "1",
"bbl_use_printhost": "0",
"bed_custom_model": "",
"bed_custom_texture": "",
"bed_exclude_area": [
"0x0"
],
"bed_mesh_max": "99999,99999",
"bed_mesh_min": "-99999,-99999",
"bed_mesh_probe_distance": "50,50",
"bed_temperature_formula": "by_highest_temp",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
"best_object_pos": "0.5,0.5",
"change_extrusion_role_gcode": "",
"change_filament_gcode": "G17\nG2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000\nG1 X0 Y245 F30000\nG1 Z{z_after_toolchange} F600\nM8200 P S[next_extruder]\nM220 S100\nG0 Y200 F12000\nG0 X10\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=25000\nG0 F30000\nM8200 C S0\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 Y345 F18000\nG0 X139\nG0 Y378\nG0 X133\nM8200 R\nM104 S[nozzle_temperature_range_high[previous_extruder]]\nM8200 L I[next_extruder]\nM400\nT[next_extruder]\nM8200 O\n",
"cooling_tube_length": "0",
"cooling_tube_retraction": "0",
"default_bed_type": "",
"default_filament_profile": [
"Creality Generic PLA @K2-all"
],
"default_nozzle_volume_type": [
"Standard"
],
"default_print_profile": "0.16mm Optimal @Creality K2 Plus 0.4 nozzle",
"deretraction_speed": [
"40"
],
"disable_m73": "0",
"emit_machine_limits_to_gcode": "1",
"enable_filament_ramming": "0",
"enable_long_retraction_when_cut": "0",
"enable_power_loss_recovery": "printer_configuration",
"extra_loading_move": "0",
"extruder_clearance_height_to_lid": "118",
"extruder_clearance_height_to_rod": "24",
"extruder_clearance_radius": "64",
"extruder_colour": [
"#FCE94F"
],
"extruder_offset": [
"0x0"
],
"extruder_printable_area": [],
"extruder_printable_height": [
"0"
],
"extruder_type": [
"Direct Drive"
],
"extruder_variant_list": [
"Direct Drive Standard"
],
"fan_kickstart": "0",
"fan_speedup_overhangs": "1",
"fan_speedup_time": "0",
"file_start_gcode": "",
"from": "User",
"gcode_flavor": "klipper",
"grab_length": [
"0"
],
"head_wrap_detect_zone": [],
"high_current_on_filament_swap": "0",
"host_type": "octoprint",
"inherits": "Creality K2 Plus 0.4 nozzle",
"layer_change_gcode": "",
"long_retractions_when_cut": [
"0"
],
"machine_end_gcode": "END_PRINT",
"machine_load_filament_time": "0",
"machine_max_acceleration_e": [
"5000",
"5000"
],
"machine_max_acceleration_extruding": [
"20000",
"30000"
],
"machine_max_acceleration_retracting": [
"5000",
"5000"
],
"machine_max_acceleration_travel": [
"30000",
"30000"
],
"machine_max_acceleration_x": [
"20000",
"30000"
],
"machine_max_acceleration_y": [
"20000",
"30000"
],
"machine_max_acceleration_z": [
"5000",
"5000"
],
"machine_max_jerk_e": [
"10",
"10"
],
"machine_max_jerk_x": [
"20",
"20"
],
"machine_max_jerk_y": [
"20",
"20"
],
"machine_max_jerk_z": [
"5",
"5"
],
"machine_max_junction_deviation": [
"0.01"
],
"machine_max_speed_e": [
"50",
"50"
],
"machine_max_speed_x": [
"300",
"800"
],
"machine_max_speed_y": [
"300",
"800"
],
"machine_max_speed_z": [
"10",
"10"
],
"machine_min_extruding_rate": [
"0",
"0"
],
"machine_min_travel_rate": [
"0",
"0"
],
"machine_pause_gcode": "PAUSE",
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nG90\nG21\nM83\nG1 Z3 F600\nG1 X175 Y175 F12000\n\n",
"machine_tool_change_time": "0",
"machine_unload_filament_time": "0",
"manual_filament_change": "0",
"master_extruder_id": "1",
"max_layer_height": [
"0.32"
],
"max_resonance_avoidance_speed": "120",
"min_layer_height": [
"0.08"
],
"min_resonance_avoidance_speed": "70",
"name": "Creality K2 Plus 0.4 nozzle - Custom",
"nozzle_diameter": [
"0.4"
],
"nozzle_flush_dataset": [
"0"
],
"nozzle_height": "2.5",
"nozzle_hrc": "0",
"nozzle_type": [
"hardened_steel"
],
"nozzle_volume": [
"183"
],
"parking_pos_retraction": "0",
"pellet_modded_printer": "0",
"physical_extruder_map": [
"0"
],
"preferred_orientation": "0",
"printable_area": [
"0x0",
"350x0",
"350x350",
"0x350"
],
"printable_height": "350",
"printer_agent": "moonraker",
"printer_extruder_id": [
"1"
],
"printer_extruder_variant": [
"Direct Drive Standard"
],
"printer_model": "Creality K2 Plus",
"printer_notes": "",
"printer_settings_id": "Creality K2 Plus 0.4 nozzle - Custom",
"printer_structure": "undefine",
"printer_technology": "FFF",
"printer_variant": "0.4",
"printhost_authorization_type": "key",
"printhost_ssl_ignore_revoke": "0",
"printing_by_object_gcode": "",
"purge_in_prime_tower": "0",
"resonance_avoidance": "1",
"retract_before_wipe": [
"70%"
],
"retract_length_toolchange": [
"0"
],
"retract_lift_above": [
"0"
],
"retract_lift_below": [
"349"
],
"retract_lift_enforce": [
"All Surfaces"
],
"retract_restart_extra": [
"0"
],
"retract_restart_extra_toolchange": [
"0"
],
"retract_when_changing_layer": [
"1"
],
"retraction_distances_when_cut": [
"18"
],
"retraction_length": [
"0.8"
],
"retraction_minimum_travel": [
"1"
],
"retraction_speed": [
"40"
],
"scan_first_layer": "1",
"silent_mode": "0",
"single_extruder_multi_material": "0",
"support_air_filtration": "1",
"support_chamber_temp_control": "0",
"support_multi_bed_types": "1",
"support_object_skip_flush": "0",
"template_custom_gcode": "",
"thumbnails": "300x300/PNG, 96x96/PNG",
"thumbnails_format": "PNG",
"time_cost": "0",
"time_lapse_gcode": "",
"travel_slope": [
"3"
],
"upward_compatible_machine": [],
"use_firmware_retraction": "0",
"use_relative_e_distances": "1",
"version": "2.3.2.60",
"wipe": [
"1"
],
"wipe_distance": [
"2"
],
"wipe_tower_type": "type2",
"wrapping_detection_gcode": "",
"wrapping_detection_layers": "20",
"wrapping_exclude_area": [],
"z_hop": [
"0.4"
],
"z_hop_types": [
"Normal Lift"
],
"z_offset": "0"
}
Notes & gotchas
- Versions matter. These are tagged
2.3.2.60. If you’re on a different OrcaSlicer build, the presets should still load but a few keys may be renamed — re-save after importing to normalize them. - Don’t add homing/meshing to the Machine Start G-code. The on-printer
START_PRINTmacro already does it; duplicating it is what causes the crashes this profile avoids. - The
change_filament_gcodeuses Creality’sM8200CFS commands. If you don’t run the CFS multi-spool system you can ignore it — it only fires on a toolchange. - Supports are on by default in the process preset. Toggle them off per-model when you don’t need them.
