SALESup to -75%Sales are live in the shop: see the deals
← All scripts

NC Rift — Configuration guide

This guide explains what to fill in to make the resource work on your server and what every option does. Everything is changed from the config: there is no need to touch the code.

  • The config files are config.lua and the config/ folder.
  • Your own changes go in config_custom.lua, which you create by copying config_custom.lua.example. It is loaded after all the other files and changes only what you write: this way, when you update the resource, you lose nothing.
  • At start the server console prints config check: N warning(s) and a warning for every error:
    • a misspelled key;
    • a wrong type (for example a text where a number is needed);
    • a reference that does not exist (for example a zone that uses a mob that is not there).

The resource starts anyway. Fix until you read 0 warning(s).

  • Distances are in metres, times in milliseconds (...Ms), in seconds (...Sec, seconds) or in minutes (...Min). Chances go from 0 to 1 (0.25 = 25%).
  • Coordinates are written as in FiveM: vec3(x, y, z) or vec4(x, y, z, heading).

1. Quick start: what you must fill in

#WhatWhereNotes
1Start the assets before the resourceserver.cfgensure nc_rift_assets and then ensure nc_rift. Never restart nc_rift_assets with players inside: their clients crash.
2Permission of the admin commandsserver.cfgadd_ace group.admin nc_rift.admin allow (the permission name is Config.AdminAce).
3Languageconfig.lua → Config.LocaleWith Config.Bridge.LocaleFromGame = true every player reads the texts in the language of their GTA.
4Framework, inventory, notificationsconfig.lua → Config.BridgeWith 'auto' the resource finds Qbox, QBCore, ESX or no framework (standalone) by itself.
5Your zonesconfig/zones.lua → Config.ZonesWhere mobs spawn: center and radius (or polygon), mobs, levels, density. The default config already has them over the whole GTA map (levels from 1 in the south up to 10 in the north, 4 red zones, a safe zone at every hospital), 12 fixed rifts, 8 random rift points and 2 bosses: you can use it as it is or change it. Three background zones (wild_south, wild_middle, wild_north) cover the rest of the map with few mobs: remove them to have mobs only in the real zones.
6Spawn points of the rifts (and, if you want, of the mobs)points of the zone, or in game /rift_point addA rift with no pos and no points in its zone does not open: the console says so.
7Riftsconfig/rifts.lua → Config.RiftsEvery fixed rift: zone (or pos), level, health, mobs it spawns.
8Random rifts (optional)config/rifts.lua → Config.RandomRiftsRifts that show up at random in the zones you choose, now and then.
9Bosses with arenaconfig/bosses.lua → Config.BossesThe arena center is in your coordinates.
10Rewardsconfig.lua → Config.Rewards, plus the loot field of mobs, bosses and riftsThe item names must exist in your inventory: at start the console says which are missing.
11EXPconfig.lua → Config.XpWhere EXP is saved: Provider.
12Your own mod peds and weaponsconfig_custom.luaSee the example: model of the ped, weapon (prop in the hand), attacks (animations). The ones of nc_rift_assets are already given by config_assets.lua.

Quick test in game, after the start:

  • /rift_devtest checks every model, animation and particle of the config and writes the result to data/devtest.txt;
  • /rift_spawn <type> creates mobs in front of you;
  • /rift_open <rift> opens a rift in front of you;
  • /rift_random opens a random rift right now;
  • /rift_boss <boss> summons a boss.

2. Recipes (the most common cases)

Adding a monster zone

In config/zones.lua (or in config_custom.lua, written as Config.Zones.my_zone = { ... }):

my_zone = {
    shape    = 'circle', center = vec3(100.0, -200.0, 30.0), radius = 150.0,
    zMin     = -20.0, zMax = 200.0,        -- height where the zone counts
    interior = false, indoor = false, bucket = 0,
    mobs     = { 'skeleton_warrior', 'ghost' },   -- keys of Config.Mobs
    levels   = { 1, 5 },                          -- minimum and maximum level
    density  = 6,                                 -- mobs alive together in the zone
    day = 1.0, night = 1.5,                       -- density x by day / by night
    red = false, safe = false,
    points   = {},                                -- empty = random point on valid ground
},

Adding a fixed rift

In config/rifts.lua, inside Config.Rifts:

