Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Glossary

TermMeaning
API tableRustealApiTable: the struct of function pointers the plugin hands each Rust library, the plugin’s services (rusteal-ffi/src/api_table.rs, RustealApiTable.h).
Bindings crateThe bindings crate codegen writes into a game project’s Rust/bindings/ (or a plugin’s): one Rust type per engine class, struct and enum, committed with the game.
CallbacksRustealRustCallbacks: the seven functions a library returns from rusteal_init, which the plugin calls into Rust.
CDOClass default object: the object holding a class’s defaults, which #[class_defaults] edits.
CheckedChecked<T>: a UObjectRef<T> that was checked valid, the type generated instance methods are implemented for.
Codegenrusteal-codegen: reflection JSON to bindings crate and C++ wrappers (step 2 of the build).
Current libraryThe library whose code is running, set before every call into Rust, so what the API creates is tagged with its owner.
DeployStep 5 of the build: copying a built library to where the plugin loads it, by .partial and rename.
ExporterRustealExporter, the C# UHT plugin writing the reflection JSON.
FeatureA piece of gameplay any template can take (a plugin template with a [feature] table), or a set of project files (project_features/). Not to be confused with a Cargo feature, which gates an engine module in the bindings.
Func id / function tableThe number codegen gives each wrapped engine function, and the table of wrapper pointers indexed by it.
Game libraryThe game’s Rust cdylib, deployed as Plugins/Rusteal/Binaries/<Platform>/librusteal.so, classes in /Script/Rusteal.
Hot copy<stem>_hot_<N>.<ext>: the numbered link or copy of a deployed library the plugin actually loads.
Hot reloadSwapping a library while the editor runs (Rusteal.Reload, automatic on deploy).
LibraryA Rust shared library the plugin hosts: the game’s or a Rusteal plugin’s.
manual/Hand-written extensions codegen copies into every bindings crate, for what reflection cannot describe.
PinnedPinned<T>: a GC root that keeps an object alive for Rust.
Plugin libraryA Rusteal plugin’s own library, librusteal_<Plugin>.so, classes in /Script/<Plugin>.
Reify / reified classCreating a Rust type as a real Unreal type at load time; URustealReifiedClass is the class behind a #[uclass].
ReinstanceMoving existing objects and Blueprints to a replaced class, with the engine’s FReload.
Rust dataAn object’s Rust-private fields, kept by the registry outside the object’s memory.
ShapeThe compile-time hash of a class’s declarations that decides, on hot reload, whether it is kept or replaced.
Stub BlueprintRS_<Class>, the editor-only UBlueprint a reified class names as its origin.
Template / variantA Rusteal template is an engine template with its gameplay in Rust; a variant (combat, horror…) is one of its genre starting points, a complete project of its own; base is the template alone.
Test projectA project made with --runtime-path, following a checkout, where engine-facing changes are tested.
UHT / UBT / UATThe Unreal Header Tool (reflection), Build Tool (compiles C++), Automation Tool (cooks and packages).
WrapperA generated extern "C" C++ function that calls one engine function natively.