Bambu Studio, as an open-source software, has a public GitHub repository on GitHub. If you have filament presets you'd like to submit to Bambu Studio for use with Bambu printers, you can do so via GitHub's Pull Request feature by submitting the presets in the form of code to the repository.
Register a GitHub account;
Install Git tools. For a usage tutorial, refer to https://git-scm.com/docs/gittutorial.
# Clone your copy to your computer (replace with your repository address)
git clone https://github.com/your-username/BambuStudio.git
# Navigate to the project folder
cd project-name
# Create a new branch
git checkout -b branch-name
In Bambu Studio's code directory resources/profiles
, various printer presets are stored. For Bambu printers, the presets and preset directories are located in the BBL folder and BBL.json.
The BBL folder contains all preset files for Bambu printers.
BBL.json stores the relative paths of each preset file within the BBL folder, allowing the software to quickly locate the corresponding preset files.
Bambu Studio stores presets in a tree-structured JSON format. Child nodes can inherit all properties from their parent nodes and override specific attributes as needed.
Taking the above structure as an example, here’s an introduction to each level of files:
fdm_filament_common: Filament base file
Contains all attributes and their default values. Subsequent files use the parameters from this file if not explicitly defined.
fdm_filament_pla: PLA filament base file
Contains general properties for PLA-type materials.
Bambu PLA Basic @base: PLA Basic filament base file
Contains common properties for PLA Basic material.
Bambu PLA Basic @BBL X1C 0.2 nozzle
Includes filament parameters specifically configured for the Bambu Lab X1 Carbon with a 0.2mm nozzle.
Each file contains several key parameters that need to be defined:
from: Indicates whether the current preset is a system preset. Submitted presets should be marked as "system".
type: Specifies the type of the current preset. For material presets, this should be set to "filament".
name: The name of the current preset.
filament_id: The material ID, serving as a unique identifier for the material. It should start with "GF".
instantiation: Determines whether this file will be displayed in Bambu Studio. Files with instantiation set to false serve as templates for common parameters and cannot be selected in the slicer.
setting_id: The preset file ID, acting as a unique identifier for the preset file. Only files with instantiation set to true need to include this, starting with "GFS".
inherits: Specifies the parent file from which this preset inherits properties.
compatible_printers: Defines which printer models can use this preset.
After creating the preset, you need to add the new preset filename and its relative path to BBL.json, ensuring parent nodes are listed before child nodes.
To help verify your preset files, we provide a validation script under theresources/profiles
directory. You can run this script to check for duplicate IDs:
cd resource/profiles/
python ./check_duplicated_setting_id.py
git add .
# Add commit message
git commit -m "Your modification description"
# Push to your GitHub repository
git push origin your-branch-name
Create PR
Go to your GitHub repository page
Click Contribute > Open pull request
Ensure:
base repository
is set to the official Bambu Studio repository
head repository
is set to your fork
The correct branch is selected
Fill in the PR description and click Create pull request