Rewards players for swiping puzzle cards with any item(s) and amount.
Supported Games

works with
- Economics3.*
- Super Card1.*
Features
- Reward players as they swipe their puzzle cards.
- Rewards can be anything, like scrap, economics, and server rewards
- Quality checks ensuring a good card swipe (correct card reader, powered, door not already open, etc).
- Broadcasts card swipe to the server, including player and monument with grid location (configurable).
- Provides configurable cooldown period (for same card & monument) to prevent door spamming.
- Easily add any item as a reward type.
Add Reward
Below is an example item entry that you would put in, if you want to give players 100 low grade when they swipe a blue card. You can also use the reward_item_id if you know the item id. Only one (shortname or id) can be empty. The name field is for your benefit only, to have something human-readable to anchor onto when viewing the config file. You can see in the eg. config file below how the Swipe Rewards list is formed.
{
"access_level": 2,
"reward_item_shortname": "lowgradefuel",
"reward_item_id": 0,
"amount": 100.0,
"is_active": true,
"name": "low-grade"
},
Configuration
Default configuration file
{
"Show Console Messages": true,
"Show Global Chat Monument Messages (eg. Player swipped card at Launch)": true,
"Cooldown: Amount of time (secs) a player must wait before getting rewarded to avoid swipe spam": 600,
"Swipe Rewards": [
{
"access_level": 1,
"reward_item_shortname": "economics",
"reward_item_id": 0,
"amount": 50.0,
"is_active": false,
"name": "economics"
},
{
"access_level": 2,
"reward_item_shortname": "economics",
"reward_item_id": 0,
"amount": 150.0,
"is_active": false,
"name": "economics"
},
{
"access_level": 3,
"reward_item_shortname": "economics",
"reward_item_id": 0,
"amount": 300.0,
"is_active": false,
"name": "economics"
},
{
"access_level": 1,
"reward_item_shortname": "rp",
"reward_item_id": 0,
"amount": 1.0,
"is_active": false,
"name": "rp"
},
{
"access_level": 2,
"reward_item_shortname": "rp",
"reward_item_id": 0,
"amount": 2.0,
"is_active": false,
"name": "rp"
},
{
"access_level": 3,
"reward_item_shortname": "rp",
"reward_item_id": 0,
"amount": 3.0,
"is_active": false,
"name": "rp"
},
{
"access_level": 1,
"reward_item_shortname": null,
"reward_item_id": 1223900335,
"amount": 1.0,
"is_active": true,
"name": "dogtags"
},
{
"access_level": 2,
"reward_item_shortname": null,
"reward_item_id": 1036321299,
"amount": 1.0,
"is_active": true,
"name": "dogtags"
},
{
"access_level": 3,
"reward_item_shortname": null,
"reward_item_id": -602717596,
"amount": 1.0,
"is_active": true,
"name": "dogtags"
},
{
"access_level": 1,
"reward_item_shortname": "scrap",
"reward_item_id": -932201673,
"amount": 25.0,
"is_active": false,
"name": "scrap"
},
{
"access_level": 2,
"reward_item_shortname": "scrap",
"reward_item_id": -932201673,
"amount": 100.0,
"is_active": false,
"name": "scrap"
},
{
"access_level": 3,
"reward_item_shortname": "scrap",
"reward_item_id": -932201673,
"amount": 300.0,
"is_active": false,
"name": "scrap"
},
{
"access_level": 1,
"reward_item_shortname": "metal.refined",
"reward_item_id": 0,
"amount": 25.0,
"is_active": false,
"name": "hq"
},
{
"access_level": 2,
"reward_item_shortname": "metal.refined",
"reward_item_id": 0,
"amount": 50.0,
"is_active": false,
"name": "hq"
},
{
"access_level": 3,
"reward_item_shortname": "metal.refined",
"reward_item_id": 0,
"amount": 100.0,
"is_active": false,
"name": "hq"
}
],
"Version": {
"Major": 1,
"Minor": 5,
"Patch": 7
}
}
Localization
{
"CardSwipedAtName": "{0} swiped a {1} card at {2} ({3})!",
"CardSwipedAt": "{0} swiped a {1} card at {3}!",
"GreenCardLabel": "green",
"BlueCardLabel": "blue",
"RedCardLabel": "red",
"ItemAwarded": "{0} rewarded ({1}) for {2} card swipe!"
}
For Developers
After a good card swipe.
private object OnPPSwipe(BasePlayer player, string cardType, CardReader cardReader, string monumentName, string gridPosition)
{
//return anything other than null to prevent default behavior
return null;
}
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.