FSKY Dev-tools Manual — DM Editor

Internal Development Documentation  |  FSKY Software

DM Editor

DM Editor
DeveloperFSKY
StatusInternal / Active
OriginMakeFace graffiti
NPC SystemDMNPC
Cleanup UnitCAPTURE
File Format.DME / .DMX

Overview

The DM Editor is an internal scene authoring tool developed by FSKY. It is a heavily modified scene composition tool that builds upon existing Source engine tooling, introducing significant extensions for handling live AI-driven entities and automated scene cleanup, making it considerably more capable than standard scene editors for in-world work.

Unlike standard scene editor workflows which operate entirely on pre-recorded animation data, the DM Editor is designed to work with active server-side entities that exist and behave in real time during a session. Scenes are stored in the .DME format and can be pulled from and pushed to the FSKY host server via the SourceBox ORD system.

NOTE: The DM Editor is paid access only. Access requires a valid CDKEY and an active session authenticated through SourceBox.

DMNPCs

DMNPCs (Dynamic Non-Player Characters) are one of the primary distinguishing features of the DM Editor. Rather than being pre-animated props or keyframed puppets, DMNPCs are what we call alive entities - they move, react, and behave similarly to how a player in a VR headset would move through a space.

Behaviour

A DMNPC's movement is not scripted frame-by-frame. Instead, it is driven by a real-time input stream, meaning the entity's position, rotation, and physical reactions update continuously - similar to networked player input. This gives DMNPCs a distinctly natural, human-like quality of motion compared to standard prop animation, since their motion arises organically rather than from predetermined keyframes.

This makes them particularly useful for populating scenes with convincing background characters or for training AI models with realistic human-motion data, as their behaviour cannot be trivially distinguished from a real player's movement signature.

NOTE: DMNPCs are server-side entities managed through INTERLOPE.DME. Direct manipulation of a DMNPC outside of the DM Editor interface is strongly discouraged and may cause void instability.

Types

DMNPCs are categorised internally by their role within a scene. There are base DMNPC types that you are able to create in the Editor. Additional subtypes exist for specialised functions but are not documented in this version of the manual. Please contact us at contact@fsky.dev if you want to know how to use these more advanced features.


CAPTURE Unit

CAPTURE
ClassFSKY_CAPTURE_CBSGY
TypeScene Cleanup Entity
BehaviourSilent / Passive
TriggerScene state change
Tracked bySourceBox Tracker

The CAPTURE unit (entity class: FSKY_CAPTURE_CBSGY) is a passive scene management entity that operates silently in the background of any active DM Editor session. Its sole function is to monitor the necessity of DMNPCs within a scene and quietly remove them when they are no longer needed.

When a DMNPC completes its role in a scene - whether it has finished its movement sequence, moved out of the active scene boundary, or been flagged as redundant by the scene state - the CAPTURE unit intercepts and removes the entity cleanly without disrupting the surrounding scene data or leaving orphaned entity references in the .DME file.

This process is intentionally silent and non-disruptive. There is no visible effect in the editor viewport when a CAPTURE event occurs; the DMNPC simply ceases to exist from the scene hierarchy. The only way to observe CAPTURE events in real time is through the SourceBox Tracker, which logs all FSKY_CAPTURE_CBSGY state changes and position data.

WARNING: Do not attempt to manually kill or remove DMNPC entities outside of the CAPTURE system. Unauthorised removal of DMNPCs can corrupt the void structure and permanently damage preserved scene data stored on the host server.

MakeFace Origin

The CAPTURE unit model was not conceived through a conventional software development process. The model originated from the graffiti spray decal in the alleyway of d1_town_01 in Half Life 2, then processed through MakeFace - our early model generation tool that converts Valve Texture Format (.VTF) files into Source engine models (.MDL).

The specific spray in question was created in-house and used as a test, which generated the initial model that later became the foundation model for the CAPTURE units. The person who edited the spray was a fellow employee called "Jeremy Jordan" in his early days of developing here.

NOTE: MakeFace is a deprecated tool and is no longer included in current FSKY releases. See the MakeFace page for legacy documentation.

Interface

The DM Editor uses a flat, grey panel-based layout. The main window is divided into the following areas:

  • Scene Hierarchy - Lists all entities in the active scene, including players, props, cameras, lights, and DM-specific entities such as CAPTURE units and DMNPCs.
  • 3D Viewport - The main scene view. Renders the active camera perspective in real time. DMNPCs appear as standard character models within the viewport.
  • Timeline - Manages keyframe data for cameras and props. Note that DMNPC motion is not keyframed and does not appear on the timeline - it is driven live.
  • Console Output - Displays real-time log output from DMNPC state changes and CAPTURE events.

Commands

The DM Editor exposes a number of console commands for scene management, entered via the in-editor console (~):

dm_capture_force [DMNPC name] - Manually trigger CAPTURE on a specific DMNPC by its name inside of properties. get s.interlope.pull:27015 - Pulls a random demo from the INTERLOPE.dme (Depricated on newer updates due to game conflicts) dm_npc_freeze [DMNPC name] - Freeze a DMNPC's movement stream without removing it dm_npc_list - Print all active DMNPCs and their current state dm_capture_remove - Attempts to stop any CAPTURE units before .
NOTE: dm_capture_force should only be used when the CAPTURE unit has failed to automatically clean up a DMNPC. Overuse can desynchronise the scene state from the server-side .DME record.

Warnings & Restrictions

IMPORTANT - Read before use:

1. Do not manually delete DMNPCs from the scene hierarchy. Always allow the CAPTURE unit to handle removal.
2. Scenes pulled from the server are not backed up locally by default. Export regularly to preserve your work.
3. Unauthorised modification of DMNPC entity data may result in immediate license key termination and session closure due to major desync with INTERLOPE.dme.
4. If a DMNPC enters an undefined state (visible in console as UNKNOWN_STATE), make sure to remove it from the scene as it may cause corruption to other DMNPCs

If you encounter a DMNPC displaying NODE_?? as its current target in the Properties panel, this indicates an unresolved trigger target - the entity's origin data could not be matched to a valid entry in the server-side .DME. This is a known edge case and should be reported.


For further assistance, contact FSKY server supervisors directly through our contact email. — FSKY.