diff --git a/Bot/Bot.fsproj b/Bot/Bot.fsproj
index 66e530b..cb720fe 100644
--- a/Bot/Bot.fsproj
+++ b/Bot/Bot.fsproj
@@ -15,9 +15,10 @@
-
-
+
+
+
diff --git a/Bot/GuildEnvironment.fs b/Bot/GuildEnvironment.fs
index 06bc84a..a7e5eb7 100644
--- a/Bot/GuildEnvironment.fs
+++ b/Bot/GuildEnvironment.fs
@@ -22,6 +22,7 @@ let channelBattle = getId "CHANNEL_BATTLE"
let botIdHackerBattle = getId "BOT_HACKER_BATTLE"
let botIdArmory = getId "BOT_ARMORY"
let roleTrainee = getId "ROLE_TRAINEE"
+let rolePrisoner = getId "ROLE_PRISONER"
let mutable botUserHackerBattle : DiscordUser option = None
let mutable botUserArmory : DiscordUser option = None
diff --git a/Bot/RockPaperScissors.fs b/Bot/RockPaperScissors.fs
new file mode 100644
index 0000000..2203e9b
--- /dev/null
+++ b/Bot/RockPaperScissors.fs
@@ -0,0 +1,53 @@
+module Degenz.RockPaperScissors
+
+open System
+open System.Threading.Tasks
+open DSharpPlus
+open DSharpPlus.Entities
+open DSharpPlus.SlashCommands
+open Degenz.Messaging
+
+type Move =
+ | Rock
+ | Paper
+ | Scissor
+
+type RoundResult =
+ | P1Win
+ | P2Win
+ | Draw
+
+let player1Won p1m p2m =
+ match p1m , p2m with
+ | Rock , Paper -> P2Win
+ | Rock , Scissor -> P1Win
+ | Paper , Rock -> P1Win
+ | Paper , Scissor -> P2Win
+ | Scissor , Rock -> P2Win
+ | Scissor , Paper -> P1Win
+ | _ , _ -> Draw
+
+let playRPS target ctx =
+ Game.executePlayerWithTargetAction target ctx (fun attacker defender -> async {
+
+ return ()
+ })
+
+type StealGame() =
+ inherit ApplicationCommandModule ()
+
+ let enforceChannel (ctx : IDiscordContext) (storeFn : IDiscordContext -> Task) =
+ match ctx.GetChannel().Id with
+ | id when id = GuildEnvironment.channelArmory -> storeFn ctx
+ | _ ->
+ task {
+ let msg = $"You must go to <#{GuildEnvironment.channelArmory}> channel to buy or sell weapons"
+ do! Messaging.sendSimpleResponse ctx msg
+ }
+
+ []
+ member this.RPS (ctx : InteractionContext, [