FOnline Engine
Current master GitHub
Documentation Docs/en/reference/native-extension/hooks.md

Engine Hooks

Generated reference. Do not edit directly. Update BuildTools/NativeExtensionInterface.json, then run python BuildTools/docs_native_extension.py --write.

Index Roles Hooks Bindings Canonical JSON Guide

A project implements a hook by declaring it as metadata in a source registered under the owning role. Codegen omits that hook’s fallback when it sees the declaration.

ApplicationInitHook

Inspect or adjust application startup settings after platform initialization.

FO_BEGIN_NAMESPACE
///@ EngineHook
FO_SCRIPT_API void ApplicationInitHook(AppInitFlags flags, GlobalSettings& settings);
FO_END_NAMESPACE

Default: No-op before application runtime initialization continues.

ApplicationShutdownHook

Release project-owned process services during application shutdown.

FO_BEGIN_NAMESPACE
///@ EngineHook
FO_SCRIPT_API void ApplicationShutdownHook();
FO_END_NAMESPACE

Default: No-op during guarded client/application shutdown.

ServerInitHook

Initialize project-owned server services and engine user data.

  • Stable ID: native-extension.hook.ServerInitHook
  • Role: SERVER
  • Compatibility-hashed presence: yes
  • Call sites: Source/Server/Server.cpp
FO_BEGIN_NAMESPACE
///@ EngineHook
FO_SCRIPT_API void ServerInitHook(ptr<ServerEngine> server);
FO_END_NAMESPACE

Default: No-op while server initialization continues.

ClientInitHook

Initialize project-owned client services and engine user data.

  • Stable ID: native-extension.hook.ClientInitHook
  • Role: CLIENT
  • Compatibility-hashed presence: yes
  • Call sites: Source/Client/Client.cpp
FO_BEGIN_NAMESPACE
///@ EngineHook
FO_SCRIPT_API void ClientInitHook(ptr<ClientEngine> client);
FO_END_NAMESPACE

Default: No-op while client initialization continues.

ClientStartupSettingsHook

Adjust per-client startup settings, including embedded multi-client instances.

FO_BEGIN_NAMESPACE
///@ EngineHook
FO_SCRIPT_API void ClientStartupSettingsHook(GlobalSettings& settings, int32_t client_index, bool embedded);
FO_END_NAMESPACE

Default: No-op before standalone or embedded client startup.

SetupBakersHook

Append project-owned resource bakers requested by the active bake configuration.

  • Stable ID: native-extension.hook.SetupBakersHook
  • Role: BAKER
  • Compatibility-hashed presence: yes
  • Call sites: Source/Tools/Baker.cpp
FO_BEGIN_NAMESPACE
///@ EngineHook
FO_SCRIPT_API void SetupBakersHook(const_span<string> requested, vector<unique_ptr<BaseBaker>>& bakers, shared_ptr<BakingContext> context);
FO_END_NAMESPACE

Default: Register no project-owned bakers.

CheckCritterVisibilityHook

Apply project visibility policy between an observer and target critter.

  • Stable ID: native-extension.hook.CheckCritterVisibilityHook
  • Role: SERVER
  • Compatibility-hashed presence: yes
  • Call sites: Source/Server/MapManager.cpp
FO_BEGIN_NAMESPACE
///@ EngineHook
FO_SCRIPT_API CritterVisibilityMode CheckCritterVisibilityHook(ptr<const ServerEngine> server, ptr<const Map> map, ptr<const Critter> observer, ptr<const Critter> target);
FO_END_NAMESPACE

Default: Return CritterVisibilityMode::Full.

CheckItemVisibilityHook

Apply project visibility policy between an observer critter and map item.

  • Stable ID: native-extension.hook.CheckItemVisibilityHook
  • Role: SERVER
  • Compatibility-hashed presence: yes
  • Call sites: Source/Server/Critter.cpp
FO_BEGIN_NAMESPACE
///@ EngineHook
FO_SCRIPT_API bool CheckItemVisibilityHook(ptr<const ServerEngine> server, ptr<const Map> map, ptr<const Critter> observer, ptr<const Item> item);
FO_END_NAMESPACE

Default: Return true.

Start typing to search.