my_rift = {
    zone = 'my_zone', pos = nil,       -- pos = vec3(...) for a fixed point, nil = a point of the zone
    level = 3, hp = 1500, size = 1.0,
    spawn = { types = { 'skeleton_warrior' }, everySec = 20, max = 6 },
    respawnSec = 600,                  -- destroyed: it opens again after 10 minutes
    boss = nil, blackout = false,
    resist = { melee = 1.0, bullet = 1.0, fire = 1.0 },
    loot = nil,                        -- nil = Config.Rewards.default.rift
},

The name in the 9 languages goes in locales/<language>.lua, under the key rift_name_my_rift. Without this key the id is shown.

Rifts that show up at random

In config/rifts.lua, Config.RandomRifts.list: { rift = 'my_rift', zones = { 'my_zone', 'other_zone' }, weight = 1 } or, with your own points, { rift = 'my_rift', points = { vec4(x, y, z, heading), ... }, weight = 1 }. The rift uses the data of Config.Rifts.my_rift (health, mobs, loot) and appears at one of those points or at a point of one of those zones. With randomOnly = true in Config.Rifts.my_rift that rift opens only at random, never at start.

Coordinates with an imprecise z

The z of the config coordinates (pos of the rifts, points of the random rifts, arena center of the bosses) can be a few metres wrong: the first player who passes near asks the game where the ground is and the server moves the rift (or the boss) there. The answer stays in data/ground.json, so it happens only once. It is tuned with Config.Rift.groundFix; for a rift or a boss on a roof, in an MLO or on an island high up set ground = false.

Adding a boss

In config/bosses.lua:

  • mob = a type of Config.Mobs;
  • arena.center = your coordinates;
  • spawn.mode:
    • 'timer' = at start and then respawnMin minutes after death;
    • 'admin' = only with /rift_boss;
    • 'event' = only from the SpawnBoss export.

Giving items as a reward

In the loot field of a mob, a boss or a rift, or in Config.Rewards.default:

loot = { items = { { item = 'bandage', min = 1, max = 2, chance = 0.3 } },
         money = { { account = 'cash', min = 50, max = 120, chance = 1.0 } },
         itemsChance = 0.3, moneyChance = 0.8 },

With ox_inventory you use the names of ox_inventory/data/items.lua. itemsChance / moneyChance (optional, from 0 to 1) are the chance that the mob drops items / money at all: with itemsChance = 0.3 only 3 mobs out of 10 drop items, and for those each line rolls its own chance. Without = always. In the editor they are the "Item drop %" and "Money drop %" fields of the preset.

A new monster type

Copy a mob of config/mobs.lua with a new key and change model, hp, damage, spells, xp. Mod peds and props go in config_custom.lua. Then add the key to the mobs of a zone. The name in the 9 languages goes in locales/<language>.lua, under the key mob_name_<key>.

3. All the options

3.1 config.lua — general

OptionDefaultWhat it does
Config.Locale'it'Language of the texts: it en de fr es pt zh ja ko. A missing line is shown in English. Chinese, Japanese and Korean show only in NUI texts.
Config.Bridge.Framework'auto''auto' | 'qbx' | 'qb' | 'esx' | 'standalone'.
Config.Bridge.LocaleFromGametrueEvery player reads the texts in the language of their GTA (if it is one of the 9).
Config.Bridge.Notify'nui'Where notifications show: 'nui' (ours, in the chosen theme) | 'ox_lib' | 'framework' | 'native' | 'auto'.
Config.Bridge.NotifyMs4500How long a notification lasts.
Config.Bridge.Inventory'auto'Where items go: 'auto' | 'ox_inventory' | 'qb-inventory' | 'framework' | 'none' (in that case you give them in open/server/rewards.lua). Money always goes through the framework.
Config.Debugfalse[DEBUG] messages in the console.
Config.AdminAce'nc_rift.admin'Permission of the admin commands (it can also be changed in open/server/hooks.lua → IsAdmin).
Config.Editor200 presets, 30 layers, 2000 points, batches of 50, 20 changes every 2000 msLimits of the admin editor /rift_editor: how many presets, layers and spawn points can be saved in data/editor/, how many points the brush sends at a time and how many changes per second the server accepts. Usually left alone.
Config.Editor.spawnDistance / respawnSec / tickMs120 m / 120 s / 2000 msMobs of the points placed with the editor: every point (of a layer that is on) keeps one mob of its preset, which shows up when a player is within spawnDistance, comes back respawnSec seconds after death and goes away when everyone is far (1.5 × spawnDistance).
Config.Editor.maxMobsNear25Mobs alive within cullDistance above which the editor points wait. It is higher than maxMobsPerPlayer, so the hand placed mobs spawn even when the zones have filled their limit; if a point waits, /rift_debug writes it. Every preset can have its own respawn (Respawn field). Rift presets also have the mobs they spawn, every how many seconds and how many at most.
Config.Editor.bossRespawnSec / riftRespawnSec1800 s / 600 sBosses and rifts of the editor points: they spawn / open when a player is within spawnDistance, stay even if everyone leaves and come back these seconds after the boss death / rift destruction.
Config.Editor.maxZones / polyMax50 / 32Zones drawn with the Zone tool of the editor: how many in all and how many corners at most for a polygon zone. They work like the zones of Config.Zones as long as their layer is on.
Config.ZoneBlipson, safe green (2), red red (1), alpha 90Marks on the minimap and the map the safe zones and the red zones, both of the config and of the editor. enabled = false = none; blip = false in a zone (or the "On minimap" tick in the editor) = not that zone. Polygons show as the circle that holds them.
Config.UI.scale / multiplier'auto' / 1.0Size of the NUI visuals.
Config.UI.Theme'fantasy'Style of all the visuals: 'fantasy' | 'scifi' | 'horror' | 'steampunk' | 'dieselpunk'.
Config.Integrations.notify—Notifications through an export of another resource: { resource, export }.

