Add effect template for GTA V Chaos Mod effects
This commit is contained in:
22
README.md
Normal file
22
README.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# effect_template.lua
|
||||
|
||||
A minimal template for creating new GTA V Chaos Mod effects. Use this file as the starting point for all future effect scripts.
|
||||
|
||||
## Purpose
|
||||
Provide a consistent structure and common conventions (metadata, configuration, initialization, per-tick logic, and cleanup) so effects are easy to read, maintain, and extend.
|
||||
|
||||
## Usage
|
||||
Copy the `effect_template.lua` file into your effects directory, change as needed and rename it for the new effect.
|
||||
|
||||
## Editing checklist
|
||||
- Update metadata (name, description, author, toggle key, priority).
|
||||
- Set configurable parameters (duration, intensity, cooldown).
|
||||
- Add comments for any non-obvious behavior.
|
||||
|
||||
## Conventions
|
||||
- Use clear, consistent naming for variables and functions.
|
||||
- Keep per-tick work minimal to avoid performance issues.
|
||||
- Restore all modified game state(s) in `OnStop()`.
|
||||
|
||||
## Updates
|
||||
- This script template will get minimal updates for additional function or changes.
|
||||
37
effect_template.lua
Normal file
37
effect_template.lua
Normal file
@@ -0,0 +1,37 @@
|
||||
-- Short coherent template for a Chaos Mod effect.
|
||||
-- Edit the fields below to describe the effect and adjust timing/weighting.
|
||||
-- Full reference: https://github.com/gta-chaos-mod/ChaosModV/wiki/Lua-Scripting
|
||||
|
||||
EffectInfo = { -- ScriptInfo for mod version < 2.0
|
||||
Name = "Template Effect",
|
||||
EffectId = "effect_template", -- ScriptId for mod version < 2.0, must be unique
|
||||
Description = "A short one-line description of what this effect does.",
|
||||
TimedType = "Normal", -- None, Normal, Short, Permanent, or "Custom"
|
||||
-- CustomTime = 10, -- (seconds) only if TimedType = "Custom"
|
||||
WeightMultiplier = 1, -- Relative probability of being chosen
|
||||
HideRealNameOnStart = false, -- true to hide the effect's real name when it starts
|
||||
EffectCategory = "None", -- Optional category
|
||||
EffectGroup = "", -- Optional grouping (leave empty if unused)
|
||||
IncompatibleIds = {
|
||||
-- Example: "other_effect_id", -- add EffectIds that cannot run simultaneously
|
||||
}
|
||||
}
|
||||
|
||||
-- Called once when the effect starts
|
||||
function OnStart()
|
||||
print("[effect_template] OnStart: " .. ((EffectInfo and EffectInfo.Name) or "unknown"))
|
||||
-- Initialize effect state here (e.g. set timers, spawn helpers)
|
||||
end
|
||||
|
||||
-- Called once when the effect stops/ends
|
||||
function OnStop()
|
||||
print("[effect_template] OnStop: " .. ((EffectInfo and EffectInfo.Name) or "unknown"))
|
||||
-- Cleanup state here (e.g. remove entities, clear timers)
|
||||
end
|
||||
|
||||
-- Called every game tick while the effect is active
|
||||
function OnTick()
|
||||
-- Keep this lightweight. Use this for per-frame checks or gradual changes.
|
||||
end
|
||||
|
||||
-- Add custom helper functions below.
|
||||
Reference in New Issue
Block a user