# Setup Local Asset Validation

{% hint style="success" %}
verified: 2025-11-20 version: v39
{% endhint %}

The setup is recommended to be done by one person in your team and version controlled to avoid unnecessary duplication of work.

#### Linting <a href="#setuplocalassetvalidation-linting" id="setuplocalassetvalidation-linting"></a>

1. Enable the “Linter” plugin by adding the following to your `.uproject` file.\
   `{`\
   `"Name": "Linter",`\
   `"Enabled": true,`\
   `}`
2. Version control this so all devs can use it without doing this step \\

   ![](https://1456550285-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoWTlPaoHd1McSakqMigu%2Fuploads%2Fgit-blob-ba29f21edff3f8af8b4daf5256d0f2db99ed235b%2F3473637505.png?alt=media)
3. Run a first-pass validation
   1. Right-click your plugin folder and select “Scan with Linter”\\
   2. Select the WorldBuilder Preflight RuleSet and click “Next”\\

      <figure><img src="https://1456550285-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoWTlPaoHd1McSakqMigu%2Fuploads%2Fgit-blob-08de70c740ec635d0ece48ded70c3e123b9a0e3b%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>
4. Once you have your first validation result and opened, there will likely be many errors under “*2.11 Asset references across plugins*“. To fix this, in your World Builder `.uplugin` that stores your content and that you’ll upload, you need to add the content dependencies that you use.
   1. Using your validation result, collate a list of plugins you need to add dependencies for. In the below example, I’ll add `M2Core, M2Content, JunoSkypark` (e.g. if the error says “*This asset references "/M2Core/…”\`* then you need the `M2Core` dependency)\\

      <figure><img src="https://1456550285-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoWTlPaoHd1McSakqMigu%2Fuploads%2Fgit-blob-d24e14a973c8708acccb81f2996a8ec0e932e33a%2F81d621c0-6086-4a8a-99d5-f5f6a2757ca2.png?alt=media" alt=""><figcaption></figcaption></figure>
   2. Navigate to the `.uplugin` file, open it in your favourite text editor which should look like this\\

      ![](https://1456550285-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoWTlPaoHd1McSakqMigu%2Fuploads%2Fgit-blob-e25aaf6aa037696b7e77aa6b6e24a74a1f01e6ae%2F3473637535.png?alt=media)
   3. Add the following section, and add each plugin dependency you need.\\

      ```
      	"Plugins":
        	[
      		{
      			"Name": "M2Content",
      			"Enabled": true
      		},
      		{
      			"Name": "M2Core",
      			"Enabled": true
      		},
      		{
      			"Name": "JunoSkypark",
      			"Enabled": true
      		}
        	]
      ```
5. The `.uplugin` file should now look like this. Make sure to also version control this modified file.\\

   ![](https://1456550285-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoWTlPaoHd1McSakqMigu%2Fuploads%2Fgit-blob-4fd09955981feb17123f9c4c968c20531482b55e%2F3473637541.png?alt=media)
6. Re-run the linter, which should now be free of those errors and will be left with relevant validation issues.
7. (optional) Copy the `M2upPreflightRuleSet` you just used and make a local version so you can control your own validation settings. To use this asset, set it as the `Default Lint Rule Set` in the Project Settings, and ensure you check in `/Config/DefaultLinter.ini` where this is saved.

#### Cooking <a href="#setuplocalassetvalidation-cooking" id="setuplocalassetvalidation-cooking"></a>

You can run a normal World Builder package to test your content cooks correctly, while also avoiding uploading the content which can take a long time and is unnecessary for pure validation.

1. Navigate to your World Builder settings and enable “Show Package Only Command”\\

   ![](https://1456550285-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoWTlPaoHd1McSakqMigu%2Fuploads%2Fgit-blob-3023511a165cfe96f06bcc0e0b3673d6bdf7b1b1%2F3473637547.png?alt=media)

You can version control this change by using “Set as Default” in the top-right of the Editor Preferences, which will update `DefaultPerProjectUserSettings.ini` in your project config folder.
