Troubleshooting
Common issues
| Symptom | Cause / Fix |
|---|---|
Console: schema.sql not found - tables will NOT be created | Resource folder is incomplete. Re-upload medit8z_fishing so schema.sql is present at the root. |
Items show as [?] in inventory | items.lua was not merged into ox_inventory/data/items.lua. Re-do install step 2. |
| Item icons render as grey squares | PNGs from medit8z_fishing/images/ were not copied into ox_inventory/web/images/. Copy all 86 files. |
| Player can't start fishing — "You need a Fishing License…" | Player is missing the fishing flag in QBX licences metadata. Sell one at City Hall or grant via SetMetaData. |
| Tackle box accepts non-fishing items | The whitelist hook in server/smain.lua failed to register, or Config.TackleBoxWhitelist is empty. Verify the table and restart. |
| Daily / weekly challenges never reset | Resource crashed or StartChallengeResetChecker (in smain.lua) failed to start. Check the console for Lua errors and restart. |
| Skill respec costs the wrong amount | The legacy event handler was removed to close a duplicate-cost exploit. All respec calls now route through lib.callback in sprogression.lua — make sure your client isn't calling a removed event. |
attempt to index a nil value (field 'qbx_core') on start | qbx_core started after medit8z_fishing. Move it earlier in server.cfg, or rely on the declared dependencies block. |
| MySQL errors on first start | oxmysql is not started or your DB connection string is wrong. The script will retry once but won't recover from an unreachable DB. |
| Boat rentals despawn instantly | A vehicle persistence resource is force-deleting the boat. Whitelist the rental plate or disable cleanup for the rental coords. |
| Leaderboards show empty / stale | medit8z_fishing_leaderboards is a cache, refreshed periodically. Sell or catch a fish to trigger an update, or restart the resource. |
Debug mode
Enable verbose server-side logging:
-- config/config.lua
Config.Debug = trueThis will print catch resolution, PendingCatch lifecycle, validation failures, durability changes, and DB call timings to the server console. Disable in production.
Clean database reset
If you need to wipe all fishing progress:
DROP TABLE IF EXISTS
medit8z_fishing_players,
medit8z_fishing_skills,
medit8z_fishing_catches,
medit8z_fishing_encyclopedia,
medit8z_fishing_achievements,
medit8z_fishing_challenges,
medit8z_fishing_prices,
medit8z_fishing_leaderboards,
medit8z_fishing_weekly_stats,
medit8z_fishing_titles,
medit8z_fishing_location_visits,
medit8z_fishing_rarity_counts,
medit8z_fishing_boat_rentals,
medit8z_fishing_location_stats,
medit8z_fishing_equipment,
medit8z_fishing_challenge_tracking;Restart the resource — all 16 tables will be recreated from schema.sql.
This wipes every player's progress, achievements, leaderboard standings, and active boat rentals. There is no undo.
Verifying anti-exploit guardrails
These should all fail on the server with a console warning:
- A client calling
completeCatchtwice for the samependingId— rejected viausedflag - A
completeCatchcall faster thanMIN_MINIGAME_TIME(1.5s) without a legitimate skip skill - A catch claim with a rod/reel/bait/lure the player doesn't actually have in inventory
- A direct call to a removed legacy skill / prestige event — no handler exists, the call is dropped
If any of these succeed, you're running a modified copy. Restore from the original release and reapply config edits to the config/ folder only.
Support
Direct support is available in Discord (opens in a new tab) — no ticket queues, no support tiers. Verified bugs are fixed within 7 days of report. Lifetime updates are included with every purchase.
When reporting an issue, please include:
- Server framework version (
qbx_core,ox_inventory,ox_lib,oxmysql) - Resource version (
medit8z_fishingversionfromfxmanifest.lua) - Steps to reproduce
- Server console output with
Config.Debug = true