A Node.JS tool to automatically install or update your FiveM server artifacts.

Overview

ItsANoBrainer

FiveM Artifact Updater

N|Solid

FiveM Artifact Updater is an application created with Node.JS to easily and quickly install/update your artifacts with the click of a button. No more are the days of needing to manually navigate to the Artifacts Site, download whatever version, unzip and replace your files. This tool does all that for you, and more with config file to tune it to your liking, as well as support for replacing all config file items with command line arguments for on the fly usage. It will also clean up after itself afterwards!

Features

  • Ability to install the latest, recommended, newest, or custom FiveM build with a single click
  • Ability to use custom command line arguments to adjust install on a case by case basis

Installation

FiveM Artifact Updater requires Node.js to run.

  1. Install Node.JS. May require a computer restart.
  2. Place the FiveMArtifactUpdater folder in the same directory as your txData and artifacts folders
  3. Run InstallDependencies.bat or npm install in the install directory

Usage

After installing the dependencies you can use the application.

  1. Navigate to the config.json and verify the artifactsDirectory value matches the folder name of the artifacts folder your server is using. By default this is artifacts. This application's folder should be in the same directory as your txData and artifacts folders.
  2. Verify the downloadType in the config.json is what you want. Supported options are below
  3. Run the UpdateArtifacts.bat and follow the prompts

Command Line Arguments

You can edit the UpdateArtifacts.bat file and add as many command line arguments like below:

node index.js -allowPrompt false

This works for any and all keys in the config.json:

  • artifactsURL <url> | URL to webscrape from
  • artifactsDirectory <directoryName> | Directory to place the unzipped artifacts
  • webscrapeDirectory <directoryName> | Directory to place the downloaded webscrape
  • zipDirectory <directoryName> | Directory to place the zip
  • zipFileName <fileName> | Name of the downloaded artifacts file
  • downloadType <type> | Which dynamic build to pull. Supports specific/custom for buildSpecific section below, newest/latest for the newest build, optional for the optional build, and recommended for the recommended build
  • buildSpecific <5000> | Use a specific build number. downloadType must be custom or specific to use this
  • verbose <true/false> | Show more console logging
  • allowPrompt <true/false> | Prompt the user for input before starting and doing important things

Default config.json

{
    "artifactsURL": "https://runtime.fivem.net/artifacts/fivem/build_server_windows/master",
    "artifactsDirectory": "../artifacts/",
    "webscrapeDirectory": "./webscrape/",
    "zipDirectory": "./artifacts-zipped/",
    "zipFileName": "server.7z",
    "downloadType": "latest",
    "buildSpecific": null,
    "verbose": false,
    "allowPrompt": true
}

Tech

  • Node.JS - evented I/O for the backend

How it Works

This was a great personal project not only for my use case (needing to easily and quickly update my servers artifacts), but also to spend more time learning Javascript and some new Node.JS modules. Here is what it does:

  1. Scrape the Webpage - Using web-scrape we download the artifacts url source page
  2. Parse the DOM - Using node-html-parser we parse the webscraped html for the URL of the build we want
  3. Download New Artifacts - Using https we download the server.7z from the webscraped url
  4. Delete Current Artifacts - If they exist, we use fs to delete the current artifacts
  5. Extract server.7z - Using 7zip-bin and node-7z we extract the server.7z files into our artifacts folder
  6. Cleanup - Using fs we delete everything we downloaded, including the webscrape and server.zip

Development

Want to contribute? Great!

This is an application for competant people who can follow directions. If you know what you're doing and are encountering issues, use the Issues and Pull Request section appropriately.

Change Log

v1.0

  • Initial Release

Future ToDos

  • Download only the HTML file of the page, or see if its possible to grab all the data we want directly with sources web-scrape option and eliminate the downloading entirely.

License

GNU GPL v3

You might also like...

This tool allows you to draw up plans for facilities from Foxhole's new Inferno update. It takes power and resource needs into account to help you efficiently design your facilities.

This tool allows you to draw up plans for facilities from Foxhole's new Inferno update. It takes power and resource needs into account to help you efficiently design your facilities.

Foxhole Facility Planner This tool allows you to draw up plans for facilities from Foxhole's new Inferno update. It takes power and resource needs int

Dec 23, 2022

Instruction how to install laravel echo and pusher without vuejs or even npm

This 2 .js files are used to listen from server broadcasting with laravel-websockets, so that you don't need the use of Vue.js in your laravel app Fol

Sep 28, 2022

GitHub action to install Foundry

foundry-toolchain Action This GitHub action installs Foundry. Example workflow on: [push] name: test jobs: check: name: Foundry project ru

Jan 5, 2023

Quick programmatically install npm dependencies 📦

