PHPackages                             virtubrick/grid - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. virtubrick/grid

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

virtubrick/grid
===============

Helper library for communicating with the Roblox Grid Service.

v1.0.3(3mo ago)91912[2 issues](https://github.com/RBXC/virtubrick-grid/issues)Apache-2.0PHP

Since Mar 4Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/RBXC/virtubrick-grid)[ Packagist](https://packagist.org/packages/virtubrick/grid)[ RSS](/packages/virtubrick-grid/feed)WikiDiscussions develop Synced 1mo ago

READMEChangelog (4)DependenciesVersions (9)Used By (0)

Virtubrick\\Grid
================

[](#virtubrickgrid)

This library allows for communication between the Virtubrick website and the Roblox Grid Service.

Virtubrick\\Grid\\Rcc\\Job
--------------------------

[](#virtubrickgridrccjob)

The Rcc\\Job class is the first thing you should be constructing. All functions to interact with the Grid Service are called from here.

### Constructor

[](#constructor)

- `string $id` *(An RFC 4122 compliant Version 4 UUID will be substituted as the job ID if this is a blank string)*
- `int $expirationInSeconds` *(20)*
- `int $cores` (0)
- `int $category` (0)

### Methods

[](#methods)

- `toArray(): array` Get the job as an array, does not soapcall.
- `arbiter(Virtubrick\Grid\GridService): Job` Sets the arbiter that the Job will contact. Returns itself so these functions may be chained.
- `script(Virtubrick\Grid\Rcc\LuaScript): Job` Sets the script that the Job opens with. Returns itself so these functions may be chained.
- `batch(): array` Will batch the Job. Returns results from the lua script.
- `open(): array` Will open the Job. Returns results from the lua script.
- `getExpiration(): float` The amount of seconds until the job expires.
- `execute(\Virtubrick\Grid\Rcc\LuaScript $input): array` Executes a script on the job. Returns result from the executed script.
- `renewLease(int $expiration): array` Renews the lease on the Job for $expiration amount of seconds.
- `closeJob(): array` Closes the job.
- `diag(int $type): array` Collects diagnostic data about the job. (type: 0 = general diagnostic data; 1 = leak dump; 2 = allocation test; 3 = get duty cycles)

Virtubrick\\Grid\\Rcc\\LuaScript
--------------------------------

[](#virtubrickgridrccluascript)

Class that allows easy communication for scripts via the Job class.

### Constructor

[](#constructor-1)

- `string $name`
- `string $script`
- `array $arguments` *(Empty array by default)*

### Methods

[](#methods-1)

- `toArray(): array` Get the job as an array, does not soapcall.

Virtubrick\\Grid\\GridService
-----------------------------

[](#virtubrickgridgridservice)

This class describes your arbiter.

### Constructor

[](#constructor-2)

- `string $arbiter` *(ex. )*

### Methods

[](#methods-2)

- `soapCall(string $name, ?array $args = null): array` Sends a soap call to the Arbiter service. See [RCCService.wsdl](Resources/RCCService.wsdl) for details.
- `helloWorld(): string` "Hello World" Health check constant.
- `getVersion(): string` The current arbiter's version.
- `getStatus(): array` An object containing the version and job count of the current arbiter.
- `getAllJobs(): array` All open jobs.
- `closeExpiredJobs(): int` Closes all expired jobs and returns the count of jobs that have been closed.
- `closeAllJobs(): int` Closes all present jobs and returns the count of jobs that have been closed.

Example Usage:
--------------

[](#example-usage)

Generating a Thumbnail

```
use Virtubrick\Grid\GridService;
use Virtubrick\Grid\Rcc\{Job, LuaScript};

$job = (new Job($jobId = '', $expirationInSeconds = 120))
		->arbiter(new GridService('http://127.0.0.1:64989'))
		->script(new LuaScript(
			$name = "RenderThumbnail {$key}",
			$script = $script,
			$arguments = $arguments
		));

[$renderB64, $assetDependencies] = $job->batch();

header('x-asset-dependencies', implode(',', $assetDependencies));
header('content-type', "image/png");
exit(base64_decode($renderB64));
```

Copyright 2024 kylegg

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance77

Regular maintenance activity

Popularity23

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 89.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~101 days

Recently: every ~160 days

Total

8

Last Release

96d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6829b6968e2dddb1a8324d11ef7d7900e0712b5e51efb0b84f9f2a39d4c21cae?d=identicon)[kylegg](/maintainers/kylegg)

---

Top Contributors

[![kylegg](https://avatars.githubusercontent.com/u/144742207?v=4)](https://github.com/kylegg "kylegg (17 commits)")[![BigMark824](https://avatars.githubusercontent.com/u/77483822?v=4)](https://github.com/BigMark824 "BigMark824 (2 commits)")

---

Tags

phprccservicerobloxsoap

### Embed Badge

![Health badge](/badges/virtubrick-grid/health.svg)

```
[![Health](https://phpackages.com/badges/virtubrick-grid/health.svg)](https://phpackages.com/packages/virtubrick-grid)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
