Main Page: Difference between revisions
No edit summary |
Document upcoming 0.1.7 game audio: 11 client APIs, result event, limits and complete dialogue catalog; not a release |
||
| (32 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
__NOTOC__ | |||
<div style="background:#111611; color:#eee7d5; border:1px solid #8f7338; border-top:4px solid #c6a251; padding:1.6rem 1.8rem; margin-bottom:1.25rem;"> | |||
<div style="color:#c6a251; font-size:0.78rem; font-weight:bold; letter-spacing:0.08em; text-transform:uppercase;">Gothic 1 Remake Multiplayer</div> | |||
<div style="font-size:2.25rem; font-weight:bold; line-height:1.1; margin:0.25rem 0 0.55rem;">G1R:MP Scripting Wiki</div> | |||
<div style="max-width:58rem; color:#cfc8b8; font-size:1.02rem; line-height:1.55;">Build multiplayer resources and gamemodes with Lua 5.1. This wiki documents the server, client, networking, gameplay, database, and RmlUi APIs exposed by G1R:MP.</div> | |||
<div style="margin-top:1rem; color:#e1c36d; font-size:0.9rem;">Lua 5.1 • server and client resources • authoritative gameplay • RmlUi</div> | |||
</div> | |||
== | <div style="border:1px solid #b28a3d; border-left:4px solid #b28a3d; background:#faf9f5; padding:0.9rem 1rem; margin:0 0 1.2rem;"> | ||
'''Current public release: G1R:MP 0.1.6 / BUILD174 / Protocol 38.''' Windows client and Windows/Linux dedicated server downloads are available on the [https://g1r-mp.com/download/ Download page]. Update both the client and server. See [[Update 0.1.6]] for scripting additions and migration notes. Protocol 37 and older clients/servers are not compatible with this release. | |||
</div> | |||
<!-- g1r-upcoming017-game-audio:start --> | |||
<div style="border:1px solid #b89a50; padding:0.85rem 1rem; margin:1rem 0;"> | |||
'''Upcoming 0.1.7: built-in game audio''' — 11 client functions and a result event for game sound effects, music and localized dialogue, including world-positioned 3D audio. See [[Game audio]] and [[Update 0.1.7]]. These APIs are not included in public 0.1.6. | |||
</div> | |||
<!-- g1r-upcoming017-game-audio:end --> | |||
<!-- upcoming016:start --> | |||
<div style="border:1px solid #6f8461; background:#f5f8f2; padding:0.9rem 1rem; margin-bottom:1.2rem;"> | |||
'''New in [[Update 0.1.6|0.1.6]].''' Four new server-side functions: [[Area notifications|custom area notifications]] and [[Mounts|player-owned rideable scavengers]]. Also includes mounted nameplate/recovery fixes, smoother ordinary doors and pickup performance/animation improvements. See the guides for remaining in-game validation. | |||
</div> | |||
<!-- upcoming016:end --> | |||
<div style="border:1px solid #6f8461; background:#f5f8f2; padding:0.9rem 1rem; margin-bottom:1.2rem;"> | |||
'''Also included (since [[Update 0.1.5|0.1.5]]).''' [[NPC scripting|NPC combat and scripting]], walk/run pursuit, identity, skin colour, tattoos, player weapon modes and events. Also includes crouch synchronization, melee presentation and knockdown recovery improvements. | |||
</div> | |||
<div style="border:1px solid #6f8461; background:#f5f8f2; padding:0.9rem 1rem; margin-bottom:1.2rem;"> | |||
'''Also included (since [[Update 0.1.4|0.1.4]]).''' See [[MySQL connection recovery]], [[Weapon control]], [[Mouse capture]], [[UpdateCameraPose]], [[Map editor]], [[World objects]] and [[Player animation catalog|118 player animations]] for released tools and scripting APIs. Also see [[RmlUi images|WebP images]], [[os.time]] and [[getEventClient|remote event security]]. | |||
</div> | |||
<div style="display:flex; flex-wrap:wrap; gap:1rem; margin-bottom:1rem;"> | |||
<div style="flex:1 1 22rem; border:1px solid #c9c2b2; border-left:4px solid #b28a3d; padding:1rem 1.15rem; background:#faf9f5;"> | |||
<div style="font-size:1.35rem; font-weight:bold; margin-bottom:0.45rem;">Start here</div> | |||
<div style="color:#555; margin-bottom:0.6rem;">Find the right entry point for your first resource.</div> | |||
<ul style="margin:0.35rem 0 0 1.25rem; line-height:1.75;"> | |||
<li>[[:Category:Lua API|Lua API overview]]</li> | |||
<li>[[:Category:Lua Functions|Complete function catalog]]</li> | |||
<li>[[Lua events|Complete event and callback catalog]]</li> | |||
<li>[[Scripting limits|Lua, resource and API limits]]</li> | |||
<li>[[Lua API catalogs|Validated skin, monster, equipment, and gameplay keys]]</li> | |||
<li>[[NPC and monster navigation collision|NPC and monster navigation collision]]</li> | |||
<li>[[Client audio|Client audio and synchronized 3D playback]]</li> | |||
<li>[[Game audio|Built-in game audio (upcoming 0.1.7)]]</li> | |||
<li>[[Game dialogue catalog|Complete dialogue catalog (upcoming 0.1.7)]]</li> | |||
<li>[[Scripted camera|Scripted camera and moving login backgrounds]]</li> | |||
<li>[[Map editor|Map editor: controls, save and reopen (0.1.4)]]</li> | |||
<li>[[Map scene deployment|Load exported objects for players (0.1.4)]]</li> | |||
<li>[[Player animation catalog|Player animations: work, sitting, sleep and gestures (expanded in 0.1.4)]]</li> | |||
<li>[[Player customization|Identity, skin color and tattoos]]</li> | |||
<li>[[Chapter screens|Custom chapter title cards]]</li> | |||
<li>[[Area notifications|Custom area notifications (since 0.1.6)]]</li> | |||
<li>[[Mounts|Rideable scavengers and ownership (since 0.1.6)]]</li> | |||
<li>[[Observer nameplates|Observer-specific labels and acquaintance presentation]]</li> | |||
<li>[[:Category:Resource Functions|Resource lifecycle functions]]</li> | |||
<li>[[:Category:Lua Examples|Lua examples]]</li> | |||
<li>[[Hosting a G1R:MP dedicated server|Hosting a dedicated server]]</li> | |||
<li>[[Known issues|Known issues and GPU crash workarounds]]</li> | |||
<li>[[:Category:Experimental Lua API|Experimental API status]]</li> | |||
</ul> | |||
</div> | |||
<div style="flex:1 1 22rem; border:1px solid #c9c2b2; border-left:4px solid #6f8461; padding:1rem 1.15rem; background:#faf9f5;"> | |||
<div style="font-size:1.35rem; font-weight:bold; margin-bottom:0.45rem;">Reference by execution side</div> | |||
<div style="color:#555; margin-bottom:0.6rem;">Check where a function is available before using it.</div> | |||
<ul style="margin:0.35rem 0 0 1.25rem; line-height:1.75;"> | |||
<li>[[:Category:Server Functions|Server-side functions]]</li> | |||
<li>[[:Category:Client Functions|Client-side functions]]</li> | |||
<li>[[:Category:Audio Functions|Client audio functions]]</li> | |||
<li>[[:Category:Shared Functions|Shared functions]]</li> | |||
<li>[[:Category:Server Events|Server-side events]]</li> | |||
<li>[[:Category:Client Events|Client-side events]]</li> | |||
<li>[[:Category:Event Functions|Event functions]]</li> | |||
<li>[[:Category:Network Functions|Network functions]]</li> | |||
</ul> | |||
</div> | |||
</div> | |||
<div style="display:flex; flex-wrap:wrap; gap:1rem; margin-bottom:1rem;"> | |||
<div style="flex:1 1 22rem; border:1px solid #c9c2b2; padding:1rem 1.15rem; background:#fff;"> | |||
<div style="font-size:1.25rem; font-weight:bold; border-bottom:1px solid #ded8ca; padding-bottom:0.45rem; margin-bottom:0.6rem;">Gameplay</div> | |||
<div style="display:grid; grid-template-columns:repeat(auto-fit,minmax(10rem,1fr)); gap:0.4rem 1rem; line-height:1.65;"> | |||
<div>[[:Category:Player Functions|Players]]</div> | |||
<div>[[:Category:Spatial Functions|Position and spawn]]</div> | |||
<div>[[:Category:Progression Functions|Progression]]</div> | |||
<div>[[:Category:Inventory Functions|Inventory]]</div> | |||
<div>[[:Category:Equipment Functions|Equipment]]</div> | |||
<div>[[:Category:Magic Functions|Magic]]</div> | |||
<div>[[:Category:Life State Functions|Health and life state]]</div> | |||
<div>[[:Category:World Functions|World time and weather]]</div> | |||
<div>[[:Category:Monster Functions|Monsters]]</div> | |||
<div>[[:Category:Navigation Functions|AI navigation]]</div> | |||
<div>[[:Category:Interaction Functions|Interactions]]</div> | |||
</div> | |||
</div> | |||
<div style="flex:1 1 22rem; border:1px solid #c9c2b2; padding:1rem 1.15rem; background:#fff;"> | |||
<div style="font-size:1.25rem; font-weight:bold; border-bottom:1px solid #ded8ca; padding-bottom:0.45rem; margin-bottom:0.6rem;">Scripting systems</div> | |||
<div style="display:grid; grid-template-columns:repeat(auto-fit,minmax(10rem,1fr)); gap:0.4rem 1rem; line-height:1.65;"> | |||
<div>[[:Category:GUI Functions|RmlUi and GUI]]</div> | |||
<div>[[:Category:Database Functions|Database]]</div> | |||
<div>[[MySQL connection recovery|Connection recovery (0.1.4)]]</div> | |||
<div>[[:Category:Timer Functions|Timers]]</div> | |||
<div>[[:Category:Command Functions|Commands]]</div> | |||
<div>[[:Category:Chat Functions|Chat]]</div> | |||
<div>[[:Category:Animation Functions|Animations]]</div> | |||
<div>[[Client audio|Client audio and OGG playback]]</div> | |||
<div>[[:Category:Camera Functions|Camera]]</div> | |||
<div>[[Lua events|Events and callbacks]]</div> | |||
</div> | |||
</div> | |||
</div> | |||
== Your first server script == | |||
The following example welcomes a joining player and places them at an authoritative spawn point: | |||
<syntaxhighlight lang="lua" line> | |||
addEventHandler("onPlayerJoin", root, function(playerId) | |||
setPlayerName(playerId, "Newcomer") | |||
spawnPlayer(playerId, 12.0, 24.0, 2.0, 90) | |||
outputChatBox("Welcome to G1R:MP!", playerId, 225, 195, 110) | |||
end) | |||
</syntaxhighlight> | |||
See [[onPlayerJoin]], [[AddEventHandler|addEventHandler]], [[SetPlayerName|setPlayerName]], [[SpawnPlayer|spawnPlayer]], and [[OutputChatBox|outputChatBox]] for parameter details and additional examples. | |||
<div style="display:flex; flex-wrap:wrap; gap:1rem; margin-top:1.25rem;"> | |||
<div style="flex:1 1 22rem; border-top:3px solid #b28a3d; background:#f5f2e9; padding:1rem 1.15rem;"> | |||
<div style="font-size:1.2rem; font-weight:bold; margin-bottom:0.4rem;">Community</div> | |||
<ul style="margin:0.35rem 0 0 1.25rem; line-height:1.7;"> | |||
<li>[https://g1r-mp.com/ G1R:MP website]</li> | |||
<li>[https://g1r-mp.com/forum/ Community forum]</li> | |||
<li>[https://g1r-mp.com/forum/member.php?action=profile&uid=1 Project lead: QCherry]</li> | |||
</ul> | |||
</div> | |||
<div style="flex:1 1 22rem; border-top:3px solid #6f8461; background:#f5f2e9; padding:1rem 1.15rem;"> | |||
<div style="font-size:1.2rem; font-weight:bold; margin-bottom:0.4rem;">Documentation status</div> | |||
<div style="line-height:1.6;">Browse functions and events by topic above. Each API page identifies its version and execution side. See [[Update 0.1.6]] for the current release and [[Update 0.1.5]] for the previous release. APIs marked [[:Category:Experimental Lua API|experimental]] may change. Historical release notices remain on their dedicated reference pages.</div> | |||
</div> | |||
</div> | |||
[[Category:Lua API]] | |||
Latest revision as of 10:21, 1 October 2026
Current public release: G1R:MP 0.1.6 / BUILD174 / Protocol 38. Windows client and Windows/Linux dedicated server downloads are available on the Download page. Update both the client and server. See Update 0.1.6 for scripting additions and migration notes. Protocol 37 and older clients/servers are not compatible with this release.
Upcoming 0.1.7: built-in game audio — 11 client functions and a result event for game sound effects, music and localized dialogue, including world-positioned 3D audio. See Game audio and Update 0.1.7. These APIs are not included in public 0.1.6.
New in 0.1.6. Four new server-side functions: custom area notifications and player-owned rideable scavengers. Also includes mounted nameplate/recovery fixes, smoother ordinary doors and pickup performance/animation improvements. See the guides for remaining in-game validation.
Also included (since 0.1.5). NPC combat and scripting, walk/run pursuit, identity, skin colour, tattoos, player weapon modes and events. Also includes crouch synchronization, melee presentation and knockdown recovery improvements.
Also included (since 0.1.4). See MySQL connection recovery, Weapon control, Mouse capture, UpdateCameraPose, Map editor, World objects and 118 player animations for released tools and scripting APIs. Also see WebP images, os.time and remote event security.
- Lua API overview
- Complete function catalog
- Complete event and callback catalog
- Lua, resource and API limits
- Validated skin, monster, equipment, and gameplay keys
- NPC and monster navigation collision
- Client audio and synchronized 3D playback
- Built-in game audio (upcoming 0.1.7)
- Complete dialogue catalog (upcoming 0.1.7)
- Scripted camera and moving login backgrounds
- Map editor: controls, save and reopen (0.1.4)
- Load exported objects for players (0.1.4)
- Player animations: work, sitting, sleep and gestures (expanded in 0.1.4)
- Identity, skin color and tattoos
- Custom chapter title cards
- Custom area notifications (since 0.1.6)
- Rideable scavengers and ownership (since 0.1.6)
- Observer-specific labels and acquaintance presentation
- Resource lifecycle functions
- Lua examples
- Hosting a dedicated server
- Known issues and GPU crash workarounds
- Experimental API status
Your first server script
The following example welcomes a joining player and places them at an authoritative spawn point:
addEventHandler("onPlayerJoin", root, function(playerId)
setPlayerName(playerId, "Newcomer")
spawnPlayer(playerId, 12.0, 24.0, 2.0, 90)
outputChatBox("Welcome to G1R:MP!", playerId, 225, 195, 110)
end)
See onPlayerJoin, addEventHandler, setPlayerName, spawnPlayer, and outputChatBox for parameter details and additional examples.