[VORP/QBR/RSG] Moonshine - Start your adventure now!

:orange_book: About script

This script puts you in the role of a moonshine maker.
It offers a wide range of possibilities in the search for a recipe, but at the same time also production, which may not be easy at all.
This script has a little story that you can relate to.

  • You can change the recipe.
  • You can change the location of everything.
  • You can allow laying only in certain places.
  • You can change the picking field.
  • You can adjust all items so you don’t have to create new ones.
  • Adjustable prices.
  • Adjustable progress.

And much more! Check out config.lua

:arrow_forward: Preview

I recommend watching the full video to understand how everything works.!

Youtube preview

:question:You want to know more about the script?

More info

How does it work?

First, you need to purchase or find a recipe - It’s up to you how you choose to do it. Of course, you can cook without a recipe, but there’s a high chance you won’t cook it correctly. So, when you find a clue that you can adjust in config.lua, you will then find a buried recipe and cook according to it.

If you cook it correctly, you can sell moonshine to NPCs.

Cooking itself Cooking works simply.

You gradually add ingredients, and the production process increases accordingly. When you add wood, a fire is created, and the fire increases the temperature. If there is already a fire and you add water, steam begins to form, which you must release. If you don’t release the steam, the cooker will start to break, and you’ll have to repair it.

Selling

Small shops, where you can sell for smaller amounts, but you can negotiate.

:gear: Configuration of absolutely everything.

config.lua
Config  = {}


Config.AllowPlayersPlaceBrewlery = true
Config.StaticBrewleryPoints = {
    -- vector3(x, y, z),
    vector3(1451.0593, 3754.3269, 31.9342),
}

Config.BrewlerySpawnStats = {
    temp = 0, -- Temperature is important to maintain quality and warmth. I recommend keeping it between 70-90 or Config.Recepie
    water = 0, -- Water must be greater than 50 or Config.Recepie
    herbs = 0, --Herbs for proper production must number between 7-9 or Config.Recepie
    steam = 0, -- If the steam/pressure is greater than 80 then the steam must be dropped or it will reduce in condition and may break.
    corn = 0, -- For proper cooking, you need 10-12 corn or Config.Recepie
    spice = 0, -- Spices need 2-3 or Config.Recepie
    moonshine = 0, -- Moonshine will only start to rise if progress is greater than 50 or Config.Recepie
    litres = 0,  -- Number of litres
    condition = 60, -- Condition determines condition. If you don't relieve the pressure, it drops.
    fire = 0, -- Check if there is a fire, min 5
    broken = false, -- Guess lol
    progress = 0, -- This is important! Please do not change as it will reset and clean the contents of the distillery.
}

-- How much litres you need for one bottle?
Config.LitresNeeded = 0.5

-- Ideal numbers for the recipe.
Config.Recepie = {
    temp  = {
        min = 70,
        max = 90
    },
    herbs = {
        min = 7,
        max = 9
    },
    corn = {
        min = 10,
        max = 12,
    },
    spice = {
        min = 2,
        max = 4,
    },
    moonshine_producition_start = 50,
    progress_production_start = 50,
    steam_destroying_effect = 80,
}

Config.ProgressUpdateTime = 60000
-- The values below are always once per progress, which means that according to Config.ProgressUpdateTime
Config.Progress = {
    fire_minus = 0.5, -- The fire is diminishing by
    temp_less_than_70_plus = 10, -- If the temperature is less than 70, the temperature rises
    temp_more_than_70_plus = 0.5, -- If temp more than 70 add to temp 
    remove_water = 0.5, -- Remove water every progress run
    add_stream = 3, -- Add steam every progress run
    remove_condition = 10, -- This if steam more than Config.Recepie.steam_destroying_effect
    add_litres = 0.2, -- If all the conditions of correct production.
    add_progress = 2,  -- If all the conditions of correct production.
    -- If progress == 100 removes all the herbs, corns and spices
    remove_temp_if_not_fire = 10, -- Remove the fire if there is no wood.
    quality = 0, -- Bad < 0 > Good -- THIS IS INVISIBLE VALUE FOR PLAYER
} 

Config.RecivieBrewleryWhenDestroyed = true