3.2 Performance (Config.Perf)

OptionDefaultWhat it does
thinkNearMs / thinkFarMs250 / 2000How often a mob "thinks" with a player near / far.
nearDistance60Within this distance the player counts as near.
cullDistance250Beyond this distance from every player the mob stays still and uses no CPU.
maxMobsTotal60Mobs alive in the whole server.
maxMobsPerPlayer15Mobs alive around a player (also counts rifts and summons).
barDistance30Maximum distance of the bars over the head (at most 60).
maxSpeech3Speech bubbles visible together.
syncRange150Who receives spells, sounds and effects.
spawnTickMs / spawnPerTick5000 / 2How often the zone spawner adds mobs, and how many at most per zone each time.
respawnSec60Seconds before a mob killed in a zone is replaced (0 = at once). It can be changed for every zone and every mob type (the mob one wins, then the zone one).
spawnMinDist / spawnMaxDist25 / 70Mobs spawn in a ring around the player, between these two distances. Every zone can have its own.

3.3 World

OptionWhat it does
Config.Population[bucket]For every routing bucket: peds, vehicles, parked, animals, scenarios, dispatch, wanted. false = the resource turns it off; true = the resource does not touch it. By default in bucket 0 everything is off (pedestrians, traffic, parked cars, GTA animals, scenarios, dispatch): nc_rift makes the animals (Config.Animals). With animals = true GTA's come back, but GTA then also makes some pedestrians that nc_rift deletes (you see them vanish far away).
Config.AnimalsAnimals made by nc_rift on the server (seen the same by everyone): zones (circle or polygon, models, density; the smallest zone wins), they spawn between minDist and maxDist m from the player, countDistance for the density, they go away beyond despawnDistance, maxTotal in the whole server, wanderRadius = how far they walk around their spawn point. They are not mobs (no bars, EXP or loot). enabled = false = none. Area for some animals only: a small zone (radius up to maxDist) with only those models; it turns on when a player passes near, the animals spawn and wander inside it and those of the zones around never get in (examples deer_park, chicken_yard in config/animals.lua).
Config.Blackout.ProviderWho turns the lights off: 'nc_rift' | 'custom' (open/server/blackout.lua, for example your weather script) | false = never.
Config.Blackout.vehicles / nightOnly / onBoss / onRiftAlso turns off the headlights / only at night / turns off by itself when a boss arrives / stays off while a rift is open.
Config.Movement.NoNavmeshHow mobs move where there is no navmesh: 'straight' | 'teleport_short' (small jumps when stuck) | 'static' (still, they only use spells).

3.4 Mob brain (Config.Ai)

