> For the complete documentation index, see [llms.txt](https://docs.norrnext.com/norrcompetition/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.norrnext.com/norrcompetition/points-system/rules-and-actions.md).

# Rules & Actions

The Points System determines when and how many points are awarded or deducted based on specific user actions within NorrCompetition. Each action rule accepts a numerical value:

* **Negative values (e.g., `-10`):** Deducts points from the target user balance (cost).
* **Positive values (e.g., `15`):** Adds points to the target user balance (reward).
* **Zero (`0`):** Disables point processing for that specific action rule.

***

### Action Rules Reference

| Category               | UI Rule Name                 | Target User           | Description                                                                               |
| ---------------------- | ---------------------------- | --------------------- | ----------------------------------------------------------------------------------------- |
| **Submission Rules**   | **Entry Create**             | Submitting Contestant | Points charged or awarded when a contestant submits a new entry. Checked prior to saving. |
| **Voting Rules**       | **Vote Cast**                | Voting Member         | Points charged or awarded to the voter when casting a vote. Checked prior to saving.      |
| **Voting Rules**       | **Vote Receive**             | Entry Contestant      | Points awarded or deducted to the entry owner when someone votes for their entry.         |
| **Voting Rules**       | **Vote Cancel (Voter)**      | Voting Member         | Points refunded or charged to the voter when their vote is canceled or revoked.           |
| **Voting Rules**       | **Vote Cancel (Contestant)** | Entry Contestant      | Points revoked or refunded to the entry owner when a received vote is canceled.           |
| **Approval Rules**     | **Entry Approve**            | Entry Contestant      | Points awarded or deducted to the author when their entry is approved by a moderator.     |
| **Approval Rules**     | **Entry Unapprove**          | Entry Contestant      | Points adjusted when a previously approved entry is unapproved.                           |
| **State Change Rules** | **Entry Publish**            | Entry Contestant      | Points awarded or deducted when an entry status changes to Published.                     |
| **State Change Rules** | **Entry Unpublish**          | Entry Contestant      | Points adjusted when an entry status changes to Unpublished.                              |
| **State Change Rules** | **Entry Trash**              | Entry Contestant      | Points adjusted when an entry is moved to trash.                                          |

***

### Gate Validation vs Transaction Execution

Points rules operate in two sequential execution phases:

1. **Gate Validation Phase (Pre-Check):**
   * Before a user action is executed (such as casting a vote or submitting an entry), the system checks if the user has enough points for negative-cost rules (**Vote Cast**, **Entry Create**).
   * If the balance is insufficient, the action is immediately blocked with an error notice, preventing any database changes.
2. **Transaction Phase (Post-Save Execution):**
   * Once the action is successfully validated and saved in the database, transaction events update the user's point balance in an atomic transaction and create a record in the Points Log.

{% hint style="info" %}
**Example Use Case — Paid Voting with Author Reward:**

* Set **Vote Cast** = `-5` (voter pays 5 points per vote).
* Set **Vote Receive** = `+2` (entry author receives 2 points for every vote received).
  {% endhint %}
