diff --git a/img/frames/m15/sdcc15/bg.png b/img/frames/m15/sdcc15/bg.png
new file mode 100644
index 00000000..b1fd808c
Binary files /dev/null and b/img/frames/m15/sdcc15/bg.png differ
diff --git a/img/frames/m15/sdcc15/bgThumb.png b/img/frames/m15/sdcc15/bgThumb.png
new file mode 100644
index 00000000..b42c14b8
Binary files /dev/null and b/img/frames/m15/sdcc15/bgThumb.png differ
diff --git a/img/frames/m15/sdcc15/ciPip.svg b/img/frames/m15/sdcc15/ciPip.svg
new file mode 100644
index 00000000..39f3188d
--- /dev/null
+++ b/img/frames/m15/sdcc15/ciPip.svg
@@ -0,0 +1,11 @@
+
+
+
diff --git a/img/frames/m15/sdcc15/ciPipThumb.png b/img/frames/m15/sdcc15/ciPipThumb.png
new file mode 100644
index 00000000..18a57e0f
Binary files /dev/null and b/img/frames/m15/sdcc15/ciPipThumb.png differ
diff --git a/img/frames/m15/sdcc15/frame.svg b/img/frames/m15/sdcc15/frame.svg
new file mode 100644
index 00000000..f35aff9c
--- /dev/null
+++ b/img/frames/m15/sdcc15/frame.svg
@@ -0,0 +1,13 @@
+
+
+
diff --git a/img/frames/m15/sdcc15/frameThumb.png b/img/frames/m15/sdcc15/frameThumb.png
new file mode 100644
index 00000000..4ae54bd9
Binary files /dev/null and b/img/frames/m15/sdcc15/frameThumb.png differ
diff --git a/img/frames/m15/sdcc15/pt.svg b/img/frames/m15/sdcc15/pt.svg
new file mode 100644
index 00000000..52b82920
--- /dev/null
+++ b/img/frames/m15/sdcc15/pt.svg
@@ -0,0 +1,14 @@
+
+
+
diff --git a/img/frames/m15/sdcc15/ptThumb.png b/img/frames/m15/sdcc15/ptThumb.png
new file mode 100644
index 00000000..e753fe93
Binary files /dev/null and b/img/frames/m15/sdcc15/ptThumb.png differ
diff --git a/img/frames/m15/sdcc15/pw.svg b/img/frames/m15/sdcc15/pw.svg
new file mode 100644
index 00000000..2e3625c8
--- /dev/null
+++ b/img/frames/m15/sdcc15/pw.svg
@@ -0,0 +1,30 @@
+
+
+
diff --git a/img/frames/m15/sdcc15/pwThumb.png b/img/frames/m15/sdcc15/pwThumb.png
new file mode 100644
index 00000000..d1bc3047
Binary files /dev/null and b/img/frames/m15/sdcc15/pwThumb.png differ
diff --git a/img/frames/m15/sdcc15/pwTransform.svg b/img/frames/m15/sdcc15/pwTransform.svg
new file mode 100644
index 00000000..756e4bcd
--- /dev/null
+++ b/img/frames/m15/sdcc15/pwTransform.svg
@@ -0,0 +1,34 @@
+
+
+
diff --git a/img/frames/m15/sdcc15/pwTransformThumb.png b/img/frames/m15/sdcc15/pwTransformThumb.png
new file mode 100644
index 00000000..9d2debc9
Binary files /dev/null and b/img/frames/m15/sdcc15/pwTransformThumb.png differ
diff --git a/img/frames/m15/sdcc15/transformBack.svg b/img/frames/m15/sdcc15/transformBack.svg
new file mode 100644
index 00000000..939ad435
--- /dev/null
+++ b/img/frames/m15/sdcc15/transformBack.svg
@@ -0,0 +1,19 @@
+
+
+
diff --git a/img/frames/m15/sdcc15/transformBackThumb.png b/img/frames/m15/sdcc15/transformBackThumb.png
new file mode 100644
index 00000000..22861953
Binary files /dev/null and b/img/frames/m15/sdcc15/transformBackThumb.png differ
diff --git a/img/frames/m15/sdcc15/transformFront.svg b/img/frames/m15/sdcc15/transformFront.svg
new file mode 100644
index 00000000..21c0d89a
--- /dev/null
+++ b/img/frames/m15/sdcc15/transformFront.svg
@@ -0,0 +1,19 @@
+
+
+
diff --git a/img/frames/m15/sdcc15/transformFrontThumb.png b/img/frames/m15/sdcc15/transformFrontThumb.png
new file mode 100644
index 00000000..b606262d
Binary files /dev/null and b/img/frames/m15/sdcc15/transformFrontThumb.png differ
diff --git a/js/frames/groupDFC.js b/js/frames/groupDFC.js
index 309a292c..9ad2e27d 100644
--- a/js/frames/groupDFC.js
+++ b/js/frames/groupDFC.js
@@ -3,6 +3,8 @@ loadFramePacks([
{name:'Transform (Back)', value:'M15TransformBack'},
{name:'Color Identity Pips', value:'M15CIPips'},
{name:'Transform Icons', value:'M15TransformTypes'},
+ {name:'Other Frames', value:'disabled'},
+ {name:'SDCC15 (Blackout)', value:'TransformSDCC15'},
{name:'Addons', value:'disabled'},
{name:'Legend Crowns', value:'TransformLegendCrowns'},
{name:'Floating Legend Crowns', value:'TransformLegendCrownsFloating'},
diff --git a/js/frames/groupShowcase-5.js b/js/frames/groupShowcase-5.js
index e387a3e7..e7ff560d 100644
--- a/js/frames/groupShowcase-5.js
+++ b/js/frames/groupShowcase-5.js
@@ -21,6 +21,7 @@ loadFramePacks([
{name:'Amonkhet Invocations (u/Smyris)', value:'Invocation'},
{name:'Kaladesh Inventions', value:'Invention'},
{name:'BFZ Expeditions (2015)', value:'ExpeditionBFZ-1'},
+ {name:'SDCC15 (Blackout)', value:'SDCC15'},
{name:'Addons', value:'disabled'},
{name:'Legend Crowns', value:'M15LegendCrowns'},
{name:'Floating Legend Crowns', value:'M15LegendCrownsFloating'},
diff --git a/js/frames/packSDCC15.js b/js/frames/packSDCC15.js
new file mode 100644
index 00000000..0a822b68
--- /dev/null
+++ b/js/frames/packSDCC15.js
@@ -0,0 +1,33 @@
+//defines available frames
+availableFrames = [
+ {name:'Frame', src:'/img/frames/m15/sdcc15/frame.svg'},
+ {name:'Power/Toughness', src:'/img/frames/m15/sdcc15/pt.svg'}
+];
+//disables/enables the "Load Frame Version" button
+document.querySelector('#loadFrameVersion').disabled = false;
+//defines process for loading this version, if applicable
+document.querySelector('#loadFrameVersion').onclick = async function() {
+ //resets things so that every frame doesn't have to
+ await resetCardIrregularities();
+ //sets card version
+ card.version = 'sdcc15';
+ //art bounds
+ card.artBounds = {x:0.0394, y:0.0281, width:0.9214, height:0.8929};
+ autoFitArt();
+ //set symbol bounds
+ card.setSymbolBounds = {x:0.9213, y:0.5910, width:0.12, height:0.0410, vertical:'center', horizontal: 'right'};
+ resetSetSymbol();
+ //watermark bounds
+ card.watermarkBounds = {x:0.5, y:0.7762, width:0.75, height:0.2305};
+ resetWatermark();
+ //text
+ loadTextOptions({
+ mana: {name:'Mana Cost', text:'', y:0.0613, width:0.9292, height:71/2100, oneLine:true, size:71/1638, align:'right', manaCost:true, manaSpacing:0},
+ title: {name:'Title', text:'', x:0.0854, y:0.0522, width:0.8292, height:0.0543, oneLine:true, font:'belerenb', size:0.0381, color:'#aaa'},
+ type: {name:'Type', text:'', x:0.0854, y:0.5664, width:0.8292, height:0.0543, oneLine:true, font:'belerenb', size:0.0324, color:'#aaa'},
+ rules: {name:'Rules Text', text:'', x:0.086, y:0.6303, width:0.828, height:0.2875, size:0.0362, color:'#aaa'},
+ pt: {name:'Power/Toughness', text:'', x:0.7928, y:0.902, width:0.1367, height:0.0372, size:0.0372, font:'belerenbsc', oneLine:true, align:'center', color:'#aaa'}
+ });
+}
+//loads available frames
+loadFramePack();
\ No newline at end of file
diff --git a/js/frames/packTransformSDCC15.js b/js/frames/packTransformSDCC15.js
new file mode 100644
index 00000000..1894d896
--- /dev/null
+++ b/js/frames/packTransformSDCC15.js
@@ -0,0 +1,36 @@
+//defines available frames
+availableFrames = [
+ {name:'Frame', src:'/img/frames/m15/sdcc15/transformFront.svg'},
+ {name:'Frame', src:'/img/frames/m15/sdcc15/transformBack.svg'},
+ {name:'Power/Toughness', src:'/img/frames/m15/sdcc15/pt.svg'},
+ {name:'Frame', src:'/img/frames/m15/sdcc15/ciPip.svg'}
+];
+//disables/enables the "Load Frame Version" button
+document.querySelector('#loadFrameVersion').disabled = false;
+//defines process for loading this version, if applicable
+document.querySelector('#loadFrameVersion').onclick = async function() {
+ //resets things so that every frame doesn't have to
+ await resetCardIrregularities();
+ //sets card version
+ card.version = 'transformSDCC15';
+ //art bounds
+ card.artBounds = {x:0.0394, y:0.0281, width:0.9214, height:0.8929};
+ autoFitArt();
+ //set symbol bounds
+ card.setSymbolBounds = {x:0.9213, y:0.5910, width:0.12, height:0.0410, vertical:'center', horizontal: 'right'};
+ resetSetSymbol();
+ //watermark bounds
+ card.watermarkBounds = {x:0.5, y:0.7762, width:0.75, height:0.2305};
+ resetWatermark();
+ //text
+ loadTextOptions({
+ mana: {name:'Mana Cost', text:'', y:0.0613, width:0.9292, height:71/2100, oneLine:true, size:71/1638, align:'right', manaCost:true, manaSpacing:0},
+ title: {name:'Title', text:'', x:0.16, y:0.0522, width:0.7547, height:0.0543, oneLine:true, font:'belerenb', size:0.0381, color:'#aaa'},
+ type: {name:'Type', text:'', x:0.0854, y:0.5664, width:0.8292, height:0.0543, oneLine:true, font:'belerenb', size:0.0324, color:'#aaa'},
+ rules: {name:'Rules Text', text:'', x:0.086, y:0.6303, width:0.828, height:0.2875, size:0.0362, color:'#aaa'},
+ reminder: {name:'Reverse PT', text:'', x:0.086, y:0.842, width:0.838, height:0.0362, size:0.0291, oneLine:true, align:'right', font:'belerenbsc', color:'#aaa'},
+ pt: {name:'Power/Toughness', text:'', x:0.7928, y:0.902, width:0.1367, height:0.0372, size:0.0372, font:'belerenbsc', oneLine:true, align:'center', color:'#aaa'}
+ });
+}
+//loads available frames
+loadFramePack();
\ No newline at end of file