Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/link-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@ jobs:
- name: Run lychee link checker
uses: lycheeverse/lychee-action@v2
with:
# exclude FiveM dynamic native search URLs (?_0xHASH) - they're alive but lychee 404s them
# Excluded URLs live in .lycheeignore at the repo root.
# Accept extra status codes for sites that block bots or rate-limit CI runners.
args: >-
--no-progress
--max-concurrency 8
--accept 200,206,301,302,403,429
--accept 200,206,301,302,403,429,500
--exclude-path .git
--exclude '^https://docs\.fivem\.net/natives/\?_0x'
'./**/*.md'
fail: true
21 changes: 21 additions & 0 deletions .lycheeignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# URLs that work in a browser but lychee can't reach (bot-blocking, rate limits,
# or JS-rendered routing). Listed as Rust regex patterns.

# FiveM dynamic native search (alive but uses JS hash routing lychee can't follow)
^https://docs\.fivem\.net/natives/\?_0x

# FiveM doc pages that intermittently 404 from CI runners (live in browser)
^https://docs\.fivem\.net/docs/scripting-reference/runtimes/lua/functions/TriggerLatentClientEvent/?$
^https://docs\.fivem\.net/docs/scripting-reference/runtimes/javascript/functions/GetParentResourceName/?$
^https://docs\.fivem\.net/docs/scripting-reference/profiler/?$
^https://docs\.fivem\.net/docs/scripting-manual/working-with-data-files/?$
^https://docs\.fivem\.net/docs/game-references/bones/?$

# coxdocs.dev parent path that doesn't render but child pages do
^https://coxdocs\.dev/ox_lib/Modules/Callback/?$

# HeidiSQL site is alive but returns 500 to bot user-agents
^https://www\.heidisql\.com

