SComputers supports the creation of addons
to create add-ons, you don't need to have special permissions or anything like that, you just need to modify your shape script a little by providing an API
please note that SComputers clones the API table and adds its hook to each method, each computer creates its own clone of your API table when you first receive the component table, this can cause confusion. just remember that it is better to re-spawn your test blueprint after you have changed your shape script for debugging
you can also use the addon API (sm.scomputers) to add additional functionality to your addon

actions for creating addons:


additional API for creating addons (sm.scomputers):

            --this code is the basis for creating addons
exampleComponent = class()
exampleComponent.maxParentCount = 1
exampleComponent.maxChildCount = 0
exampleComponent.connectionInput = sm.interactable.connectionType.composite
exampleComponent.connectionOutput = sm.interactable.connectionType.none
exampleComponent.colorNormal = sm.color.new(0x7F7F7Fff)
exampleComponent.colorHighlight = sm.color.new(0xFFFFFFff)
exampleComponent.componentType = "example" --absences can cause problems

function exampleComponent:server_onCreate()
    self.interactable.publicData = {
        sc_component = {
            type = exampleComponent.componentType,
            api = {
                test = function()
                    return "ok"
                end,
                directTest = function()
                    --let's assume that this method needs to be called 1000 times per second
                end
            },
            directList = {
                directTest = true --disables checking for connectivity and component availability for this method. increases the call speed by about 10 times
            },
            label = function() --optional. this function should return the current label of the component so that it can be accessed using getComponentByLabel.
                return "label"
            end
        }
    }
end
        
            --we check the operation of our component
print(getComponent("example").test())