Skip to content

stgscripts/Z-Project

Repository files navigation

Z-Project [WIP] https://stgscripts.com

A set of resources for a zombie survival server. Loot, needs, infection, a sense-based zombie AI, a camp/placement system, skills, gunplay and the HUD that ties it together. Everything runs on QBCore and Qbox without code changes — the framework and the inventory are detected at runtime.

Resources

Resource What it does
art-corez Survival core — searchable prop looting, needs (stomach/thirst/hygiene/stress), reading books for skill XP
art-zombie The zombie system — sense-based AI (sight/hearing), infection, corpse looting
art-essentials Camp/placement — tents, campfires, chairs, sleeping bags, cooking, plus the smaller world tweaks
art-character Skills and knowledge menu (XP, levels, exercise)
art-hudz Status HUD
art-notify Notifications
art-gunplay Camera-based aim sway, recoil and suppression effects
art-dismemberment Gore / limb damage
art-trader NPC that swaps zombie loot for rarer items through a dialogue
stg_lib Framework bridge the others depend on

Requirements

  • ox_lib
  • oxmysql
  • ox_target
  • PolyZone
  • qb-core or qbx_core
  • qb-inventory or ox_inventory

Install

  1. Drop the [artz] folder into your resources.
  2. Import the SQL files once (they create their own tables):
    • art-character/art-character.sql
    • art-essentials/art_essentials.sql
    • art-trader/art_trader.sql
    • art-zombie/art-zombie.sql
  3. Make sure stg_lib starts before the art-* resources, and the inventory before them too. Easiest is to ensure the categories in order:
    ensure qbx_core      # or qb-core
    ensure [artz]
    ensure [ox]
  4. Set the language:
    setr ox:locale "en"               # or "tr"

Locales live in each resource under locales/ (en.json is the base, tr.json overrides it). If a string shows up in English while your locale is tr, it just isn't translated yet — copy the key over.

Adding items

The resources never register items themselves. An item has to exist in your inventory's own item list first, then you reference its name in a config. Where the item list lives depends on which inventory you run.

1. Define the item

qb-inventory — add it to qb-core/shared/items.lua:

['raw_meat'] = { name = 'raw_meat', label = 'Raw Meat', weight = 200, type = 'item', image = 'raw_meat.png', unique = false, useable = true, shouldClose = true, description = '' },

ox_inventory — add it to ox_inventory/data/items.lua:

['raw_meat'] = {
    label = 'Raw Meat',
    weight = 200,
},

2. Drop the image

Put a name.png next to your inventory's other item images:

  • ox_inventory → ox_inventory/web/images/
  • qb-inventory → qb-inventory/html/images/

3. Put it where you want it to show up

Loot tablesart-corez/shared/config.lua (world props) and art-zombie/shared/config.lua (corpses). Each entry is one line:

{ Item = 'raw_meat', Min = 1, Max = 2, Chance = 20 },

Chance is a percent. Min/Max is how many drop when it hits.

Camp itemsart-essentials/shared/config.lua, under Config.Props. The item field is the inventory item that places the prop.

That's the whole loop: define the item → add the image → reference its name in a config. Restart the inventory and the resource you edited and it's in.

Framework notes

stg_lib is set to auto, so it picks QBCore or Qbox on its own — you don't configure anything. The loot/stash code goes through a small bridge that talks to whichever inventory is running, so qb-inventory and ox_inventory both work.

About

A zombie survival project similar to DayZ and Project Zomboid for QBCore/QBox

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors