{"id":13639921,"url":"https://github.com/benui-dev/UE-BUIValidator","last_synced_at":"2025-04-20T02:32:12.317Z","repository":{"id":40474408,"uuid":"343286375","full_name":"benui-dev/UE-BUIValidator","owner":"benui-dev","description":"UE4 UI Texture Validator Plugin","archived":false,"fork":false,"pushed_at":"2023-05-08T14:38:26.000Z","size":43,"stargazers_count":83,"open_issues_count":4,"forks_count":15,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-08-03T01:15:32.672Z","etag":null,"topics":["engine","plugin","texture","ue4","ue4-plugin","ui","umg","unreal","unrealengine","unrealengine4","user-interface","validator"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/benui-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-01T04:09:59.000Z","updated_at":"2024-06-24T14:53:00.000Z","dependencies_parsed_at":"2022-09-03T12:20:29.526Z","dependency_job_id":null,"html_url":"https://github.com/benui-dev/UE-BUIValidator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benui-dev%2FUE-BUIValidator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benui-dev%2FUE-BUIValidator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benui-dev%2FUE-BUIValidator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benui-dev%2FUE-BUIValidator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benui-dev","download_url":"https://codeload.github.com/benui-dev/UE-BUIValidator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223816289,"owners_count":17207833,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["engine","plugin","texture","ue4","ue4-plugin","ui","umg","unreal","unrealengine","unrealengine4","user-interface","validator"],"created_at":"2024-08-02T01:01:06.131Z","updated_at":"2025-04-20T02:32:12.285Z","avatar_url":"https://github.com/benui-dev.png","language":"C++","readme":"# Unreal Engine Texture Validator Plugin\n\nA plugin that both validates and automatically applies settings for texture assets in Unreal Engine.\n\n## What can it do?\n\n* Throw errors when texture size, texture group and other properties do not\n  match customizable rules.\n* Automatically set default values for new textures upon import.\n* Set different validation rules for textures with different prefixes, or for\n  different folders within Unreal.\n* Throw errors when users import textures without setting the Data Source\n  Folder in their Editor Settings.\n* Throw errors when `UPROPERTY()` values are not set.\n* Run all rules and validate assets from command-line\n\n## Usage\n\nOnce installed, open Project Settings \u003e BUI Validator.\n\nHere you can set up validator groups, that consist of match conditions and\nrules to be applied to those matches.\n\n![Settings example](https://benui.ca/assets/unreal/validator-settings-example.png)\n\n### Settings\n\n#### Match Conditions\n\nFor a rule to be triggered, **all** conditions of the match must pass.\n\n* **Texture groups:** Match textures with _any_ of the texture groups.\n* **Prefixes:** Match textures with _any_ of the asset name prefixes.\n* **Suffixes:** Match textures with _any_ of the asset name suffixes.\n* **Paths:** Match textures in _any_ of the asset directories.\n\n#### Validator Rules\n\nEach rule allows multiple values for a given setting. For example a texture\ncould be allowed to be within World or UI. To pass, the asset must match\n**any** of the values.\n\n* **Texture groups:** Textures must have one of the specified Texture Groups.\n* **Compression Settings:** Textures must have one of the specified\n  Compression Settings.\n* **Pixel Formats:** Textures must have one of these Pixel Formats\n* **Mip Gen Settings:** Textures must have one of these Mip Gen Settings\n* **Prefixes:** Textures must have one of these prefixes.\n* **Texture Size:** Textures must pass these size requirements. Size\n  requirements are \"Multiple of Four\" or \"Power of Two\"\n* **Paths:** Textures must be within this path in Unreal.\n* **Require Data Source Folder:** Require that the Data Source Folder be set in\n  Editor Preferences, and that assets are imported from there. This is to aid [reimporting between team members](https://benui.ca/unreal/reimporting-assets/).\n\n#### Auto-apply settings to new textures\n\nValidator Groups have an _Apply On Import_ option. When checked, any\nnewly-imported assets that match the group will have some rules automatically\napplied to them.\n\nPrefix, Texture Size and Path rules are not applied on import.\n\n### C++ UPROPERTY() Settings\n\nThe plugin also supports making `UPROPERTY` properties _required_.\n\n```cpp\n// If this is not set, the BP will show an error on save\nUPROPERTY( EditAnywhere, meta = ( BUIRequired = \"true\" ) )\nTSubclassOf\u003cAActor\u003e RequiredActor;\n```\n\n![BUIRequired flow example](https://benui.ca/assets/unreal/buivalidator-buirequired.png)\n\n### Running Validation\n\nWhenever UTexture2D asset is saved, the rules in Project Settings are applied.\nIf the asset does not pass, an error is shown.\n\n![Failure example](https://benui.ca/assets/unreal/validator-fail-example.png)\n\n### Command-line Validation\n\nThis is useful when validating assets as part of a build process.\n\n```\n\"C:\\Program Files\\Epic Games\\UE_5.0EA\\Engine\\Binaries\\Win64\\UnrealEditor-Win64-DebugGame-Cmd.exe\" -run=BUIValidateAll\n```\n\n## Installation\n\n1. Download the zip or clone the Github repository into\n   `YourProject/Plugins/BUIValidator/`\n2. Add the following to the end of your `.uproject` file, inside the `{ }`\n```json\n\t\"Plugins\": [\n\t\t{\n\t\t\t\"Name\": \"BUIValidator\",\n\t\t\t\"Enabled\": true\n\t\t}\n\t]\n```\n\n## License\n\n[CC0](https://creativecommons.org/publicdomain/zero/1.0/)\n\n## Contact\n\nIf you find it useful, drop me a line [@_benui](https://twitter.com/_benui) on Twitter.\n\n[benui.ca](https://benui.ca)\n\n\n## Future Work\n\n* Add support for validating builds using the [Data Validation plugin](https://docs.unrealengine.com/5.0/en-US/data-validation/)\n* Regular expression support\n* More explicit support for And/Or matching\n* Support more texture settings (sRGB, others)\n* Support more data types\n\n","funding_links":[],"categories":["Game Engine"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenui-dev%2FUE-BUIValidator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenui-dev%2FUE-BUIValidator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenui-dev%2FUE-BUIValidator/lists"}