add game interface docs

RaidMax 2023-06-07 11:17:34 -05:00
parent 5d9f2e5bf4
commit 9ebc6d1cac
3 changed files with 106 additions and 10 deletions

95
GameInterface.md Normal file

@ -0,0 +1,95 @@
## Preface
Most game servers provided a limited set of functionality that IW4MAdmin can utilize. This restriction results in the game server exposing primarily administrative commands.
Modifying game mechanics and creating commands that interact directly with the game just isn't possible out of the box.
Enter the **Game Interface**...
## What is 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](https://en.wikipedia.org/wiki/Bus_(computing)) system to allow two way communication with **IW4MAdmin**.
This allows creation of custom commands that directly interact with the game using scripting.
These custom commands enrich the experience and enhance the integration of **IW4MAdmin**.
## What games are supported?
The following games are supported in some capacity
| Game | Notes |
|-------|--------|
| IW4 | |
| IW5 | |
| T5 | |
| T6 | |
## How to install
The fastest way to install the game interface is *copying the .gsc files to your game server install*.
**Make sure to restart IW4MAdmin and your game server after installation**.
### IW4x
| Source | Destination | Notes |
|------------------------------------------------- |----------------- |------- |
| Gamefiles/GameInterface/_integration_base.gsc | `%IW4XInstall%`/userraw/scripts | |
| GameFiles/GameInterface/_integration_shared.gsc | `%IW4XInstall%`/scripts | |
| GameFiles/GameInterface/_integration_iw4x.gsc | `%IW4XInstall%`/scripts | |
### Pluto IW5
| 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 | |
### Pluto T5
| 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 | |
### Pluto T6
| 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 | |
## How to add new commands?
Utilize the `RegisterScriptCommandObject` function.
**You must have working knowledge of GSC (Call of Duty® game scripting)**
See [example_module.gsc](https://github.com/RaidMax/IW4M-Admin/blob/develop/GameFiles/GameInterface/example_module.gsc)
## Troubleshooting
Coming soon...
## Advanced
### Bus Mode
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 support
File bus mode is supported on these games
**Currently only supported local game servers** (game servers running on a different machine are not supported)
| Game | Notes |
|-------|--------|
| IW4 | |
| T6 | Using [t6-gsc-utils](https://github.com/fedddddd/t6-gsc-utils#io) |
#### Configuring bus mode
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>"`

@ -1,6 +1,6 @@
**IW4MAdmin** is an administration tool for [IW4x](https://xlabs.dev), [IW6x](https://xlabs.dev), [Pluto T6](https://forum.plutonium.pw/category/6/plutonium-t6), [Pluto IW5](https://forum.plutonium.pw/category/14/plutonium-iw5), [CoD4x](https://cod4x.me), [TeknoMW3](https://github.com/Musta1337/TeknoMW3), and most Call of Duty® dedicated servers.
**IW4MAdmin** is an administration tool for [IW4x](#), [IW6x](#), [Plutonium T6](https://forum.plutonium.pw/category/6/plutonium-t6), [Plutonium IW5](https://forum.plutonium.pw/category/14/plutonium-iw5), [Plutonium T5](https://forum.plutonium.pw/category/51/plutonium-t5), [Plutonium T4](https://forum.plutonium.pw/category/36/plutonium-t4), [CoD4x](https://cod4x.me), [H1-Mod](https://h1.gg/), [TeknoMW3](https://github.com/Musta1337/TeknoMW3), and most Call of Duty® dedicated servers.
It allows complete control of your server; from changing maps, to banning players, **IW4MAdmin** monitors and records activity on your server(s). With plugin support, extending its functionality is a breeze.
It allows complete control of your server; from changing maps, to banning players, **IW4MAdmin** monitors and records activity on your game server(s). Also included is a fully featured and mobile friendly web interface that allows you to watch over and administrate your game servers even on the go. With plugin support, you can extend **IW4MAdmins** functionality to fit all your needs.
#### If you are new to IW4MAdmin, check out the [Getting Started](https://github.com/RaidMax/IW4M-Admin/wiki/Getting-Started) page.
@ -10,7 +10,7 @@ It allows complete control of your server; from changing maps, to banning player
#### Verified
This version type is released at a slower pace and includes features after they have been adopted and tested for some time.
#### Prerelease
#### Prerelease (recommended)
This version type is released as new feature requests and bug-fixes are pushed.
Both versions are tested before release, but the `prerelease` version has a higher chance of small unintentional bugs while implementing new features.

@ -1,9 +1,11 @@
* [Home](https://github.com/RaidMax/IW4M-Admin/wiki/Home)
* [Overview](https://github.com/RaidMax/IW4M-Admin/wiki/Overview)
* [Getting Started](https://github.com/RaidMax/IW4M-Admin/wiki/Getting-Started)
* [FAQ](https://github.com/RaidMax/IW4M-Admin/wiki/FAQ)
* [Knowledge Base](https://github.com/RaidMax/IW4M-Admin/wiki/Knowledge-Base)
* [Features](https://github.com/RaidMax/IW4M-Admin/wiki/Features)
* [Commands](https://github.com/RaidMax/IW4M-Admin/wiki/Commands)
* [Webfront](https://github.com/RaidMax/IW4M-Admin/wiki/Webfront)
* [Game Interface](https://github.com/RaidMax/IW4M-Admin/wiki/GameInterface)
* [Permission Sets](https://github.com/RaidMax/IW4M-Admin/wiki/Permission-Sets)
* [Plugins](https://github.com/RaidMax/IW4M-Admin/wiki/Plugins)
* [API](https://github.com/RaidMax/IW4M-Admin/wiki/API)
@ -12,4 +14,3 @@
* [Examples](https://github.com/RaidMax/IW4M-Admin/wiki/Plugin-Examples)
* [Configuration](https://github.com/RaidMax/IW4M-Admin/wiki/Configuration)
* [Game Log Server](https://github.com/RaidMax/IW4M-Admin/wiki/Game-Log-Server)
* [Webfront](https://github.com/RaidMax/IW4M-Admin/wiki/Webfront)