Synchronized spell catalog

From Wiki G1R-MP G1 Remake Multiplayer
Revision as of 18:42, 3 September 2026 by QCherry (talk | contribs) (Update G1R:MP 0.1.2 API documentation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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

  • light is 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_bolt is 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_wind is 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_ball and fire_ball_milten share the same three-level gameplay rules but retain separate spell/rune catalog identities and distinct projectile presentation profiles.
  • ice_bolt has 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_block requires 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_lightning is 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 as NotImplemented.
  • 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.