Skip to content
k-mods.com

Adding new Extractors / Remove Extractors

How to allow or disallow Extractor and Resource DataAssets in Satisfactory Plus through KAPI, including new Resources / Resource Nodes from other mods.

For adding Extractors or Remove Extractors to Satisfactory Plus, you need to create a new DataAsset of type KAPIExtractorAllowList the header can be found HERE.

KAPIExtractorAllowList DataAsset properties in the editor

PropertyTypeDescription
mAllowedExtractorsTArray<TSubclassOf<AFGBuildableResourceExtractorBase>>The list of extractor classes that are allowed.
mDisallowExtractorsTArray<TSubclassOf<AFGBuildableResourceExtractorBase>>The list of extractor classes that are disallowed.
mAllowedResourcesTArray<TSubclassOf<UFGResourceDescriptor>>The list of resource classes that are allowed.
mDisallowResourcesTArray<TSubclassOf<UFGResourceDescriptor>>The list of resource classes that are disallowed.
mPriorityint32Sort rank of this DataAsset. See How the lists are resolved below for what it actually does.

Every KAPI DataAsset also carries these:

PropertyTypeDescription
mNameFTextDisplay name of the asset.
mDescriptionFTextDescription of the asset.
mIconTObjectPtr<UTexture2D>Icon of the asset.
mIsDisabledboolWhen true the asset is ignored entirely. The KMods.Disabled gameplay tag does the same.
mPriorityintRank used to resolve duplicates. Defaults to -MAX_int32, i.e. the lowest possible ranking.
mTagsFGameplayTagContainerGameplay tags of the asset.

All KAPIExtractorAllowList assets in the game are collected, sorted by mPriority (highest first, ties broken by asset path), and then applied one after another. Each asset adds its mAllowed* entries to the running set and removes its mDisallow* entries from it.

Because the lists are applied in sequence, the last asset to touch an entry decides it — with the sort above that is the lowest-priority asset. mPriority defaults to -MAX_int32, so an asset that never sets it is applied last and wins over one that does.

  • Creating the UFGResourceDescriptor subclass itself and placing resource nodes in the world is standard Satisfactory modding, outside KAPI’s scope, and not covered here. mAllowedResources/mDisallowResources only register an already-existing resource class with SF+‘s extractors.