OptionDefaultWhat it does
sightDistance / sightAngle40 / 140How far it sees and width of the sight cone in degrees (360 = it sees all around).
nightFactor / blackoutFactor0.6 / 0.4Sight is multiplied by this value at night / during the blackout.
closeDistance / hiddenCloseDistance4 / 1.5This close it always notices you / a hidden player is seen only this close.
attackDistance2.5Under this distance the mob fights (if it has no keepDistance).
spellGapMs6000Pause between two spells of the same mob.
memorySeconds12How long it goes looking for you at the last place it saw you.
patrolRadius / leashDistance12 / 120How much it walks around where it spawned / beyond this distance from home it gives up and goes back.
kiteRatio0.5Ranged mobs back off if you get closer than keepDistance x this value.
packAloneDistance / packAloneBonus / packHurtBonus12 / 15 / 20The leader of a pack prefers lonely players and hurt ones.
leaveDistance25After killing its target, the mob walks this far away.
aggroPerDamage / aggroLastHit0.5 / trueHow much damage weighs in choosing the target / the last player who hits the mob takes the aggro.
fleeHealthPct0Under this % of health the mob runs away (0 = never).
losMs / loseMs1000 / 2000How often it checks again the walls between mob and player / after how long without seeing them it loses the target.
hearRange / noise.*60Hearing: radius of every noise (shot, explosion, sprint, vehicle, horn).

3.5 Damage (Config.Damage)

OptionWhat it does
weapons.WEAPON_X = { damage, kind }Damage of every player weapon against the mobs. kind can be 'melee', 'bullet' or 'fire'. anyHeld = true is needed for thrown weapons. default counts for weapons not in the list. The damage is always decided by the server.
maxDistance / maxMeleeDistanceHits from farther than this are ignored (anti-cheat).
minIntervalMsMinimum gap between two hits of the same player.
corpseSecondsHow many seconds the mob body stays.
vehicleImmunetrue = running mobs over with a car does no damage.
hitReactReaction of the player hit by a mob: animation (also different per side with sides), camera shake (shake), fall (ragdollMs).

3.6 Rewards, stealth items, EXP

