reckfellENGINE

Editor feature profiles

Hide tools, understand inherited restrictions and share .profile files.

On this page

A feature profile simplifies the editor interface: it hides workspaces, classes when creating Entities and individual properties. It does not remove engine classes, shrink exports or restrict script access to data. Use one, for example, for a 2D artist who does not need 3D tools.

This is a local editor setting. Export a .profile to share it; saving a scene alone does not transfer the profile.

Create and apply a profile

The labels below are from the Reckfell 1.0.0 English interface.

  1. Open Editor → Manage Editor Features… to show Manage Editor Feature Profiles.
  2. Click Create Profile and name it, for example layout-2d.
  3. Under Main Features, uncheck 3D Editor. This hides the 3D workspace; it does not by itself exclude Entity3D classes from the creation list.
  4. To remove 3D classes from creation tools too, uncheck Entity3D in the class tree. The restriction affects native descendants, including MeshInstance3D.
  5. Click Make Current. Check Current Profile: choosing a profile to edit and applying it are separate actions.
  6. Use Reset to Default to restore the full interface. This deactivates the current profile; no scene deletion, engine reinstall or individual property restoration is needed.

Editing the current profile saves changes and schedules an interface refresh after a short delay. Edits to another profile remain preparation until Make Current.

Choose the right restriction

SettingEffect
3D EditorThe 3D workspace. This is separate from restricting Entity3D classes.
A class in the treeAvailability of the class and native descendants in editor tools; existing data is not deleted.
A class's Enable Contextual EditorAvailability of its specialized editor. This does not promise a read-only Inspector for all properties.
Class propertiesVisibility of individual Inspector fields. Their values and code access remain.
Scene Tree EditingAbility to edit the hierarchy; the tree dock itself remains.

Do not use a profile as permissions or source protection: users can deactivate it, open files elsewhere or change data through code. Reducing project size or runtime cost requires export configuration and content optimization, not hiding panels.

Inheritance: why a class or property is still hidden

A native-class restriction affects descendants. If Entity3D is disabled, enabling MeshInstance3D alone does not override its parent. Enable the parent first. Contextual class-editor restrictions also inherit.

Property queries work differently: IsClassPropertyDisabled("CanvasItem", "modulate") reads an exact record. Querying Sprite2D returns false when only CanvasItem has a record. The Inspector walks parent classes itself, so the field can still be hidden on Sprite2D. A single child-class query does not establish field visibility.

Use the native property name modulate in this API, not the C# wrapper Modulate or a translated label. Class restrictions follow ClassDB's native hierarchy; do not treat them as a general rule system for all your C# types.

Share a profile

  1. Select the intended profile and click Export. Save layout-2d.profile.
  2. On another computer, open the same manager and click Import.
  3. Select the imported profile and click Make Current.
  4. Use Reset to Default if the interface becomes too restricted.

A .profile is JSON with "type": "feature_profile", not an ordinary .rdata resource. Keep the exported file in the team repository if shared configuration is desired; personal active editor settings still do not become project settings.

Generate a file from a C# editor tool

The following helper is for C# editor code. Write2D() writes a profile disabling both the 3D workspace and the Entity3D branch. TryRead() returns a new data object without activating it in the running editor. Apply the file through Import and Make Current.

C#
using Reckfell;

public static class FeatureProfileFiles
{
    public static Error Write2D(string path)
    {
        using var profile = new EditorFeatureProfile();
        profile.SetDisableFeature(EditorFeatureProfile.Feature.Feature3D, true);
        profile.SetDisableClass("Entity3D", true);
        return profile.SaveToFile(path);
    }

    // Reads profile data; this does not activate it in the running editor.
    // The caller owns the returned instance and must dispose it when finished.
    public static bool TryRead(string path, out EditorFeatureProfile? profile, out Error error)
    {
        var candidate = new EditorFeatureProfile();
        error = candidate.LoadFromFile(path);
        if (error == Error.Ok)
        {
            profile = candidate;
            return true;
        }
        candidate.Dispose();
        profile = null;
        return false;
    }
}

Supply an existing writable directory and a .profile filename. Check the Error returned by Write2D(); dispose the returned instance after a successful TryRead() when finished reading it. The profile itself is not an EditorPlugin and needs no plugin.cfg.

Why read into a new instance: in 1.0.0, LoadFromFile() does not guarantee resetting all old state. If valid JSON omits disabled_features, previous feature flags remain, although class records are cleared. Ordinary SaveToFile() includes this array, but fresh instances avoid surprises with third-party or abbreviated files. A load error also does not promise a transactional rollback of every field.

Diagnose failures

ProblemAction
Profile selected, interface unchangedCheck Current Profile and click Make Current.
3D classes remain after disabling 3D EditorSeparately disable the Entity3D branch to remove creation choices.
An enabled child class remains unavailableCheck its native parent-class restriction.
An Inspector field is missingCheck the current profile, class restriction and parent property rules. Use Reset to Default for a quick comparison.
The profile did not shrink the gameIt changes editor UI, not game content or builds.
Import failsUse an exported .profile with the correct JSON marker; renaming an arbitrary .rdata does not convert it.

Verification limits

The installed headless 1.0.0 editor verified independent flags, native class/editor-rule inheritance, exact property keys, JSON roundtrips of all rule types and repeated-load behavior for an incomplete file. The user's active profile was not changed. Manager clicks, rendered panel visibility, read-only states, malformed-file/write errors, game exports and other platforms are not established by this test; UI steps and rule consumers were additionally reviewed in editor source.

Reckfell Engine documentationBack to top ↑
QUICK LINKSGetting startedEntity hierarchyC# & .NET 10Scenes and prefabs
Reckfell guides and full API K
reckfellENGINE
RECKFELL ACCOUNT

Sign in

Sign in to your Reckfell account.

One account for the entire Reckfell platform.