EditorFeatureProfile
Editor interface restriction data saved in .profile files.
A profile can hide workspaces, classes and properties in editor tools. It does not remove project data or engine classes, shrink exports or enforce permissions. SetDisable*() changes a data object; SaveToFile()/LoadFromFile() use JSON without activating a profile.
Apply through Editor → Manage Editor Features… → Import → Make Current; Reset to Default restores the usual interface. Native class and contextual-editor restrictions inherit, while IsClassPropertyDisabled() queries an exact class/property pair.
Creation, sharing and a verified C# example.
Declarations checked against C# SDK 1.0.0. Expand a name to see declarations and documentation.
Constructors1
EditorFeatureProfileConstructor
public EditorFeatureProfile();Methods11
GetFeatureNamestring
public string GetFeatureName(EditorFeatureProfile.Feature feature);Return a readable editor-feature label. Do not use a translatable label as a stable JSON key or rule identifier.
| Name | Type | Default |
|---|---|---|
feature | EditorFeatureProfile.Feature | — |
featureA valid Feature entry; Max is the enum size, not a feature.
stringThe feature display name.
IsClassDisabledbool
public bool IsClassDisabled(StringName className);Check a native-class restriction through ClassDB parents. A true result can be inherited: removing a child's explicit restriction does not override a disabled parent.
| Name | Type | Default |
|---|---|---|
className | StringName | — |
classNameA Reckfell native class name, such as Entity3D.
booltrue when the class or a native ancestor is disabled.
IsClassEditorDisabledbool
public bool IsClassEditorDisabled(StringName className);Check a class contextual-editor restriction through native ancestors. This is not equivalent to disabling class creation or making the entire Inspector read-only.
| Name | Type | Default |
|---|---|---|
className | StringName | — |
classNameA Reckfell native class name, such as Entity3D.
booltrue for an explicit or inherited contextual-editor restriction.
IsClassPropertyDisabledbool
public bool IsClassPropertyDisabled(StringName className, StringName property);Check an exact native class/property pair without traversing parents. The Inspector walks parents itself: false for Sprite2D does not override CanvasItem:modulate. This queries profile data, not complete field visibility.
| Name | Type | Default |
|---|---|---|
className | StringName | — |
property | StringName | — |
classNameA Reckfell native class name, such as Entity3D.
propertyA native property name, such as modulate, not C# Modulate or a translated label.
booltrue only when that exact record exists.
IsFeatureDisabledbool
public bool IsFeatureDisabled(EditorFeatureProfile.Feature feature);Read a major editor-feature flag. Disabling Feature3D is separate from restricting Entity3D classes. This does not check whether an engine build contains a capability.
| Name | Type | Default |
|---|---|---|
feature | EditorFeatureProfile.Feature | — |
featureA valid Feature entry; Max is the enum size, not a feature.
booltrue when the disabled flag is set.
LoadFromFileError
public Error LoadFromFile(string path);Load feature_profile JSON into this instance without activating it in the editor. In 1.0.0, an absent disabled_features array preserves previous feature flags; create a fresh instance for independent reads. A failure does not promise full state rollback.
| Name | Type | Default |
|---|---|---|
path | string | — |
pathThe exported .profile JSON path.
ErrorError.Ok on successful load; otherwise a read or parse error code.
SaveToFileError
public Error SaveToFile(string path);Write a JSON profile with type=feature_profile and restriction arrays. Use .profile for manager import; this is neither ordinary .rdata resource serialization nor profile activation.
| Name | Type | Default |
|---|---|---|
path | string | — |
pathA file path in an existing writable directory.
ErrorThe save result code; check it before importing the file.
SetDisableClassvoid
public void SetDisableClass(StringName className, bool disable);Set a native-class restriction in this profile data object. Descendants inherit it during queries. This neither removes engine classes nor automatically activates the profile in the editor.
| Name | Type | Default |
|---|---|---|
className | StringName | — |
disable | bool | — |
classNameA Reckfell native class name, such as Entity3D.
disabletrue disables the feature; false removes the explicit restriction.
SetDisableClassEditorvoid
public void SetDisableClassEditor(StringName className, bool disable);Restrict a class's specialized contextual editor. Queries inherit parent rules. Manage class availability and property visibility separately; this setting does not promise to prevent code writes.
| Name | Type | Default |
|---|---|---|
className | StringName | — |
disable | bool | — |
classNameA Reckfell native class name, such as Entity3D.
disabletrue disables the feature; false removes the explicit restriction.
SetDisableClassPropertyvoid
public void SetDisableClassProperty(StringName className, StringName property, bool disable);Set an exact class/property restriction. The Inspector accounts for parent records. Before disable=false, check IsClassPropertyDisabled(): in 1.0.0, removing a rule from a class without recorded properties produces a native API error.
| Name | Type | Default |
|---|---|---|
className | StringName | — |
property | StringName | — |
disable | bool | — |
classNameA Reckfell native class name, such as Entity3D.
propertyThe exact native property name; the stored data value is not deleted.
disabletrue disables the feature; false removes the explicit restriction.
SetDisableFeaturevoid
public void SetDisableFeature(EditorFeatureProfile.Feature feature, bool disable);Change an interface flag in the profile object. This neither removes a subsystem, optimizes exports nor applies the profile in the running editor.
| Name | Type | Default |
|---|---|---|
feature | EditorFeatureProfile.Feature | — |
disable | bool | — |
featureA valid Feature entry; Max is the enum size, not a feature.
disabletrue disables the feature; false removes the explicit restriction.
EditorFeatureProfile.Feature
| Value | Description |
|---|---|
AssetLib = 2 | The Asset Store tab. If this feature is disabled, the Asset Store tab won't display. |
Feature3D = 0 | The 3D editor. If this feature is disabled, the 3D editor won't display but 3D nodes will still display in the Create New Entity dialog. |
FilesystemDock = 5 | The Content Browser. If this feature is disabled, the Content Browser won't be visible. |
Game = 8 | The Game tab, which allows embedding the game window and selecting nodes by clicking inside of it. If this feature is disabled, the Game tab won't display. |
GroupsDock = 10 | The Groups dock. If this feature is disabled, groups won't be visible and modifiable from the editor. |
HistoryDock = 7 | The History dock. If this feature is disabled, the History dock won't be visible. |
ImportDock = 6 | The Import dock. If this feature is disabled, the Import dock won't be visible. |
Max = 11 | Represents the size of the |
NodeDock = 4 | The Entity dock. If this feature is disabled, signals and groups won't be visible and modifiable from the editor. |
SceneTree = 3 | Scene tree editing. If this feature is disabled, the Scene tree dock will still be visible but will be read-only. |
Script = 1 | The Script tab, which contains the script editor and class reference browser. If this feature is disabled, the Script tab won't display. |
SignalsDock = 9 | The Signals dock. If this feature is disabled, signals won't be visible and modifiable from the editor. |