Synchronized spell catalog: Difference between revisions
Document 0.1a identities and synchronized spell catalog |
Update G1R:MP 0.1.2 API documentation |
||
| Line 2: | Line 2: | ||
The '''synchronized spell catalog''' is the '''basic set of synchronized spells in G1R:MP version 0.1a'''. It is not the complete set of spells from Gothic Remake. Later G1R:MP releases may extend this list. | The '''synchronized spell catalog''' is the '''basic set of synchronized spells in G1R:MP version 0.1a'''. It is not the complete set of spells from Gothic Remake. Later G1R:MP releases may extend this list. | ||
The list follows the native <code>SpellFlagImplemented</code> contract. Every listed spell also has a remote cast/VFX profile, a remote rune-in-hand visual and a production GothicRP inventory-to-spell grant mapping. The current native spell catalog version is <code> | The list follows the native <code>SpellFlagImplemented</code> contract. Every listed spell also has a remote cast/VFX profile, a remote rune-in-hand visual and a production GothicRP inventory-to-spell grant mapping. The current native spell catalog version is <code>3</code>. | ||
== Synchronized spells == | == Synchronized spells == | ||
| Line 20: | Line 20: | ||
| '''Full 0.1a''' || <code>7 (IceBolt)</code> || <code>ice_bolt</code> || <code>ItAr_Rune_IceBolt</code> || projectile / direction || 2 / 1 || 1 / 18 || authoritative cast lifecycle and remote authored profile, server projectile and impacts | | '''Full 0.1a''' || <code>7 (IceBolt)</code> || <code>ice_bolt</code> || <code>ItAr_Rune_IceBolt</code> || projectile / direction || 2 / 1 || 1 / 18 || authoritative cast lifecycle and remote authored profile, server projectile and impacts | ||
|- | |- | ||
| '''Full 0.1a''' || <code>11 (IceBlock)</code> || <code>ice_block</code> || <code>ItAr_Rune_IceBlock</code> || projectile / | | '''Full 0.1a''' || <code>11 (IceBlock)</code> || <code>ice_block</code> || <code>ItAr_Rune_IceBlock</code> || projectile / direction || 3 / 1 || 3 / 8 || authoritative cast lifecycle and remote authored profile, server projectile and impacts, control effect | ||
|- | |- | ||
| '''Full 0.1a''' || <code>12 (BallLightning)</code> || <code>ball_lightning</code> || <code>ItAr_Rune_BallLightning</code> || projectile / direction || 3 / 3 || 5 / 24 || authoritative cast lifecycle and remote authored profile, server projectile and impacts, replicated charge | | '''Full 0.1a''' || <code>12 (BallLightning)</code> || <code>ball_lightning</code> || <code>ItAr_Rune_BallLightning</code> || projectile / direction || 3 / 3 || 5 / 24 || authoritative cast lifecycle and remote authored profile, server projectile and impacts, replicated charge | ||
Latest revision as of 18:42, 3 September 2026
The synchronized spell catalog is the basic set of synchronized spells in G1R:MP version 0.1a. It is not the complete set of spells from Gothic Remake. Later G1R:MP releases may extend this list.
The list follows the native SpellFlagImplemented contract. Every listed spell also has a remote cast/VFX profile, a remote rune-in-hand visual and a production GothicRP inventory-to-spell grant mapping. The current native spell catalog version is 3.
Synchronized spells
| Status | Spell ID | Spell key | Rune class | Behavior / target | Required circle / max level | Base mana / damage | Synchronized features |
|---|---|---|---|---|---|---|---|
| Full 0.1a | 1 (Light) |
light |
ItAr_Rune_Light |
utility / self | 1 / 1 | 5 / 0 | authoritative cast lifecycle and remote authored profile, persistent owner effect |
| Full 0.1a | 2 (FireBolt) |
fire_bolt |
ItAr_Rune_FireBolt |
projectile / direction | 1 / 1 | 5 / 20 | authoritative cast lifecycle and remote authored profile, server projectile and impacts |
| Full 0.1a | 4 (FistOfWind) |
fist_of_wind |
ItAr_Rune_FistOfWind |
projectile / direction | 1 / 1 | 2 / 0 | authoritative cast lifecycle and remote authored profile, server projectile and impacts, replicated charge, knockback |
| Full 0.1a | 5 (FireBall) |
fire_ball |
ItAr_Rune_FireBall |
projectile / direction | 2 / 3 | 5 / 28 | authoritative cast lifecycle and remote authored profile, server projectile and impacts, replicated charge |
| Full 0.1a | 6 (FireBallMilten) |
fire_ball_milten |
ItAr_Rune_FireBall_MiltenSleeper_Player |
projectile / direction | 2 / 3 | 5 / 28 | authoritative cast lifecycle and remote authored profile, server projectile and impacts, replicated charge |
| Full 0.1a | 7 (IceBolt) |
ice_bolt |
ItAr_Rune_IceBolt |
projectile / direction | 2 / 1 | 1 / 18 | authoritative cast lifecycle and remote authored profile, server projectile and impacts |
| Full 0.1a | 11 (IceBlock) |
ice_block |
ItAr_Rune_IceBlock |
projectile / direction | 3 / 1 | 3 / 8 | authoritative cast lifecycle and remote authored profile, server projectile and impacts, control effect |
| Full 0.1a | 12 (BallLightning) |
ball_lightning |
ItAr_Rune_BallLightning |
projectile / direction | 3 / 3 | 5 / 24 | authoritative cast lifecycle and remote authored profile, server projectile and impacts, replicated charge |
Full 0.1a means that the server accepts the spell through its authoritative equipment, cast-phase, mana, cooldown, projectile/impact or persistent-effect path, and that the native client has the matching remote rune and authored presentation profile. It does not promise every single-player environmental interaction from Gothic Remake.
Base mana and damage are catalog values. Charge, spell level, hold duration and target resistance can change the effective release cost, collision radius or final damage where the implementation supports them.
Lua usage
for _, spell in ipairs(getSpellCatalog()) do
if spell.implemented then
outputDebugString(
("spell %d: %s"):format(spell.id, spell.key)
)
end
end
local iceBlock = getSpellDefinition("ice_block")
if iceBlock and iceBlock.implemented then
outputDebugString("Ice Block is synchronized by this build.")
end
Use the returned implemented field as the runtime support test. getPlayerRuneNames enumerates all rune item keys known to the inventory/test catalog; it is not a list of synchronized cast implementations. Granting or owning a catalogued rune does not make an unfinished spell castable.
Spell-specific notes
lightis a non-projectile owner effect with one authoritative five-minute deadline. Relevance entry and late join replay the remaining lifetime instead of restarting it.fire_boltis the non-chargeable regression baseline and the only spell with the server's repeat-cast path during recovery. Its authored hold presentation does not make server damage or radius charge-scaled.fist_of_windis a continuing progressive cone with authoritative knockback. Its catalog damage is zero; charge affects its collision radius, but it has no damage/level tiers.fire_ballandfire_ball_miltenshare the same three-level gameplay rules but retain separate spell/rune catalog identities and distinct projectile presentation profiles.ice_bolthas no chargeable flag or level tiers. Holding it beyond the base cast time increases release mana cost by one for each complete additional second.ice_blockrequires a valid living player target, applies a four-second authoritative control effect and does not target monsters. Its synchronized player/world-miss ice piece is visual-only with collision disabled; it does not create authoritative frozen-world collision or synchronized water/material mutation.ball_lightningis a continuing multi-target area projectile. Its large growing trace/visual radius is separate from the bounded authoritative damage radius.
Known limits
- The full protocol/Lua catalog contains 27 stable spell IDs. The other 19 entries are reserved catalog definitions with
implemented = false; cast attempts are rejected asNotImplemented. - World geometry is observed by the casting client because the dedicated server has no Unreal level geometry. The server validates the reported point against the authoritative projectile owner, sequence, path, range and lifetime, and prevents it from consuming a valid player hit.
- Delivery is network-relevance scoped rather than a global broadcast. Persistent state and active relevant presentation are replayed when a player enters relevance or joins late where supported.
- Full status assumes magic replication is enabled and client/server catalog hashes match. Missing authored assets on an installation can degrade visual presentation even though gameplay authority remains server-side.
Related functions
- getSpellCatalog and getSpellDefinition
- getPlayerMagicState
- isPlayerSpellGranted, grantPlayerSpell, revokePlayerSpell and setPlayerSpellGranted
- getPlayerRuneNames (inventory rune keys, not synchronization status)