🧹HRComserv

An advanced and free community services script made for roleplay servers with no need of framework

Dependencies

Installation

  • Download and install all the dependencies

  • Download HRComserv

  • Move the dependencies and HRComserv to your resources folder

  • Configure HRComserv from it's config.lua file

  • Write this in your server.cfg file: start HRLib start oxmysql start HRComserv

  • Restart your server

Preview

config.language = 'en'

config.tasksDuration = {
    hammerFix = 5000,
    sweeping = 5000,
    digging = 5000
}

config.taskButton = 'E'

config.restorePlayerItems = true

config.comservLocations = {
    {
        spawnCoords = vector3(1772.3788, 3797.0134, 33.9043),
        allowedDistance = 15.0,
        tasks = {
            {
                coords = vector4(1777.6198, 3795.4888, 33.9795, 600.0),
                type = 'hammerFix'
            },
            {
                coords = vector4(1777.0300, 3799.5671, 34.5231, 298.9253),
                type = 'sweeping'
            },
            {
                coords = vector4(1768.1304, 3805.5369, 34.1334, 48.5324),
                type = 'digging'
            }
        }
    },
    {
        spawnCoords = vector3(165.4393, -989.9612, 30.0857),
        allowedDistance = 25.0,
        tasks = {
            {
                coords = vector4(156.7134, -1007.0770, 29.5411, 160.8827),
                type = 'hammerFix'
            },
            {
                coords = vector4(163.5233, -1006.0145, 29.3967, 249.2508),
                type = 'sweeping'
            },
            {
                coords = vector4(178.7770, -997.6605, 29.2918, 251.4863),
                type = 'digging'
            }
        }
    }
}

config.comservClothes = { -- Each field's value is the cloth number
	tshirt_1 = 0,
	tshirt_2 = 0,
	torso_1 = 0,
	torso_2 = 0,
	decals_1 = 0,
	decals_2 = 0,
	arms = 0,
	pants_1 = 0,
	pants_2 = 0,
	shoes_1 = 0,
	shoes_2 = 0
}

config.disableInventory = true

config.tasksMarker = {
    type = 21,
    colour = {
        red = 255,
        green = 255,
        blue = 255
    },
    alpha = 255
}

config.finishComservPosition = vector3(422.9242, -979.4069, 30.7094)

config.restorePlayerItems = true -- Choose to restore the player's items/weapons after finishing it's tasks

Features

Two commands used by the server's staff: /comserv [id] [tasksCount] /stopComserv [id]

Random locations for doing tasks

Three types of tasks: hammering, sweeping and digging

Optimization

Clothes change, Items removal, Set inventory to busy

Еxternal connections

Server Exports

exports.HRComserv:comservPlayer(playerId, tasksCount)
exports.HRComserv:stopPlayerComserv(playerId)

Player State Bag

-- Server side
local playerState = Player(playerId).state.hasComservTasks

-- ClientSide

local playerState = LocalPlayer.state.hasComservTasks

the player state bag "hasComservTasks" contains the following fields:

  • tasksCount (integer): The count of remaining tasks

  • skin (string): json encoded table of player's outfit

  • playerItems (table[]): an array full of player's items

  • alreadyHave (boolean): a value that shows if the player joined the server but already have tasks to do and left before finishing them

Last updated