The resource manifest is a file named manifest.toml placed in a resource folder on the server.
Example
An example resource manifest for a hypothetical resource looks as follows:
manifest.toml
# Defines version this resource uses
#
# cantankerous | In Development API
manifest_version = "cantankerous"
# Adds files of to the resource content system.
# Any files will be synced to the client unless resource is marked as server only
#
# This directive supports globbing in the filename field.
files = [
"resources/**/*.*"
]
# Defines a script to be loaded on both sides. The extension determines which script loader will handle the file.
#
# Extension | Loader | Type | Side | Environments
# .js | JavaScript | JavaScript source code | Both Sides | All environments support
# .py | Python | Python source code | Both Sides | All environments support
# .lua | Lua | Lua source code | Both Sides | All environments support
# .jar | JVM | Compiled JVM code | Server Only | Not all environments support
scripts = []
# Requires the specified resource to load before the current resource.
dependencies = ["chat"]
[server]
# Defines a script to be loaded on the server side. The extension determines which script loader will handle the file as described in scripts.
scripts = ["server.js"]
# Marks the resource as being server-only. This stops clients from downloading anything of this resource.
# If all resources are marked as server-only the server will accept vanilla connections.
server_only = false
[client]
# Defines a script to be loaded on the client side. The extension determines which script loader will handle the file as described in scripts.
scripts = ["client.js"]
Globbing
Some entry types may support globbing for multiple files. These take a pattern syntax as follows:
Example
Matches
*.js
a.js, b.js (non-recursively)
dir/*.js
dir/a.js, dir/b.js (non-recursively)
**/*.js
dir1/a.js, dir2/b.js, dir1/dir2/c.js
**.js
Same as **/*.js
**/cl_*.js
dir/cl_a.js, etc
Support for globbing is specified under each entry type.