Hi Moliata,
Looking at a recent change I've worked on for Form to add a project level property, I see the following:
appinventor/appengine/src/com/google/appinventor/shared/settings/SettingsConstants.java
1. Add a constant for your new project setting.
appinventor/appengine/src/com/google/appinventor/client/settings/project/YoungAndroidSettings.java
2. Add a default value for your new project setting.
appinventor/appengine/src/com/google/appinventor/server/project/youngandroid/YoungAndroidProjectService.java
3. Update getProjectSettings, getProjectPropertiesFileContents, storeProjectSettings, newProject, and copyProject to reflect the addition of your new project setting.
appinventor/appengine/src/com/google/appinventor/server/FileImporterImpl.java
4. Update importProject to reflect your changes in 3.
appinventor/appengine/tests/com/google/appinventor/server/ProjectServiceTest.java
5. Update testCopyProject to reflect your changes in 3 so that the tests pass.
appinventor/appengine/src/com/google/appinventor/client/editor/simple/components/MockForm.java (or replace with a subclass of MockNonvisibleComponent specific to your component)
6. Override onPropertyChange and provide a check for your new property that calls changeProjectSettingsProperty() to set the new setting defined in 1.
appinventor/buildserver/src/com/google/appinventor/buildserver/Project.java
7. Add a getter for the new setting from the project properties.
appinventor/buildserver/src/com/google/appinventor/buildserver/Compiler.java
8. Add whatever you need to do to consume the setting from Project as part of the compilation process.
appinventor/components/src/com/google/appinventor/components/runtime/Form.java (replace with your actual component)
9. Provide optional behavior for what happens in the companion if the property changes.
Evan