Setup guide

Halloween

A complete Halloween event with pumpkin and ghost hunts, haunted spots, witchcraft circles, a ritual quest, a haunted house, a trader and monster attacks.

  • Version 1.0.1
  • Works on VORP, RSG Core, QBCore RedM
  • Resource Britannia_Halloween
  • Updated 19 Oct 2026

Overview

Halloween is a ready-made event for your server. Players hunt for pumpkins and ghosts across the map, perform rituals at witchcraft circles, explore a haunted house and fight off monsters at night. A Halloween trader hands out the big rewards. The event stops by itself after the end date you set.

  • Pumpkin hunt (30 spots) and ghost hunt (20 spots), placed for you on the first start.
  • Spooky sounds near unfound pumpkins and ghosts, louder as players get closer.
  • Haunted spots with whispers and see-through figures.
  • Witchcraft circles: rituals with a blessing, a curse, an apparition or a monster attack.
  • A ritual quest: find items around the map and a zombie bodyguard rises to guard you.
  • A haunted house with jumpscares, ghosts and the cursed doll.
  • A Halloween trader who rewards finished hunts and the cursed doll.
  • Random monster visits and random jumpscares at night.
  • Staff tools to place, remove and check hunt spots in game.

Requirements

  • poggy_core (free), version 0.14.0 or newer.
  • oxmysql.
  • One of VORP, RSG Core or QBCore RedM (poggy_core connects the script to it).
  • Optional: btc-playerskills, for "Monster Hunter" XP.