Config.RiddleToFindRecepie = "By the valentine tree to the west, go ahead and dig."

Config.RecepieChest = vector3(-325.2024, 616.0845, 108.7664)
Config.RecepieFakeLocations = {
    vector3(0,0,0)
}
Config.RecepieFakeItem = "garbage"

Config.BrewleryPlaceEverywhere = false -- If false line down
Config.BrewleryAllowCollision = true -- If someone place on road
-- or 
Config.BrewleryLocationsWhereCanBePlace = { -- This is good if the players on your server are idiots.
    {coords = vector3(-274.3869, 827.3947, 118.9536), radius = 150.0},
    {coords = vector3(22.7895, 496.0854, 163.8879), radius = 150.0},
}

Config.Items = {
    water = "water",
    moonshine = "moonshine",
    badmoonshine = "badmoonshine",
    brewlery = "moonshine_brewlery",
    wood = "wood",
    corn = "moonshine_corn",
    herb = "moonshine_herb",
    spice = "moonshine_spice",
    recepie = "moonshine_recepie",
    help = "moonshine_help",
    repair = "moonshine_repair_kit",
    empty_bottle = "bottle",
}

Config.ProgressBarTime = 10000 -- This is for long actions
Config.ProgressBarTimeShort = 3000 -- This is for short actions / Add ingredience

Config.Dig = {
    model = `p_shovel02x`,
    anim = {"amb_work@world_human_gravedig@working@male_b@idle_a", "idle_a"},
    bone = "skel_r_hand",
    pos = {0.06, -0.06, -0.03, 270.0, 165.0, 17.0},
}


-- Shop

Config.ShopCoords = vector4(556.3729, 565.1187, 111.6160, 257.3225)
Config.Shop = {
    {
        label = "Spice",
        itemName = "moonshine_spice",
        count = 5,
        price = 50
    },
    {
        label = "Shovel",
        itemName = "shovel",
        count = 1,
        price = 100
    },
    {
        label = "Hint",
        itemName = "moonshine_recepie_help",
        count = 1,
        price = 500
    },
    {
        label = "Moonshine brewlery",
        itemName = "moonshine_brewlery",
        count = 1,
        price = 2000
    },
    {
        label = "Wood",
        itemName = "wood",
        count = 1,
        price = 1
    },
    -- Uncomment this unless you want to use other things to get wood.
    --[[
    {
        label = "Wood",
        itemName = "wood",
        count = 1,
        price = 100
    },
    ]]--
}

--- Fields

Config.FieldsLoadTime = 5000
Config.FieldsDistanceLoad = 50.0


Config.Fields = {
    {
        label="Corn field",
        pos = vector3(89.5634, -215.9102, 111.3551),
        spawnModel = "crp_cornstalks_bc_sim",
        spawnRadius = 40.0,
        spawnLimit = 3,
        recivieItem = Config.Items.corn,
        count = {
            min = 1,
            max = 2,
        }
    },
    {
        label="Herb field",
        pos = vector3(396.8406, -272.7169, 132.9089),
        spawnModel = "p_herbsdry01x",
        spawnRadius = 40.0,
        spawnLimit = 3,
        recivieItem = Config.Items.herb,
        count = {
            min = 1,
            max = 2,
        }
    },

}


Config.Peds = {
    "cs_exconfedsleader_01",
}



Config.SmallSellCountLimit = 3
Config.SmallSells = {
	{
		target = vec3(-239.6348, 759.8047, 117.7147),
		price = 10,
		chanceForPD = 40,
	},

    --[[
    {
		target = vec3(-239.6348, 759.8047, 117.7147),
		price = 10,
		chanceForPD = 40,
	},
    ]]--
}


Config.UseClientEvents = true

if not IsDuplicityVersion() then
    function DispatchCall(type, coords)
        -- Types: smalldeal/bigdeal
        -- coords: Player coords
        if type == "smalldeal" then
            print("Small deal dispatch")
        end
    end
end

:page_facing_up: Dependencies

:shopping_cart: Store

Escrow: https://store.polisek.io/package/6193188
Source: https://store.polisek.io/package/6193203

Check my other resources

FiveM
Mower job
Job system
Weed growing

RedM
NPC Bandits V2