top of page
Search

Batch engraving names in LightBurn with Variable Text and a CSV

  • Feb 17
  • 7 min read

I use this any time I have a stack of items where the artwork stays the same but the text changes, like names on tumblers, name plates, awards, and tags. It saves a ton of setup time, and it is repeatable once you understand what LightBurn is actually doing.


LightBurn’s Variable Text feature works by letting you type special “replacement codes” into a normal text object, then LightBurn substitutes real values when you Preview or send the job.


Step 1: Turn on the Variable Text panel

  1. In the top menu bar, click Window.

  2. Scroll to the bottom.

  3. Click Variable Text so it shows a check mark.

The Variable Text panel will appear somewhere on your screen. If it pops up floating, you can drag it and dock it. If you lose it later, repeat Window → Variable Text and it will come back.


Step 2: Make your CSV in Excel and save it correctly

You can use any program, but Excel is fine as long as you actually save as CSV.\


Build the sheet

Make your first row a header. That header row is not a “name,” it is just labels.

Example 1: names only

Column A header: Name

Then put one name per row under it.


Example 2: name and date columns

Column A header: Name

Column B header: Date


Then each row gets a Name and a Date.


Save as CSV

  1. File → Save As

  2. Choose a folder

  3. In Save as type, choose CSV

Excel will warn you that some features are not supported in CSV. That is fine. You want the simple format.


Step 3: Understand the “percent codes” and the zero numbering

This is the part most people miss.

In Merge/CSV mode, LightBurn uses a percent sign plus a number to pull a column from the current row of your CSV.

  • %0 pulls column 0, which is the first column

  • %1 pulls column 1, which is the second column

  • %2 pulls column 2, which is the third column


LightBurn also counts rows starting at zero.

  • Current 0 means the first row in the CSV

  • Current 1 means the second row

  • Current 2 means the third row


Why this matters for headers

If your first row is headers like Name and Date, then row 0 is not usable engraving text. In that case, you typically set Start and Current to 1 so you skip the header.


Step 4: Build your design in LightBurn and import a logo if you want

Set up all the parts that stay the same.

  • Import your logo or artwork

  • Place it where you want

  • Set your layers and settings

The variable part will be only the text. Variable Text is just for text objects, your logo does not need to change.


Step 5: Create the text object and switch it to Merge/CSV mode

  1. Use the Text tool in LightBurn and click in your workspace.

  2. Type something temporary like NAME so you can see it.

  3. Put it where you want it to engrave.

  4. With that text selected, set the Variable Text mode to Merge/CSV.


Step 6: Type the replacement code inside the LightBurn text box

Now click into your text and replace the temporary text with your code.


Names only

If your CSV has Name in the first column, type:%0


Name plus date from the CSV

If your CSV has Name in column 0 and Date in column 1, type:%0 %1


Normal words plus a merged field

If you want words plus the merged value, type:

Name: %0


Step 7: Load the CSV in the Variable Text panel

In the Variable Text panel:

  1. Click Browse

  2. Select your CSV file

Once it is loaded, LightBurn knows what data it can pull from.


Step 8: Scroll through your CSV entries and actually see what will engrave

This is the other part that confuses people. When you click Next or Previous, you might not see anything change on your main workspace. That is normal.


Use Test

In the Variable Text panel, press and hold Test.

While you hold it, LightBurn shows you what the variable text will evaluate to for the current row. This is the quickest way to check spelling and see what row you are about to engrave.


Use Preview when you want to be 100 percent sure

Preview is the “trust but verify” step, and I use it constantly. The Preview window shows what LightBurn will actually send to the laser.

How to open Preview:

  • Press Alt + P on Windows or Option + P on Mac

  • Or Window → Preview

LightBurn even recommends previewing every project because it is easy to lose track of layers and settings.

How I preview Variable Text jobs:

  1. Set Current to the row I want

  2. Hold Test and confirm the text looks right

  3. Open Preview and make sure the layout is correct

  4. Run the job


Step 9: What each control in the Variable Text panel does

These controls matter most for Merge/CSV batching.


Current

Current is the row index you are about to use. It starts at 0 for the first row, 1 for the second, etc.


Start and End

Start is where you want to begin your batch. End is where you want to stop.

If you have headers in row 0, use Start = 1 and Current = 1 so you do not engrave the header.


Next and Previous

Next moves forward in the CSV. Previous moves backward.


Advance By

Advance By controls how far Next and Previous jump. If you are engraving one item at a time, keep Advance By at 1.


Auto-Advance

Auto-Advance moves Current forward automatically after each output. It is handy if you are very organized and you do not want to click Next every time.

