-
-
Notifications
You must be signed in to change notification settings - Fork 43
GameInterface
Game servers typically offer a limited range of functionality that can be used by administrative tools like IW4MAdmin.
This minimal functionality functionality is usually restricted to administrative commands.
Unfortunately, modifying game mechanics or creating custom commands that interact directly with the game is not possible by default.
Enter the Game Interface...
The Game Interface is a set of utilities that allows IW4MAdmin and the Call of Duty® game scripting engine to communicate with each other.
Without getting too technical, the Game Interface uses a bus system to allow two way communication with IW4MAdmin.
This communication channel enables the creation of custom commands that can directly interact with the game through scripting.
These custom commands can significantly enhance the gaming experience and improve the integration of IW4MAdmin with the game.
The following games are supported in some capacity
Game | Notes |
---|---|
IW4 | |
IW5 | |
T5 | |
T6 |
Install the game interface by copying the .gsc files to your game server install.
For Plutonium
games you can execute the provided deploy.bat
(on Windows) to automatically copy the files.
The source .gsc files are provided in the GameFiles
directory of your IW4MAdmin installation.
Source | Destination | Notes |
---|---|---|
Gamefiles/GameInterface/_integration_base.gsc |
%IW4XInstall% /userraw/scripts |
|
GameFiles/GameInterface/_integration_shared.gsc |
%IW4XInstall% /userraw/scripts |
|
GameFiles/GameInterface/_integration_iw4x.gsc |
%IW4XInstall% /userraw/scripts |
Source | Destination | Notes |
---|---|---|
Gamefiles/GameInterface/_integration_base.gsc |
%LOCALAPPDATA% /Plutonium/storage/iw5/scripts |
|
GameFiles/GameInterface/_integration_shared.gsc |
%LOCALAPPDATA% /Plutonium/storage/iw5/scripts |
|
GameFiles/GameInterface/_integration_iw5.gsc |
%LOCALAPPDATA% /Plutonium/storage/iw5/scripts |
Source | Destination | Notes |
---|---|---|
Gamefiles/GameInterface/_integration_base.gsc |
%LOCALAPPDATA% /Plutonium/storage/t5/scripts |
|
GameFiles/GameInterface/_integration_shared.gsc |
%LOCALAPPDATA% /Plutonium/storage/t5/scripts |
|
GameFiles/GameInterface/_integration_t5.gsc |
%LOCALAPPDATA% /Plutonium/storage/t5/scripts/mp |
|
GameFiles/GameInterface/_integration_t5zm.gsc |
%LOCALAPPDATA% /Plutonium/storage/t5/scripts/sp/zom |
Source | Destination | Notes |
---|---|---|
Gamefiles/GameInterface/_integration_base.gsc |
%LOCALAPPDATA% /Plutonium/storage/t6/scripts |
|
GameFiles/GameInterface/_integration_shared.gsc |
%LOCALAPPDATA% /Plutonium/storage/t6/scripts |
|
GameFiles/GameInterface/_integration_t6.gsc |
%LOCALAPPDATA% /Plutonium/storage/t6/scripts |
|
GameFiles/GameInterface/_integration_t6zm_helper.gsc |
%LOCALAPPDATA% /Plutonium/storage/t6/scripts/zm |
Utilize the RegisterScriptCommandObject
function.
You must have working knowledge of GSC (Call of Duty® game scripting)
See example_module.gsc
Increase the pollingRate
value in Configuration/ScriptPluginSettings.json
.
Increasing the polling rate adds more time between RCon requests for new data from the game server.
"GameInterface.js": {
"config": {
"pollingRate": 2000
}
}
Decrease the pollingRate
value in Configuration/ScriptPluginSettings.json
.
Decreasing the polling rate reduces the time between RCon requests for new data from the game server.
See below for bus mode options to reduce latency on supported games.
"GameInterface.js": {
"config": {
"pollingRate": 150
}
}
One of the limitations of the Game Interface is data transfer speed.
Because the default implementation uses RCon to transmit data, various factors can affect the speed and responsiveness of Game Interface commands.
However, some Call of Duty® clients support filesytem operations (either officially or with unofficial mods).
For those clients, the Game Interface has an alternative bus mode that uses the filesystem instead of rcon; which increases reliablity and decreases latency.
File bus mode is supported on these games
Game | Notes |
---|---|
IW4 | |
T6 | Using t6-gsc-utils |
In your server configuration set the following values
set sv_iw4madmin_integration_busmode "file"
set sv_iw4madmin_integration_busdir "<absolute path to default gsc filesystem access>"