Iris UNetObjectFilter (custom dynamic filter) linker error

I have just upgraded to 5.5, which has fixed the linker error when tagging the net filter object as UCLASS.

Another issue that I then faced was an ensure about missing the ‘MyNetFilterConfig’ class. I simply had to create this class (empty UCLASS derived from UNetObjectFilterConfig) myself, but this isn’t explictly said on the following page:

So here is the final header file:

#pragma once

include “Iris/ReplicationSystem/Filtering/NetObjectFilter.h”

include “MyNetObjectFilter.generated.h”

UCLASS(Transient, MinimalAPI)
class UMyNetObjectFilterConfig final : public UNetObjectFilterConfig
{
GENERATED_BODY()
};

UCLASS()
class UMyNetObjectFilter : public UNetObjectFilter
{
GENERATED_BODY()

public:

// UNetObjectFilter interface
virtual void OnInit(const FNetObjectFilterInitParams& Params) override;
virtual void OnDeinit() override;
virtual void OnMaxInternalNetRefIndexIncreased(uint32 NewMaxInternalIndex) override;
virtual void AddConnection(uint32 ConnectionId) override;
virtual void RemoveConnection(uint32 ConnectionId) override;
virtual bool AddObject(uint32 ObjectIndex, FNetObjectFilterAddObjectParams& Params) override;
virtual void RemoveObject(uint32 ObjectIndex, const FNetObjectFilteringInfo& Info) override;
virtual void UpdateObjects(FNetObjectFilterUpdateParams& Params) override;
virtual void PreFilter(FNetObjectPreFilteringParams& Parms) override;
virtual void Filter(FNetObjectFilteringParams& Params) override;
virtual void PostFilter(FNetObjectPostFilteringParams& Params) override;

};

The first three methods (OnInit, OnDeinit, OnMaxInternalNetRefIndexIncreased) must be overridden (pure virtual). The remaining are optional.

And finally, in DefaultEngine.ini:

[/Script/IrisCore.NetObjectFilterDefinitions]
+NetObjectFilterDefinitions=(FilterName=MyNetObjectFilter, ClassName=/Script/MyProjectName.MyNetObjectFilter, ConfigClassName=/Script/MyProjectName.MyNetObjectFilterConfig)