API Reference

Server Exports

Channel Management

getAllChannels()

Get all active channels with user counts.

local channels = exports['radio']:getAllChannels()
-- Returns: table of all channels with active user information

getUsersInChannel(frequency)

Get list of users currently in a specific channel.

local users = exports['radio']:getUsersInChannel(154.755)
-- Parameters:
--   frequency (number): The channel frequency to check
-- Returns: table of server IDs currently on the channel

changeUserChannel(serverId, frequency)

Move a user to a different channel.

local success = exports['radio']:changeUserChannel(1, 155.475)
-- Parameters:
--   serverId (number): The player's server ID
--   frequency (number): Target channel frequency
-- Returns: boolean indicating success

disconnectUser(serverId)

Disconnect a user from the radio system.

local success = exports['radio']:disconnectUser(1)
-- Parameters:
--   serverId (number): The player's server ID to disconnect
-- Returns: boolean indicating success

Emergency Functions

setSignal100OnChannel(channel, enabled)

Enable or disable Signal 100 on a channel.

exports['radio']:setSignal100OnChannel(154.755, true)
-- Parameters:
--   channel (number): Channel frequency
--   enabled (boolean): true to enable Signal 100, false to disable

setChannelPanic(frequency, serverId, enabled)

Set panic button state for a user on a channel.

exports['radio']:setChannelPanic(154.755, 1, true)
-- Parameters:
--   frequency (number): Channel frequency
--   serverId (number): Player's server ID
--   enabled (boolean): true to activate panic, false to deactivate

getChannelSignal(frequency)

Get current Signal 100 state of a channel.

local isSignal100 = exports['radio']:getChannelSignal(154.755)
-- Parameters:
--   frequency (number): Channel frequency to check
-- Returns: boolean indicating if Signal 100 is active

getChannelPanic(frequency)

Get panic button states for a channel.

local panicUsers = exports['radio']:getChannelPanic(154.755)
-- Parameters:
--   frequency (number): Channel frequency to check
-- Returns: table of server IDs with active panic buttons

Audio Management

playToneOnChannel(radioChannel, tone)

Play a tone on a specific channel.

exports['radio']:playToneOnChannel(154.755, "beep")
-- Parameters:
--   radioChannel (number): Target channel frequency
--   tone (string): Tone identifier

playToneOnSource(source, tone)

Play a tone to a specific player.

exports['radio']:playToneOnSource(1, "alert")
-- Parameters:
--   source (number): Player's server ID
--   tone (string): Tone identifier to play

User Information

getUserNacId(serverId)

Get a user's NAC ID.

local nacId = exports['radio']:getUserNacId(1)
-- Parameters:
--   serverId (number): Player's server ID
-- Returns: string NAC ID or nil if not found

getUserInfo(serverId)

Get complete user information.

local userInfo = exports['radio']:getUserInfo(1)
-- Parameters:
--   serverId (number): Player's server ID
-- Returns: table with user data (nacId, name, etc.)

getPlayerName(serverId)

Get player's display name/callsign.

local name = exports['radio']:getPlayerName(1)
-- Parameters:
--   serverId (number): Player's server ID
-- Returns: string formatted name/callsign

Client Exports

Radio State

isConnected()

Check if radio is connected to voice server.

local connected = exports['radio']:isConnected()
-- Returns: boolean indicating connection status

isPowerOn()

Check if radio power is on.

local powerOn = exports['radio']:isPowerOn()
-- Returns: boolean indicating power state

isRadioOpen()

Check if radio interface is open.

local radioOpen = exports['radio']:isRadioOpen()
-- Returns: boolean indicating if UI is displayed

Channel Information

getFrequency()

Get current channel frequency.

local frequency = exports['radio']:getFrequency()
-- Returns: number representing current frequency, or -1 if not connected

getChannel()

Get current channel object.

local channel = exports['radio']:getChannel()
-- Returns: table with channel information

getZone()

Get current zone name.

local zoneName = exports['radio']:getZone()
-- Returns: string name of current zone

Radio Control

setSignalOnFreq(freq, enabled)

Set Signal 100 state on frequency.

exports['radio']:setSignalOnFreq(154.755, true)
-- Parameters:
--   freq (number): Target frequency
--   enabled (boolean): Signal 100 state

panicButton(freq, enabled)

Activate or deactivate panic button.

exports['radio']:panicButton(154.755, true)
-- Parameters:
--   freq (number): Target frequency
--   enabled (boolean): Panic button state

Audio Control

setVolume(volume)

Set voice volume level.

exports['radio']:setVolume(80)
-- Parameters:
--   volume (number): Volume level from 0-100

setToneVolume(volume)

Set tone volume level.

exports['radio']:setToneVolume(15)
-- Parameters:
--   volume (number): Tone volume level from 0-100

Events

Client Events

radio:connected

Radio connects to voice server.

AddEventHandler('radio:connected', function()
    print('Radio connected')
end)

radio:disconnected

Radio disconnects from voice server.

AddEventHandler('radio:disconnected', function()
    print('Radio disconnected')
end)

radio:channelChanged

User changes channels.

AddEventHandler('radio:channelChanged', function(channel)
    print('Changed to channel: ' .. channel.name)
end)

radio:emergencyActivated

Panic button is activated.

AddEventHandler('radio:emergencyActivated', function(frequency)
    print('Emergency on: ' .. frequency)
end)

Server Events

radio:userConnected

User connects to radio system.

AddEventHandler('radio:userConnected', function(serverId)
    print('User ' .. serverId .. ' connected')
end)

radio:userDisconnected

User disconnects from radio system.

AddEventHandler('radio:userDisconnected', function(serverId)
    print('User ' .. serverId .. ' disconnected')
end)

Last updated