PrimitiveShapes is an API that makes it easy to use the PrimitiveShapesPacket to render 3D shapes client-side.
$shape = PrimitiveShapesAPI::createText(
position: new Vector3(100, 65, 200),
text: "Hello World",
color: 0xFFFF0000, // ARGB red
scale: 2.0,
);
PrimitiveShapesAPI::send($player, $shape);$shape = PrimitiveShapesAPI::createShape(
shapeType: ShapeType::BOX,
position: new Vector3(100, 65, 200),
color: 0xFF00FF00,
extraData: ["bounds" => new Vector3(2, 2, 2)],
);
PrimitiveShapesAPI::send($player, $shape);$shape = PrimitiveShapesAPI::createShape(
shapeType: ShapeType::SPHERE,
position: new Vector3(100, 65, 200),
color: 0xFF0000FF,
extraData: ["segments" => 20],
);
PrimitiveShapesAPI::send($player, $shape);$shape = PrimitiveShapesAPI::createShape(
shapeType: ShapeType::LINE,
position: new Vector3(100, 65, 200),
color: 0xFFFFFF00,
extraData: ["endPosition" => new Vector3(110, 70, 210)],
);
PrimitiveShapesAPI::send($player, $shape);$shape = PrimitiveShapesAPI::createShape(
shapeType: ShapeType::ARROW,
position: new Vector3(100, 65, 200),
color: 0xFFFF00FF,
extraData: [
"endPosition" => new Vector3(110, 70, 210),
"headLength" => 1.0,
"headRadius" => 0.5,
"headSegments" => 8,
],
);
PrimitiveShapesAPI::send($player, $shape);$shape = PrimitiveShapesAPI::createShape(
shapeType: ShapeType::CYLINDER,
position: new Vector3(100, 65, 200),
color: 0xFF00FFFF,
extraData: [
"radiusX" => 1.0,
"radiusZ" => 1.0,
"height" => 3.0,
"segments" => 16,
],
);
PrimitiveShapesAPI::send($player, $shape);$shape = PrimitiveShapesAPI::createShape(
shapeType: ShapeType::PYRAMID,
position: new Vector3(100, 65, 200),
color: 0xFFFFAA00,
extraData: ["width" => 3.0, "height" => 4.0],
);
PrimitiveShapesAPI::send($player, $shape);$shape = PrimitiveShapesAPI::createShape(
shapeType: ShapeType::ELLIPSOID,
position: new Vector3(100, 65, 200),
color: 0xFFAA00FF,
extraData: [
"radii" => new Vector3(2, 1, 1.5),
"segments" => 16,
],
);
PrimitiveShapesAPI::send($player, $shape);$shape = PrimitiveShapesAPI::createShape(
shapeType: ShapeType::CONE,
position: new Vector3(100, 65, 200),
color: 0xFF00AA55,
extraData: [
"radius" => 1.5,
"height" => 3.0,
"segments" => 16,
],
);
PrimitiveShapesAPI::send($player, $shape);PrimitiveShapesAPI::remove($player, $shape->networkId);ShapeType::LINE, ShapeType::BOX, ShapeType::SPHERE, ShapeType::CIRCLE, ShapeType::TEXT, ShapeType::ARROW, ShapeType::CYLINDER, ShapeType::PYRAMID, ShapeType::ELLIPSOID, ShapeType::CONE