Install

  1. Download Britannia_Halloween from portal.cfx.re → Assets → Granted Assets.
  2. Put the Britannia_Halloween folder in your server's resources folder.
  3. Add the items (see Items below):
    • VORP: run SQL.sql once in your database, and copy installation/images/*.png into vorp_inventory/html/img/items/.
    • RSG Core / QBCore RedM: copy the entries from installation/items_rsg_qbcore.txt into your shared items list, and the pictures into your inventory's image folder.
  4. Add ensure Britannia_Halloween to server.cfg, after ensure poggy_core.
  5. Restart the server.
  6. Set the end date, prizes, haunted house, trader and anything else in shared/config.lua.

installation/install.html has the same steps, the item pictures and the SQL, ready to open in your browser.

The script creates its own tables on start (britannia_halloween_spots, britannia_halloween_found and britannia_halloween_bonus). sql/install.sql is there for reference only. On the first start, 30 pumpkin and 20 ghost spots are placed around the map: churches, cemeteries, caves, farms, camps and so on.

Items

PictureItemLabelUsed for
cursed_dollCursed DollTaken from the haunted house. Usable: listen to it, or curse a player close by. Can be handed in to the trader.
consumable_candy_bagCandy BagPumpkin hunt prize
consumable_apple_candyApple CandyGhost hunt prize

VORP. Run this once in your database. It is safe to run more than once: INSERT IGNORE leaves any item you already have exactly as it is.

sql
INSERT IGNORE INTO `items` (`item`, `label`, `limit`, `can_remove`, `type`, `usable`) VALUES
	-- The cursed doll from the haunted house (one per character). Usable: listen to it,
	-- or curse a player standing close. It can be handed in to the Halloween trader.
	('cursed_doll',            'Cursed Doll', 1,  1, 'item_standard', 1),
	-- Prizes from the pumpkin and ghost hunts (Config.Hunts -> Prizes)
	('consumable_candy_bag',   'Candy Bag',   10, 1, 'item_standard', 1),
	('consumable_apple_candy', 'Apple Candy', 10, 1, 'item_standard', 1);

RSG Core / QBCore RedM. Add the items to your shared items list instead (RSG Core: rsg-core/shared/items.lua; QBCore RedM: qbr-core/shared/items.lua, inside QBShared.Items), and copy the pictures into your inventory's image folder (rsg-inventory/html/images/ or qbr-inventory/html/images/). The entries are in installation/items_rsg_qbcore.txt:

lua
-- RSG Core
cursed_doll            = { name = 'cursed_doll',            label = 'Cursed Doll', weight = 200, type = 'item', image = 'cursed_doll.png',            unique = true,  useable = true, shouldClose = true, description = 'A doll from the haunted house. Listen to it... or curse someone close.' },
consumable_candy_bag   = { name = 'consumable_candy_bag',   label = 'Candy Bag',   weight = 100, type = 'item', image = 'consumable_candy_bag.png',   unique = false, useable = true, shouldClose = true, description = 'A Halloween treat.' },
consumable_apple_candy = { name = 'consumable_apple_candy', label = 'Apple Candy', weight = 100, type = 'item', image = 'consumable_apple_candy.png', unique = false, useable = true, shouldClose = true, description = 'A Halloween treat.' },

-- QBCore RedM
['cursed_doll']            = { ['name'] = 'cursed_doll',            ['label'] = 'Cursed Doll', ['weight'] = 200, ['type'] = 'item', ['image'] = 'cursed_doll.png',            ['unique'] = true,  ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A doll from the haunted house. Listen to it... or curse someone close.' },
['consumable_candy_bag']   = { ['name'] = 'consumable_candy_bag',   ['label'] = 'Candy Bag',   ['weight'] = 100, ['type'] = 'item', ['image'] = 'consumable_candy_bag.png',   ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A Halloween treat.' },
['consumable_apple_candy'] = { ['name'] = 'consumable_apple_candy', ['label'] = 'Apple Candy', ['weight'] = 100, ['type'] = 'item', ['image'] = 'consumable_apple_candy.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A Halloween treat.' },

If you rename an item in shared/config.lua, rename it in your items list too.

Configuration

The script is encrypted with Cfx.re asset escrow. shared/config.lua stays editable, and every option in it is commented.

SettingWhat it doesDefault
Config.Event.EnabledMaster switch. false turns everything Halloween offtrue
Config.Event.EndsOnLast day of the event (server time), 'YYYY-MM-DD'. Everything stops at midnight at the end of this day'2026-11-01'
Config.Commands.ProgressCommand for the player's progress'halloween'
Config.Commands.AdminCommand for the staff tools'halloweenadmin'
Config.AdminAceAce that gives access to the staff tools (poggy_core admins have it too)'britannia_halloween.admin'
Config.HuntsThe pumpkin and ghost hunts: models, spawn and find distances, prompt key (E), XP and weighted Prizes (cash, gold or items)pumpkin and ghost
Config.XpMonster Hunter XP through btc-playerskills. Enabled = false turns it offEnabled = true, MaxLevel = 20
Config.SoundsSounds near unfound spots: Distance, Volume, MaxLoops25.0, 0.6, 2
Config.HauntsHaunted spots: Enabled, Radius and the list of Spots8 spots, 35 m
Config.CirclesWitchcraft circles: CooldownMinutes between rituals, the weighted Outcomes and the Spots5 circles, 30 minutes
Config.QuestThe ritual quest: ItemsToFind, AreaRadius shown on the map, the Bodyguard (minutes, health, weapon) and the item Spots5 items, 30-minute bodyguard
Config.HauntedHousePosition, Radius, scare timing, Jumpscare chance and the cursed doll (Relic)Enabled = true
Config.DollThe cursed doll: CurseDistance, CurseSeconds, CooldownMinutes4.0, 20, 10
Config.TraderThe trader's model, position (x, y, z, h) and Rewards for every pumpkin, every ghost and the dollValentine church; 5, 8 and 10 gold
Config.Attacks.TypesThe monsters (zombie, witch, vampire): models, health, speed, weapon, XP and prizes3 types
Config.Attacks.RandomRandom night visits: how often, the player cooldown, NightOnly, the town SafeZones and the weighted Optionsevery 15 to 30 minutes
Config.RandomJumpscaresRandom jumpscares: how often, NightOnly, and InTownsevery 10 to 25 minutes
Config.NightOptional orange night tint. StartHour and EndHour also set "night" for the random visits and jumpscaresEnabled = false, 20 to 5
Config.Notify.DurationHow long notifications stay on screen, in milliseconds5000

For example, to run the event again next year, change the end date:

lua
Config.Event = {
    Enabled = true,
    EndsOn = '2027-11-01',
}

Commands and permissions

"Staff" means players with the ace britannia_halloween.admin, or poggy_core admins.

Command / keyWhoWhat it does
/halloweenEveryoneShows your progress: pumpkins and ghosts found out of the total, the cursed doll and the ritual
EEveryoneTakes a pumpkin, catches a ghost, starts a ritual, takes the doll, talks to the trader
/halloweenadminStaffOpens the staff menu: place spots, remove the nearest, find spots inside buildings, and test tools (reset your ritual or doll, fill quest items, a jumpscare, a random visit, a bodyguard)
/halloweenadmin place pumpkin / place ghostStaffAdds a spot where you stand
/halloweenadmin removeStaffRemoves the nearest spot (within 5 m)
/halloweenadmin countStaffShows how many spots each hunt has
/halloweentint <0-1> / off / autoStaffTries the night tint on your own screen only

Give the ace in server.cfg, for example:

add_ace group.moderator britannia_halloween.admin allow

How it works

Hunts. Pumpkins and ghosts appear only near each player, on their own screen. Each character can find each spot once, and every find gives a prize rolled from that hunt's Prizes. If the player has no room for an item prize, they get a little cash instead. Found spots disappear for that player. The server checks every find: the event is on, the spot is real, the player is close enough and it hasn't been found before.

The trader. Once a player has found every pumpkin, or every ghost, they claim a reward from the Halloween trader. Handing in the cursed doll gives a reward too (the doll is taken). Each reward can be claimed once per character.

Haunted spots. Near these places players hear whispers and now and then see a see-through figure.

Witchcraft circles. Performing a ritual gives one outcome, rolled on the server: a blessing (cash or gold), a curse (a screen effect for a while), an apparition, or a summoning, where ghosts wander and then monsters attack. There is a cooldown between rituals.

The ritual quest. At a circle a player begins the ritual and is given items to find. The map shows a circle around roughly where each one is. Bringing them all back to the same circle completes the ritual, and a zombie rises to guard the player for a while. Once per character per day.

The haunted house. Inside, players get scares and jumpscares, and meet ghosts that vanish with a whisper when approached. The cursed doll can be taken once per character. Used alone, it whispers and a figure appears behind you. Next to another player, you can curse them.

Monsters. Zombies, witches and vampires are real game characters that everyone nearby sees and can fight. Every kill is checked on the server and can give XP and a prize. They give up and vanish if players get far enough away.

Random visits and jumpscares. Now and then, a player out in the wilds at night gets a visit (a ghostly scare, zombies, a witch or the vampire), or a jumpscare out of nowhere. Random visits never happen inside the town safe zones and give no rewards.

XP. With btc-playerskills running, finds and kills add XP to a "Monster Hunter" perk. The perk is created the first time.

The end. Everything stops by itself after Config.Event.EndsOn.

Troubleshooting

Nothing Halloween happens, and /halloween says the event is over

Check Config.Event.Enabled is true and that Config.Event.EndsOn hasn't passed. The default end date is 2026-11-01: change it for a new year.

Players get cash instead of candy

That happens when the item can't be given: the player has no room, or the item is missing from your items list. Add the items (see Items) and restart the server.

The cursed doll can't be taken, or does nothing when used

The cursed_doll item must exist in your items list and be usable. The doll can be taken once per character, and players need room in their satchel for it.

"You are not allowed to do that." on /halloweenadmin

Give the player the ace britannia_halloween.admin, or make them a poggy_core admin.

Some pumpkins or ghosts can't be seen

A spot inside a building is hidden from players. Open /halloweenadmin, pick Check for spots inside buildings, go to each one, remove it and place a new one outside.

No Monster Hunter XP

XP needs btc-playerskills started, and Config.Xp.Enabled = true. Without it, everything else still works.

The script won't start, or warns about poggy_core

Halloween needs poggy_core 0.14.0 or newer, and oxmysql. Make sure both start before Britannia_Halloween in server.cfg.

Version history

  • 1.0.1: fixes how the monsters and the ritual bodyguard are set up once a player has spawned.
  • 1.0.0: first public release.

Still stuck?

Open a ticket on our Discord with your framework, your poggy_core version and what you see, and we'll help you get it running.

Get help on Discord