# Local file links (false positives — these are GitHub-relative URLs)
^file://
2 changes: 1 addition & 1 deletion 02-events/02-net-events.md
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,7 @@ This makes events **grep-able**. Search the whole server folder for `myarmory:se
- [RegisterNetEvent](https://docs.fivem.net/docs/scripting-reference/runtimes/lua/functions/RegisterNetEvent/)
- [TriggerServerEvent](https://docs.fivem.net/docs/scripting-reference/runtimes/lua/functions/TriggerServerEvent/)
- [TriggerClientEvent](https://docs.fivem.net/docs/scripting-reference/runtimes/lua/functions/TriggerClientEvent/)
- [TriggerLatentClientEvent](https://docs.fivem.net/docs/scripting-reference/runtimes/lua/functions/TriggerLatentClientEvent/)
- [TriggerLatentClientEvent](https://docs.fivem.net/docs/scripting-manual/working-with-events/triggering-events/#triggering-client-events)
- [State Bags](https://docs.fivem.net/docs/scripting-manual/networking/state-bags/) - alternative for continuous sync

---
Expand Down
2 changes: 1 addition & 1 deletion 02-events/04-callbacks.md
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ Ask the server "am I allowed?" before doing the expensive UI work. Server gates,

## Sources

- [ox_lib Callback module (docs)](https://coxdocs.dev/ox_lib/Modules/Callback) - official reference
- [ox_lib Callback (server)](https://coxdocs.dev/ox_lib/Modules/Callback/Lua/Server) and [Callback (client)](https://coxdocs.dev/ox_lib/Modules/Callback/Lua/Client) - official reference
- [ox_lib Callback source](https://github.com/communityox/ox_lib/tree/master/imports/callback) - read the implementation
- [Working With Events](https://docs.fivem.net/docs/scripting-manual/working-with-events/) - events overview

Expand Down
2 changes: 1 addition & 1 deletion 03-natives/01-what-are-natives.md
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ Find a working pattern, adapt to your case.

- [Native Reference (searchable)](https://docs.fivem.net/natives/) - official database
- [Scripting Reference Overview](https://docs.fivem.net/docs/scripting-reference/)
- [Streaming docs (assets)](https://docs.fivem.net/docs/scripting-manual/working-with-data-files/)
- [Resource Manifest (data_file declarations)](https://docs.fivem.net/docs/scripting-reference/resource-manifest/resource-manifest/)
- [VS Code cfxlua extension](https://marketplace.visualstudio.com/items?itemName=overextended.cfxlua-vscode) - autocomplete

---
Expand Down
2 changes: 1 addition & 1 deletion 06-ox-libraries/01-ox-lib.md
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ local banned = lib.isPlayerBanned(src) -- check ban sta
- [ox_lib docs (canonical)](https://coxdocs.dev/ox_lib)
- [ox_lib GitHub](https://github.com/communityox/ox_lib) - source code
- [Notify module](https://coxdocs.dev/ox_lib/Modules/Interface/Client/notify)
- [Callback module](https://coxdocs.dev/ox_lib/Modules/Callback)
- [Callback module (server)](https://coxdocs.dev/ox_lib/Modules/Callback/Lua/Server) and [(client)](https://coxdocs.dev/ox_lib/Modules/Callback/Lua/Client)
- [Cache module](https://coxdocs.dev/ox_lib/Modules/Cache/Client)
- [Points module source](https://github.com/communityox/ox_lib/tree/master/imports/points)
- [Zones module](https://coxdocs.dev/ox_lib/Modules/Zones/Shared)
Expand Down
2 changes: 1 addition & 1 deletion 06-ox-libraries/02-ox-target.md
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@ Without this, restarting the resource leaves duplicate options floating around u

- [ox_target docs](https://coxdocs.dev/ox_target)
- [ox_target GitHub](https://github.com/communityox/ox_target)
- [Vehicle bone names](https://docs.fivem.net/docs/game-references/bones/) - full list
- [Game references (vehicle bones, controls, etc.)](https://docs.fivem.net/docs/game-references/) - browse for full bone list

---

Expand Down
2 changes: 1 addition & 1 deletion 07-nui/01-nui-basics.md
Original file line number Diff line number Diff line change
Expand Up @@ -367,7 +367,7 @@ The UI element has `pointer-events: none` somewhere up the tree, OR the page isn
- [SetNuiFocus](https://docs.fivem.net/natives/?_0x5B98AE30) - native reference
- [SendNUIMessage](https://docs.fivem.net/docs/scripting-reference/runtimes/lua/functions/SendNUIMessage/)
- [RegisterNUICallback](https://docs.fivem.net/docs/scripting-reference/runtimes/lua/functions/RegisterNUICallback/)
- [GetParentResourceName](https://docs.fivem.net/docs/scripting-reference/runtimes/javascript/functions/GetParentResourceName/) - JS-side global
- [JavaScript runtime reference](https://docs.fivem.net/docs/scripting-reference/runtimes/javascript/) - includes `GetParentResourceName` global

---

Expand Down
2 changes: 1 addition & 1 deletion 09-performance/01-threads-and-waits.md
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ Need to do X?
## Sources

- [FiveM Lua Runtime](https://docs.fivem.net/docs/scripting-reference/runtimes/lua/) - `CreateThread`, `Wait`
- [resmon and profiler](https://docs.fivem.net/docs/scripting-reference/profiler/) - performance tools
- [Lua runtime overview (CreateThread, Wait, profiler entry points)](https://docs.fivem.net/docs/scripting-reference/runtimes/lua/)
- [ox_lib points (source)](https://github.com/communityox/ox_lib/tree/master/imports/points) - batched distance loop
- [ox_lib zones](https://coxdocs.dev/ox_lib/Modules/Zones/Shared)
- [FiveM Cookbook - performance](https://cookbook.fivem.net/) - community patterns
Expand Down
2 changes: 1 addition & 1 deletion 09-performance/02-optimization-patterns.md
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,7 @@ Gate by distance, by visibility, by "am I involved". Idle work is a tax on the w

## Sources

- [FiveM profiler docs](https://docs.fivem.net/docs/scripting-reference/profiler/)
- [FiveM Lua runtime (profiler entry points)](https://docs.fivem.net/docs/scripting-reference/runtimes/lua/)
- [State Bags](https://docs.fivem.net/docs/scripting-manual/networking/state-bags/)
- [FiveM Cookbook (performance)](https://cookbook.fivem.net/) - community patterns
- [ox_lib points (source)](https://github.com/communityox/ox_lib/tree/master/imports/points)
Expand Down
2 changes: 1 addition & 1 deletion LAUNCH-CHECKLIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ Skip if you do not care.

Once public, post in:

- [ ] FiveM forum: <https://forum.cfx.re/c/development/scripts/9>
- [ ] FiveM forum: <https://forum.cfx.re/c/development/releases/7>
- [ ] Cfx.re Discord (`#showcase` or similar)
- [ ] Your own Discord / Twitter / personal channels
- [ ] r/FiveM on Reddit
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ This repo is **MIT licensed** ([LICENSE](LICENSE)) and PR-friendly. If you spot

See [CONTRIBUTING.md](CONTRIBUTING.md) for the rules. Short version: keep the tone direct, keep examples runnable, no padding.

Bugs / questions / feature requests[open an issue](../../issues/new/choose).
Bugs / questions / feature requests: [open an issue](https://github.com/SamMethot/learn-fivem/issues/new/choose).

---

Expand Down
Loading