If you know you are prone to getting distracted, it is totally fine to leave Auto-Advance off and manually click Next. You will always know exactly where you are.


Reset

Reset sets Current back to Start.

This is the panic button when you realize you were on the wrong row or you want to restart the batch cleanly.


Bake

Bake converts the variable codes into actual normal text using the current row.

After Bake, it is no longer variable. It will not update. Bake is useful if you want to lock a single name in place, but it is not something I use during a normal batch run.


Step 10: Turn on Shape Properties so you can use Max Width and avoid long-name problems

When you are doing names, one person always has a long name. This is where Shape Properties saves you.


Turn on Shape Properties

  1. Click Window in the top menu bar

  2. Click Shape Properties so it has a check mark

When you select your text object, the Shape Properties panel will show text-specific options like Max Width, Squeeze, and Ignore Empty Vars.


Step 11: Shape Properties options you will actually care about


Locked

Locked prevents you from accidentally moving or editing that object. I lock my logo and any alignment guides so nothing shifts mid-job.


Max Width

Max Width is the one that makes Variable Text feel safe.

Max Width tells LightBurn to shrink the text if it gets too long for the width you set. Set it to 0 for no limit.

How I use it:

  • I measure the maximum space I have for a name

  • I set Max Width to that value

  • Short names stay normal size

  • Long names automatically scale down so they do not run off the engraving area


Squeeze

Squeeze controls how LightBurn scales the text when it hits Max Width.

  • If Squeeze is enabled, LightBurn squishes horizontally only and keeps the text height the same.

  • If Squeeze is disabled, LightBurn scales both directions so it shrinks proportionally.

My rule of thumb:

  • Keep Squeeze off if you care about the font looking “normal”

  • Turn Squeeze on only if you must keep the same text height across every name


Ignore Empty Vars

Ignore Empty Vars is only relevant if some rows might have blank fields.

LightBurn describes it as removing newlines before empty variable fields when aligning text.

Example:You engrave two lines, name on line 1 and title on line 2.If a row has no title, the title line becomes blank.Ignore Empty Vars can remove the extra blank line so the engraving does not look like it has a weird gap.

Your approach is valid:

  • If your CSV should always be fully filled out, leave this off so blanks are obvious and you catch mistakes.

  • If blanks are expected, turn it on to keep formatting clean.


Cut Order Priority

Cut Order Priority only matters if your Cut Planner uses Order by Priority.

LightBurn says lower values cut first, starting with 0 as the first priority, and you must enable Order by Priority in Optimization Settings for it to take effect.

Plain example:

  • Set your logo engraving to priority 0 and your cut outline to priority 1.

  • If Order by Priority is active, LightBurn will do the priority 0 objects first, then priority 1.

If you never set Order by Priority in Cut Planner, this setting will not change anything.


Power Scale

Power Scale rescales the power used for that one shape by a percentage, between the layer’s Min Power and Max Power.

If you do not use Min Power, or Min and Max are the same, Power Scale is usually not worth touching.

Most engraving workflows do not need it, and it is fine to ignore.


Step 13: My actual batching loop once everything is set

This is how I run it day-to-day.

  1. Load the CSV

  2. Set Start and Current to 1 if I have a header row

  3. Set End to the last row I want to use

  4. Select my variable text object and confirm it uses %0 or whatever column I need

  5. Hold Test and confirm the current name

  6. Open Preview and verify layout and run order

  7. Run the job

  8. Click Next to move to the next name

  9. Repeat

If I ever get lost, I hit Reset, confirm Start, then move forward from there.


Step 14: Save notes inside your LightBurn file so future you is happy

After I get a Variable Text job working, I save the file as a reusable template and I leave myself notes inside the workspace off to the side.

Things I write down:

  • Which CSV columns I used, like %0 is Name and %1 is Date

  • Whether Start should be 1 because row 0 is headers

  • The Max Width value I used for long names

  • Any setup reminders that would be easy to forget later

This turns Variable Text from “cool feature” into a repeatable shop process.


Quick troubleshooting


It is engraving the header word instead of the first name

Your Current is probably set to 0. Set Start and Current to 1 so you skip the header row.


The text does not look like it is changing

That is normal. Hold Test to see what will output for the current row, then use Preview to verify the full job.


A long name runs off the edge

Turn on Shape Properties and set Max Width so LightBurn scales the text down when it exceeds your limit.

 
 
 

Recent Posts

See All
What to Hand Out at the Strawberry Festival Parade

Every year at the Florida Strawberry Festival parade, I see the same thing happen. Businesses invest time and money to walk the route, they hand out thousands of items, and by the end of the parade yo

 
 
 

Comments


bottom of page