Skip to documentation
Documentation

CUSTOMIZATION

A safer Lua customization workflow

Locate a script your release loads, make one measurable change, and verify its behavior before deployment.

3 minute read·Guide

Choose a supported script

Season 6 includes formula scripts under Data\Scripts. These differ from newer IGCN LuaAPI Core and LuaUI plugins; their callbacks and keys are not interchangeable.

  • Character formulas: Data\Scripts\Character\CalcCharacter.lua.
  • Skills: Data\Scripts\Skills\RegularSkillCalc.lua and MasterSkillCalc.lua.
  • Level thresholds: Data\Scripts\Misc\ExpCalc.lua. This is not a general monster-experience multiplier.
  • Work on a private server, back up the script, and record the executable version.

Locate your release’s data folder

The current source loads scripts from Data\Scripts and language configuration from Data\Langs\LangBase.xml. In the older Season 6 layout, these are IGCData\Scripts and IGCData\IGC_LangBase.xml. Use the matching paths from your package, and keep the executable and data files together.

1. Define a measurable change

  1. Read the existing function name, parameters, and returns. Preserve this callable interface.
  2. Write down the expected result for fixed inputs. The supplied SetExpTable_Normal(Level) returns 19,000 at level 10; use your own release’s original formula as the baseline.
  3. Change only the intended calculation or condition and retain a diff or original copy.
  4. If no loaded script controls the feature, ask Support whether it needs server-code changes instead of guessing a callback from another API.

2. Load and test

  1. Restart the private GameServer to load the saved file. Use a reload command only when that release documents which scripts it reloads.
  2. Check the startup log for missing functions or syntax errors and resolve the first failure.
  3. Repeat the baseline inputs and test minimum, maximum, and branch-boundary values relevant to the formula.
  4. For ExpCalc.lua, distinguish next-level thresholds from experience awarded by monsters. Test the quantity actually controlled by the function.
  5. Restart again and repeat the key check to confirm the saved file produces the result.

3. Deploy or roll back

  1. Keep the tested script with its matching release and a short behavior-change note.
  2. Deploy in the appropriate maintenance window, then repeat essential checks.
  3. If results differ, restore the script backup, restart the service, and verify the baseline.
  4. For help, share the smallest function, inputs, expected/actual outputs, and first error in Community, following the question checklist.

Reference

IGCN’s Lua introduction explains its newer plugin system. This guide instead uses the formula scripts present in the Season 6 package.