qpind Install dependecies quick & programmatically 📦 Install # Using npm: npm install qpind # Using pnpm: pnpm add qpind # Using yarn: yarn add qpind

Oct 6, 2022

Open apps directly in GNOME Software by clicking Install from Flathub and apps.gnome.

Open apps directly in GNOME Software by clicking Install from Flathub and apps.gnome.

Flatline Open apps directly in GNOME Software by clicking Install from Flathub and apps.gnome. Load the extension in Firefox Clone the repository Open

Nov 7, 2022

Service Installer for VMware Tanzu is a one-click automation solution that enables VMware field engineers to easily and rapidly install, configure, and operate VMware Tanzu services across a variety of cloud infrastructures.

Service Installer for VMware Tanzu Service Installer for VMware Tanzu seeks to provide a one-click automation solution to enable our VMware engineers

Dec 1, 2022

This is a project that is used to execute python codes in the web page. You can install and use it in django projects, You can do any operations that can be performed in python shell with this package.

Django execute code This is a project that is used to execute python codes in the web page. You can install and use it in django projects, You can do

Nov 12, 2022

🎨 VS Code extension for antd v5 design token. Install it now!👇

🎨 VS Code extension for antd v5 design token. Install it now!👇

antd design token VSCode extension for antd v5 design token. Features Provide the hover hint and editor decorations of antd v5 design token, include c

Dec 30, 2022

A Tauri update server, hosted as a Cloudflare edge function

Tauri Update Server: Cloudflare One-Click Deploy Click the button above, let Cloudflare walk you through: it's easy! Go to your forked repository, edi

Dec 14, 2022
Releases(v2.0.2)
  • v2.0.2(Apr 8, 2022)

    No longer uses webscraping at all, now uses the cfx changelog api endpoint. This endpoint has the artifacts bundled as a .zip instead of .7z as well, which allowed for lowering the package size by over 92% (1.53mb instead of 21.8mb).

    • Removed webscrape dependency
    • Removed html parser dependency
    • Removed https dependency
    • Removed 7zip-bin and node-7z dependencies (bulk of disk size change)
    • Moved download from https to axios
    • Removed buildSpecific option as the new method does not support it. Use v1.0.0 if you really need it.
    • 50% less lines, 28% less characters
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Mar 6, 2022)

Owner
null
portfolio-project is a npm package to automatically update your projects section in your portfolio website. It will fetch the selected repositories directly from your GitHub account.

portfolio-project Those days of manually updating portfolio website after every new project made are gone ⚡ Yesss . . . you read that right. ?? portfo

Gaurav Gulati 15 Aug 3, 2021
JavaScript library to interact with the Cfx.re API (FiveM/RedM)

Cfx.re JavaScript API A package that helps you interacting with the Cfx.re, FiveM & RedM API. How to install npm i cfx-api Example usage: const cfx =

Pablo Zapata 21 Jan 1, 2023
JavaScript library to interact with the Cfx.re API (FiveM/RedM)

Cfx.re JavaScript API A package that helps you interacting with the Cfx.re, FiveM & RedM API. How to install npm i cfx-api Example usage: const cfx =

Pablo Zapata 14 Aug 14, 2022
Simple learning framework on FiveM (Personnal use)

ABOUT What is this ? It' a simple framework for FiveM written in TypeScript with position sync in database. I'm trying to make it better by adding som

JustGod 2 Dec 1, 2022
A tool to install ubuntu mainline kernels from the console.

Ubuntu Kernel Tool A tool to list, download, and install mainline kernels from the Ubuntu mainline repository. ULTIMATE DISCLAIMER: DO NOT USE THIS TO

Abdullah A. Hassan 9 Jan 21, 2022
A command-line tool to manage Deno scripts installed via deno install

??️ nublar nublar is a command-line tool to manage your scripts installed via deno install. ??️ Installation deno install --allow-read --allow-write -

Shun Ueda 16 Dec 26, 2022
Cloudflare worker function to update github bio automatically with leetcode and codeforces profile stats 🚀

Stats check ?? Cloudflare worker function to update github bio automatically with leetcode and codeforces profile stats ?? You can see it in action he

Vaibhav Chopra 2 Feb 15, 2022
Easiest 1-click way to install and use Stable Diffusion on your own computer. Provides a browser UI for generating images from text prompts and images. Just enter your text prompt, and see the generated image.

Stable Diffusion UI Easiest way to install and use Stable Diffusion on your own computer. No dependencies or technical knowledge required. 1-click ins

null 3.5k Dec 30, 2022
Possibly the coolest way to install apps and customize your Mac!

BrewMyMac Possibly the coolest way to install apps and customize your Mac! Introduction This article explains the motivation behind this project. Gett

Alan Tai 38 Dec 6, 2022