> 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

Reference guide for point rules, user action triggers, and point allocations in NorrCompetition.

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 %}
