Skip to content
Engine

Getting Started

Installation

Install Engine in your game with the Engine plugin for Roblox Studio, choose automatic or manual updates, and check that it starts.

Requirements

  • Roblox Studio.
  • The Engine plugin, from the Roblox Creator Store. See Install for the link.
  • For automatic updates: Allow Loading Third Party Assets may need to be on (see Automatic updates).

Engine is never downloaded from this website. The plugin installs it inside Studio, and automatic updates come straight from Roblox.

Install with the plugin

  1. Install the Engine plugin from the Creator Store and open your place in Studio.
  2. Open the Plugins tab and click Engine. The Engine - Installation window opens.
  3. Choose how Engine should update:
    • Automatic Updates (recommended): click Enable.
    • Manual Updates: click Install Latest.
  4. Confirm. The plugin creates the Engine module in ServerScriptService. The change can be undone with Ctrl+Z like any other edit.
  5. Publish or save your place.

Note

Engine can only be installed or changed while editing, not during a playtest.

Automatic or manual?

Automatic UpdatesManual Updates
Where the engine comes fromLoaded from Roblox every time a server starts.A copy stored inside your place (Engine/MainModule).
New versionsEvery new server runs the newest version.You click Update in the plugin when you want a new version.
Place sizeSmall: only the shell is saved.Contains the whole engine.
NeedsAsset loading permission (below).Nothing.

You can switch at any time from the plugin with Enable Auto-update or Disable Auto-update. Your Configuration folder is kept. See Updates and Versions.

Automatic updates

An automatic install loads the published engine when the server starts. It tries, in order:

  1. AssetService:LoadAssetAsync. This needs Game Settings > Security > Allow Loading Third Party Assets, unless the game's creator owns the asset.
  2. InsertService:LoadAsset.
  3. require(assetId).

If none of them work, Engine prints exactly which methods failed and why. Turn on Allow Loading Third Party Assets first; if loading still fails, switch to manual updates. See Troubleshooting.

What gets installed

ServerScriptService
└── Engine            ModuleScript (the shell)
    ├── Loader        Script that requires Engine when the server starts
    ├── Configuration Folder for your settings (empty at first)
    └── MainModule    Manual updates only: the engine itself

At runtime, Engine also creates ReplicatedStorage.Engine: the client half of Engine together with the configuration clients need. It is created again on every server start, so never edit it.

Install attributes

The plugin marks the shell with the EngineInstall tag and these attributes. Every install has the first three; only manual installs have the last two.

AttributeValue
EngineModeAutomatic or Manual.
EngineShellVersionThe shell the plugin put in, such as 1.0.0.
EngineInstallIdThis install's id, kept when you update or switch.
EngineVersionThe engine version stored in your place.
EngineAssetUpdatedWhen that version was published.

Automatic installs have no EngineVersion, because they always run the newest engine. For them, the plugin shows the version on the Creator Store, which is the version new servers run.

The attributes an automatic shell sets on itself while a server runs, such as EngineSource, are listed in Updates and Versions.

How the plugin finds an install

The plugin looks through ServerScriptService for modules with the EngineInstall tag or the EngineMode attribute. Only those marks count, not the name: a module of your own called Engine is not an install, and the plugin leaves it alone. Rename such a module before you install, so WaitForChild("Engine") in your scripts finds the shell.

Keep the marks on the shell, or the plugin no longer sees Engine as installed. Do not rename or move the shell either: keep it directly in ServerScriptService and named Engine, because your scripts require it by that path.

Check that it works

Add a Script to ServerScriptService:

local Engine = require(game:GetService("ServerScriptService"):WaitForChild("Engine"))

print(Engine:GetBootInfo())
local TimeService = Engine:GetService("TimeService")
print("Engine is running, today is", TimeService:FormatIRLDate("%Y-%m-%d"))

Press Play. You should see the boot info (Source is "Live" for automatic updates and "Bundled" for manual ones) and the date.

Using the plugin window

ButtonWhat it does
Enable (Automatic Updates)Installs Engine with automatic updates.
Install Latest (Manual Updates)Downloads the newest Engine and stores it in your place.
Update to vX.Y.ZManual installs only; appears when a newer version is published.
Enable Auto-update / Disable Auto-updateSwitches between the two update models. Configuration is kept.
UninstallRemoves Engine including the Configuration folder. Save your configuration modules first if you want to keep them.
Learn MoreShows the link to these docs.
Reset SizeRestores the window's original size.

Once Engine is installed, the window shows its version: for a manual install the version stored in your place, for an automatic install the newest version on the Creator Store.

The plugin checks for a new release when you open the window, at most once a minute. If it finds more than one Engine install in ServerScriptService, it warns in the Output and manages the first one; remove the others.

Uninstalling

Click Uninstall in the plugin, or delete ServerScriptService.Engine yourself. Remove any require of Engine from your scripts as well.