Run sampctl check and follow the reported actions. Add --verbose for details or --fix for supported repairs. See Project diagnostics for coverage and exit codes.
- Make sure
sampctlis installed. - Make sure the folder containing
sampctlis on yourPATH. - On Linux/macOS, you may need to restart your terminal after changing
PATH.
If you downloaded a binary manually, make it executable:
chmod +x ./sampctlIf you installed a .deb, re-run install with sudo.
If you’re targeting a different platform than the one you’re running on (for example building on Linux but preparing Windows files), use --platform.
Example:
sampctl ensure --platform windowsThis usually means sampctl downloaded a release asset but extracted zero matching files.
Common causes:
- The plugin package
resources[].nameregex doesn’t match the actual asset filename. - The selected
resources[]entry doesn’t match your target(platform, runtime.version). - The
plugins/includes/filespaths don’t match the archive’s internal layout.
What to do:
- If you’re a user, try pinning the dependency to a known-good tag and re-run:
sampctl ensure --forceEnsure- If you’re a plugin author, validate your
resourcesconfig and see: Plugin resources
Resource selection matches resources[].version to runtime.version by exact string.
- If you run open.mp, your runtime
versionshould containopenmporopen.mp. - If you ship separate assets (e.g.
-omp), ensure the matching resource entry uses the sameversionstring.
See: Plugin resources
If you want to force a full refresh (common for CI or debugging cache issues):
sampctl run --forceEnsure --forceBuildIf you use --container, make sure Docker is installed and running.
Useful checks:
docker versionSee: Containers (Docker)
This usually means the SA:MP standard library isn’t available to the compiler.
- Make sure your
pawn.json/pawn.yamlhaspawn-lang/samp-stdlibindependencies. - Run
sampctl ensureto download dependencies.
If you’re missing a different include:
- Confirm the dependency that provides it exists in
dependencies(ordev_dependenciesif it’s only for tests). - Run
sampctl ensure. - If you’re using URL schemes (plugins/components/includes/filterscripts), see: Dependency schemes
If two dependencies provide the same .inc filename, the compiler may pick the wrong one.
Common fixes:
- Prefer unique include filenames in libraries.
- Use include guards.
- Remove or pin the conflicting dependency.
If you hit GitHub API rate limits, set a token:
- Environment variable:
SAMPCTL_GITHUB_TOKEN - Or configure it globally: see Global configuration
Run sampctl.exe from a terminal (PowerShell or Command Prompt) so you can see any error output, and make sure its folder is on your PATH.