Skip to main content

A .brs reader/writer for brickadia

Brickadia is a multiplayer brick building game

Made for version 14 saves (Brickadia Early Access)

Example Usage:

Display info about a save:

import brs
save = brs.readBRS("foobar.brs")
print(save)

Make a save from scratch, with bricks showing the default colorset

import brs

save = brs.BRS.default(brs.User("Speedy Boi", "54937200-3f6e-4d8e-8e65-0e7c0bfcc117"))

#create asset
default_asset = brs.Asset("PB_DefaultBrick", 0)
save.brick_assets.append(default_asset)

for i, col in enumerate(save.colors):
    brick = brs.Brick()
    brick.brick_index = i
    brick.asset = default_asset
    brick.size = brs.Size(5, 5 ,6)  #size of a 1x1 brick
    brick.position = brs.Position((i%12) * 10, (i//12) * 10, 0)
    brick.orientation = brs.Orientation(brs.Direction.Z_POSITIVE, brs.Rotation.DEG_0)
    brick.collision = brs.Collision()   # all True by default
    brick.visibility = True
    brick.material = save.materials[3]  # 4th material is BMC_Plastic
    brick.physical_material = save.physical_materials[0]    # BPMC_Default
    brick.material_intensity = 5        # doesnt matter for plastic
    brick.color = col
    brick.owner = save.brick_owners[0]
    
    # dont forget to increment brick count
    brick.owner.brick_count += 1
    # add the brick to the save
    save.bricks.append(brick)

save.to_file("all_colors.brs")

Make a new component from scratch and add it to a brick:

import brs
...
brick = save.bricks[0]  # take some brick to add a "Component_Target" component to

# create a new Component_Target component with one Property "OnTime" of type Float
new_component = brs.Component()
new_component.index = len(save.components)
new_component.name = "Component_Target"
new_component.version = 1
on_time = brs.Property("OnTime", brs.PropertyType.FLOAT)
new_component.properties = [on_time]

# add component to save
save.components.append(new_component)

# make a component instance and set values
component_instance = brs.ComponentInstance(new_component)
component_instance.property_values = {on_time: 1.234}

# attach the component instance to the brick
brick.components[new_component] = component_instance

# add the brick to the component
new_component.bricks.append(brick)
...

Metadata

Release files for brs 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for brs 1.0.0
File Size Uploaded
brs-1.0.0.tar.gz 2.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for brs 1.0.0
File Interpreter ABI Platform
brs-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 4.3 kB

Release files / brs-1.0.0.tar.gz

Download URL brs-1.0.0.tar.gz
Size 2.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f6d8d67a78771168087a2465ec05fe920e53583f0be109b43044508759f66e63
BLAKE2b-256 checksum
How to use checksums
0f0460f3f3ac1d82be6546d9f299dfabceb5bc822dc82848a9640cb51dc034a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release files / brs-1.0.0-py3-none-any.whl

Download URL brs-1.0.0-py3-none-any.whl
Size 2.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
32aa08406c97d61ccc4643f3d88f89abdf6460504ca25dcb9abc6f771e3229dc
BLAKE2b-256 checksum
How to use checksums
b7d57e4319e495649b32789c840084a2689e938548effc16422798b4405649d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page