hlsdk-xash3d/README.ggm.md

180 lines
6.0 KiB
Markdown
Raw Normal View History

2018-08-23 23:27:23 +02:00
# GravGunMod
Extended Half-Life mod
### Main features:
* New weapons (GravGun, AR2, BIG_COCK, Gate of Babylon)
* Pseudo-physics for weapons, ammo, items, props
* Co-op mode
* Advanced game-side enitity tools
* Advanced menu, motd and help system
* Server-side visibility limit
* error.mdl support (like in Source Engine)
* Other tools
## Gravity gun and pseudo-physics
Gravity Gun may drag props, weapons, ammos, items, monsters and pushables
`mp_gravgun_players` option allows dragging players
prop is special entity for pseudo-physical objects (alternative to prop_physics from Source)
While it still use hull for collision, it may change rotation angle and size for fake shape.
### Supported keyvalues:
`"shape"` - fake shape number
Supported shapes:
* cylinder horizontal (0)
* cylinder vertical (1)
* generic (3)
* sphere (4)
`"respawntime"` : idle time before respawn (for multiplayer)
`"customanglesx"`, `"customanglesz"` : custom angles for generic shape
`"hmin"`, `"hmax"`, `"vmin"`, `"vmax"` : size vectors for horizontal and vertical mode.
All shapes except vertical cylinder uses horizontal size. Horizontal and vertical cylinders changes dynamically
Breakable options: `"material"`, `"explosion"`, `"gibmodel"`, `"explodemagnitude"`
Use `dumpprops` command to dump all spawned props to `props.ent` file (need `sv_cheats`)
## Cooperative mode
Cooperative mode still does not work correctly in half-life, you need to remove all blockers on `c3a1` map with entpatch
### Sample cooperative config:
```
set mp_coop 1 // enable cooperative mode. This enables frags from some monsters and unlocks other coop features like menu
set mp_spectator 1 // make players spawned in spectator mode
set mp_coop_changelevel 1 // enable changelevel with hacks
set mp_coop_nofriendlyfire 1 // disallow damage players
set mp_skipdefaults 1 // do not give glock/crowbar on player spawn
set mp_allowmonsters 1 // allow monsters in multiplayer
set mp_flashlight 1 // allow flashlight
set mp_unduck 1 // allow duck hack. need to prevent blocking players on changelevel
set mp_semclip 1 // semclip mode. prevent players blocking narrow places
set mp_coop_checkpoints 1 // allow checkpoints. every player may create checkpoint to continue after respawn
set mp_coop_strongcheckpoints 1 // do not allow changelevel back if map has checkpoints. This preventing some STUPID players from breaking the game
set mp_coop_noangry 1 // prevent ally npc from angrying on bad players
```
## Entity tools
Mod has server-side entity tools
This allows making sandbox servers
To enable it, ensure `sv_enttools_enable` is set to `0` and `mp_enttools_enable` set to` 1`
### Availiable options and commands
```
mp_enttools_enable (1/0) - enable entity tools
mp_enttools_maxfire - limit entity count for ent_fire
mp_enttools_lockmapentities - lock map's own entities from ent_fire
mp_enttools_checkowner owner checking
1: allow ent_fire on entity only if player owns it or disconnected from server
2: allow ent_fire on entity only if player owns it
mp_enttools_players - allow ent_fire on players (dangerous)
mp_enttools_addblacklist <pattern> <per minute limit> <behaviour (0 - block, 1 - kick, 2 - ban)> [<clear>]
rate-limiting and blacklist for ent_create
if per-minute-limit set to 0, refuses to create entity
if per-minute-limit reached, does action set in behaviour
if clear is set, clears all entities created by this player
mp_enttools_clearblacklist - clear blacklist.
Add before addblacklist commands to config to prevent duplicates in blacklist
mp_enttools_checkmodels - check model name before setting model
Useful if you do not want to use error.mdl
```
## Menu command system
GravGumMod has advanced command processing
Command may be entered in console, in chat with `'/'` prefix and from menu
Every command may be associated to menu, custom motd message and short help message
menus placed in `ggm/menus` folder in gamedir
Each menu is plain text file without extension and formmated this way:
```
"Menu title"
"Item name1" "command1"
"Item name2" "command2"
```
Up to 5 items allowed
Each custom motd placed in `ggm/motd` as `plain text`
Each help message placed in `ggm/help` as `plain text`
You may send commands to client with `"client"` command
When client connects to server, it executes` "init" `command
### Touch settings:
```
mp_touchname, mp_touchcommand - add button with specified name
and command to touch controls on connect
mp_touchmenu - upload touch menu to client.
Will not be saved after exit. Will replace all text menus
```
## Other options
server visibility distance limit:
```
mp_serverdistclip - general switch
mp_maxbmodeldist - max distance for bmodels
mp_maxtrashdist - max distance for small monsters and gibs
mp_maxwaterdist - max distance for water
mp_maxmonsterdist - max distance for monsters
mp_maxotherdist - max distance for other entities
mp_servercliptents - switch for tempentity clipping
mp_maxtentdist - tempentity distance Cuts shoots, beams, ligths
```
weapon switches:
```
mp_allow_gravgun
mp_allow_ar2
mp_allow_bigcock
mp_allow_gateofbabylon
0 - disable, 1 - enable (precache), 2 - give to player
```
tweaks:
```
mp_ar2_mp5 - make ar2 use mp5 ammo
mp_ar2_bullets - default ar2 bullets count
mp_ar2_balls - default ar2 balls count
mp_wresptime - weapon respawn time
mp_iresptime - item respawn time
mp_hgibcount - human gibs count
mp_agibcount - alien gibs count
mp_gibtime - set gib stay time
mp_fixhornetbug - enable workaround for hornetgun bug
mp_fixsavetime - cut down time when loading
save (useful for very LOOOOONG game and sandbox
servers with save)
mp_checkentities - check for entity overflow. preventing crash on edicts overflow.
This enables garbage collector
mp_maxdecals - set r_decals from server
mp_errormdl, mp_errormdlpath - replace bad models with error.mdl
mp_lightstyle <number> <pattern> - override lightstyle from server.
For example, mp_lightstyle 0 k makes static light darker.
ent_rungc <mode> [<pattern>] - execute garbage collector manually
0 - default garbage collector
1 - remove all entities created by enttools (freshen map)
2 - remove all entities by given pattern
```