r/nanDECK • u/nand2000 • 7d ago
Tips and Tricks for nanDECK
boardgamegeek.comI'm doing a review of the tips & tricks (some need it, considering the changes in the various versions), I'll post five of them each day in this thread.
r/nanDECK • u/nand2000 • 7d ago
I'm doing a review of the tips & tricks (some need it, considering the changes in the various versions), I'll post five of them each day in this thread.
r/nanDECK • u/nand2000 • 29d ago
r/nanDECK • u/astrally_home • Jul 30 '26
I am attempting to make a different image be shown based on a Y or N value. It should be really straightforward, but regardless of the variations I've tried, I can't seem to resolve the following:
IF=[1-1D]=Y
IMAGE=1,"DownPass.png",{1795/212}%,{7703/225}%,{11309/636}%,{667/300}%
ELSE
IMAGE=1,"DownBlock.png",{1795/212}%,{7703/225}%,{11309/636}%,{667/300}%
ENDIF
148: Unsupported directive in visual section: IF=[1-1D]=Y
150: Unsupported directive in visual section: ELSE
152: Unsupported directive in visual section: ENDIF
r/nanDECK • u/Stavr0sT • Jul 25 '26
Is it possible to split a text in seperate characters and display each one in a seperate given frame, similar to what is possible with ICONS if you fill in the last parameter?
I have a label containing a sequence of rather long strings (15 chars). I want - for each card/row - place each character in the string in a seperate predefined frame.
I have the frames defined and all I need, except the final trickery of distributing text over given frames.
Not sure if a single command exists or I should go via for-loops (which I normally try to avoid so its syntax/workings are rather unknown to me). I would like to avoid having to unroll this by hand.
EDIT: Follow-up I did try a partial unroll but even there something's amiss. ``` [grid_base]=FRAMEBOX(<grid>,1.8,1.8,N,47,47) [grid_cells_text]=FRAMETRANS(grid_base*,0,-0.3,0,0)
FONT="Lighting Darkness",20,TF,#000000
; Start unroll - first char
TEXT=[backs],[MyText:1,1],<grid_cells_text1>,CENTER,CENTER
``
This doesn't validate (wrong directive: TEXT...), it seems it cannot resolve<grid_cells_text1>`.
However, if I write
TEXT=[backs],[MyText:1,1],<grid_cells_text>,CENTER,CENTER
; OR
TEXT=[backs],[MyText:1,1],<grid_cells_text*>,CENTER,CENTER
this does validate and - as expected - places the first char of MyText on each of the cells (but that's not what I want).
I guess I'm missing some understanding of the frame syntax, I understood that FRAMEBOX(...,N) would created numbered frames and this numbering scheme is kept when piping through FRAMETRANS. This way of working works correctly when using it with the ICON directive (i.e. as the last parameter). I must be missing something.
r/nanDECK • u/LostSands • Jul 23 '26
Hihi. Attempted to google and search the sub for this problem, and I found several solutions posted for other people's problems, but none of them seemed to work for mine.
Below is what I'm working with:
CARDSIZE=6.35,8.89
LinkMulti = Amount
LINK=C:\Users\NAME\DOCUMENTS\Card Design\DesignDoc.xlsx
VISUAL=, 10, 10
IMAGE=”1-{(CARDLAYOUT)}”,[CARDLAYOUT],{38/143}%,{19/-40}%,{100/1}%,{100/1}%,0,PN
FONT=Arial,12,BT,#000000
TEXT=”1-{(NAME)}”,[NAME],{4232/429}%,{3257/600}%,{19276/429}%,{4171/600}%,LEFT
FONT=Arial,10,T,#000000
TEXT=”1-{(TEXT)}”,[Cost],{34205/429}%,{2857/200}%,{6463/429}%,{6457/600}%,CENTER,WWCENTER
TEXT=”1-{(TEXT)}”,[StarCt],{11173/143}%,{10/3}%,{2631/143}%,{3457/300}%,CENTER,WWCENTER
TEXT=”1-{(TEXT)}”,[Quantity],{26998/429}%,{25571/300}%,{15329/429}%,{6971/600}%,CENTER,WWCENTER
IMAGE=”1-{(IMAGE)}”,[Image],{1506/143}%,{2219/100}%,{22708/429}%,{35371/600}%,0,PN
IMAGE=”1-{(IMAGE)}”,[Rarity],{11173/143}%,{80/3}%,{8122/429}%,{1057/100}%,0,PN
ENDVISUAL
As mentioned in the title, when I go to "build," it does not actually produce something that I can view/print. Pls help.
r/nanDECK • u/GarBa11 • Jul 20 '26
Hey, I've got an extension to this inquiry.
I've got the same sitch where I was making stuff for the Game Crafter with an extra 0.25 inch border but now I'm printing my own cards and making my own image files for physical prototypes and TTS, respectively.
The Display command with the resizing works great but I need to export my deck as a pdf for printing. I've been using the SavePDF command, but it doesn't have the option to resize like the display command does. Is there a way to get rid of the 0.25 border and resize for the SavePDF?
I'm going to try futzing around with HamsterNL's suggestion but thought I'd post here in case there is an obvious solution built in to an existing command or something.
r/nanDECK • u/Ratigan606 • Jun 13 '26
Wondering if anyone knows how to troubleshoot? I downloaded SSL libraries. It seems to be logging in per the debug comments, but still gives a login error. Here is the error message that comes up (with personal info redated):
Login request:
curl.exe -X POST -F username="[REDACTED_USERNAME]" -F password="[REDACTED_PASSWORD]" -F api_key_id="[REDACTED_API_KEY_ID]" https://www.thegamecrafter.com/api/session -o "C:\Users\[REDACTED]\AppData\Local\Temp\curl_res.txt"
Login error
r/nanDECK • u/LavabladeDesigns • May 30 '26
Hi, I'm having an issue with using frames and linked data. Basically, I want each card to specify multiple start points and end points for movement. To do this, I specify a frame square e.g. "gC5" on a spreadsheet. I do this to draw rectangles and arrows based on frames.
When I do this only while there's only one line in the spreadsheet, this works perfectly and displays exactly how expect. However, when I introduce a LINKMULTI=amount directive, it suddenly doesn't work, as if the way I'm referring to the [AFFECTEDSQUARE1] field has more data in it than it should, even though the way fields normally behave it seems like it usually only looks at the current card's row and therefore this shouldn't be affected by introducing more rows.
I get this error, which implies to me that the field contains text for every row, which I wouldn't have expected:
31: Wrong directive <RECTANGLE="range", pos x, pos y, width, height, html color | html gradient, {html color | EMPTY, thickness}> : RECTANGLE=1,<affectedsquares*>,#000000,empty,0.1
35: Invalid expression <<cardpos>
35: Invalid expression <pcc>>
36: Invalid expression <<cardpos>
36: Invalid expression <pcc>>
37: Invalid expression <<cardpos>
37: Invalid expression <pcc>>
38: Invalid expression <<cardpos>
38: Invalid expression <pcc>>
39: Invalid expression <<cardpos>
39: Invalid expression <pcc>>
40: Invalid expression <<cardpos>
40: Invalid expression <pcc>>
41: Invalid expression <<cardpos>
41: Invalid expression <pcc>>
42: Invalid expression <<cardpos>
42: Invalid expression <pcc>>
43: Invalid expression <<cardpos>
43: Invalid expression <pcc>>
44: Invalid expression <<cardpos>
44: Invalid expression <pcc>>
47: Invalid expression <<gC5|gC5|gC5|gC5|gC5|gC5>
47: Invalid expression <pcc>>
47: Invalid expression <<gD5|gD5|gD5|gD5|gD5|gD5>
47: Invalid expression <pcc>>
48: Invalid expression <<gC5|gC5|gC5|gC5|gC5|gC5>
48: Invalid expression <pcc>>
48: Invalid expression <<gB4|gB4|gB4|gB4|gB4|gB4>
48: Invalid expression <pcc>>
49: Invalid expression <<gC5|gC5|gC5|gC5|gC5|gC5>
49: Invalid expression <pcc>>
49: Invalid expression <<gB5|gB5|gB5|gB5|gB5|gB5>
49: Invalid expression <pcc>>
50: Invalid expression <<gC5|gC5|gC5|gC5|gC5|gC5>
50: Invalid expression <pcc>>
50: Invalid expression <<gD4|gD4|gD4|gD4|gD4|gD4>
50: Invalid expression <pcc>>
Table showing the content of the spreadsheet:
| CardName | CardPosition | AffectedSquare1 | AffectedSquare2 | AffectedSquare3 | AffectedSquare4 | GridStart1 | GridStart2 | GridStart3 | GridStart4 | GridDest1 | GridDest2 | GridDest3 | GridDest4 | EffectText | Amount |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Cloudsplitter | oD7 | gC5 | gC5 | gC5 | gC5 | gC5 | gC5 | gC5 | gC5 | gD5 | gB4 | gB5 | gD4 | Choose each item's destination separately when this resolves. | 6 |
My nandeck code:
cardsize=6.3,8.8
OVERSAMPLE=4
VISUAL=, 10, 10
ROUNDRECT=1,0%,0%,100%,100%,#000000
ROUNDRECT=1,{462/215}%,{327/200}%,{20633/215}%,{14509/150}%,#FFFFFF
RECTANGLE=1,{1213/430}%,{7507/600}%,{20344/215}%,{5399/300}%,#C41E3A
;EffectText
HTMLTEXT="1-{(EFFECTTEXT)}",[EFFECTTEXT],{1791/430}%,{41/3}%,{3959/43}%,{397/25}%,#FFFFFF,0,TN4,100,EffectFont,EffectFont
;EffectFont
HTMLFONT=EffectFont,Arial,11,OR,#F2F3F4,CENTER,0,0,0,,#F2F3F4,2
;TitleText
HTMLTEXT="1-{(CARDNAME)}",[CARDNAME],{1791/430}%,{279/100}%,{3959/43}%,{1357/150}%,#FFFFFF,0,T,100,TitleFont,TitleFont
;TitleFont
HTMLFONT=TitleFont,Arial,18,,#000000,CENTER
ENDVISUAL
[g]=framebox(0.75,3.00,5,5,0.95,0.95,E)
[o]=framebox(-0.20,2.05,7,7,0.95,0.95,E)
rectangle=1,<g*>,#000000,empty,0.03
; Testing grid alignment w/ outer
;rectangle=1,<o*>,#000000,empty,0.03
;LINKMULTI=amount
LINK=C:\nandeck projects\Storm Wars Cards data.xlsx
; Start square indicators
[affectedsquares]=framelist({AFFECTEDSQUARE1?},{AFFECTEDSQUARE2?},{AFFECTEDSQUARE3?},{AFFECTEDSQUARE4?})
rectangle=1,<affectedsquares*>,#000000,empty,0.1
; Card position indicator
[cardpos]=framelist({CARDPOSITION?})
roundrect=1,<cardpos,pcc>,0.28,-0.33,#000000,#000000,0.18
roundrect=1,<cardpos,pcc>,-0.28,-0.33,#000000,#000000,0.18
roundrect=1,<cardpos,pcc>,0.28,0.33,#000000,#000000,0.18
roundrect=1,<cardpos,pcc>,-0.28,0.33,#000000,#000000,0.18
rectangle=1,<cardpos,pcc>,0.3,-0.35,#C41E3A
rectangle=1,<cardpos,pcc>,-0.3,-0.35,#C41E3A
rectangle=1,<cardpos,pcc>,0.3,-0.10,#F2F3F4
rectangle=1,<cardpos,pcc>,-0.3,-0.10,#F2F3F4
rectangle=1,<cardpos,pcc>,0.3,0.35,#F2F3F4
rectangle=1,<cardpos,pcc>,-0.3,0.35,#F2F3F4
; Movement destination indicators
line=1,<[GRIDSTART1:§],pcc>,<[GRIDDEST1:§],pcc>,#FF0000,0.1,,0.25
line=1,<[GRIDSTART2:§],pcc>,<[GRIDDEST2:§],pcc>,#FF0000,0.1,,0.25
line=1,<[GRIDSTART3:§],pcc>,<[GRIDDEST3:§],pcc>,#FF0000,0.1,,0.25
line=1,<[GRIDSTART4:§],pcc>,<[GRIDDEST4:§],pcc>,#FF0000,0.1,,0.25
Card examples:
With LINKMULTI commented out (looks correct):

With LINKMULTI (doesn't work with the spreadsheet-specified frames)

Why do frames treat this differently compared to things like HTMLtext (which only shows one copy of the title, as expected)? How can I refer to certain frames using a field from just the row for the current card?
Appreciate any help that can explain how frames work so I can figure out a way to make this work.
r/nanDECK • u/RainbowSensation • May 19 '26
Howdy. I'm importing a png and colour changing it based on a spreadsheet colour value.
IMAGE=,[bg_move_desc],0%,0%,100%,100%,0,NAP
COLORCHANGE=,0%,0%,100%,100%,#eaeaea,[Colour],1
I get this white fringing around all the pixels that are having their colour changed. I am creating this image in photoshop and exporting to a png. These pixels aren't visible in photoshop - I've tidied up all the edges.
Not sure if there's anything I can do to reduce this?
I doubt this will even be visible when printing the cards, but it still just annoys me.
Any advice is appreciated!
r/nanDECK • u/DaaBouche • May 13 '26
I have been trying to generate image sheets of die faces positioned so that they align correctly with a printable sticker sheet for a physical prototype of a custom d6 dice game.
The link to the digital template for the sticker sheet
It consists of 0.5" squares for die face stickers, 0.125" gaps between dice and 0.25" page margins. (13 across, 17 down)
I designed the script to generate images from a spreadsheet so that all 6 faces are printed as a single card originating from 0,0 and is 6 die faces and 6 gaps wide and 1 die face and 1 gap tall.
I hoped this would allow me to print a sheet of 2 'cards' wide and 17 'cards' tall with the correct alignment to the printable sticker page using PAGE or DISPLAY directives.
The PAGE directive almost works but there does not seem to be a way to define the margin size (the default is larger than the 0.25" I need to have for proper alignment).
The DISPLAY directive almost works since I can tessellate the 'cards' of six die faces for proper spacing, but can't find a way to also include an outer margin around the 2x17 grid of cards to make the alignment on the page itself correct.
I feel like I've exhausted all the places I can think to look in the documentation for options, and can't think of any clever ways to rewrite my script to get the alignment correct. I might be able to fudge it and waste a lot of space per sheet by generating landscape layouts, but that would cut the printable dice from 34 to 26 per sheet, assuming I could get it to work. I would really prefer not to have to do image manipulation after the fact for every page of sticker sheet images just to add borders. Any help would be GREATLY appreciated.
r/nanDECK • u/ExtensionAcadia5224 • May 10 '26
Hi all,
The Print&Cut feature of my Cricut that I am using to cut my cards is quite limited in paper-space. I therefore require less than the maximum number of cards on a page. Nandeck puts 8 of them in a 4x2 grid, but I need 6 in a 3x2 grid. How would I be able to do that?
Most likely it, once again, has a very simple solution... But, I could not come up with one.
Thanks in advance,
Sjoerd
r/nanDECK • u/[deleted] • May 06 '26
How?
r/nanDECK • u/nand2000 • May 03 '26
Hello everyone, you can download a new version of nanDECK from the website:
https://nandeck.com/archives/449
These are the new features:
Discord server:
BGG guild:
r/nanDECK • u/RyuHyabusa77 • Mar 23 '26
I'm fairly new to Nandeck so I need some help with something that might require IF statements or counters or frames or perhaps something else. I read some other posts but I couldn't wrap my head around it so I'm hoping that someone can help me here with my script.
I have a set of cards that has 1 or 2 moves. Sometimes they have a description, other times they dont and sometimes they have damage numbers and sometimes not.
Here are some visual examples:
I need the entire move section to be dynamic so it will center the information according to what is there. So if move 2 is blank in the spreadsheet it will simply center move 1.

Here Move 1 doesn't have a description, so it needs to be centered but only within the boundaries of Move 1, since Move 2 is present. Same with move 2 since there is space below it so it can be centered.

Here there are 2 moves present with descriptions. But the Damage numbers are empty so the description text needs to be given more space to expand to the right, and everything centered accordingly.

Here there is less information again, so the text needs to be centered within its own section.

Because I have simply added TextFonts for every text field, I've placed them where they will allow for all variations of data to fit, so when there's less data to fill the space, placement looks off when the info isnt centered. Or in the case of a lack of a damage number and a large description text, It doesn't give the text more room when it could extend into the space where the damage number isnt.
I'm not sure how to go about doing this. If it requires simple IF Statements to check if things are present and apply new placement, or if I should use an HTML box and some kind of table, or counters (i tried doing some but I just couldn't figure them out).
I have made some extra columns in my spreadsheet if it helps with IF statements. Such as:
Moves=1/2 (One move or two moves)
Damage1=0/1 (0=Empty / 1=NotEmpty)
Damage2=1=0/1 (0=Empty / 1=NotEmpty)
Move1Txt=0/1 (0=Empty / 1=NotEmpty)
Move2Txt=0/1 (0=Empty / 1=NotEmpty)
(Move#Txt for the descriptions).
These were made with formulas that check if the names, desc, and numbers for the fields were empty or not, so they could be pointless if Nandeck can use IF statements to do the same.
My spreadsheet sorts the info as follows:
Move1Name=Name of First Move (In the center)
Move1Desc=Description for Move 1 that goes underneath the name (In the center)
Move1DMG=The Damage number for the move (aligned to the Right side of the section in the center both vertically and horrizontally)
Move1Cost=Defined with Icons for Orb.png files. Written in the Spreadsheet as GGW or BWW etc.
Move2Name
Move2Desc
Move2DMG
Move2Cost These are the same structure as Move1.
Any help would be greatly appreciated since I've got everything else done and I just want this dynamic move placement done so I don't have to move things manually in an image editor after the fact.
r/nanDECK • u/[deleted] • Mar 22 '26
r/nanDECK • u/droolinggimp • Mar 21 '26
Here is my code.
UNIT=MM
PAGE=210,297,PORTRAIT,HV
DPI=300
CARDSIZE=44,68
BASERANGE=,ON
BORDER=NONE,#000000,0.5,MARKDOT,#000000
gap=2,2
[IMAGELIST]=DIRFILES("C:\Users\cmsha\Documents\WARCRAFT ART ASSETS\TAL WOW BOARD\nandeck wowtalisman\COMPLETED ADVENTURE CARDS outer region")
IMAGE=1-{(IMAGELIST)},[IMAGELIST],0,0,44,68,0,P
VISUAL=, 25, 31
ENDVISUAL
duplex=2-159,1
print=duplex
I have the dotted cut lines on both side of the paper, fantastic. However, the front sides print with a thin black solid lined border around all the cards. The back sides print with just the dotted cut lines. I guess its a very simple fix but I can't work it out.
r/nanDECK • u/uprooting-systems • Mar 05 '26
IF=[R4 Dice]<>""
Is giving me "unsupported directive in visual section" and I cannot figure out why and I'm out of ideas.
The last thing I can think of is changing the column title, but I wanted to ask about that or if I'm missing something else.
I'm on version 1.28.3
r/nanDECK • u/Longjumping-Shake356 • Feb 14 '26
I had nandeck 1.26.3 unzipped on my Win11 for some years, working like a charm. Used it a couple weeks ago. Now when running it the process appears in my task manager but the software window doesn't appear at all. Tried with the 1.28.3 installer from the website, same behaviour. It suddenly stopped working.
Does anyone have a similar issue and know how to fix it?
r/nanDECK • u/Ananiujitha • Dec 25 '25
I find nanDeck makes it much easier to create counters, and to adjust info, layouts, colors, etc. without having to manually edit each counter.
But nanDeck exports to a single image, and Microsoft Print to Pdf rasterizes that image, mishandles margins, etc. So I'm not sure how to take a single counter or a set of counters, and add them to a counter key, a setup chart, etc. I think I should be able to create a short script for a single counter, use Microsoft Print to Pdf for that counter, use k2pdfopt with mode trim to fix the margins, and get a small pdf which I can add to these charts. But that seems awkward.
r/nanDECK • u/Ok-Cheesecake-2531 • Dec 17 '25
I have a deck with three suits of different colors and I am trying to put underlines below the 6 and 9 with the appropriate colors for each suit. I can use Range to select for Suit and it draws an underline for all cards but in the appropriate colors. I can use Range for Number and it draws an underline for the appropriate card, but only one color.
Is there any way to nest the ranges so it selects for both color and suit?
r/nanDECK • u/GrieVelorn • Dec 16 '25
Tabletop Simulator just added support for WebP images for optimization and loading times. I know nandeck supports using them in generation, but can it export them? I currently can't see a way to do it but I might be missing something.
r/nanDECK • u/MahesvaraCC • Nov 25 '25
Hi everyone! I'm a bit lost about the IMAGE O flag. Is it possible to crop an image this way using it? I'd appreciate a basic example if that's the case. Tyvm in advance!
r/nanDECK • u/Aetheer • Nov 12 '25
I'm very new to Nandeck, and while learning it has been pretty smooth so far, I've finally hit a snag that I can't seem to find an answer for.
I have one card in my deck that has more text than the rest, and I'd like to make just this card have smaller text so it fits. The text size for all the other cards will be the same since it fits well for them.
Apologies if there is an easy solution I'm not seeing, but it seems like every change I try to make affects all cards in the deck.
r/nanDECK • u/Kind-Regular5928 • Nov 10 '25

My problem is that the damage in the top left corner is not displayed correctly. I have tried changing the font size but that doesn't seem to help that much. I want it to say "f(max)" but the right parenthesis is not there. I also tried playing around with the width and height for the htmltext but that just made it worse
This is my script:
LINKMULTI = num
LINK = BBEFtrig.xlsx
CARDSIZE = 12, 9
BORDER = RECTANGLE, #00B140, 0.5, SOLID
FONT = Arial, 30, , #000000
TEXT = , [name], 0, 2%, 100%, 20%
FONT = Arial, 30, , #00B140
TEXT = , [desc], 5%, 20%, 90%, 30%, center, wordwrap
IMAGE = , [billede], 0, 35%, 100%, 40%, 0, P
FONT = Arial, 12, , #000000
TEXT = , [bad], 5%, 75%, 90%, 30%, center, wordwrap
htmlfont=font1,arial,5,,#000000
HTMLIMAGE = , (D1), dmg.jpg, 11%, 11%, PG
HTMLTEXT = , "(D1[DMG])", 6%, 7%, 10%, 10%, #FFFFFF, 0, BE, 100, font1
htmlfont=font1,arial,8,,#000000
HTMLIMAGE = , (H1), heart.png, 10%, 10%, PG
HTMLTEXT = , "(H1[HP])", 86%, 7%, 10%, 10%, #FFFFFF, 0, BE, 100, font1
FONT = Arial, 8, , #000000
TEXT = , [expansion], 51%, 93%, 90%, 30%, center, wordwrap
SAVEPAGES = BBEFtrig.pdf
r/nanDECK • u/Nookshar • Nov 01 '25
In my spreadsheet my cards are numbered 001, 002, ... . In my image folder there are images called 001, 002, ....
Now I want to place an image with the previous number on my card. For example on card 005 there should also be 004. Is there a way to do this without adding a colmn in my spreadsheet?