Configuration
Flamework allows you to configure both transformer behavior and runtime behavior using configuration files, in tsconfig.json
and flamework.json
respectively.
Runtime Configuration
Flamework allows you to configure runtime behavior through a flamework.json
file.
profiling
- Defaults to
true
in studio, otherwisefalse
This option enables microprofiler tags and memory categories for Flamework's built in lifecycle events.
logLevel
- Defaults to
none
- Valid values:
none
,verbose
This allows you to configure the logging level for Flamework.
disableDependencyWarnings
- Defaults to
false
This setting disables warnings emitted by Flamework when you use the Dependency
macro prior to Flamework.ignite()
Transformer Configuration
These settings control the behavior of Flamework's transformer and are configured under rbxts-transformer-flamework
's configuration in tsconfig.json
noSemanticDiagnostics
- Defaults to
false
This setting allows you to disable Flamework's TypeScript type checking which can improve compile times. This can result in instability as Flamework's behavior is undefined when there are outstanding type errors.
obfuscation
- Defaults to
false
This setting enables Flamework's obfuscation which will shorten and randomize internal IDs, networking names and similar.
idGenerationMode
- Defaults to
obfuscated
when obfuscation is enabled, otherwise defaults tofull
- Valid values:
full
,obfuscated
,short
,tiny
You most likely do not need to change this.
There are 4 options and this will change how Flamework's identifiers are generated.
You should only use full
in packages (which means you also should not use obfuscation
in packages.)
full
These are mostly unique IDs without any randomization.
- Game projects:
server/services/myService@MyService
- Packages:
@rbxts/my-package:server/services/myService@MyService
obfuscated
These IDs have no debug information but can include package names.
- Game projects:
aZx
- Packages:
@rbxts/my-package:aZx
short / tiny
These IDs are similar to obfuscated
, except they contain some debug information.
The random text is used to guarantee uniqueness.
Short and tiny are similar except tiny
will not include the file name (the myService@
)
- Game projects (short):
myService@MyService{aZx}
- Game projects (tiny):
MyService{aZx}
- Packages (short):
@rbxts/my-package:myService@MyService{aZx}
- Packages (tiny):
@rbxts/my-package:MyService{aZx}
hashPrefix
Defaults to package name
This changes the prefix used for IDs generated by packages.