Post by nighthauntr on Sept 17, 2023 12:38:10 GMT
Hi all,
I have been trying to figure out how to make Planeswalker cards from normal non-walker borders (such as the Kaldheim border made by Cajun, which I'll be using in this example)
This is what I currently have, but in MSE, it is completely white. I find myself a noob now...
(I have been tweaking code in notepad++)
style.txt (21.73 KB)
I have been trying to figure out how to make Planeswalker cards from normal non-walker borders (such as the Kaldheim border made by Cajun, which I'll be using in this example)
This is what I currently have, but in MSE, it is completely white. I find myself a noob now...
(I have been tweaking code in notepad++)
style.txt (21.73 KB)
{Code}
mse version: 2.0.0
game: magic
short name: Vikings on a Plane
full name: Kaldheim Showcase
icon: card-sample.png
installer group: magic/m15 style/planeswalkers
position hint: 095
version: 2021-02-16
depends on:
package: magic.mse-game
version: 2014-06-25
depends on:
package: magic-default-image.mse-include
version: 2007-09-23
depends on:
package: magic-watermarks.mse-include
version: 2007-09-23
depends on:
package: magic-identity-new.mse-include
version: 2012-01-22
depends on:
package: magic-mana-large.mse-symbol-font
version: 2007-09-23
depends on:
package: magic-mana-small.mse-symbol-font
version: 2007-09-23
depends on:
package: magic-mainframe-extras.mse-include
version: 2007-09-23
card width: 375
card height: 523
card dpi: 150
####### images from digiman
############################################################## Extra scripts
init script:
# Load scripts for image box
include file: /magic-default-image.mse-include/scripts
# Should hybrids have a grey name?
mask_hybrid_with_land := [ styling.grey_hybrid_name ]
#Should multicolor lands with basic land types have a colored name?
mask_multi_land_with_color := [ styling.colored_multicolor_land_name ]
no_als := [chosen(styling.frame_options, choice: "no alias")]
template_prefix := [card: "" card2:"legend/" pt: "" stamp: "" identity: "/magic-identity-new.mse-include/"]
template_suffix := [card: "card.png" card2:"card.png" pt: "pt.png" stamp: "stamp.jpg" identity: "identity.png"]
template := [ template_prefix[type] + input + template_suffix[type] ]
land_template := [ template_prefix[type] + (if input == "a" then "c" else input) + template_suffix[type] ]
# Use land templates for previews because they show more contrast
hybrid_previews := "land,hybrid"
legend_background := [ color_background(type:"card2", base_hybrid:card_hybrid) ]
card_ptbox := [ color_background(type:"pt", base_hybrid:card_hybrid) ]
# Use the normal tap symbol
mana_t := [
if styling.tap_symbol == "old" then "old"
else if styling.tap_symbol == "diagonal T" then "older"
else "new"
]
# Use guild mana symbols?
guild_mana := [ styling.use_guild_mana_symbols ]
# Is the card a promo card?
is_promo := [ styling.promo ]
is_legend := [set.auto_legends and contains(card.super_type, match:"Legendary") ]
mana_sort := [
if styling.unsorted_casting_cost then
input
else
sort_text@(order: "XYZI[0123456789]HSCA(WUBRG)")()
]
ancestral_mana := [ styling.ancestral_mana_symbols ]
has_identity := [ styling.color_indicator_dot ]
is_unsorted := [styling.remove_from_autocount]
chop_top := [to_number(pull_comma_array(styling.text_chops, cell:0, end:false))]
chop_bot := [to_number(pull_comma_array(styling.text_chops, cell:1, end:false))]
chop_correction := [ chop_bot() ]
shrink_type := [if styling.shrink_typeline_text != "" then to_number(styling.shrink_typeline_text) else 0]
shrink_name := [if styling.shrink_name_text != "" then to_number(styling.shrink_name_text) else 0]
use_main_rarity := [ contains(set.mainframe_rarity_name, match: ".png")]
un_png := replace@(match:".png", replace: "")
is_vehicle := [contains(card.type, match:"Vehicle")]
############################################################## Set info fields
set info style:
symbol:
variation:
name: invertedcommon
border radius: 0.10
fill type: solid
fill color: rgb(255,255,255)
border color: rgb(0,0,0)
############################################################## Extra style options
styling field:
type: text
name: text chops
description: Format as "X,Y". Shrinks textbox X pixels from the top and Y from bottom.
styling field:
type: text
name: shrink name text
description: Shrinks name X pixels
styling field:
type: text
name: shrink typeline text
description: Shrinks type X pixels
styling field:
type: boolean
name: use holofoil stamps
description: Change to no to disable rare holofoil stamps
styling field:
type: boolean
name: color indicator dot
description: Use the color indicator dot
initial: no
styling field:
type: boolean
name: remove from autocount
description: Removes the automatic card number for specific cards, to allow for overcounted cards like in Planeswalker Decks.
initial: no
styling field:
type: boolean
name: grey hybrid name
description: Use a grey background for the name and type line on hybrid cards. This is done on real cards.
styling field:
type: boolean
name: unsorted casting cost
description: Disables automatic mana symbol sorting.
initial: no
styling field:
type: boolean
name: ancestral mana symbols
description: Enables ancestral's modified generic mana.
initial: no
styling field:
type: boolean
name: colored multicolor land name
description: Use a colored background for the name and type on multicolor land cards with a basic land type. This is done on real cards.
styling field:
type: boolean
name: use guild mana symbols
description: Use the Ravnica guild symbols instead of the official half/half circles for hybrid mana.
initial: no
styling field:
type: choice
name: tap symbol
description: What tap and untap symbols should be used on cards?
initial: modern
choice: modern
choice: old
choice: diagonal T
styling field:
type: package choice
name: text box mana symbols
match: magic-mana-*.mse-symbol-font
initial: magic-mana-small.mse-symbol-font
styling field:
type: choice
name: center text
description: When to center text (short text only means only on one-line cards with no flavor text)
choice: always
choice: short text only
choice: never
initial: never
styling field:
type: boolean
name: promo
description: Is this card a promo card, with the "P" rarity?
initial: no
styling field:
type: boolean
name: masterpiece
description: Is this card a Masterpiece?
initial: no
styling field:
type: boolean
name: inverted common symbol
description: Should the common rarity symbol be inverted, like in Coldsnap?
initial: no
styling field:
type: package choice
name: overlay
description: Should there be an overlay applied, such as foil?
match: magic-overlay-*.mse-include
required: false
styling style:
use guild mana symbols:
choice images:
yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png
no: /magic-mana-small.mse-symbol-font/mana_rg.png
tap symbol:
render style: both
choice images:
modern: /magic-mana-large.mse-symbol-font/mana_t.png
old: /magic-mana-large.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-large.mse-symbol-font/mana_t_older.png
center text:
render style: both
choice images:
always: /magic.mse-game/icons/center-all-text.png
short text only: /magic.mse-game/icons/center-short-text.png
never: /magic.mse-game/icons/center-no-text.png
inverted common symbol:
choice images:
no: [ symbol_variation(symbol: set.symbol, variation: "common") ]
yes: [ symbol_variation(symbol: set.symbol, variation: "invertedcommon") ]
############################################################## Card fields
card style:
############################# Background stuff
border color:
left: 0
top : 0
width: 375
height: 523
radius: 18
left width: 17
right width: 17
top width: 17
bottom width: 18
z index: 1
mask: [if is_legend() then "border_legend.png" else "border_mask.png"]
card color:
left: 0
top: 0
width: 375
height: 523
z index: 0
render style: image
popup style: in place
image: [ if is_legend() then legend_background() else card_background() ]
mask: [(if is_legend() then "legend/" else "") + "framemask.png"]
############################# Name line
name:
left: 26
top: [if is_legend() then 33 else 22]
right: [ 341 - card_style.casting_cost.content_width ]
height: [23 - 0.5*shrink_name()]
alignment: bottom shrink-overflow
padding bottom: 0
z index: 1
font:
name: Beleren Bold
size: [15 - shrink_name()]
color: white
casting cost:
right: 346
top: [if is_legend() then 33 else 22]
width: [ max(30, card_style.casting_cost.content_width) + 5 ]
height: 23
alignment: middle right
font:
name: MPlantin
size: 15
symbol font:
name: magic-mana-large
size: 15
alignment: middle right
always symbol: true
z index: 2
padding top: 0
############################# Image
image:
left: 39
top: [if is_legend() then 60 else 48]
width: 297
height: [if is_legend() then 243 else 255]
z index: -1
default: [default_image(card.card_color)]
mask: [(if is_legend() then "legend/") + "imagemask.png"]
############################# Card type
indicator:
left: 26
top: 308
width: 17
height: 17
z index: 1
render style: image
visible: [ has_identity() ]
image: [ card_identity() ]
type:
left: [ if has_identity() then "46" else "28" ]
top: [shrink_type() + 305 ]
width: [ (if has_identity() then "290" else "310") - max(22,card_style.rarity.content_width) ]
height: [ 20 - shrink_type() ]
alignment: top shrink-overflow
z index: 2
padding top: 2
font:
name: Beleren Bold
size: [13 - shrink_type()]
color: white
separator color: red
rarity:
right: 344
top: 308
width: 44
height: 22
z index: 2
render style: image
alignment: middle right
choice images:
# Images based on the set symbol
basic land:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "c.png"
else if styling.inverted_common_symbol then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
common:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "c.png"
else if styling.inverted_common_symbol then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
uncommon:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "u.png"
else symbol_variation(symbol: set.symbol, variation: "uncommon")
rare:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "r.png"
else symbol_variation(symbol: set.symbol, variation: "rare")
mythic rare:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "m.png"
else symbol_variation(symbol: set.symbol, variation: "mythic rare")
special:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "s.png"
else symbol_variation(symbol: set.symbol, variation: "special")
masterpiece:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "mp.png"
else symbol_variation(symbol: set.masterpiece_symbol, variation: "mythic rare")
############################# Text box
text:
left: 29
top: [338-(-chop_top())]
width: 314
bottom: [477-chop_bot()]
font:
name: MPlantin
italic name: MPlantin-Italic
size: 14
scale down to: 6
color: black
symbol font:
name: [ styling.text_box_mana_symbols ]
size: 14
scale down to: 6
alignment:
script:
if (styling.center_text == "short text only" and
not contains(match:"\n", card.rule_text) and
card.flavor_text == "<i-flavor></i-flavor>" and
card_style.text.content_lines <= 2) or
styling.center_text == "always"
then "middle center"
else "middle left"
z index: 2
padding left: 6
padding right: 4
line height hard: [if is_modal(card.rule_text) then 0.9 else 1.2 ]
line height line: 1.5
line height soft: 0.9
line height hard max: [if is_modal(card.rule_text) then 1.0 else 1.3 ]
line height line max: 1.6
watermark:
left: 25
top: 338
width: 324
height: 139
z index: 1
render style: image
popup style: in place
alignment: middle center
include file: /magic-watermarks.mse-include/watermarks
############################# Loyalty
loyalty:
z index: 7
left: 326
top: 462
width: 13.16
height: 34.63
alignment: center middle
font:
name: Beleren Bold
size: 14
color: white
loyalty cost 1:
z index: 7
left: 32
top: [ if has_four_abilities() then 297 else 335 ]
width: 13.16
height: 34.63
alignment: center middle
font:
name: Beleren Bold
size: 11
color: white
loyalty cost 2:
z index: 7
left: 32
top: [ if has_four_abilities() then 344 else 386 ]
width: 13.16
height: 34.63
alignment: center middle
font:
name: Beleren Bold
size: 11
color: white
loyalty cost 3:
z index: 7
left: 32
top: [ if has_four_abilities() then 391 else 435 ]
width: 13.16
height: 34.63
alignment: center middle
font:
name: Beleren Bold
size: 11
color: white
loyalty cost 4:
z index: 7
left: 32
top: 438
width: [ if has_four_abilities() then 13.16 else 0 ]
height: [ if has_four_abilities() then 34.63 else 0 ]
alignment: center middle
font:
name: Beleren Bold
size: 11
color: white
############################# Card sorting / numbering
set code:
left: 24
top: 498
width: 40
height: 10
z index: 1
font:
name: Relay-Medium
size: 7
color: white
weight: bold
############################# Copyright stuff
illustrator:
left: [ 44 + card_style.set_code.content_width ]
top: 497.5
width: 200
height: 10
z index: 1
font:
name: Beleren Small Caps Bold
size: 7.25
color: white
copyright:
right: 350
top: [ if card.pt != "" then 500 else 488 ]
width: 140
height: 10
z index: 2
visible: [not set.automatic_copyright]
alignment: middle right shrink-overflow
font:
name: Matrix
size: 7
color: white
weight: bold
############################################################## Extra card fields
extra card field:
type: text
name: card code
save value: false
script:
if set.automatic_card_numbers and not styling.remove_from_autocount then
forward_editor(prefix: card_number_m15() + "/" + card_count_m15() + " " + rarity_code() + " ", field: card.card_code_text)
else
combined_editor(field1: card.custom_card_number, separator: " " + rarity_code() + " ", field2: card.card_code_text)
extra card field:
type: choice
name: artist arrow
editable: false
save value: false
choice: white
extra card field:
type: choice
name: artist arrow
editable: false
save value: false
choice: white
extra card field:
type: choice
name: loyalty box
editable: false
choice: loyalty
save value: false
extra card field:
type: choice
name: stamp
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: foil stamp
choice: stamp
save value: false
editable: false
extra card field:
type: choice
name: foil layer
choice: foil
save value: false
editable: false
extra card field:
type: choice
name: loyalty cost box 1
editable: false
script: loyalty_image(card.loyalty_cost_1)
save value: false
extra card field:
type: choice
name: loyalty cost box 2
editable: false
script: loyalty_image(card.loyalty_cost_2)
save value: false
extra card field:
type: choice
name: loyalty cost box 3
editable: false
script: loyalty_image(card.loyalty_cost_3)
save value: false
extra card field:
type: choice
name: loyalty cost box 4
editable: false
script: loyalty_image(card.loyalty_cost_4)
save value: false
extra card field:
type: text
name: colon 1
editable: false
script: ":"
save value: false
extra card field:
type: text
name: colon 2
editable: false
script: ":"
save value: false
extra card field:
type: text
name: colon 3
editable: false
script: ":"
save value: false
extra card field:
type: text
name: colon 4
editable: false
script: ":"
save value: false
extra card field:
type: text
name: second text
editable: false
multi line: true
save value: false
script: card.text
extra card field:
type: choice
name: foil stamp
choice: stamp
save value: false
editable: false
extra card field:
type: choice
name: foil layer
choice: foil
save value: false
editable: false
extra card field:
type: multiple choice
name: stamp
empty choice: colorless
choice: white
choice: blue
choice: black
choice: red
choice:
name: green
line below: true
choice: artifact
choice: land
choice: multicolor
choice:
name: hybrid
line below: true
choice:
name: horizontal
type: radio
choice:
name: vertical
type: radio
choice:
name: radial
type: radio
choice:
name: diagonal
type: radio
choice:
name: overlay
type: radio
choice:
name: reversed
script: card_color_filter(value)
default: card_color(casting_cost: card.casting_cost, rules_text: card.rule_text, type: card.super_type, watermark: card.watermark, card_name: card.name)
extra card field:
type: text
name: auto copyright
script: set.copyright
save value: false
editable: false
show statistics: false
extra card field:
type: choice
name: flavor bar
choice: bar
editable: false
save value: false
show statistics: false
extra card field:
type: choice
name: vehicle overlay
choice: overlay
editable: false
save value: false
show statistics: false
extra card style:
card code:
left: 24
top: 488
width: 120
height: 10
z index: 1
font:
name: Relay-Medium
size: 7
color: white
weight: bold
artist arrow:
left: [ 28 + card_style.set_code.content_width ]
top: 500
width: 12
height: 7
z index: 1
render style: image
image: artist_arrow.png
pt box:
left: 285
top: 460
width: 77
height: 43
z index: 1
visible: [ card.pt != "" ]
render style: image
image: [ if is_vehicle() then "vpt.png" else card_ptbox() ]
foil layer:
left: 0
top : 0
width: 375
height: 523
z index: 3
render style: image
image: [if styling.overlay == "" then nil else styling.overlay + "/overlay.png"]
mask: [ if is_rare() then "foil_mask_rare.png" else "foil_mask.png" ]
stamp:
left: 165
top: 472
width: 46
height: 26
z index: 1
visible: [ is_rare() and styling.use_holofoil_stamps ]
render style: image
image: [ card_stamp() ]
mask: stamp_mask.png
foil stamp:
left: 165
top: 472
width: 46
height: 26
z index: 2
visible: [ is_rare() and styling.use_holofoil_stamps ]
render style: image
image: foil_stamp.png
loyalty cost box 1:
left: 18
top: [ if has_four_abilities() then 295 else 333 ]
width: 42
height: 40
z index: 6
render style: image
visible: [ card.loyalty_cost_1 !="" ]
choice images:
loyalty up: loyaltyup.png
loyalty down: loyaltydown.png
loyalty naught: loyaltynaught.png
loyalty cost box 2:
left: 18
top: [ if has_four_abilities() then 342 else 383 ]
width: 42
height: 40
z index: 6
render style: image
visible: [ card.loyalty_cost_2 !="" ]
choice images:
loyalty up: loyaltyup.png
loyalty down: loyaltydown.png
loyalty naught: loyaltynaught.png
loyalty cost box 3:
left: 18
top: [ if has_four_abilities() then 389 else 432 ]
width: 42
height: 40
z index: 6
render style: image
visible: [ card.loyalty_cost_3 !="" ]
choice images:
loyalty up: loyaltyup.png
loyalty down: loyaltydown.png
loyalty naught: loyaltynaught.png
loyalty cost box 4:
left: 18
top: 436
width: [ if has_four_abilities() then 42 else 0 ]
height: 40
z index: 6
render style: image
visible: [ card.loyalty_cost_4 !="" ]
choice images:
loyalty up: loyaltyup.png
loyalty down: loyaltydown.png
loyalty naught: loyaltynaught.png
colon 1:
left: 59
top: [ if has_four_abilities() then 309 else 347 ]
width: 5
height: 10
z index: 6
font:
name: MPlantin
size: 15
scale down to: 15
color: black
alignment: middle center
visible: [ card.loyalty_cost_1 !="" ]
colon 2:
left: 59
top: [ if has_four_abilities() then 356 else 397 ]
width: 5
height: 10
z index: 6
font:
name: MPlantin
size: 15
scale down to: 15
color: black
alignment: middle center
visible: [ card.loyalty_cost_2 !="" ]
colon 3:
left: 59
top: [ if has_four_abilities() then 403 else 446 ]
width: 5
height: 10
z index: 6
font:
name: MPlantin
size: 15
scale down to: 15
color: black
alignment: middle center
visible: [ card.loyalty_cost_3 !="" ]
colon 4:
left: 59
top: 450
width: [ if has_four_abilities() then 5 else 0 ]
height: 10
z index: 6
font:
name: MPlantin
size: 15
scale down to: 15
color: black
alignment: middle center
visible: [ card.loyalty_cost_4 !="" ]
second text:
left: 63
top: 293
width: 282
height: 183
font:
name: MPlantin
italic name: MPlantin-Italic
size: 14
scale down to: 6
color: black
symbol font:
name: [ styling.text_box_mana_symbols ]
size: 14
paragraph height: 47
alignment:
script:
if (styling.center_text == "short text only" and
not contains(match:"\n", card.rule_text) and
card.flavor_text == "<i-flavor></i-flavor>" and
card_style.text.content_lines <= 2) or
styling.center_text == "always"
then "middle center"
else "middle left"
z index: 3
mask: text_mask.png
padding left: 6
padding right: 4
padding bottom: 2
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
visible: [ has_four_abilities() ]
auto copyright:
right: 350
top: [ if card.pt != "" then 500 else 488 ]
width: 140
height: 10
z index: 2
alignment: middle right shrink-overflow
visible: [set.automatic_copyright]
font:
name: Matrix
size: 7
color: white
weight: bold
flavor bar:
left: 0
top: [ bar_equation() ]
width: 375
height: 1
z index: 1
render style: image
image: bar.png
visible: [ card.rule_text != "" and remove_tags(card.flavor_text) != "" and set.use_flavor_bar ]
vehicle overlay:
left: 0
top: 0
width: 375
height: 523
render style: image
image: [(if is_legend() then "legend/" else "") + "voverlay.png" ]
z index: 0
visible: [is_vehicle()]
mse version: 2.0.0
game: magic
short name: Vikings on a Plane
full name: Kaldheim Showcase
icon: card-sample.png
installer group: magic/m15 style/planeswalkers
position hint: 095
version: 2021-02-16
depends on:
package: magic.mse-game
version: 2014-06-25
depends on:
package: magic-default-image.mse-include
version: 2007-09-23
depends on:
package: magic-watermarks.mse-include
version: 2007-09-23
depends on:
package: magic-identity-new.mse-include
version: 2012-01-22
depends on:
package: magic-mana-large.mse-symbol-font
version: 2007-09-23
depends on:
package: magic-mana-small.mse-symbol-font
version: 2007-09-23
depends on:
package: magic-mainframe-extras.mse-include
version: 2007-09-23
card width: 375
card height: 523
card dpi: 150
####### images from digiman
############################################################## Extra scripts
init script:
# Load scripts for image box
include file: /magic-default-image.mse-include/scripts
# Should hybrids have a grey name?
mask_hybrid_with_land := [ styling.grey_hybrid_name ]
#Should multicolor lands with basic land types have a colored name?
mask_multi_land_with_color := [ styling.colored_multicolor_land_name ]
no_als := [chosen(styling.frame_options, choice: "no alias")]
template_prefix := [card: "" card2:"legend/" pt: "" stamp: "" identity: "/magic-identity-new.mse-include/"]
template_suffix := [card: "card.png" card2:"card.png" pt: "pt.png" stamp: "stamp.jpg" identity: "identity.png"]
template := [ template_prefix[type] + input + template_suffix[type] ]
land_template := [ template_prefix[type] + (if input == "a" then "c" else input) + template_suffix[type] ]
# Use land templates for previews because they show more contrast
hybrid_previews := "land,hybrid"
legend_background := [ color_background(type:"card2", base_hybrid:card_hybrid) ]
card_ptbox := [ color_background(type:"pt", base_hybrid:card_hybrid) ]
# Use the normal tap symbol
mana_t := [
if styling.tap_symbol == "old" then "old"
else if styling.tap_symbol == "diagonal T" then "older"
else "new"
]
# Use guild mana symbols?
guild_mana := [ styling.use_guild_mana_symbols ]
# Is the card a promo card?
is_promo := [ styling.promo ]
is_legend := [set.auto_legends and contains(card.super_type, match:"Legendary") ]
mana_sort := [
if styling.unsorted_casting_cost then
input
else
sort_text@(order: "XYZI[0123456789]HSCA(WUBRG)")()
]
ancestral_mana := [ styling.ancestral_mana_symbols ]
has_identity := [ styling.color_indicator_dot ]
is_unsorted := [styling.remove_from_autocount]
chop_top := [to_number(pull_comma_array(styling.text_chops, cell:0, end:false))]
chop_bot := [to_number(pull_comma_array(styling.text_chops, cell:1, end:false))]
chop_correction := [ chop_bot() ]
shrink_type := [if styling.shrink_typeline_text != "" then to_number(styling.shrink_typeline_text) else 0]
shrink_name := [if styling.shrink_name_text != "" then to_number(styling.shrink_name_text) else 0]
use_main_rarity := [ contains(set.mainframe_rarity_name, match: ".png")]
un_png := replace@(match:".png", replace: "")
is_vehicle := [contains(card.type, match:"Vehicle")]
############################################################## Set info fields
set info style:
symbol:
variation:
name: invertedcommon
border radius: 0.10
fill type: solid
fill color: rgb(255,255,255)
border color: rgb(0,0,0)
############################################################## Extra style options
styling field:
type: text
name: text chops
description: Format as "X,Y". Shrinks textbox X pixels from the top and Y from bottom.
styling field:
type: text
name: shrink name text
description: Shrinks name X pixels
styling field:
type: text
name: shrink typeline text
description: Shrinks type X pixels
styling field:
type: boolean
name: use holofoil stamps
description: Change to no to disable rare holofoil stamps
styling field:
type: boolean
name: color indicator dot
description: Use the color indicator dot
initial: no
styling field:
type: boolean
name: remove from autocount
description: Removes the automatic card number for specific cards, to allow for overcounted cards like in Planeswalker Decks.
initial: no
styling field:
type: boolean
name: grey hybrid name
description: Use a grey background for the name and type line on hybrid cards. This is done on real cards.
styling field:
type: boolean
name: unsorted casting cost
description: Disables automatic mana symbol sorting.
initial: no
styling field:
type: boolean
name: ancestral mana symbols
description: Enables ancestral's modified generic mana.
initial: no
styling field:
type: boolean
name: colored multicolor land name
description: Use a colored background for the name and type on multicolor land cards with a basic land type. This is done on real cards.
styling field:
type: boolean
name: use guild mana symbols
description: Use the Ravnica guild symbols instead of the official half/half circles for hybrid mana.
initial: no
styling field:
type: choice
name: tap symbol
description: What tap and untap symbols should be used on cards?
initial: modern
choice: modern
choice: old
choice: diagonal T
styling field:
type: package choice
name: text box mana symbols
match: magic-mana-*.mse-symbol-font
initial: magic-mana-small.mse-symbol-font
styling field:
type: choice
name: center text
description: When to center text (short text only means only on one-line cards with no flavor text)
choice: always
choice: short text only
choice: never
initial: never
styling field:
type: boolean
name: promo
description: Is this card a promo card, with the "P" rarity?
initial: no
styling field:
type: boolean
name: masterpiece
description: Is this card a Masterpiece?
initial: no
styling field:
type: boolean
name: inverted common symbol
description: Should the common rarity symbol be inverted, like in Coldsnap?
initial: no
styling field:
type: package choice
name: overlay
description: Should there be an overlay applied, such as foil?
match: magic-overlay-*.mse-include
required: false
styling style:
use guild mana symbols:
choice images:
yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png
no: /magic-mana-small.mse-symbol-font/mana_rg.png
tap symbol:
render style: both
choice images:
modern: /magic-mana-large.mse-symbol-font/mana_t.png
old: /magic-mana-large.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-large.mse-symbol-font/mana_t_older.png
center text:
render style: both
choice images:
always: /magic.mse-game/icons/center-all-text.png
short text only: /magic.mse-game/icons/center-short-text.png
never: /magic.mse-game/icons/center-no-text.png
inverted common symbol:
choice images:
no: [ symbol_variation(symbol: set.symbol, variation: "common") ]
yes: [ symbol_variation(symbol: set.symbol, variation: "invertedcommon") ]
############################################################## Card fields
card style:
############################# Background stuff
border color:
left: 0
top : 0
width: 375
height: 523
radius: 18
left width: 17
right width: 17
top width: 17
bottom width: 18
z index: 1
mask: [if is_legend() then "border_legend.png" else "border_mask.png"]
card color:
left: 0
top: 0
width: 375
height: 523
z index: 0
render style: image
popup style: in place
image: [ if is_legend() then legend_background() else card_background() ]
mask: [(if is_legend() then "legend/" else "") + "framemask.png"]
############################# Name line
name:
left: 26
top: [if is_legend() then 33 else 22]
right: [ 341 - card_style.casting_cost.content_width ]
height: [23 - 0.5*shrink_name()]
alignment: bottom shrink-overflow
padding bottom: 0
z index: 1
font:
name: Beleren Bold
size: [15 - shrink_name()]
color: white
casting cost:
right: 346
top: [if is_legend() then 33 else 22]
width: [ max(30, card_style.casting_cost.content_width) + 5 ]
height: 23
alignment: middle right
font:
name: MPlantin
size: 15
symbol font:
name: magic-mana-large
size: 15
alignment: middle right
always symbol: true
z index: 2
padding top: 0
############################# Image
image:
left: 39
top: [if is_legend() then 60 else 48]
width: 297
height: [if is_legend() then 243 else 255]
z index: -1
default: [default_image(card.card_color)]
mask: [(if is_legend() then "legend/") + "imagemask.png"]
############################# Card type
indicator:
left: 26
top: 308
width: 17
height: 17
z index: 1
render style: image
visible: [ has_identity() ]
image: [ card_identity() ]
type:
left: [ if has_identity() then "46" else "28" ]
top: [shrink_type() + 305 ]
width: [ (if has_identity() then "290" else "310") - max(22,card_style.rarity.content_width) ]
height: [ 20 - shrink_type() ]
alignment: top shrink-overflow
z index: 2
padding top: 2
font:
name: Beleren Bold
size: [13 - shrink_type()]
color: white
separator color: red
rarity:
right: 344
top: 308
width: 44
height: 22
z index: 2
render style: image
alignment: middle right
choice images:
# Images based on the set symbol
basic land:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "c.png"
else if styling.inverted_common_symbol then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
common:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "c.png"
else if styling.inverted_common_symbol then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
uncommon:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "u.png"
else symbol_variation(symbol: set.symbol, variation: "uncommon")
rare:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "r.png"
else symbol_variation(symbol: set.symbol, variation: "rare")
mythic rare:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "m.png"
else symbol_variation(symbol: set.symbol, variation: "mythic rare")
special:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "s.png"
else symbol_variation(symbol: set.symbol, variation: "special")
masterpiece:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "mp.png"
else symbol_variation(symbol: set.masterpiece_symbol, variation: "mythic rare")
############################# Text box
text:
left: 29
top: [338-(-chop_top())]
width: 314
bottom: [477-chop_bot()]
font:
name: MPlantin
italic name: MPlantin-Italic
size: 14
scale down to: 6
color: black
symbol font:
name: [ styling.text_box_mana_symbols ]
size: 14
scale down to: 6
alignment:
script:
if (styling.center_text == "short text only" and
not contains(match:"\n", card.rule_text) and
card.flavor_text == "<i-flavor></i-flavor>" and
card_style.text.content_lines <= 2) or
styling.center_text == "always"
then "middle center"
else "middle left"
z index: 2
padding left: 6
padding right: 4
line height hard: [if is_modal(card.rule_text) then 0.9 else 1.2 ]
line height line: 1.5
line height soft: 0.9
line height hard max: [if is_modal(card.rule_text) then 1.0 else 1.3 ]
line height line max: 1.6
watermark:
left: 25
top: 338
width: 324
height: 139
z index: 1
render style: image
popup style: in place
alignment: middle center
include file: /magic-watermarks.mse-include/watermarks
############################# Loyalty
loyalty:
z index: 7
left: 326
top: 462
width: 13.16
height: 34.63
alignment: center middle
font:
name: Beleren Bold
size: 14
color: white
loyalty cost 1:
z index: 7
left: 32
top: [ if has_four_abilities() then 297 else 335 ]
width: 13.16
height: 34.63
alignment: center middle
font:
name: Beleren Bold
size: 11
color: white
loyalty cost 2:
z index: 7
left: 32
top: [ if has_four_abilities() then 344 else 386 ]
width: 13.16
height: 34.63
alignment: center middle
font:
name: Beleren Bold
size: 11
color: white
loyalty cost 3:
z index: 7
left: 32
top: [ if has_four_abilities() then 391 else 435 ]
width: 13.16
height: 34.63
alignment: center middle
font:
name: Beleren Bold
size: 11
color: white
loyalty cost 4:
z index: 7
left: 32
top: 438
width: [ if has_four_abilities() then 13.16 else 0 ]
height: [ if has_four_abilities() then 34.63 else 0 ]
alignment: center middle
font:
name: Beleren Bold
size: 11
color: white
############################# Card sorting / numbering
set code:
left: 24
top: 498
width: 40
height: 10
z index: 1
font:
name: Relay-Medium
size: 7
color: white
weight: bold
############################# Copyright stuff
illustrator:
left: [ 44 + card_style.set_code.content_width ]
top: 497.5
width: 200
height: 10
z index: 1
font:
name: Beleren Small Caps Bold
size: 7.25
color: white
copyright:
right: 350
top: [ if card.pt != "" then 500 else 488 ]
width: 140
height: 10
z index: 2
visible: [not set.automatic_copyright]
alignment: middle right shrink-overflow
font:
name: Matrix
size: 7
color: white
weight: bold
############################################################## Extra card fields
extra card field:
type: text
name: card code
save value: false
script:
if set.automatic_card_numbers and not styling.remove_from_autocount then
forward_editor(prefix: card_number_m15() + "/" + card_count_m15() + " " + rarity_code() + " ", field: card.card_code_text)
else
combined_editor(field1: card.custom_card_number, separator: " " + rarity_code() + " ", field2: card.card_code_text)
extra card field:
type: choice
name: artist arrow
editable: false
save value: false
choice: white
extra card field:
type: choice
name: artist arrow
editable: false
save value: false
choice: white
extra card field:
type: choice
name: loyalty box
editable: false
choice: loyalty
save value: false
extra card field:
type: choice
name: stamp
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: foil stamp
choice: stamp
save value: false
editable: false
extra card field:
type: choice
name: foil layer
choice: foil
save value: false
editable: false
extra card field:
type: choice
name: loyalty cost box 1
editable: false
script: loyalty_image(card.loyalty_cost_1)
save value: false
extra card field:
type: choice
name: loyalty cost box 2
editable: false
script: loyalty_image(card.loyalty_cost_2)
save value: false
extra card field:
type: choice
name: loyalty cost box 3
editable: false
script: loyalty_image(card.loyalty_cost_3)
save value: false
extra card field:
type: choice
name: loyalty cost box 4
editable: false
script: loyalty_image(card.loyalty_cost_4)
save value: false
extra card field:
type: text
name: colon 1
editable: false
script: ":"
save value: false
extra card field:
type: text
name: colon 2
editable: false
script: ":"
save value: false
extra card field:
type: text
name: colon 3
editable: false
script: ":"
save value: false
extra card field:
type: text
name: colon 4
editable: false
script: ":"
save value: false
extra card field:
type: text
name: second text
editable: false
multi line: true
save value: false
script: card.text
extra card field:
type: choice
name: foil stamp
choice: stamp
save value: false
editable: false
extra card field:
type: choice
name: foil layer
choice: foil
save value: false
editable: false
extra card field:
type: multiple choice
name: stamp
empty choice: colorless
choice: white
choice: blue
choice: black
choice: red
choice:
name: green
line below: true
choice: artifact
choice: land
choice: multicolor
choice:
name: hybrid
line below: true
choice:
name: horizontal
type: radio
choice:
name: vertical
type: radio
choice:
name: radial
type: radio
choice:
name: diagonal
type: radio
choice:
name: overlay
type: radio
choice:
name: reversed
script: card_color_filter(value)
default: card_color(casting_cost: card.casting_cost, rules_text: card.rule_text, type: card.super_type, watermark: card.watermark, card_name: card.name)
extra card field:
type: text
name: auto copyright
script: set.copyright
save value: false
editable: false
show statistics: false
extra card field:
type: choice
name: flavor bar
choice: bar
editable: false
save value: false
show statistics: false
extra card field:
type: choice
name: vehicle overlay
choice: overlay
editable: false
save value: false
show statistics: false
extra card style:
card code:
left: 24
top: 488
width: 120
height: 10
z index: 1
font:
name: Relay-Medium
size: 7
color: white
weight: bold
artist arrow:
left: [ 28 + card_style.set_code.content_width ]
top: 500
width: 12
height: 7
z index: 1
render style: image
image: artist_arrow.png
pt box:
left: 285
top: 460
width: 77
height: 43
z index: 1
visible: [ card.pt != "" ]
render style: image
image: [ if is_vehicle() then "vpt.png" else card_ptbox() ]
foil layer:
left: 0
top : 0
width: 375
height: 523
z index: 3
render style: image
image: [if styling.overlay == "" then nil else styling.overlay + "/overlay.png"]
mask: [ if is_rare() then "foil_mask_rare.png" else "foil_mask.png" ]
stamp:
left: 165
top: 472
width: 46
height: 26
z index: 1
visible: [ is_rare() and styling.use_holofoil_stamps ]
render style: image
image: [ card_stamp() ]
mask: stamp_mask.png
foil stamp:
left: 165
top: 472
width: 46
height: 26
z index: 2
visible: [ is_rare() and styling.use_holofoil_stamps ]
render style: image
image: foil_stamp.png
loyalty cost box 1:
left: 18
top: [ if has_four_abilities() then 295 else 333 ]
width: 42
height: 40
z index: 6
render style: image
visible: [ card.loyalty_cost_1 !="" ]
choice images:
loyalty up: loyaltyup.png
loyalty down: loyaltydown.png
loyalty naught: loyaltynaught.png
loyalty cost box 2:
left: 18
top: [ if has_four_abilities() then 342 else 383 ]
width: 42
height: 40
z index: 6
render style: image
visible: [ card.loyalty_cost_2 !="" ]
choice images:
loyalty up: loyaltyup.png
loyalty down: loyaltydown.png
loyalty naught: loyaltynaught.png
loyalty cost box 3:
left: 18
top: [ if has_four_abilities() then 389 else 432 ]
width: 42
height: 40
z index: 6
render style: image
visible: [ card.loyalty_cost_3 !="" ]
choice images:
loyalty up: loyaltyup.png
loyalty down: loyaltydown.png
loyalty naught: loyaltynaught.png
loyalty cost box 4:
left: 18
top: 436
width: [ if has_four_abilities() then 42 else 0 ]
height: 40
z index: 6
render style: image
visible: [ card.loyalty_cost_4 !="" ]
choice images:
loyalty up: loyaltyup.png
loyalty down: loyaltydown.png
loyalty naught: loyaltynaught.png
colon 1:
left: 59
top: [ if has_four_abilities() then 309 else 347 ]
width: 5
height: 10
z index: 6
font:
name: MPlantin
size: 15
scale down to: 15
color: black
alignment: middle center
visible: [ card.loyalty_cost_1 !="" ]
colon 2:
left: 59
top: [ if has_four_abilities() then 356 else 397 ]
width: 5
height: 10
z index: 6
font:
name: MPlantin
size: 15
scale down to: 15
color: black
alignment: middle center
visible: [ card.loyalty_cost_2 !="" ]
colon 3:
left: 59
top: [ if has_four_abilities() then 403 else 446 ]
width: 5
height: 10
z index: 6
font:
name: MPlantin
size: 15
scale down to: 15
color: black
alignment: middle center
visible: [ card.loyalty_cost_3 !="" ]
colon 4:
left: 59
top: 450
width: [ if has_four_abilities() then 5 else 0 ]
height: 10
z index: 6
font:
name: MPlantin
size: 15
scale down to: 15
color: black
alignment: middle center
visible: [ card.loyalty_cost_4 !="" ]
second text:
left: 63
top: 293
width: 282
height: 183
font:
name: MPlantin
italic name: MPlantin-Italic
size: 14
scale down to: 6
color: black
symbol font:
name: [ styling.text_box_mana_symbols ]
size: 14
paragraph height: 47
alignment:
script:
if (styling.center_text == "short text only" and
not contains(match:"\n", card.rule_text) and
card.flavor_text == "<i-flavor></i-flavor>" and
card_style.text.content_lines <= 2) or
styling.center_text == "always"
then "middle center"
else "middle left"
z index: 3
mask: text_mask.png
padding left: 6
padding right: 4
padding bottom: 2
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
visible: [ has_four_abilities() ]
auto copyright:
right: 350
top: [ if card.pt != "" then 500 else 488 ]
width: 140
height: 10
z index: 2
alignment: middle right shrink-overflow
visible: [set.automatic_copyright]
font:
name: Matrix
size: 7
color: white
weight: bold
flavor bar:
left: 0
top: [ bar_equation() ]
width: 375
height: 1
z index: 1
render style: image
image: bar.png
visible: [ card.rule_text != "" and remove_tags(card.flavor_text) != "" and set.use_flavor_bar ]
vehicle overlay:
left: 0
top: 0
width: 375
height: 523
render style: image
image: [(if is_legend() then "legend/" else "") + "voverlay.png" ]
z index: 0
visible: [is_vehicle()]