Retro Goldpanning
The resource includes editable hooks and bridge files so custom server environments can be integrated without modifying the protected core.
Custom Framework
Section titled “Custom Framework”Set:
Config.Framework = 'custom'Then configure:
editable/server.luaThe custom framework interface includes:
Editable.Framework.RegisterUsableItem(item, cb)Editable.Framework.GetIdentifier(source)Editable.Framework.AddMoney(source, account, amount)Editable.Framework.GetMoney(source, account)Editable.Framework.RemoveMoney(source, account, amount)Editable.Framework.HasGroup(source, groups)RegisterUsableItem
Section titled “RegisterUsableItem”Register the resource’s usable items through your framework.
GetIdentifier
Section titled “GetIdentifier”Return a stable character identifier.
This is used for systems such as:
- Machine ownership
- Work light ownership
- Bucket state
- Levels
- Orders
- Character-based sale limits
Use a character-specific identifier when your framework supports multiple characters.
Money Functions
Section titled “Money Functions”Used by buyer sales and the gear shop.
Supported account names are normally:
cashbankCustom Inventory
Section titled “Custom Inventory”Set:
Config.Inventory = 'custom'Then implement:
Editable.Inventory.AddItem(source, item, count, metadata)Editable.Inventory.RemoveItem(source, item, count, slot)Editable.Inventory.GetItemCount(source, item)Editable.Inventory.CanCarry(source, item, count)Optional metadata support:
Editable.Inventory.FindItem(source, item)Editable.Inventory.SetMetadata(source, slot, metadata)These are required only when using features such as pan durability.
Custom Stashes
Section titled “Custom Stashes”The highbanker can use a persistent stash.
Implement:
Editable.Inventory.OpenStash(source, id, label, slots, weight)Optionally implement:
Editable.Inventory.StashCount(id)This allows the resource to prevent machine pickup while items remain in the stash.
ESX default inventory does not provide native stash support, so a custom stash implementation is required if you want to use the highbanker stash with that setup.
Custom Target
Section titled “Custom Target”Set:
Config.Interaction = 'target'Config.Target = 'custom'Then edit:
editable/client.luaImplement:
Editable.Target.AddEntity(entity, options)Editable.Target.RemoveEntity(entity)Target entities are local non-networked objects.
Each option can include:
namelabeliconcanInteractonSelectNotifications
Section titled “Notifications”The default notification function uses ox_lib when available and falls back to GTA feed notifications.
Edit:
Editable.Notify(message, type, duration)in:
editable/client.luato integrate another notification resource.
Custom Hint UI
Section titled “Custom Hint UI”Set:
Config.HintUI = 'custom'Then implement:
Editable.Hints.Show(title, items, progress)Editable.Hints.Progress(progress)Editable.Hints.Hide()Custom Progress Bar
Section titled “Custom Progress Bar”Set:
Config.ProgressUI = 'custom'Then edit:
editable/progress.luaThe custom backend receives:
{ duration, label, canCancel, anim, prop}and should return true when completed or false when cancelled.
Client Hooks
Section titled “Client Hooks”OnStart
Section titled “OnStart”function Editable.OnStart()endCalled when the player begins panning.
Common uses:
- Hide HUD
- Disable another interaction system
- Trigger custom UI state
OnStop
Section titled “OnStop”function Editable.OnStop()endCalled when the panning session ends.
CanStart
Section titled “CanStart”function Editable.CanStart() return trueendUse this for immediate client-side feedback.
Example use cases:
- Player is handcuffed
- Player is in a forbidden state
- Job restriction
- Custom minigame state
Return:
false, 'locale_key'to block the action.
Client-side checks are for user experience only. Important restrictions should also be validated server-side.
Server-Side Conditions
Section titled “Server-Side Conditions”CanStartServer
Section titled “CanStartServer”function Editable.CanStartServer(source) return trueendThis is checked when panning starts and again during the panning flow.
Use it for security-sensitive conditions that a modified client must not be able to bypass.
CanPlaceServer
Section titled “CanPlaceServer”function Editable.CanPlaceServer(source, kind, coords) return trueendkind can be:
machinepumplightUse it for additional placement restrictions.
Examples:
- Job requirements
- Restricted areas
- Character state
- Custom permission checks
The core already validates important server-side rules such as items, player distance, zone relation, spacing and per-player limits.
Water surface, terrain slope and pump suction reach depend on client-side GTA natives and are therefore validated client-side.
Custom Admin Check
Section titled “Custom Admin Check”Enable:
Config.Admin.custom = trueThen implement:
function Editable.IsAdmin(source) return falseendDiscord Admin IDs
Section titled “Discord Admin IDs”Enable:
Config.Admin.discord = trueAdd IDs to:
Editable.AdminDiscordIds = { '123456789012345678',}This table is located in editable/server.lua, so the IDs are not sent to clients.
Collection Hook
Section titled “Collection Hook”function Editable.OnCollect(source, data)endCalled when a pan wash is fully collected.
Example data:
{ zone = id, zoneLabel = 'River', items = { gold_nugget = 1 }, rocks = 8, panBroke = false}Use this for:
- Achievements
- Quests
- External logs
- Progression systems
- Analytics
Discord Logs
Section titled “Discord Logs”Webhook configuration is located in:
Editable.Logsinside editable/server.lua.
Available categories:
defaultsaleordershopfindrigadminWebhook URLs remain server-side.
Big Find Logging
Section titled “Big Find Logging”Configure:
Editable.Logs.bigFindExample:
bigFind = { gold_nugget = 1, silver_nugget = 3}Custom Logging Hook
Section titled “Custom Logging Hook”Every log passes through:
function Editable.OnLog(event, payload)endUse it to send logs to another system.
Return false to prevent the configured Discord webhook from receiving that event.
Usable Item Exports
Section titled “Usable Item Exports”The resource exposes server exports for inventory systems that require item-side exports:
rs_goldpanning.usePanrs_goldpanning.useMachiners_goldpanning.usePumprs_goldpanning.useBucketrs_goldpanning.useLightThese are especially useful with ox_inventory when no supported framework is responsible for registering usable items.
Admin Commands
Section titled “Admin Commands”Zone Editor
Section titled “Zone Editor”/goldzonesOpens the gold zone management panel.
The command name can be changed with:
Config.Admin.commandProspector Level
Section titled “Prospector Level”/goldlevel <player id> [level]Without a level value, displays the player’s current prospector progress.
With a level value, sets the player to the start of that level.
Configured with:
Config.Admin.levelCommandReset Buyer Orders
Section titled “Reset Buyer Orders”/goldorders <player id>Clears the player’s current buyer orders. New orders are generated the next time the player requests them.
Configured with:
Config.Admin.ordersCommandZone Editor Controls
Section titled “Zone Editor Controls”While drawing a zone:
| Key | Action |
|---|---|
| E | Add point |
| G | Remove last point |
| Mouse Wheel | Adjust height above |
| Shift + Mouse Wheel | Adjust depth below |
| Enter | Finish drawing |
| X | Cancel |
At least three points are required.
Live Pan and Camera Tuning
Section titled “Live Pan and Camera Tuning”Enable:
Config.Debug = trueUse:
/gptunefor pan position tuning.
Use:
/gptune camfor camera tuning.
The command prints the final values to the F8 console so they can be copied into config.lua.