# UnrealScript Insulting Players Style Guide > Go back to [CONTRIBUTING](https://github.com/InsultingPros/.github/blob/main/.github/CONTRIBUTING.md) This guide is for any project developed by us. It is a result of trial and error, combined with ideas borrowed from some other languages. You might find a lot of code in our repos that do not follow this style, this is because this document was formulated after a lot of projects were finished and its specification differs greatly from them. As of 26.02.2023 none of the projects follow these guidelines. *However* all new code from now on should conform to them. Old code, ideally, should also be updated to use them, but that might take awhile due to the lack of the specialized tooling for that. ## Formatting guidelines ### Naming rules #### Code * Names of classes, methods, enumerations, public fields: `PascalCase`; * Constants' names: `UPPER_SNAKE_CASE`; * Filenames and directory names are `PascalCase`, e.g. `MyFile.uc`; * Names of local variables, parameters: `camelCase`; * Names of private, protected, internal and protected internal fields and properties: `_camelCase`; * Naming convention is unaffected by variable/return type or modifiers such as `const`, `static`, `out`, etc; * `none`, `default`, `super`, `false`/`true` and all other keywords should be in lower case; * For casing, a “word” is anything written without internal spaces, including acronyms. For example, `MyJson` instead of ~~`MyJSON`~~; * Except for cycle counters such as `i`, `j` and `k`, always use meaningful variable names - there is no need to be stingy with characters. But do try not to make names longer than 20 characters (soft limit, can be broken if necessary). #### Organization Modifiers (for a single function/variable) occur in the following order: `public`, `protected`, `private`, `final`, `static`, `localized`, `simulated`, `exec`, `function`; Class member ordering: * Group class members in the following order: 1. `struct`s, `enum`s and `delegate`s; 2. `static` and `const` fields; 3. Variable declarations; 4. Replication block; 5. If applicable, methods that can at least in some sense be thought of as constructors and finalizers for the instances of the class. 6. Methods. * Within each group, elements should be in the following order: 1. Public. 2. Protected. 3. Private. #### Whitespace rules Developed from Google Java style. * No trailing whitespaces are allowed; * A maximum of one statement per line; * Indentation of 4 spaces, no tabs; * Column limit: 100; * One empty line between functions; * No line break before opening brace, has to have a break after (even for empty blocks); * No line break between closing brace and `else`; * Braces used even when optional; * `defaultproperies` should be formatted like all other blocks and appear in every file, even if it is empty; * In the definitions of `defaultproperties` block `=` sign in variable assignment should be surrounded by white spaces. Several whitespaces to the left of `=` are allowed to group several assignments at the same ident level; Note that when assigning a default value of a struct, there's no spaces allowed inside value's definition: `def = (a="Hello, world!",b=false)`; * In `replication` block condition should be indented by 4 spaces, then all the replicated variables/functions should be indented by 4 more spaces. In case of having to specify them on several lines, no additional indentation is necessary. Functions and variables should be grouped separately. * In `switch` blocks `case