{"id":1487,"date":"2026-02-06T00:28:26","date_gmt":"2026-02-05T19:28:26","guid":{"rendered":"https:\/\/wguportalstudent.us\/blog\/?p=1487"},"modified":"2026-02-20T23:05:26","modified_gmt":"2026-02-20T18:05:26","slug":"sfm-compile","status":"publish","type":"post","link":"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/","title":{"rendered":"SFM Compile Guide, How to Fix Models, Textures, and Errors"},"content":{"rendered":"<style>.kb-row-layout-id1487_53c86a-2d > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id1487_53c86a-2d > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id1487_53c86a-2d > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id1487_53c86a-2d > .kt-row-layout-overlay{opacity:0.30;}@media all and (max-width: 1024px){.kb-row-layout-id1487_53c86a-2d > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}@media all and (max-width: 767px){.kb-row-layout-id1487_53c86a-2d > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id1487_53c86a-2d alignnone wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-1-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top\">\n<style>.kadence-column1487_110647-11 > .kt-inside-inner-col,.kadence-column1487_110647-11 > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column1487_110647-11 > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column1487_110647-11 > .kt-inside-inner-col{flex-direction:column;}.kadence-column1487_110647-11 > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column1487_110647-11 > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column1487_110647-11{position:relative;}@media all and (max-width: 1024px){.kadence-column1487_110647-11 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column1487_110647-11 > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column1487_110647-11\"><div class=\"kt-inside-inner-col\"><style>.wp-block-kadence-advancedheading.kt-adv-heading1487_40cd11-04, .wp-block-kadence-advancedheading.kt-adv-heading1487_40cd11-04[data-kb-block=\"kb-adv-heading1487_40cd11-04\"]{padding-top:var(--global-kb-spacing-xxs, 0.5rem);padding-right:var(--global-kb-spacing-xxs, 0.5rem);padding-bottom:var(--global-kb-spacing-xxs, 0.5rem);padding-left:var(--global-kb-spacing-xxs, 0.5rem);margin-top:var(--global-kb-spacing-xxs, 0.5rem);margin-right:var(--global-kb-spacing-xxs, 0.5rem);margin-bottom:var(--global-kb-spacing-xxs, 0.5rem);margin-left:var(--global-kb-spacing-xxs, 0.5rem);text-align:center;font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading1487_40cd11-04 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading1487_40cd11-04[data-kb-block=\"kb-adv-heading1487_40cd11-04\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading1487_40cd11-04 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading1487_40cd11-04[data-kb-block=\"kb-adv-heading1487_40cd11-04\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h1 class=\"kt-adv-heading1487_40cd11-04 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading1487_40cd11-04\">SFM Compile Made Simple, Fix Models, Textures, and Crashes<\/h1>\n<\/div><\/div>\n\n<\/div><\/div>\n\n\n<p>SFM Compile is the backbone of custom content in Source Filmmaker. If you ever loaded a model and saw pink textures or crashes, the issue was compilation. This guide explains sfm compile, and even common miss-typed searches like <a href=\"https:\/\/wguportalstudent.us\/blog\/category\/gaming\/\">sfm compil <\/a>in clear language.<\/p>\n\n\n\n<p class=\"has-text-align-center\">Everything here is easy to follow and written for beginners.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Quick Summary<\/h2>\n\n\n<style>.wp-block-kadence-iconlist.kt-svg-icon-list-items1487_567b52-53:not(.this-stops-third-party-issues){margin-top:0px;margin-bottom:0px;}.wp-block-kadence-iconlist.kt-svg-icon-list-items1487_567b52-53 ul.kt-svg-icon-list:not(.this-prevents-issues):not(.this-stops-third-party-issues):not(.tijsloc){margin-top:var(--global-kb-spacing-xxs, 0.5rem);margin-right:var(--global-kb-spacing-xxs, 0.5rem);margin-bottom:var(--global-kb-spacing-xxs, 0.5rem);margin-left:var(--global-kb-spacing-xxs, 0.5rem);padding-top:var(--global-kb-spacing-xxs, 0.5rem);padding-right:var(--global-kb-spacing-xxs, 0.5rem);padding-bottom:var(--global-kb-spacing-xxs, 0.5rem);padding-left:var(--global-kb-spacing-xxs, 0.5rem);}.wp-block-kadence-iconlist.kt-svg-icon-list-items1487_567b52-53 ul.kt-svg-icon-list{grid-row-gap:5px;}.wp-block-kadence-iconlist.kt-svg-icon-list-items1487_567b52-53 .kb-svg-icon-wrap{color:var(--global-palette1, #3182CE);}.wp-block-kadence-iconlist.kt-svg-icon-list-items1487_567b52-53 ul.kt-svg-icon-list .kt-svg-icon-list-item-wrap .kt-svg-icon-list-single{margin-right:10px;}.kt-svg-icon-list-items1487_567b52-53 ul.kt-svg-icon-list .kt-svg-icon-list-level-0 .kt-svg-icon-list-single svg{font-size:20px;}<\/style>\n<div class=\"wp-block-kadence-iconlist kt-svg-icon-list-items kt-svg-icon-list-items1487_567b52-53 kt-svg-icon-list-columns-1 alignnone kt-list-icon-aligntop\"><ul class=\"kt-svg-icon-list\"><style>.kt-svg-icon-list-item-1487_db0069-58 .kt-svg-icon-list-text mark.kt-highlight{background-color:unset;font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}<\/style>\n<li class=\"wp-block-kadence-listitem kt-svg-icon-list-item-wrap kt-svg-icon-list-item-1487_db0069-58\"><span class=\"kb-svg-icon-wrap kb-svg-icon-fe_arrowRightCircle kt-svg-icon-list-single\"><svg viewBox=\"0 0 24 24\"  fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"  aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 16 16 12 12 8\"\/><line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"\/><\/svg><\/span><span class=\"kt-svg-icon-list-text\">SFM compile converts raw files into formats that Source Filmmaker can read<\/span><\/li>\n\n\n<style>.kt-svg-icon-list-item-1487_7fe380-c5 .kt-svg-icon-list-text mark.kt-highlight{background-color:unset;font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}<\/style>\n<li class=\"wp-block-kadence-listitem kt-svg-icon-list-item-wrap kt-svg-icon-list-item-1487_7fe380-c5\"><span class=\"kb-svg-icon-wrap kb-svg-icon-fe_arrowRightCircle kt-svg-icon-list-single\"><svg viewBox=\"0 0 24 24\"  fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"  aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 16 16 12 12 8\"\/><line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"\/><\/svg><\/span><span class=\"kt-svg-icon-list-text\">Without compiling, custom models and animations will not work<\/span><\/li>\n\n\n<style>.kt-svg-icon-list-item-1487_142fa1-ff .kt-svg-icon-list-text mark.kt-highlight{background-color:unset;font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}<\/style>\n<li class=\"wp-block-kadence-listitem kt-svg-icon-list-item-wrap kt-svg-icon-list-item-1487_142fa1-ff\"><span class=\"kb-svg-icon-wrap kb-svg-icon-fe_arrowRightCircle kt-svg-icon-list-single\"><svg viewBox=\"0 0 24 24\"  fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"  aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 16 16 12 12 8\"\/><line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"\/><\/svg><\/span><span class=\"kt-svg-icon-list-text\">Learning sfmcompile saves time, prevents errors, and improves animation quality<\/span><\/li>\n<\/ul><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">What Is SFM Compile?<\/h2>\n\n\n<style>.wp-block-kadence-image.kb-image1487_429240-1d:not(.kb-specificity-added):not(.kb-extra-specificity-added){margin-top:var(--global-kb-spacing-xxs, 0.5rem);margin-right:var(--global-kb-spacing-xxs, 0.5rem);margin-bottom:var(--global-kb-spacing-xxs, 0.5rem);margin-left:var(--global-kb-spacing-xxs, 0.5rem);}.kb-image1487_429240-1d:not(.kb-image-is-ratio-size) .kb-img, .kb-image1487_429240-1d.kb-image-is-ratio-size{padding-top:var(--global-kb-spacing-xxs, 0.5rem);padding-right:var(--global-kb-spacing-xxs, 0.5rem);padding-bottom:var(--global-kb-spacing-xxs, 0.5rem);padding-left:var(--global-kb-spacing-xxs, 0.5rem);}.kb-image1487_429240-1d .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image1487_429240-1d\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"755\" height=\"424\" src=\"https:\/\/wguportalstudent.us\/blog\/wp-content\/uploads\/2026\/02\/SFM-Compile.webp\" alt=\"SFM-Compile\" class=\"kb-img wp-image-1488\" srcset=\"https:\/\/wguportalstudent.us\/blog\/wp-content\/uploads\/2026\/02\/SFM-Compile.webp 755w, https:\/\/wguportalstudent.us\/blog\/wp-content\/uploads\/2026\/02\/SFM-Compile-300x168.webp 300w\" sizes=\"auto, (max-width: 755px) 100vw, 755px\" \/><\/figure><\/div>\n\n\n\n<p>SFM compile is the process of turning raw 3D assets into usable files for Source Filmmaker. You start with unfinished files like models, textures, and animations. After compiling, you get finalized assets that SFM loads safely.<\/p>\n\n\n\n<p>Think of it like baking.<br>Raw ingredients go in.<br>The recipe guides the steps.<br>The finished result is ready to use.<\/p>\n\n\n\n<p>Without sfmcompile:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Models fail to load<\/li>\n\n\n\n<li>Textures appear purple<\/li>\n\n\n\n<li>Animations break<\/li>\n\n\n\n<li>SFM may crash<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Why SFM Compile Is Required<\/h2>\n\n\n\n<p>Source Filmmaker runs on the Source Engine. This engine only reads compiled data. Other 3D software can import files directly. SFM cannot.<\/p>\n\n\n\n<p>Compilation bundles:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mesh data<\/li>\n\n\n\n<li>Bone structure<\/li>\n\n\n\n<li>Texture paths<\/li>\n\n\n\n<li>Physics rules<\/li>\n<\/ul>\n\n\n\n<p>All of this is packed into a single usable model. That is why sfmcompile is mandatory, not optional.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">File Types Used in SFM Compile<\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Common Input and Output Files<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>File Type<\/th><th>Purpose<\/th><\/tr><\/thead><tbody><tr><td>.smd<\/td><td>Meshes and animations<\/td><\/tr><tr><td>.dmx<\/td><td>Modern animation data<\/td><\/tr><tr><td>.qc<\/td><td>Compile instructions<\/td><\/tr><tr><td>.mdl<\/td><td>Final compiled model<\/td><\/tr><tr><td>.vtf<\/td><td>Texture image<\/td><\/tr><tr><td>.vmt<\/td><td>Texture settings<\/td><\/tr><tr><td>.phy<\/td><td>Collision data<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Focus on models first. Textures come next. Maps are optional for most projects.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Main Tools Used for SFM Compile<\/h2>\n\n\n\n<p>You only need free tools trusted by the community.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Core Compilation Tools<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Tool<\/th><th>Purpose<\/th><th>Notes<\/th><\/tr><\/thead><tbody><tr><td>Studiomdl<\/td><td>Command-line compiler<\/td><td>Official Valve tool<\/td><\/tr><tr><td>Crowbar<\/td><td>GUI compiler<\/td><td>Beginner-friendly<\/td><\/tr><tr><td>HLMV<\/td><td>Model preview<\/td><td>Checks bones and textures<\/td><\/tr><tr><td>VTFEdit<\/td><td>Texture conversion<\/td><td>Creates VTF files<\/td><\/tr><tr><td>Notepad++<\/td><td>QC editing<\/td><td>Clean and reliable<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Crowbar is best for beginners. Studiomdl is faster once you know commands.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Preparing Files Before SFM Compile<\/h2>\n\n\n\n<p>A good setup saves hours of fixing errors.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Recommended Folder Structure<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>models\/my_model\/\nmaterials\/models\/my_model\/\nanimations\/\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Important Rules<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use forward slashes only<\/li>\n\n\n\n<li>Keep paths short<\/li>\n\n\n\n<li>Match folder names exactly<\/li>\n\n\n\n<li>Avoid absolute paths<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Pre-Compile Checklist<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>All SMD files are present<\/li>\n\n\n\n<li>QC file saved correctly<\/li>\n\n\n\n<li>Textures placed in the materials folder<\/li>\n\n\n\n<li>VMT paths checked<\/li>\n\n\n\n<li>Test preview ready<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Understanding the QC File<\/h2>\n\n\n\n<p>The QC file tells it what to build.<\/p>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\">Common QC Commands<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Command<\/th><th>Purpose<\/th><\/tr><\/thead><tbody><tr><td>$modelname<\/td><td>Sets model output name<\/td><\/tr><tr><td>$body<\/td><td>Links main mesh<\/td><\/tr><tr><td>$cdmaterials<\/td><td>Points to textures<\/td><\/tr><tr><td>$sequence<\/td><td>Defines animations<\/td><\/tr><tr><td>$collisionmodel<\/td><td>Adds physics<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>A clean QC file prevents most sfmcomp errors.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Fixing Texture Problems Early<\/h2>\n\n\n\n<p>Texture issues are the most common problem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why Purple Textures Appear<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Wrong folder name<\/li>\n\n\n\n<li>Missing VTF files<\/li>\n\n\n\n<li>Incorrect VMT paths<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Correct Path Example<\/h3>\n\n\n\n<p>Bad:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\textures\\model_diffuse\n<\/code><\/pre>\n\n\n\n<p>Good:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>models\/my_model\/model_diffuse\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Helpful Tips<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Edit VMT files with Notepad<\/li>\n\n\n\n<li>Use find and replace for batches<\/li>\n\n\n\n<li>Test one texture in HLMV first<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">How to SFM Compile Step by Step<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Method 1, Using Studiomdl<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the Source SDK bin folder<\/li>\n\n\n\n<li>Launch Command Prompt<\/li>\n\n\n\n<li>Run:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>studiomdl -game tf_movies model.qc\n<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Wait for the success message<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Method 2, Using Crowbar<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open Crowbar<\/li>\n\n\n\n<li>Select the Compile tab<\/li>\n\n\n\n<li>Set the SFM game folder<\/li>\n\n\n\n<li>Drag your QC file<\/li>\n\n\n\n<li>Click Compile<\/li>\n<\/ol>\n\n\n\n<p>Both methods produce the same result.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Testing Your Compiled Model<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Check in HLMV<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Rotate the model<\/li>\n\n\n\n<li>Look for missing textures<\/li>\n\n\n\n<li>Test bones<\/li>\n\n\n\n<li>Preview physics<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Test Inside Source Filmmaker<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Open SFM<\/li>\n\n\n\n<li>Browse to your model<\/li>\n\n\n\n<li>Drag into the scene<\/li>\n\n\n\n<li>Test posing and animations<\/li>\n<\/ul>\n\n\n\n<p>Fix problems early and recompile.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Common SFM Compile Errors and Fixes<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Error<\/th><th>Cause<\/th><th>Fix<\/th><\/tr><\/thead><tbody><tr><td>Texture not found<\/td><td>Wrong VMT path<\/td><td>Fix material folders<\/td><\/tr><tr><td>Missing physics<\/td><td>No collision model<\/td><td>Add $collisionmodel<\/td><\/tr><tr><td>Invalid CDMaterials<\/td><td>Backslashes used<\/td><td>Use forward slashes<\/td><\/tr><tr><td>SMD not found<\/td><td>File moved<\/td><td>Update QC paths<\/td><\/tr><tr><td>Crash on load<\/td><td>Broken compile<\/td><td>Recompile clean<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Pro Tips for Better SFM Compile Results<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Speed and Stability Tips<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Store files on an SSD<\/li>\n\n\n\n<li>Compile after small changes<\/li>\n\n\n\n<li>Save Crowbar presets<\/li>\n\n\n\n<li>Avoid large changes at once<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Batch Compile Workflow<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Place multiple QC files together<\/li>\n\n\n\n<li>Compile all at once<\/li>\n\n\n\n<li>Let the tools process everything<\/li>\n<\/ul>\n\n\n\n<p>This saves time on large projects.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">How SFM Compile Affects Animation Quality<\/h2>\n\n\n\n<p>Bad compilation causes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Broken rigs<\/li>\n\n\n\n<li>Low-quality textures<\/li>\n\n\n\n<li>Slow scene loading<\/li>\n<\/ul>\n\n\n\n<p>Proper sfmcompile ensures:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Smooth posing<\/li>\n\n\n\n<li>Stable animations<\/li>\n\n\n\n<li>Faster workflow<\/li>\n<\/ul>\n\n\n\n<p>Good compiling equals better final videos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Why Learning SFM Compile Is Worth It<\/h2>\n\n\n\n<p>Once you understand sfm compil:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Custom assets work every time<\/li>\n\n\n\n<li>Errors become easy to fix<\/li>\n\n\n\n<li>Creative freedom increases<\/li>\n<\/ul>\n\n\n\n<p>You stop relying on stock assets. You gain full control.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">FAQs About SFM Compile<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What is SFM compile used for?<\/h3>\n\n\n\n<p>It converts raw 3D files into formats Source Filmmaker can load and animate.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Which formats does sfmcompile support?<\/h3>\n\n\n\n<p>It mainly uses SMD or DMX files and outputs MDL files with support data.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why do models show purple textures?<\/h3>\n\n\n\n<p>That means textures are missing or VMT paths are incorrect.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I use sfm compile without Crowbar?<\/h3>\n\n\n\n<p>Yes. Studiomdl works alone. Crowbar just simplifies the process.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Is programming knowledge required?<\/h3>\n\n\n\n<p>No. Basic text editing is enough for most models.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">Final Thoughts<\/h2>\n\n\n\n<p>SFM compile is the key skill every Source Filmmaker user must learn. With clean folders, a proper QC file, and correct texture paths, compiling becomes routine. Once it clicks, sfmcomp stops feeling technical and starts feeling powerful.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SFM Compile Made Simple, Fix Models, Textures, and Crashes SFM Compile is the backbone of custom content in Source Filmmaker. If you ever loaded a model and saw pink textures&#8230;<\/p>\n","protected":false},"author":4,"featured_media":1488,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"hide","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[58],"tags":[],"class_list":["post-1487","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gaming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SFM Compile Guide, How to Fix Models, Textures, and Errors<\/title>\n<meta name=\"description\" content=\"Learn what SFM compile is, how sfmcompile works, and how to fix models, textures, and errors in Source Filmmaker step by step.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SFM Compile Guide, How to Fix Models, Textures, and Errors\" \/>\n<meta property=\"og:description\" content=\"Learn what SFM compile is, how sfmcompile works, and how to fix models, textures, and errors in Source Filmmaker step by step.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/\" \/>\n<meta property=\"og:site_name\" content=\"WGU Student Portal\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-05T19:28:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-20T18:05:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wguportalstudent.us\/blog\/wp-content\/uploads\/2026\/02\/SFM-Compile.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"755\" \/>\n\t<meta property=\"og:image:height\" content=\"424\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Aiden Cole\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Aiden Cole\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/sfm-compile\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/sfm-compile\\\/\"},\"author\":{\"name\":\"Aiden Cole\",\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/#\\\/schema\\\/person\\\/2e754e181a02216f6faabcb584496f43\"},\"headline\":\"SFM Compile Guide, How to Fix Models, Textures, and Errors\",\"datePublished\":\"2026-02-05T19:28:26+00:00\",\"dateModified\":\"2026-02-20T18:05:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/sfm-compile\\\/\"},\"wordCount\":877,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/sfm-compile\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/SFM-Compile.webp\",\"articleSection\":[\"Gaming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/sfm-compile\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/sfm-compile\\\/\",\"url\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/sfm-compile\\\/\",\"name\":\"SFM Compile Guide, How to Fix Models, Textures, and Errors\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/sfm-compile\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/sfm-compile\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/SFM-Compile.webp\",\"datePublished\":\"2026-02-05T19:28:26+00:00\",\"dateModified\":\"2026-02-20T18:05:26+00:00\",\"description\":\"Learn what SFM compile is, how sfmcompile works, and how to fix models, textures, and errors in Source Filmmaker step by step.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/sfm-compile\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/sfm-compile\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/sfm-compile\\\/#primaryimage\",\"url\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/SFM-Compile.webp\",\"contentUrl\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/SFM-Compile.webp\",\"width\":755,\"height\":424,\"caption\":\"SFM-Compile\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/sfm-compile\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SFM Compile Guide, How to Fix Models, Textures, and Errors\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/\",\"name\":\"WGU Student Portal\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/#organization\",\"name\":\"WGU Student Portal\",\"url\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/WGU-Student-Portal-Logoooo.webp\",\"contentUrl\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/WGU-Student-Portal-Logoooo.webp\",\"width\":960,\"height\":213,\"caption\":\"WGU Student Portal\"},\"image\":{\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/#\\\/schema\\\/person\\\/2e754e181a02216f6faabcb584496f43\",\"name\":\"Aiden Cole\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b087d38d62cf318cd45ea0bb122fc0d662dadd46c4c4ce2280b7be62dd980f1b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b087d38d62cf318cd45ea0bb122fc0d662dadd46c4c4ce2280b7be62dd980f1b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b087d38d62cf318cd45ea0bb122fc0d662dadd46c4c4ce2280b7be62dd980f1b?s=96&d=mm&r=g\",\"caption\":\"Aiden Cole\"},\"description\":\"Aiden Cole writes about online games &amp; gadgets with a focus on practical tips, honest breakdowns, and easy-to-follow guides. His goal is to help players enjoy the games they love.\",\"sameAs\":[\"http:\\\/\\\/wguportalstudent.us\"],\"url\":\"https:\\\/\\\/wguportalstudent.us\\\/blog\\\/author\\\/aiden-cole\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SFM Compile Guide, How to Fix Models, Textures, and Errors","description":"Learn what SFM compile is, how sfmcompile works, and how to fix models, textures, and errors in Source Filmmaker step by step.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/","og_locale":"en_US","og_type":"article","og_title":"SFM Compile Guide, How to Fix Models, Textures, and Errors","og_description":"Learn what SFM compile is, how sfmcompile works, and how to fix models, textures, and errors in Source Filmmaker step by step.","og_url":"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/","og_site_name":"WGU Student Portal","article_published_time":"2026-02-05T19:28:26+00:00","article_modified_time":"2026-02-20T18:05:26+00:00","og_image":[{"width":755,"height":424,"url":"https:\/\/wguportalstudent.us\/blog\/wp-content\/uploads\/2026\/02\/SFM-Compile.webp","type":"image\/webp"}],"author":"Aiden Cole","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Aiden Cole","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/#article","isPartOf":{"@id":"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/"},"author":{"name":"Aiden Cole","@id":"https:\/\/wguportalstudent.us\/blog\/#\/schema\/person\/2e754e181a02216f6faabcb584496f43"},"headline":"SFM Compile Guide, How to Fix Models, Textures, and Errors","datePublished":"2026-02-05T19:28:26+00:00","dateModified":"2026-02-20T18:05:26+00:00","mainEntityOfPage":{"@id":"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/"},"wordCount":877,"commentCount":0,"publisher":{"@id":"https:\/\/wguportalstudent.us\/blog\/#organization"},"image":{"@id":"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/#primaryimage"},"thumbnailUrl":"https:\/\/wguportalstudent.us\/blog\/wp-content\/uploads\/2026\/02\/SFM-Compile.webp","articleSection":["Gaming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/wguportalstudent.us\/blog\/sfm-compile\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/","url":"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/","name":"SFM Compile Guide, How to Fix Models, Textures, and Errors","isPartOf":{"@id":"https:\/\/wguportalstudent.us\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/#primaryimage"},"image":{"@id":"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/#primaryimage"},"thumbnailUrl":"https:\/\/wguportalstudent.us\/blog\/wp-content\/uploads\/2026\/02\/SFM-Compile.webp","datePublished":"2026-02-05T19:28:26+00:00","dateModified":"2026-02-20T18:05:26+00:00","description":"Learn what SFM compile is, how sfmcompile works, and how to fix models, textures, and errors in Source Filmmaker step by step.","breadcrumb":{"@id":"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wguportalstudent.us\/blog\/sfm-compile\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/#primaryimage","url":"https:\/\/wguportalstudent.us\/blog\/wp-content\/uploads\/2026\/02\/SFM-Compile.webp","contentUrl":"https:\/\/wguportalstudent.us\/blog\/wp-content\/uploads\/2026\/02\/SFM-Compile.webp","width":755,"height":424,"caption":"SFM-Compile"},{"@type":"BreadcrumbList","@id":"https:\/\/wguportalstudent.us\/blog\/sfm-compile\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wguportalstudent.us\/blog\/"},{"@type":"ListItem","position":2,"name":"SFM Compile Guide, How to Fix Models, Textures, and Errors"}]},{"@type":"WebSite","@id":"https:\/\/wguportalstudent.us\/blog\/#website","url":"https:\/\/wguportalstudent.us\/blog\/","name":"WGU Student Portal","description":"","publisher":{"@id":"https:\/\/wguportalstudent.us\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wguportalstudent.us\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/wguportalstudent.us\/blog\/#organization","name":"WGU Student Portal","url":"https:\/\/wguportalstudent.us\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wguportalstudent.us\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/wguportalstudent.us\/blog\/wp-content\/uploads\/2025\/09\/WGU-Student-Portal-Logoooo.webp","contentUrl":"https:\/\/wguportalstudent.us\/blog\/wp-content\/uploads\/2025\/09\/WGU-Student-Portal-Logoooo.webp","width":960,"height":213,"caption":"WGU Student Portal"},"image":{"@id":"https:\/\/wguportalstudent.us\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/wguportalstudent.us\/blog\/#\/schema\/person\/2e754e181a02216f6faabcb584496f43","name":"Aiden Cole","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/b087d38d62cf318cd45ea0bb122fc0d662dadd46c4c4ce2280b7be62dd980f1b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b087d38d62cf318cd45ea0bb122fc0d662dadd46c4c4ce2280b7be62dd980f1b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b087d38d62cf318cd45ea0bb122fc0d662dadd46c4c4ce2280b7be62dd980f1b?s=96&d=mm&r=g","caption":"Aiden Cole"},"description":"Aiden Cole writes about online games &amp; gadgets with a focus on practical tips, honest breakdowns, and easy-to-follow guides. His goal is to help players enjoy the games they love.","sameAs":["http:\/\/wguportalstudent.us"],"url":"https:\/\/wguportalstudent.us\/blog\/author\/aiden-cole\/"}]}},"taxonomy_info":{"category":[{"value":58,"label":"Gaming"}]},"featured_image_src_large":["https:\/\/wguportalstudent.us\/blog\/wp-content\/uploads\/2026\/02\/SFM-Compile.webp",755,424,false],"author_info":{"display_name":"Aiden Cole","author_link":"https:\/\/wguportalstudent.us\/blog\/author\/aiden-cole\/"},"comment_info":0,"category_info":[{"term_id":58,"name":"Gaming","slug":"gaming","term_group":0,"term_taxonomy_id":58,"taxonomy":"category","description":"Find quick guides, game reviews, and easy tips for online games. Discover new titles, improve your gameplay, and stay updated with the latest gaming trends.\u00a0Explore gaming for<a href=\"https:\/\/wguportalstudent.us\/\"> students<\/a>, game design and career insights, plus tips on gaming productivity and maintaining a healthy study-gaming balance.","parent":0,"count":49,"filter":"raw","cat_ID":58,"category_count":49,"category_description":"Find quick guides, game reviews, and easy tips for online games. Discover new titles, improve your gameplay, and stay updated with the latest gaming trends.\u00a0Explore gaming for<a href=\"https:\/\/wguportalstudent.us\/\"> students<\/a>, game design and career insights, plus tips on gaming productivity and maintaining a healthy study-gaming balance.","cat_name":"Gaming","category_nicename":"gaming","category_parent":0}],"tag_info":false,"_links":{"self":[{"href":"https:\/\/wguportalstudent.us\/blog\/wp-json\/wp\/v2\/posts\/1487","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wguportalstudent.us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wguportalstudent.us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wguportalstudent.us\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/wguportalstudent.us\/blog\/wp-json\/wp\/v2\/comments?post=1487"}],"version-history":[{"count":12,"href":"https:\/\/wguportalstudent.us\/blog\/wp-json\/wp\/v2\/posts\/1487\/revisions"}],"predecessor-version":[{"id":1905,"href":"https:\/\/wguportalstudent.us\/blog\/wp-json\/wp\/v2\/posts\/1487\/revisions\/1905"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wguportalstudent.us\/blog\/wp-json\/wp\/v2\/media\/1488"}],"wp:attachment":[{"href":"https:\/\/wguportalstudent.us\/blog\/wp-json\/wp\/v2\/media?parent=1487"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wguportalstudent.us\/blog\/wp-json\/wp\/v2\/categories?post=1487"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wguportalstudent.us\/blog\/wp-json\/wp\/v2\/tags?post=1487"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}