OptionDefaultWhat it does
Config.Rewards.enabledtrueRewards on or off.
Config.Rewards.mode'each''each' = everyone rolls their own loot; 'top' = only who did the most damage.
Config.Rewards.minShare0.10Minimum share of the damage (10%) to get the reward. Bosses use their own rewardMinShare instead.
Config.Rewards.byDamage{ rift = true }true = the loot is rolled once and split by damage share (money and amounts x share). The share of who is under minShare goes to the others.
Config.Rewards.default.mob/boss/riftmoneyLoot of whoever has no loot field of their own.
Config.Stealth.itemsrift_silence, rift_shadowUsable items: silent = seconds in which your noises do not draw the mobs; hidden = seconds in which the mobs do not see you. With ox_inventory add to the item server = { export = 'nc_rift.<name>' }.
Config.ImmunityItemsrift_ward_earth, rift_ward_storm, rift_ward_frost, maxSec = 60Immunity items: for seconds seconds (never beyond maxSec) the spells in spells (keys of Config.Spells, e.g. 'roar' earthquake, 'bolt' lightning, 'frost' ice) do not hit you; noFall = true = no spell or hit knocks you down (no grab and throw). They are registered like the stealth items. Using it plays anim; while it lasts every player near sees aura: an energy vortex on the ground with smoke (fx, our nc_rift_ward.ypt); the spiral light trails (spiral) are optional, off. The colour comes from the seal: aura inside each item (name = nc_rift_ward_earth gold, nc_rift_ward_storm blue, nc_rift_ward_frost ice blue, nc_rift_ward_white; color = light).
Config.RiftItems.itemsrift_bombItems that break rifts: used within range metres of an open rift they take damage health from it (× the rift's resist.item); all = true = every rift within range; fx = effect on the rift. With no rift near the item is not used up. They are registered like the stealth items. throw = the throw: the player's anim, the bomb model flies to the rift from releaseMs to impactMs; then damage, effects fx (a list, z = metres above the rift), sound sfx (files in web/sounds) and camera shake shake.
Config.Xp.Provider'nc_rift'Where EXP goes: 'nc_rift' (saved in KVP, no database) | 'framework' (metadata, key metaKey) | 'nc_skills' | 'custom' (open/server/xp.lua).
Config.Xp.multboss 3, red 1.5, night 1.25, rift 2EXP multipliers.
Config.Xp.riftXp50Base EXP of a rift that has no xp field of its own.
Config.Xp.partyBonus / partyRange0.10 / 120With nc_party started: the members near get the full EXP + 10%.
Config.Xp.levels10 thresholdsTotal EXP needed for every player level.

3.7 Visuals

OptionWhat it does
Config.Bars.modeWhich bars show over the head: 'eco' (up to maxBars hurt or near mobs, no number; the lightest) | 'all' (the maxBars nearest) | 'target' (just one: the mob you aim at or hit last).
Config.Bars.*scanMs, width, height, headOffset, lineOfSight (bar hidden behind walls), showLevel, leaderFrame, colors (colour by difficulty: mob level minus player level).
Config.BarThemes.<theme>Look of the bars for every theme: colours, frame, ticks, studs, ornament.
Config.RiftLook of the portals: fx (looped effect), implode (effect when it is destroyed), light, marker, drawDistance, fadeMs, spinDegPerSec.
Config.Rift.blipIcon of the open rifts on the map: sprite (833 = flaming skull; with old GTA builds use 303), color (83 = purple), scale, shortRange (true = only when you are near). List of the icons: docs.fivem.net/docs/game-references/blips.
Config.Rift.bossBlipIcon of every boss alive on the map, at the center of its arena or at the editor point: same fields as blip (303 = skull, 1 = red).
Config.Rift.groundFixz on the ground of the config coordinates: enabled, distance (the player must be within these metres), probeUp (from how many metres above the ground is searched), maxFix (largest move accepted, in metres). The answers stay in data/ground.json: delete it to redo the correction.
Config.PackAuraAura of the leader of a pack (eyes, smoke at the feet).
Config.Audio / Config.SoundsVolume, maximum distance, falloff (how much it drops moving away: 1 = linear, 2 = fast, 3 = only close; the volume follows you and the mob even while the sound plays, every updateMs), gtaVoice (false = no GTA voices on the mobs, only our sounds) and .ogg/.mp3 files in web/sounds/ for every event (idle, aggro, attack, hurt, death...).
Config.SpeechSpeech bubbles over the head: distance, duration, frequency per event. The lines are in the locales files.

3.8 Zones (Config.Zones.<id>)

FieldWhat it does
shapeShape of the zone: 'circle' (center + radius) | 'poly' (poly = { vec2(x, y), ... }, at least 3 points) | 'gta' (gtaZones = { 'SANDY', ... }).
zMin / zMaxHeight limits (for example islands high up).
interior / indoortrue = the zone counts only inside a loaded interior / closed interior: weaker grab, lighter roar, smaller rift.
bucketRouting bucket of the zone.
mobs / levels / densityMob types, minimum and maximum level, how many mobs alive together.
packs / packChancePacks of Config.Packs and chance that a pack spawns instead of a single mob.
day / nightDensity multiplier by day / by night.
redRed zone: harder, more EXP.
safe / safeGod / safeNoPvpSafe zone: no mobs / immortal players / no PvP.
populationGTA population only inside this zone (same fields as Config.Population).
pointsFixed spawn points vec4(x, y, z, heading). More can be added with /rift_point add (they are saved in data/points.json).
spawnMinDist / spawnMaxDistSpawn ring around the player only for this zone (useful for MLOs and small zones).
respawnSecSeconds before a mob killed in this zone is replaced (empty = Config.Perf.respawnSec).

3.9 Mobs (Config.Mobs.<type>, Config.MobLevels, Config.Packs)

FieldWhat it does
model / fallbackPed of the mob and spare ped, used if the first one does not load.
roleBehaviour: 'brute' | 'caster' | 'shaman' | 'hunter' | 'beast'.
walkWalk style (clipset).
respawnSecSeconds before it comes back after death in the zones; it wins over the zone one (empty = the zone one).
hp / damage / xpHealth, damage and EXP at level 1. For the other levels they are multiplied by the row of Config.MobLevels (hp, damage, cooldown, accuracy).
attacksHits with animation: { dict, clip, hitMs, durMs, range, angle }. The server decides whether the hit lands.
weaponProp in the hand (never a GTA weapon): { model, bone, pos, rot, left = {...}, back = {...} }. It is tuned in game with /rift_weapon.
keepDistanceRanged mobs stay this far.
spells / spellGapMsSpells it uses (keys of Config.Spells) and pause between two spells.
sounds / speech / speechEventsAudio group, base key of the lines, frequency of the bubbles only for this mob.
resistMultipliers of the damage taken per kind (melee, bullet, fire).
regenRegeneration: { pct = % of health per second, delay = seconds without hits before it starts }.
lootRewards of this mob.
Config.Packs.<id>Pack: leader, members, count = { min, max }, spread, onLeaderDeath = 'flee' (they run away for fleeMs) | 'scatter' (they stay on their own).

3.10 Spells (Config.Spells.<id>)

Common fields:

  • kind: 'fire', 'grab', 'roar', 'projectile', 'heal', 'invis', 'leap' or 'summon';
  • warnMs: warning before the effect (the player has time to move);
  • anim: animation of the casting mob;
  • fx: particles;
  • sfx: sounds in place, { cast = {...}, fly = {...}, impact = {...} } (files in web/sounds/, one at random): cast at the hand when it starts (shot, bow), fly while the projectile flies or the meteor falls, impact when it lands;
  • range / minRange: maximum / minimum distance from the target;
  • radius: area hit (0 = only the target);
  • damage: damage at level 1;
  • cooldownMs: cooldown at level 1;
  • minLevel: minimum mob level to use the spell;
  • needSight: the mob must see the target;
  • status: effect left on the player.

The states burn, shock, freeze and slow are tuned in Config.SpellStatus. Config.SpellFx tunes the object that carries the trail of the projectiles and the distance of the camera shake.

3.11 Rifts (Config.Rifts.<id>, Config.RandomRifts)

FieldWhat it does
zone / posWhere it opens: a point of the zone, or a fixed pos = vec3(...).
level / hp / sizeLevel of the spawned mobs, portal health, size.
spawn = { types, everySec, max }Which mobs it spawns, every how many seconds, how many alive together at most.
respawnSecAfter how many seconds it opens again when it is destroyed.
boss / blackoutGuard boss (key of Config.Bosses) / zone blackout while it is open.
resist / loot / xpResistance to weapons (melee, bullet, fire), to spells of other resources (spell) and to items (item), rewards, base EXP.
groundfalse = the z of pos is never corrected to the ground (Config.Rift.groundFix).
randomOnlytrue = it opens only as a random rift (Config.RandomRifts), never at start.
Config.RandomRifts.enabledRandom rifts on or off.
checkEveryMin / chanceEvery how many minutes the server rolls the dice and with what chance a rift opens.
maxOpen / lifeMinHow many random rifts open together / after how many minutes they vanish if nobody destroys them. A destroyed random rift does not open again.
warnDistancePlayers within this distance get a notification when the rift opens and when it closes by itself.
list{ rift = key of Config.Rifts, zones = { ... } or points = { vec4(...) }, weight = higher = more often }. The z of the points is corrected to the ground.

3.12 Bosses (Config.Bosses.<id>)

FieldWhat it does
mob / level / hpMultType of Config.Mobs, level, health multiplier.
hpTotal health of the boss (e.g. 20000). If set, it wins over hpMult; nil = mob health × level × hpMult. In the editor the boss preset can have its own.
arena = { center, radius }Where the boss spawns and how far it can go. The z of the center is corrected to the ground (ground = false not to do it).
leashWhat happens if it leaves the arena: 'return' (goes back inside) | 'heal' (goes back inside and gets all its health back).
spawn.mode / respawnMin'timer' (at start and then respawnMin minutes after death) | 'admin' (only with /rift_boss) | 'event' (only from the SpawnBoss export).
rewardMinShare / lootMinimum damage to get the reward / rewards of the boss.
phases = { { at, spells, speech, summon, blackout } }When health drops under at (from 0 to 1): new spells, big line, summoned mobs, lights off.

4. What to change in the open code (open/)

The functions in open/ are made on purpose to be changed by you. The rest of the resource calls them, and if one throws an error nothing gets stuck.

FileFunctions
open/server/hooks.luaIsAdmin (who can use the admin commands), CanTarget (who the mobs can attack), OnMobKilled, OnBossKilled, OnRiftDestroyed, OnPlayerHit.
open/server/rewards.luaOpenRewards.Give: what to give extra after every reward (it already has the list of what was given).
open/server/xp.luaOpenXP.Calculate (the EXP maths), CustomGive / CustomGet (for Provider = 'custom').
open/server/blackout.luaOpenBlackout.Set: the blackout made with your weather script (Provider = 'custom').
open/client/hooks.luaNotify, OnHitBySpell, CanBeTarget.
open/client/hud.luaOnBossBar: to use your HUD instead of the boss bar.

Exports and events for other resources: see README.md → "Exports and events".

The full guide in 9 languages is also in the resource's docs/ folder.