No, it is required in B4i (Main module):
B4X:
#Region Project Attributes
#AppFont: D3-Biscuitism-Bold.ttf
#End Region
Take note: B4i doesn't like filename contains underscore "_", so please use filename with dash (hyphen) "-".
It is better use filename with dash for all 3 platforms.
To call the Sub, B4i doesn't require file extension:
B4X:
#If B4i
Label1.Font = CreateB4XFont("D3-Biscuitism-Bold", 30, 30)
#Else
Label1.Font = CreateB4XFont("D3_Biscuitism_Bold.ttf", 30, 30)
#End If
So, the Sub is simplified as below:
B4X:
'NativeFontSize is needed only for B4J or B4I.
Public Sub CreateB4XFont(FontFileName As String, FontSize As Float, NativeFontSize As Float) As B4XFont
#If B4A
Return xui.CreateFont(Typeface.LoadFromAssets(FontFileName), FontSize)
#Else If B4i
Return xui.CreateFont(Font.CreateNew2(FontFileName, NativeFontSize), FontSize)
#Else ' B4J
Return xui.CreateFont(fx.LoadFont(File.DirAssets, FontFileName, NativeFontSize), FontSize)
#End If
End Sub